3 define(['test/test-helpers'], function(testHelpers) {
\r
4 var describeIf = testHelpers.describeIf;
\r
5 var it = testHelpers.itWithFreshLog;
\r
7 var originalConsole = window.console;
\r
8 var originalDocument = window.document;
\r
10 describeIf(testHelpers.isCookieStorageAvailable() && !testHelpers.isLocalStorageAvailable(),
\r
11 "Cookie-only persistence tests:", function() {
\r
13 beforeEach(function() {
\r
14 window.console = {"log" : jasmine.createSpy("console.log")};
\r
16 "toBeAtLevel" : testHelpers.toBeAtLevel,
\r
17 "toBeTheStoredLevel" : testHelpers.toBeTheLevelStoredByCookie
\r
21 afterEach(function() {
\r
22 window.console = originalConsole;
\r
25 describe("If no level is saved", function() {
\r
26 beforeEach(function() {
\r
27 testHelpers.clearStoredLevels();
\r
30 it("log level is set to warn by default", function(log) {
\r
31 expect(log).toBeAtLevel("warn");
\r
34 it("warn is persisted as the current level", function(log) {
\r
35 expect("warn").toBeTheStoredLevel();
\r
38 it("log can be set to info level", function(log) {
\r
39 log.setLevel("info");
\r
40 expect(log).toBeAtLevel("info");
\r
43 it("log.setLevel() sets a cookie with the given level", function(log) {
\r
44 log.setLevel("debug");
\r
45 expect("debug").toBeTheStoredLevel();
\r
49 describe("If info level is saved", function() {
\r
50 beforeEach(function() {
\r
51 testHelpers.setStoredLevel("info");
\r
54 it("info is the default log level", function(log) {
\r
55 expect(log).toBeAtLevel("info");
\r
58 it("log can be changed to warn level", function(log) {
\r
59 log.setLevel("warn");
\r
60 expect(log).toBeAtLevel("warn");
\r
63 it("log.setLevel() overwrites the saved level", function(log) {
\r
64 log.setLevel("error");
\r
66 expect("error").toBeTheStoredLevel();
\r
67 expect("info").not.toBeTheStoredLevel();
\r
71 describe("If the level is saved with other data", function() {
\r
72 beforeEach(function() {
\r
73 window.document.cookie = "qwe=asd";
\r
74 window.document.cookie = "loglevel=ERROR";
\r
75 window.document.cookie = "msg=hello world";
\r
78 it("error is the default log level", function(log) {
\r
79 expect(log).toBeAtLevel("error");
\r
82 it("log can be changed to silent level", function(log) {
\r
83 log.setLevel("silent");
\r
84 expect(log).toBeAtLevel("silent");
\r
87 it("log.setLevel() overrides the saved level only", function(log) {
\r
88 log.setLevel("debug");
\r
90 expect('debug').toBeTheStoredLevel();
\r
91 expect(window.document.cookie).toContain("msg=hello world");
\r
95 describe("If the level cookie is set incorrectly", function() {
\r
96 beforeEach(function() {
\r
97 testHelpers.setCookieStoredLevel('gibberish');
\r
100 it("warn is the default log level", function(log) {
\r
101 expect(log).toBeAtLevel("warn");
\r
104 it("warn is persisted as the current level, overriding the invalid cookie", function(log) {
\r
105 expect("warn").toBeTheStoredLevel();
\r
108 it("log can be changed to info level", function(log) {
\r
109 log.setLevel("info");
\r
110 expect(log).toBeAtLevel("info");
\r
113 it("log.setLevel() overrides the saved level with the new level", function(log) {
\r
114 expect('debug').not.toBeTheStoredLevel();
\r
116 log.setLevel("debug");
\r
118 expect('debug').toBeTheStoredLevel();
\r