define(["sugar-web/env"], function (env) {
|
|
|
|
'use strict';
|
|
|
|
describe("getObjectId", function () {
|
|
|
|
it("should return objectId from the sugar's environment", function () {
|
|
var environment = {
|
|
objectId: "objectId"
|
|
};
|
|
spyOn(env, "getEnvironment").andCallFake(function (callback) {
|
|
setTimeout(function () {
|
|
callback(null, environment);
|
|
}, 0);
|
|
});
|
|
var expected_objectId;
|
|
|
|
runs(function () {
|
|
env.getObjectId(function (objectId) {
|
|
expected_objectId = objectId;
|
|
});
|
|
});
|
|
|
|
waitsFor(function () {
|
|
return expected_objectId !== undefined;
|
|
}, "should return objectId");
|
|
});
|
|
});
|
|
|
|
describe("standalone mode", function () {
|
|
|
|
it("should return true if in standalone mode", function () {
|
|
var noWebActivityURLScheme = "http:";
|
|
spyOn(env, 'getURLScheme').andReturn(noWebActivityURLScheme);
|
|
|
|
var isStandaloneMode = env.isStandalone();
|
|
expect(isStandaloneMode).toBe(true);
|
|
});
|
|
|
|
it("should return false if not in standalone mode", function () {
|
|
var webActivityURLScheme = "activity:";
|
|
spyOn(env, 'getURLScheme').andReturn(webActivityURLScheme);
|
|
|
|
var isStandaloneMode = env.isStandalone();
|
|
expect(isStandaloneMode).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe("getEnvironment", function () {
|
|
var sugarOrig;
|
|
|
|
beforeEach(function () {
|
|
sugarOrig = JSON.parse(JSON.stringify(window.top.sugar));
|
|
});
|
|
|
|
afterEach(function () {
|
|
window.top.sugar = sugarOrig;
|
|
});
|
|
|
|
describe("in sugar mode", function () {
|
|
|
|
beforeEach(function () {
|
|
spyOn(env, 'isStandalone').andReturn(false);
|
|
});
|
|
|
|
describe("when env was already set", function () {
|
|
|
|
it("should run callback with null error and env", function () {
|
|
var environment = {};
|
|
window.top.sugar = {
|
|
environment: environment
|
|
};
|
|
var callback = jasmine.createSpy();
|
|
|
|
runs(function () {
|
|
env.getEnvironment(callback);
|
|
});
|
|
|
|
waitsFor(function () {
|
|
return callback.wasCalled;
|
|
}, "callback should be executed");
|
|
|
|
runs(function () {
|
|
expect(callback).toHaveBeenCalledWith(
|
|
null, environment);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("when env was not set, yet", function () {
|
|
|
|
beforeEach(function () {
|
|
window.top.sugar = undefined;
|
|
});
|
|
|
|
it("should set onEnvironmentSet handler", function () {
|
|
var sugar;
|
|
env.getEnvironment(function () {});
|
|
sugar = window.top.sugar;
|
|
expect(sugar.onEnvironmentSet).not.toBeUndefined();
|
|
});
|
|
|
|
it("should run callback on EnvironmentSet event", function () {
|
|
var callback = jasmine.createSpy();
|
|
var expectedEnv = "env";
|
|
|
|
env.getEnvironment(callback);
|
|
window.top.sugar.environment = expectedEnv;
|
|
window.top.sugar.onEnvironmentSet();
|
|
|
|
expect(callback).toHaveBeenCalledWith(null, expectedEnv);
|
|
});
|
|
});
|
|
});
|
|
|
|
it("should return {} in standalone mode", function () {
|
|
window.top.sugar = undefined;
|
|
spyOn(env, 'isStandalone').andReturn(true);
|
|
var actualEnv;
|
|
|
|
runs(function () {
|
|
env.getEnvironment(function (error, environment) {
|
|
actualEnv = environment;
|
|
});
|
|
});
|
|
|
|
waitsFor(function () {
|
|
return actualEnv !== undefined;
|
|
}, "environment not to be undefined");
|
|
|
|
runs(function () {
|
|
expect(actualEnv).toEqual({});
|
|
});
|
|
|
|
});
|
|
});
|
|
});
|