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.
 
 
 
 
 

137 lines
4.3 KiB

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