| description("This test exercises various uses of IDBObjectStore.count()"); |
| |
| indexedDBTest(prepareDatabase); |
| |
| |
| function done() |
| { |
| finishJSTest(); |
| } |
| |
| var database; |
| var objectStore; |
| |
| function getCount(arg) |
| { |
| var request; |
| if (arg == undefined) |
| request = objectStore.count(); |
| else |
| request = objectStore.count(arg); |
| |
| request.onsuccess = function() { |
| debug("Count is: " + request.result); |
| } |
| request.onerror = function(error) { |
| debug("Unexpected error getting count: " + error); |
| done(); |
| } |
| } |
| |
| function getCounts() |
| { |
| getCount(); |
| getCount(IDBKeyRange.bound(3, 6)); |
| getCount(IDBKeyRange.bound(3, 6, true, false)); |
| getCount(IDBKeyRange.bound(3, 6, false, true)); |
| getCount(7); |
| } |
| |
| function prepareDatabase(event) |
| { |
| debug("Initial upgrade needed: Old version - " + event.oldVersion + " New version - " + event.newVersion); |
| |
| var versionTransaction = event.target.transaction; |
| database = event.target.result; |
| objectStore = database.createObjectStore("TestObjectStore"); |
| |
| objectStore.put(1, 1); |
| getCounts(); |
| objectStore.put(2, 2); |
| getCounts(); |
| objectStore.put(3, 3); |
| getCounts(); |
| objectStore.put(4, 4); |
| getCounts(); |
| objectStore.put(5, 5); |
| getCounts(); |
| objectStore.put(6, 6); |
| getCounts(); |
| objectStore.put(7, 7); |
| getCounts(); |
| objectStore.put(8, 8); |
| getCounts(); |
| objectStore.put(9, 9); |
| getCounts(); |
| objectStore.put(10, 10); |
| getCounts(); |
| |
| // FIXME: Once objectStore.delete() is implemented, also test counts after deleting previous records. |
| |
| versionTransaction.onabort = function(event) { |
| debug("Initial upgrade versionchange transaction unexpected abort"); |
| done(); |
| } |
| |
| versionTransaction.oncomplete = function(event) { |
| debug("Initial upgrade versionchange transaction complete"); |
| done(); |
| } |
| |
| versionTransaction.onerror = function(event) { |
| debug("Initial upgrade versionchange transaction unexpected error" + event); |
| done(); |
| } |
| } |
| |