|
|
// 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());
|
|
});
|
|
});
|
|
});
|