Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / storage / indexeddb / index-multientry-expected.txt
blob71df2e6ba5e208b6a976f48a6eb91cb155e23f37
1 Test features of IndexedDB's multiEntry indices.
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
6 dbname = "index-multientry.html"
7 indexedDB.deleteDatabase(dbname)
8 indexedDB.open(dbname)
9 store = db.createObjectStore('store')
10 store.createIndex('index', 'x', {multiEntry: true})
11 store2 = db.createObjectStore('store-unique')
12 store2.createIndex('index-unique', 'x', {multiEntry: true, unique: true})
14 Populating stores (and indexes)
15 transaction = db.transaction(['store'], 'readwrite')
16 First try some keys that aren't what we're expecting
17 transaction.objectStore('store').put({x: [7, 8, 9], y: 'a'}, 'foo')
18 Now overwrite them with what we're expecting
19 transaction.objectStore('store').put({x: [1, 2, 3], y: 'a'}, 'foo')
20 transaction.objectStore('store').put({x: [4, 5, 6], y: 'b'}, 'bar')
21 transaction.objectStore('store').put({x: [7, 7, 8, 7], y: 'c'}, 'baz')
22 transaction.objectStore('store').put({x: [null, 9, 9], y: 'd'}, 'bloop')
24 Verifying index: index
25 transaction = db.transaction(['store'], 'readonly')
26 transaction.objectStore('store').index('index').openCursor()
27 cursor = event.target.result
28 PASS ex is non-null.
29 PASS cursor.key is 1
30 PASS cursor.primaryKey is "foo"
31 PASS cursor.value.y is "a"
32 cursor.continue()
33 cursor = event.target.result
34 PASS ex is non-null.
35 PASS cursor.key is 2
36 PASS cursor.primaryKey is "foo"
37 PASS cursor.value.y is "a"
38 cursor.continue()
39 cursor = event.target.result
40 PASS ex is non-null.
41 PASS cursor.key is 3
42 PASS cursor.primaryKey is "foo"
43 PASS cursor.value.y is "a"
44 cursor.continue()
45 cursor = event.target.result
46 PASS ex is non-null.
47 PASS cursor.key is 4
48 PASS cursor.primaryKey is "bar"
49 PASS cursor.value.y is "b"
50 cursor.continue()
51 cursor = event.target.result
52 PASS ex is non-null.
53 PASS cursor.key is 5
54 PASS cursor.primaryKey is "bar"
55 PASS cursor.value.y is "b"
56 cursor.continue()
57 cursor = event.target.result
58 PASS ex is non-null.
59 PASS cursor.key is 6
60 PASS cursor.primaryKey is "bar"
61 PASS cursor.value.y is "b"
62 cursor.continue()
63 cursor = event.target.result
64 PASS ex is non-null.
65 PASS cursor.key is 7
66 PASS cursor.primaryKey is "baz"
67 PASS cursor.value.y is "c"
68 cursor.continue()
69 cursor = event.target.result
70 PASS ex is non-null.
71 PASS cursor.key is 8
72 PASS cursor.primaryKey is "baz"
73 PASS cursor.value.y is "c"
74 cursor.continue()
75 cursor = event.target.result
76 PASS ex is non-null.
77 PASS cursor.key is 9
78 PASS cursor.primaryKey is "bloop"
79 PASS cursor.value.y is "d"
80 cursor.continue()
81 cursor = event.target.result
82 PASS expected.length is 0
83 transaction = db.transaction(['store'])
84 transaction.objectStore('store').index('index')
85 index.count()
86 PASS event.target.result is 9
87 index.count(7)
88 PASS event.target.result is 1
90 Verifying unique constraint on multiEntry index
91 transaction = db.transaction(['store-unique'], 'readwrite')
92 transaction.objectStore('store-unique').put({x: [1, 2, 3], y: 'a'}, 'foo')
93 success!
94 Replace an existing record - this should work
95 transaction.objectStore('store-unique').put({x: [1, 2, 7], y: 'a'}, 'foo')
96 success!
97 This should fail the uniqueness constraint on the index, and fail:
98 transaction.objectStore('store-unique').put({x: [5, 2], y: 'c'}, 'should fail')
99 PASS request.result is undefined.
100 PASS request.error is non-null.
101 Request failed, as expected (ConstraintError)
102 Transaction aborted as expected
104 Create an index on a populated store
105 db.close()
106 indexedDB.open(dbname, 2)
107 db = event.target.result
108 trans = event.target.transaction
109 store = trans.objectStore('store')
110 store.createIndex('index-new', 'x', {multiEntry: true})
112 Verifying index: index-new
113 transaction = db.transaction(['store'], 'readonly')
114 transaction.objectStore('store').index('index-new').openCursor()
115 cursor = event.target.result
116 PASS ex is non-null.
117 PASS cursor.key is 1
118 PASS cursor.primaryKey is "foo"
119 PASS cursor.value.y is "a"
120 cursor.continue()
121 cursor = event.target.result
122 PASS ex is non-null.
123 PASS cursor.key is 2
124 PASS cursor.primaryKey is "foo"
125 PASS cursor.value.y is "a"
126 cursor.continue()
127 cursor = event.target.result
128 PASS ex is non-null.
129 PASS cursor.key is 3
130 PASS cursor.primaryKey is "foo"
131 PASS cursor.value.y is "a"
132 cursor.continue()
133 cursor = event.target.result
134 PASS ex is non-null.
135 PASS cursor.key is 4
136 PASS cursor.primaryKey is "bar"
137 PASS cursor.value.y is "b"
138 cursor.continue()
139 cursor = event.target.result
140 PASS ex is non-null.
141 PASS cursor.key is 5
142 PASS cursor.primaryKey is "bar"
143 PASS cursor.value.y is "b"
144 cursor.continue()
145 cursor = event.target.result
146 PASS ex is non-null.
147 PASS cursor.key is 6
148 PASS cursor.primaryKey is "bar"
149 PASS cursor.value.y is "b"
150 cursor.continue()
151 cursor = event.target.result
152 PASS ex is non-null.
153 PASS cursor.key is 7
154 PASS cursor.primaryKey is "baz"
155 PASS cursor.value.y is "c"
156 cursor.continue()
157 cursor = event.target.result
158 PASS ex is non-null.
159 PASS cursor.key is 8
160 PASS cursor.primaryKey is "baz"
161 PASS cursor.value.y is "c"
162 cursor.continue()
163 cursor = event.target.result
164 PASS ex is non-null.
165 PASS cursor.key is 9
166 PASS cursor.primaryKey is "bloop"
167 PASS cursor.value.y is "d"
168 cursor.continue()
169 cursor = event.target.result
170 PASS expected.length is 0
171 transaction = db.transaction(['store'])
172 transaction.objectStore('store').index('index')
173 index.count()
174 PASS event.target.result is 9
175 index.count(7)
176 PASS event.target.result is 1
177 PASS successfullyParsed is true
179 TEST COMPLETE