Update devtools extension spec for chrome.storage

This commit is contained in:
Jhen 2016-11-15 19:41:23 +08:00
parent b86dff45d7
commit 8b30439d7f
2 changed files with 67 additions and 9 deletions

View file

@ -1384,8 +1384,16 @@ describe('browser-window module', function () {
assert.equal(message.tabId, w.webContents.id) assert.equal(message.tabId, w.webContents.id)
assert.equal(message.i18nString, 'foo - bar (baz)') assert.equal(message.i18nString, 'foo - bar (baz)')
assert.deepEqual(message.storageItems, { assert.deepEqual(message.storageItems, {
local: {hello: 'world'}, local: {
sync: {foo: 'bar'} set: {hello: 'world', world: 'hello'},
remove: {world: 'hello'},
clear: {}
},
sync: {
set: {foo: 'bar', bar: 'foo'},
remove: {foo: 'bar'},
clear: {}
}
}) })
done() done()
}) })

View file

@ -4,10 +4,10 @@
<meta charset="utf-8"> <meta charset="utf-8">
<title></title> <title></title>
<script> <script>
function testStorage (callback) { function testStorageClear (callback) {
chrome.storage.sync.set({foo: 'bar'}, function () { chrome.storage.sync.clear(function () {
chrome.storage.sync.get({foo: 'baz'}, function (syncItems) { chrome.storage.sync.get(null, function (syncItems) {
chrome.storage.local.set({hello: 'world'}, function () { chrome.storage.local.clear(function () {
chrome.storage.local.get(null, function(localItems) { chrome.storage.local.get(null, function(localItems) {
callback(syncItems, localItems) callback(syncItems, localItems)
}) })
@ -16,6 +16,44 @@
}) })
} }
function testStorageRemove (callback) {
chrome.storage.sync.remove('bar', function () {
chrome.storage.sync.get({foo: 'baz'}, function (syncItems) {
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 () { function reportCoverage () {
var message = JSON.stringify({ var message = JSON.stringify({
pid: chrome.runtime.id, pid: chrome.runtime.id,
@ -25,14 +63,26 @@
window.chrome.devtools.inspectedWindow.eval(coverageMessage, function () {}) window.chrome.devtools.inspectedWindow.eval(coverageMessage, function () {})
} }
testStorage(function (syncItems, localItems) { testStorage(function (
syncForSet, localForSet,
syncForRemove, localForRemove,
syncForClear, localForClear
) {
var message = JSON.stringify({ var message = JSON.stringify({
runtimeId: chrome.runtime.id, runtimeId: chrome.runtime.id,
tabId: chrome.devtools.inspectedWindow.tabId, tabId: chrome.devtools.inspectedWindow.tabId,
i18nString: chrome.i18n.getMessage('foo', ['bar', 'baz']), i18nString: chrome.i18n.getMessage('foo', ['bar', 'baz']),
storageItems: { storageItems: {
local: localItems, local: {
sync: syncItems set: localForSet,
remove: localForRemove,
clear: localForClear
},
sync: {
set: syncForSet,
remove: syncForRemove,
clear: syncForClear
}
} }
}) })