| Index: LayoutTests/http/tests/serviceworker/indexeddb.html
|
| diff --git a/LayoutTests/http/tests/serviceworker/indexeddb.html b/LayoutTests/http/tests/serviceworker/indexeddb.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3766f376b11e49f23401cb7e069d48c658911a49
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/serviceworker/indexeddb.html
|
| @@ -0,0 +1,57 @@
|
| +<!DOCTYPE html>
|
| +<script src="/js-test-resources/js-test.js"></script>
|
| +<script>
|
| +
|
| +description("Verify that IndexedDB is functional in a ServiceWorker");
|
| +var jsTestIsAsync = true;
|
| +
|
| +evalAndLog("messageChannel = new MessageChannel()");
|
| +evalAndLog("messageChannel.port1.onmessage = onMessageHandler");
|
| +
|
| +debug("");
|
| +evalAndLog("navigator.serviceWorker.register('indexeddb-worker.js')").then(
|
| + function(result) {
|
| + serviceWorker = result;
|
| + evalAndLog("serviceWorker.postMessage({port: messageChannel.port2}, [messageChannel.port2])");
|
| + },
|
| + function(reason) {
|
| + testFailed(reason.name);
|
| + finishJSTest();
|
| + });
|
| +
|
| +function onMessageHandler(e) {
|
| + var prefix = "[ServiceWorker] ";
|
| + message = e.data;
|
| + switch (message.action) {
|
| + case 'log':
|
| + debug(prefix + message.text);
|
| + break;
|
| + case 'pass':
|
| + testPassed(prefix + message.text);
|
| + break;
|
| + case 'fail':
|
| + testFailed(prefix + message.text);
|
| + break;
|
| + case 'quit':
|
| + verifyDatabase();
|
| + break;
|
| + }
|
| +}
|
| +
|
| +function verifyDatabase() {
|
| + debug("");
|
| + debug("Verifying the database from the page");
|
| + debug("");
|
| + evalAndLog("request = indexedDB.open('db')");
|
| + request.onsuccess = function() {
|
| + evalAndLog("db = request.result");
|
| + evalAndLog("tx = db.transaction('store')");
|
| + evalAndLog("store = tx.objectStore('store')");
|
| + evalAndLog("request = store.get('key')");
|
| + request.onsuccess = function() {
|
| + shouldBe("request.result", "'value'");
|
| + finishJSTest();
|
| + };
|
| + };
|
| +}
|
| +</script>
|
|
|