OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <script src="/js-test-resources/js-test.js"></script> |
| 3 <script> |
| 4 |
| 5 description("Verify that IndexedDB is functional in a ServiceWorker"); |
| 6 var jsTestIsAsync = true; |
| 7 |
| 8 evalAndLog("messageChannel = new MessageChannel()"); |
| 9 evalAndLog("messageChannel.port1.onmessage = onMessageHandler"); |
| 10 |
| 11 debug(""); |
| 12 evalAndLog("navigator.serviceWorker.register('indexeddb-worker.js')").then( |
| 13 function(result) { |
| 14 serviceWorker = result; |
| 15 evalAndLog("serviceWorker.postMessage({port: messageChannel.port2}, [mes
sageChannel.port2])"); |
| 16 }, |
| 17 function(reason) { |
| 18 testFailed(reason.name); |
| 19 finishJSTest(); |
| 20 }); |
| 21 |
| 22 function onMessageHandler(e) { |
| 23 var prefix = "[ServiceWorker] "; |
| 24 message = e.data; |
| 25 switch (message.action) { |
| 26 case 'log': |
| 27 debug(prefix + message.text); |
| 28 break; |
| 29 case 'pass': |
| 30 testPassed(prefix + message.text); |
| 31 break; |
| 32 case 'fail': |
| 33 testFailed(prefix + message.text); |
| 34 break; |
| 35 case 'quit': |
| 36 verifyDatabase(); |
| 37 break; |
| 38 } |
| 39 } |
| 40 |
| 41 function verifyDatabase() { |
| 42 debug(""); |
| 43 debug("Verifying the database from the page"); |
| 44 debug(""); |
| 45 evalAndLog("request = indexedDB.open('db')"); |
| 46 request.onsuccess = function() { |
| 47 evalAndLog("db = request.result"); |
| 48 evalAndLog("tx = db.transaction('store')"); |
| 49 evalAndLog("store = tx.objectStore('store')"); |
| 50 evalAndLog("request = store.get('key')"); |
| 51 request.onsuccess = function() { |
| 52 shouldBe("request.result", "'value'"); |
| 53 finishJSTest(); |
| 54 }; |
| 55 }; |
| 56 } |
| 57 </script> |
OLD | NEW |