95 lines
2.5 KiB
JavaScript
95 lines
2.5 KiB
JavaScript
// META: global=window,worker
|
|
// META: title=IDBObjectStore.count()
|
|
// META: script=resources/support.js
|
|
|
|
'use strict';
|
|
|
|
async_test(t => {
|
|
let db;
|
|
|
|
let open_rq = createdb(t);
|
|
|
|
open_rq.onupgradeneeded = function(e) {
|
|
db = e.target.result;
|
|
let store = db.createObjectStore("store");
|
|
|
|
for(let i = 0; i < 10; i++) {
|
|
store.add({ data: "data" + i }, i);
|
|
}
|
|
}
|
|
|
|
open_rq.onsuccess = function(e) {
|
|
let rq = db.transaction("store", "readonly")
|
|
.objectStore("store")
|
|
.count();
|
|
|
|
rq.onsuccess = t.step_func(function(e) {
|
|
assert_equals(e.target.result, 10);
|
|
t.done();
|
|
});
|
|
}
|
|
}, "Returns the number of records in the object store ");
|
|
|
|
async_test(t => {
|
|
let db;
|
|
|
|
let open_rq = createdb(t);
|
|
|
|
open_rq.onupgradeneeded = function(e) {
|
|
db = e.target.result;
|
|
let store = db.createObjectStore("store");
|
|
|
|
for(let i = 0; i < 10; i++) {
|
|
store.add({ data: "data" + i }, i);
|
|
}
|
|
}
|
|
|
|
open_rq.onsuccess = function(e) {
|
|
let rq = db.transaction("store", "readonly")
|
|
.objectStore("store")
|
|
.count(IDBKeyRange.bound(5, 20));
|
|
|
|
rq.onsuccess = t.step_func(function(e) {
|
|
assert_equals(e.target.result, 5);
|
|
t.done();
|
|
});
|
|
}
|
|
}, "Returns the number of records that have keys within the range ");
|
|
|
|
async_test(t => {
|
|
let db
|
|
|
|
createdb(t).onupgradeneeded = function(e) {
|
|
db = e.target.result
|
|
|
|
let store = db.createObjectStore("store", { keyPath: "k" })
|
|
|
|
for (let i = 0; i < 5; i++)
|
|
store.add({ k: "key_" + i });
|
|
|
|
store.count("key_2").onsuccess = t.step_func(function(e) {
|
|
assert_equals(e.target.result, 1, "count(key_2)")
|
|
|
|
store.count("key_").onsuccess = t.step_func(function(e) {
|
|
assert_equals(e.target.result, 0, "count(key_)")
|
|
t.done()
|
|
})
|
|
})
|
|
}
|
|
|
|
}, "Returns the number of records that have keys with the key");
|
|
|
|
async_test(t => {
|
|
let db, ostore;
|
|
|
|
let open_rq = createdb(t);
|
|
open_rq.onupgradeneeded = function (event) {
|
|
db = event.target.result;
|
|
ostore = db.createObjectStore("store", {keyPath:"pKey"});
|
|
db.deleteObjectStore("store");
|
|
assert_throws_dom("InvalidStateError", function(){
|
|
ostore.count();
|
|
});
|
|
t.done();
|
|
}
|
|
}, "If the object store has been deleted, the implementation must throw a DOMException of type InvalidStateError ");
|