Update devtools extension spec for chrome.storage
authorJhen <developer@jhen.me>
Tue, 15 Nov 2016 11:41:23 +0000 (19:41 +0800)
committerJhen <developer@jhen.me>
Tue, 15 Nov 2016 11:58:08 +0000 (19:58 +0800)
spec/api-browser-window-spec.js
spec/fixtures/devtools-extensions/foo/index.html

index 9bfede2..eb69be3 100644 (file)
@@ -1384,8 +1384,16 @@ describe('browser-window module', function () {
             assert.equal(message.tabId, w.webContents.id)
             assert.equal(message.i18nString, 'foo - bar (baz)')
             assert.deepEqual(message.storageItems, {
-              local: {hello: 'world'},
-              sync: {foo: 'bar'}
+              local: {
+                set: {hello: 'world', world: 'hello'},
+                remove: {world: 'hello'},
+                clear: {}
+              },
+              sync: {
+                set: {foo: 'bar', bar: 'foo'},
+                remove: {foo: 'bar'},
+                clear: {}
+              }
             })
             done()
           })
index 55d4664..92c2014 100644 (file)
@@ -4,10 +4,22 @@
     <meta charset="utf-8">
     <title></title>
     <script>
-      function testStorage (callback) {
-        chrome.storage.sync.set({foo: 'bar'}, function () {
+      function testStorageClear (callback) {
+        chrome.storage.sync.clear(function () {
+          chrome.storage.sync.get(null, function (syncItems) {
+            chrome.storage.local.clear(function () {
+              chrome.storage.local.get(null, function(localItems) {
+                callback(syncItems, localItems)
+              })
+            })
+          })
+        })
+      }
+
+      function testStorageRemove (callback) {
+        chrome.storage.sync.remove('bar', function () {
           chrome.storage.sync.get({foo: 'baz'}, function (syncItems) {
-            chrome.storage.local.set({hello: 'world'}, function () {
+            chrome.storage.local.remove(['hello'], function () {
               chrome.storage.local.get(null, function(localItems) {
                 callback(syncItems, localItems)
               })
         })
       }
 
+      function testStorageSet (callback) {
+        chrome.storage.sync.set({foo: 'bar', bar: 'foo'}, function () {
+          chrome.storage.sync.get({foo: 'baz', bar: 'fooo'}, function (syncItems) {
+            chrome.storage.local.set({hello: 'world', world: 'hello'}, function () {
+              chrome.storage.local.get(null, function(localItems) {
+                callback(syncItems, localItems)
+              })
+            })
+          })
+        })
+      }
+
+      function testStorage (callback) {
+        testStorageSet(function (syncForSet, localForSet) {
+          testStorageRemove(function (syncForRemove, localForRemove) {
+            testStorageClear(function (syncForClear, localForClear) {
+              callback(
+                syncForSet, localForSet,
+                syncForRemove, localForRemove,
+                syncForClear, localForClear
+              )
+            })
+          })
+        })
+      }
+
       function reportCoverage () {
         var message = JSON.stringify({
           pid: chrome.runtime.id,
         window.chrome.devtools.inspectedWindow.eval(coverageMessage, function () {})
       }
 
-      testStorage(function (syncItems, localItems) {
+      testStorage(function (
+        syncForSet, localForSet,
+        syncForRemove, localForRemove,
+        syncForClear, localForClear
+      ) {
         var message = JSON.stringify({
           runtimeId: chrome.runtime.id,
           tabId: chrome.devtools.inspectedWindow.tabId,
           i18nString: chrome.i18n.getMessage('foo', ['bar', 'baz']),
           storageItems: {
-            local: localItems,
-            sync: syncItems
+            local: {
+              set: localForSet,
+              remove: localForRemove,
+              clear: localForClear
+            },
+            sync: {
+              set: syncForSet,
+              remove: syncForRemove,
+              clear: syncForClear
+            }
           }
         })