~cordova-ubuntu/cordova-ubuntu-tests/ci

« back to all changes in this revision

Viewing changes to www/autotest/tests/storage.tests.js

  • Committer: VĂ­ctor R. Ruiz
  • Date: 2013-07-25 13:09:34 UTC
  • Revision ID: victor.ruiz@canonical.com-20130725130934-d4q95mh8eehbv363
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *
 
3
 * Licensed to the Apache Software Foundation (ASF) under one
 
4
 * or more contributor license agreements.  See the NOTICE file
 
5
 * distributed with this work for additional information
 
6
 * regarding copyright ownership.  The ASF licenses this file
 
7
 * to you under the Apache License, Version 2.0 (the
 
8
 * "License"); you may not use this file except in compliance
 
9
 * with the License.  You may obtain a copy of the License at
 
10
 *
 
11
 *   http://www.apache.org/licenses/LICENSE-2.0
 
12
 *
 
13
 * Unless required by applicable law or agreed to in writing,
 
14
 * software distributed under the License is distributed on an
 
15
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 
16
 * KIND, either express or implied.  See the License for the
 
17
 * specific language governing permissions and limitations
 
18
 * under the License.
 
19
 *
 
20
*/
 
21
 
 
22
describe("Session Storage", function () {
 
23
    it("storage.spec.1 should exist", function () {
 
24
        expect(window.sessionStorage).toBeDefined();
 
25
        expect(typeof window.sessionStorage.length).not.toBe('undefined');
 
26
        expect(typeof(window.sessionStorage.key)).toBe('function');
 
27
        expect(typeof(window.sessionStorage.getItem)).toBe('function');
 
28
        expect(typeof(window.sessionStorage.setItem)).toBe('function');
 
29
        expect(typeof(window.sessionStorage.removeItem)).toBe('function');
 
30
        expect(typeof(window.sessionStorage.clear)).toBe('function');
 
31
    });
 
32
 
 
33
    it("storage.spec.2 check length", function () {
 
34
        expect(window.sessionStorage.length).toBe(0);
 
35
        window.sessionStorage.setItem("key","value");
 
36
        expect(window.sessionStorage.length).toBe(1);
 
37
        window.sessionStorage.removeItem("key");   
 
38
        expect(window.sessionStorage.length).toBe(0);
 
39
    });
 
40
 
 
41
    it("storage.spec.3 check key", function () {
 
42
        expect(window.sessionStorage.key(0)).toBe(null);
 
43
        window.sessionStorage.setItem("test","value");
 
44
        expect(window.sessionStorage.key(0)).toBe("test");
 
45
        window.sessionStorage.removeItem("test");   
 
46
        expect(window.sessionStorage.key(0)).toBe(null);
 
47
    });
 
48
 
 
49
    it("storage.spec.4 check getItem", function() {
 
50
        expect(window.sessionStorage.getItem("item")).toBe(null);
 
51
        window.sessionStorage.setItem("item","value");
 
52
        expect(window.sessionStorage.getItem("item")).toBe("value");
 
53
        window.sessionStorage.removeItem("item");   
 
54
        expect(window.sessionStorage.getItem("item")).toBe(null);
 
55
    });
 
56
 
 
57
    it("storage.spec.5 check setItem", function() {
 
58
        expect(window.sessionStorage.getItem("item")).toBe(null);
 
59
        window.sessionStorage.setItem("item","value");
 
60
        expect(window.sessionStorage.getItem("item")).toBe("value");
 
61
        window.sessionStorage.setItem("item","newval");
 
62
        expect(window.sessionStorage.getItem("item")).toBe("newval");
 
63
        window.sessionStorage.removeItem("item");   
 
64
        expect(window.sessionStorage.getItem("item")).toBe(null);
 
65
    });
 
66
 
 
67
    it("storage.spec.6 can remove an item", function () {
 
68
        expect(window.sessionStorage.getItem("item")).toBe(null);
 
69
        window.sessionStorage.setItem("item","value");
 
70
        expect(window.sessionStorage.getItem("item")).toBe("value");
 
71
        window.sessionStorage.removeItem("item");   
 
72
        expect(window.sessionStorage.getItem("item")).toBe(null);
 
73
    });
 
74
 
 
75
    it("storage.spec.7 check clear", function() {
 
76
        window.sessionStorage.setItem("item1","value");
 
77
        window.sessionStorage.setItem("item2","value");
 
78
        window.sessionStorage.setItem("item3","value");
 
79
        expect(window.sessionStorage.length).toBe(3);
 
80
        window.sessionStorage.clear();
 
81
        expect(window.sessionStorage.length).toBe(0);
 
82
    });
 
83
 
 
84
    it("storage.spec.8 check dot notation", function() {
 
85
        expect(window.sessionStorage.item).not.toBeDefined();
 
86
        window.sessionStorage.item = "value";
 
87
        expect(window.sessionStorage.item).toBe("value");
 
88
        window.sessionStorage.removeItem("item");   
 
89
        expect(window.sessionStorage.item).not.toBeDefined();
 
90
    });
 
91
 
 
92
    describe("Local Storage", function () {
 
93
        it("storage.spec.9 should exist", function() {
 
94
            expect(window.localStorage).toBeDefined();
 
95
            expect(window.localStorage.length).toBeDefined();
 
96
            expect(typeof window.localStorage.key).toBe("function");
 
97
            expect(typeof window.localStorage.getItem).toBe("function");
 
98
            expect(typeof window.localStorage.setItem).toBe("function");
 
99
            expect(typeof window.localStorage.removeItem).toBe("function");
 
100
            expect(typeof window.localStorage.clear).toBe("function");
 
101
        });  
 
102
 
 
103
        it("storage.spec.10 check length", function() {
 
104
            expect(window.localStorage.length).toBe(0);
 
105
            window.localStorage.setItem("key","value");
 
106
            expect(window.localStorage.length).toBe(1);
 
107
            window.localStorage.removeItem("key");   
 
108
            expect(window.localStorage.length).toBe(0);
 
109
        });
 
110
 
 
111
        it("storage.spec.11 check key", function() {
 
112
            expect(window.localStorage.key(0)).toBe(null);
 
113
            window.localStorage.setItem("test","value");
 
114
            expect(window.localStorage.key(0)).toBe("test");
 
115
            window.localStorage.removeItem("test");   
 
116
            expect(window.localStorage.key(0)).toBe(null);
 
117
        });
 
118
 
 
119
        it("storage.spec.4 check getItem", function() {
 
120
            expect(window.localStorage.getItem("item")).toBe(null);
 
121
            window.localStorage.setItem("item","value");
 
122
            expect(window.localStorage.getItem("item")).toBe("value");
 
123
            window.localStorage.removeItem("item");   
 
124
            expect(window.localStorage.getItem("item")).toBe(null);
 
125
        });
 
126
 
 
127
        it("storage.spec.5 check setItem", function() {
 
128
            expect(window.localStorage.getItem("item")).toBe(null);
 
129
            window.localStorage.setItem("item","value");
 
130
            expect(window.localStorage.getItem("item")).toBe("value");
 
131
            window.localStorage.setItem("item","newval");
 
132
            expect(window.localStorage.getItem("item")).toBe("newval");
 
133
            window.localStorage.removeItem("item");   
 
134
            expect(window.localStorage.getItem("item")).toBe(null);
 
135
        });
 
136
 
 
137
        it("storage.spec.14 check removeItem", function() {
 
138
            expect(window.localStorage.getItem("item")).toBe(null);
 
139
            window.localStorage.setItem("item","value");
 
140
            expect(window.localStorage.getItem("item")).toBe("value");
 
141
            window.localStorage.removeItem("item");   
 
142
            expect(window.localStorage.getItem("item")).toBe(null);
 
143
        });
 
144
 
 
145
        it("storage.spec.7 check clear", function() {
 
146
            expect(window.localStorage.getItem("item1")).toBe(null);
 
147
            expect(window.localStorage.getItem("item2")).toBe(null);
 
148
            expect(window.localStorage.getItem("item3")).toBe(null);
 
149
            window.localStorage.setItem("item1","value");
 
150
            window.localStorage.setItem("item2","value");
 
151
            window.localStorage.setItem("item3","value");
 
152
            expect(window.localStorage.getItem("item1")).toBe("value");
 
153
            expect(window.localStorage.getItem("item2")).toBe("value");
 
154
            expect(window.localStorage.getItem("item3")).toBe("value");
 
155
            expect(window.localStorage.length).toBe(3);
 
156
            window.localStorage.clear();
 
157
            expect(window.localStorage.length).toBe(0);
 
158
            expect(window.localStorage.getItem("item1")).toBe(null);
 
159
            expect(window.localStorage.getItem("item2")).toBe(null);
 
160
            expect(window.localStorage.getItem("item3")).toBe(null);
 
161
        });
 
162
 
 
163
        it("storage.spec.8 check dot notation", function() {
 
164
            expect(window.localStorage.item).not.toBeDefined();
 
165
            window.localStorage.item = "value";
 
166
            expect(window.localStorage.item).toBe("value");
 
167
            window.localStorage.removeItem("item");   
 
168
            expect(window.localStorage.item).not.toBeDefined();
 
169
        });
 
170
    });
 
171
 
 
172
    describe("HTML 5 Storage", function () {
 
173
        it("storage.spec.9 should exist", function() {
 
174
            expect(window.openDatabase);
 
175
            
 
176
        });
 
177
        
 
178
        it("storage.spec.17 should contain an openDatabase function", function() {
 
179
            expect(window.openDatabase).toBeDefined();
 
180
            expect(typeof window.openDatabase == 'function').toBe(true);
 
181
        });
 
182
 
 
183
        it("storage.spec.18 Should be able to create and drop tables", function() {
 
184
            var win = jasmine.createSpy('win');
 
185
            var fail1 = createDoNotCallSpy('fail1');
 
186
            var fail2 = createDoNotCallSpy('fail2');
 
187
            var db = openDatabase("Database", "1.0", "HTML5 Database API example", 5*1024*1024);
 
188
            db.transaction(function(t) {
 
189
                t.executeSql('CREATE TABLE IF NOT EXISTS foo(id int, name varchar(255));');
 
190
                t.executeSql('CREATE TABLE IF NOT EXISTS foo2(id int, name varchar(255));');
 
191
            }, fail1, step2);
 
192
            function step2() {
 
193
              db.transaction(function(t) {
 
194
                  t.executeSql('DROP TABLE foo;');
 
195
                  t.executeSql('DROP TABLE foo2');
 
196
              }, fail2, win);
 
197
            }
 
198
            waitsForAny(win, fail1, fail2);
 
199
        });
 
200
    });
 
201
});