objectstore_keyorder.any.js (1104B)
1 // META: title=IDBObjectStore key sort order 2 // META: global=window,worker 3 // META: script=resources/support.js 4 5 'use strict'; 6 7 async_test(t => { 8 let db; 9 const d = new Date(); 10 const records = [{key: d}, {key: 'test'}, {key: 1}, {key: 2.55}]; 11 const expectedKeyOrder = [1, 2.55, d.valueOf(), 'test']; 12 13 const open_rq = createdb(t); 14 open_rq.onupgradeneeded = t.step_func((e) => { 15 db = e.target.result; 16 const objStore = db.createObjectStore('store', {keyPath: 'key'}); 17 18 for (let i = 0; i < records.length; i++) 19 objStore.add(records[i]); 20 }); 21 22 open_rq.onsuccess = t.step_func((e) => { 23 let actual_keys = []; 24 const rq = 25 db.transaction('store', 'readonly').objectStore('store').openCursor(); 26 27 rq.onsuccess = t.step_func((e) => { 28 const cursor = e.target.result; 29 30 if (cursor) { 31 actual_keys.push(cursor.key.valueOf()); 32 cursor.continue(); 33 } else { 34 assert_array_equals(actual_keys, expectedKeyOrder); 35 t.done(); 36 } 37 }); 38 }); 39 }, 'Verify key sort order in an object store is \'number < Date < DOMString\' ');