2 <title>Service Worker: Indexed DB</title>
3 <script src="../resources/testharness.js"></script>
4 <script src="../resources/testharnessreport.js"></script>
5 <script src="resources/test-helpers.js"></script>
7 async_test(function(t) {
8 var scope = 'resources/blank.html';
9 service_worker_unregister_and_register(
10 t, 'resources/indexeddb-worker.js', scope)
11 .then(function(registration) {
12 return wait_for_update(t, registration);
15 var messageChannel = new MessageChannel();
16 messageChannel.port1.onmessage = t.step_func(onMessage);
17 sw.postMessage({port: messageChannel.port2}, [messageChannel.port2]);
19 .catch(unreached_rejection(t));
21 function onMessage() {
22 var openRequest = indexedDB.open('db');
23 openRequest.onsuccess = t.step_func(function() {
24 var db = openRequest.result;
25 var tx = db.transaction('store');
26 var store = tx.objectStore('store');
27 var getRequest = store.get('key');
28 getRequest.onsuccess = t.step_func(function() {
30 getRequest.result, 'value',
31 'The get() result should match what the worker put().');
32 service_worker_unregister_and_done(t, scope);
36 }, 'Verify Indexed DB operation in a Service Worker');