diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /dom/indexedDB/test/unit/test_invalid_cursor.js | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/indexedDB/test/unit/test_invalid_cursor.js')
-rw-r--r-- | dom/indexedDB/test/unit/test_invalid_cursor.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/dom/indexedDB/test/unit/test_invalid_cursor.js b/dom/indexedDB/test/unit/test_invalid_cursor.js new file mode 100644 index 0000000000..ec22ad811e --- /dev/null +++ b/dom/indexedDB/test/unit/test_invalid_cursor.js @@ -0,0 +1,63 @@ +/** + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +var disableWorkerTest = "Need to implement a gc() function for worker tests"; + +var testGenerator = testSteps(); + +function* testSteps() { + const dbName = "window" in this ? window.location.pathname : "test"; + const dbVersion = 1; + const objectStoreName = "foo"; + const data = 0; + + let req = indexedDB.open(dbName, dbVersion); + req.onerror = errorHandler; + req.onupgradeneeded = grabEventAndContinueHandler; + req.onsuccess = grabEventAndContinueHandler; + + let event = yield undefined; + + is(event.type, "upgradeneeded", "Got upgradeneeded event"); + + let db = event.target.result; + + let objectStore = db.createObjectStore(objectStoreName, { + autoIncrement: true, + }); + objectStore.add(data); + + event = yield undefined; + + is(event.type, "success", "Got success event for open"); + + objectStore = db.transaction(objectStoreName).objectStore(objectStoreName); + + objectStore.openCursor().onsuccess = grabEventAndContinueHandler; + event = yield undefined; + + is(event.type, "success", "Got success event for openCursor"); + + let cursor = event.target.result; + is(cursor.value, data, "Got correct cursor value"); + + objectStore.get(cursor.key).onsuccess = grabEventAndContinueHandler; + event = yield undefined; + + is(event.target.result, data, "Got correct get value"); + + info("Collecting garbage"); + + gc(); + + info("Done collecting garbage"); + + cursor.continue(); + event = yield undefined; + + is(event.target.result, null, "No more entries"); + + finishTest(); +} |