Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Side by Side Diff: third_party/WebKit/LayoutTests/storage/indexeddb/idbobjectstore_getkey.html

Issue 1407883002: Add new experimental IDBObjectStore.getKey(query) API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: git cl format Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <title>IndexedDB: Test IDBObjectStore.getKey()</title>
3 <script src="../../resources/testharness.js"></script>
4 <script src="../../resources/testharnessreport.js"></script>
5 <script>
6
7 function getkey_test(func, name) {
8 return async_test(function(t) {
9 var del = indexedDB.deleteDatabase(name);
10 del.onerror = t.unreached_func('deleteDatabase failed');
11 var open = indexedDB.open(name);
12 open.onerror = t.unreached_func('open failed');
13 open.onupgradeneeded = t.step_func(function() {
14 var db = open.result;
15
16 var basic = db.createObjectStore('basic');
17 var key_path_store = db.createObjectStore('key path',
18 {keyPath: 'id'});
19 var key_generator_store = db.createObjectStore('key generator',
20 {autoIncrement: true});
21 var key_generator_and_path_store = db.createObjectStore(
22 'key generator and key path',
23 {autoIncrement: true, key_path: 'id'});
24
25 for (var i = 1; i <= 10; ++i) {
26 basic.put('value: ' + i, i);
27 key_path_store.put({id: i});
28 key_generator_store.put('value: ' + i);
29 key_generator_and_path_store.put({});
30 }
31 });
32 open.onsuccess = t.step_func(function() {
33 var db = open.result;
34 func(t, db);
35 });
36 }, name);
37 }
38
39 getkey_test(function(t, db) {
40 var tx = db.transaction('basic');
41 var store = tx.objectStore('basic');
42 assert_throws(TypeError(), function() { store.getKey(); });
43 assert_throws({name: 'DataError'}, function() { store.getKey(null); });
44 assert_throws({name: 'DataError'}, function() { store.getKey({}); });
45 t.done();
46 }, 'IDBObjectStore.getKey() - invalid parameters');
47
48 [
49 'basic',
50 'key path',
51 'key generator',
52 'key generator and key path'
53 ].forEach(function(store_name) {
54
55 getkey_test(function(t, db) {
56 var tx = db.transaction(store_name);
57 var store = tx.objectStore(store_name);
58 var request = store.getKey(5);
59 request.onerror = t.unreached_func('request failed');
60 request.onsuccess = t.step_func(function() {
61 assert_equals(request.result, 5);
62 });
63 tx.onabort = t.unreached_func('transaction aborted');
64 tx.oncomplete = t.step_func(function() { t.done(); });
65 }, 'IDBObjectStore.getKey() - ' + store_name + ' - key');
66
67 getkey_test(function(t, db) {
68 var tx = db.transaction(store_name);
69 var store = tx.objectStore(store_name);
70 var request = store.getKey(IDBKeyRange.lowerBound(4.5));
71 request.onerror = t.unreached_func('request failed');
72 request.onsuccess = t.step_func(function() {
73 assert_equals(request.result, 5);
74 });
75 tx.onabort = t.unreached_func('transaction aborted');
76 tx.oncomplete = t.step_func(function() { t.done(); });
77 }, 'IDBObjectStore.getKey() - ' + store_name + ' - range');
78
79 getkey_test(function(t, db) {
80 var tx = db.transaction(store_name);
81 var store = tx.objectStore(store_name);
82 var request = store.getKey(11);
83 request.onerror = t.unreached_func('request failed');
84 request.onsuccess = t.step_func(function() {
85 assert_equals(request.result, undefined);
86 });
87 tx.onabort = t.unreached_func('transaction aborted');
88 tx.oncomplete = t.step_func(function() { t.done(); });
89 }, 'IDBObjectStore.getKey() - ' + store_name + ' - key - no match');
90
91 getkey_test(function(t, db) {
92 var tx = db.transaction(store_name);
93 var store = tx.objectStore(store_name);
94 var request = store.getKey(IDBKeyRange.lowerBound(11));
95 request.onerror = t.unreached_func('request failed');
96 request.onsuccess = t.step_func(function() {
97 assert_equals(request.result, undefined);
98 });
99 tx.onabort = t.unreached_func('transaction aborted');
100 tx.oncomplete = t.step_func(function() { t.done(); });
101 }, 'IDBObjectStore.getKey() - ' + store_name + ' - range - no match');
102 });
103
104 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698