not really known
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

241 lines
7.4 KiB

// Unit testing on presence
describe('Presence', function() {
var testPresenceServerUrl = "http://localhost";
var testPresenceServerPort = 8040;
var networkId = "9446effc-a186-4199-8730-9f2be39a11d2";
var activityName = "sugarizer.mocha.activity";
var sharedId = null;
var sharedId2 = null;
describe('#joinNetwork()', function() {
this.timeout(5000);
it("not indicate connected before connection", function() {
chai.assert.isFalse(presence.isConnected());
});
it("should fail when server don't exist", function(done) {
initSugarizer({name: "mocha1", server: {url: "http://xxxxx", presence: 8888}, networkId: networkId});
presence.joinNetwork(function(error, presence) {
chai.assert.isNotNull(error);
done();
});
});
it("should connect user", function(done) {
initSugarizer({name: "mocha1", server: {url: testPresenceServerUrl, presence: testPresenceServerPort}, networkId: networkId});
presence.joinNetwork(function(error, presence) {
chai.assert.isNull(error);
chai.assert.isNotNull(presence);
done();
});
});
});
describe('#isConnected()', function() {
it("should indicate connected", function() {
chai.assert.isTrue(presence.isConnected());
});
});
describe('#listUsers()', function() {
it("should list user as connected", function(done) {
presence.listUsers(function(users) {
chai.assert.equal(1, users.length);
chai.assert.equal("mocha1", users[0].name);
chai.assert.equal(networkId, users[0].networkId);
chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, users[0].colorvalue);
done();
});
});
});
describe('#getUserInfo()', function() {
it("should retrieve user information", function() {
var userInfo = presence.getUserInfo();
chai.assert.equal("mocha1", userInfo.name);
chai.assert.equal(networkId, userInfo.networkId);
chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, userInfo.colorvalue);
});
});
describe('#createSharedActivity()', function() {
it("should not contain shared activity at first", function(done) {
presence.listSharedActivities(function(activities) {
chai.assert.equal(0, activities.length);
done();
});
});
it("should create a shared activity at first", function(done) {
presence.createSharedActivity(activityName, function(id) {
sharedId = id;
chai.assert.isNotNull(sharedId);
chai.assert.equal(36, sharedId.length);
done();
});
});
it("should list one shared activity", function(done) {
presence.listSharedActivities(function(activities) {
chai.assert.equal(1, activities.length);
done();
});
});
it("should create a another shared activity", function(done) {
presence.createSharedActivity(activityName, function(id) {
sharedId2 = id;
chai.assert.isNotNull(sharedId2);
chai.assert.equal(36, sharedId2.length);
chai.assert.notEqual(sharedId, sharedId2);
done();
});
});
it("should list two shared activity", function(done) {
presence.listSharedActivities(function(activities) {
chai.assert.equal(2, activities.length);
done();
});
});
});
describe('#listSharedActivities()', function() {
it("should list shared activity and details", function(done) {
presence.listSharedActivities(function(activities) {
chai.assert.equal(2, activities.length);
chai.assert.equal(activityName, activities[0].activityId);
chai.assert.equal(sharedId, activities[0].id);
chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, activities[0].colorvalue);
chai.assert.equal(1, activities[0].users.length);
chai.assert.equal(networkId, activities[0].users[0]);
chai.assert.equal(activityName, activities[1].activityId);
chai.assert.equal(sharedId2, activities[1].id);
chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, activities[1].colorvalue);
chai.assert.equal(1, activities[1].users.length);
chai.assert.equal(networkId, activities[1].users[0]);
done();
});
});
});
describe('#listSharedActivityUsers()', function() {
it("should list user connected on first activity", function(done) {
presence.listSharedActivityUsers(sharedId, function(users) {
chai.assert.equal(1, users.length);
chai.assert.equal("mocha1", users[0].name);
chai.assert.equal(networkId, users[0].networkId);
chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, users[0].colorvalue);
done();
});
});
it("should list user connected on second activity", function(done) {
presence.listSharedActivityUsers(sharedId2, function(users) {
chai.assert.equal(1, users.length);
chai.assert.equal("mocha1", users[0].name);
chai.assert.equal(networkId, users[0].networkId);
chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, users[0].colorvalue);
done();
});
});
});
describe('#sendMessage()', function() {
it("should not receive message to other shared group", function(done) {
presence.onDataReceived(function(data) {
chai.assert.fail();
done();
});
presence.sendMessage("ffffffff-ffff-ffff-ffff-ffffffffffff", "Hello!");
done();
});
it("should receive message sent", function(done) {
presence.onDataReceived(function(data) {
chai.assert.equal("Hello!", data);
done();
});
presence.sendMessage(sharedId, "Hello!");
});
it("should receive message sent to other group", function(done) {
presence.onDataReceived(function(data) {
chai.assert.equal("World!", data);
done();
});
presence.sendMessage(sharedId2, "World!");
});
});
describe('#leaveSharedActivity()', function() {
it("should leave activity", function(done) {
presence.onSharedActivityUserChanged(function() {
done();
});
presence.leaveSharedActivity(sharedId2, function() {
});
});
it("should list one leaving shared activity", function(done) {
presence.listSharedActivities(function(activities) {
chai.assert.equal(1, activities.length);
chai.assert.equal(activityName, activities[0].activityId);
chai.assert.equal(sharedId, activities[0].id);
chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, activities[0].colorvalue);
chai.assert.equal(1, activities[0].users.length);
chai.assert.equal(networkId, activities[0].users[0]);
done();
});
});
it("should not receive message when left shared group", function(done) {
presence.onDataReceived(function(data) {
chai.assert.fail();
done();
});
presence.sendMessage(sharedId2, "Hello!");
done();
});
it("should leave second activity", function(done) {
presence.onSharedActivityUserChanged(function(moves) {
chai.assert.equal(-1, moves.move);
chai.assert.equal("mocha1", moves.user.name);
chai.assert.equal(networkId, moves.user.networkId);
chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, moves.user.colorvalue);
done();
});
presence.leaveSharedActivity(sharedId, function() {
});
});
it("should list no shared activity", function(done) {
presence.listSharedActivities(function(activities) {
chai.assert.equal(0, activities.length);
done();
});
});
});
describe('#leaveNetwork()', function() {
it("should disconnect", function() {
presence.onConnectionClosed(function() {
chai.assert.isTrue(true);
});
presence.leaveNetwork();
});
it("should do nothing when disconnected", function() {
presence.onConnectionClosed(function() {
chai.assert.isFalse(false);
});
presence.leaveNetwork();
chai.assert.isFalse(presence.isConnected());
});
});
});