Browse Source

Update devtools extension spec for chrome.storage

Jhen 8 years ago
parent
commit
8b30439d7f
2 changed files with 66 additions and 8 deletions
  1. 10 2
      spec/api-browser-window-spec.js
  2. 56 6
      spec/fixtures/devtools-extensions/foo/index.html

+ 10 - 2
spec/api-browser-window-spec.js

@@ -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()
           })

+ 56 - 6
spec/fixtures/devtools-extensions/foo/index.html

@@ -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)
               })
@@ -16,6 +28,32 @@
         })
       }
 
+      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,
@@ -25,14 +63,26 @@
         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
+            }
           }
         })