diff options
author | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-29 11:19:11 +0000 |
---|---|---|
committer | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-29 11:19:11 +0000 |
commit | 7b4989f11ac8619e2e72305700e3faa846765c68 (patch) | |
tree | 18850b550613d2cce4a53703fc32199d2fc5fe8c /chrome/test | |
parent | efb5f5799f2c3aab8c3ddf3558320b7c3d587c99 (diff) | |
download | chromium_src-7b4989f11ac8619e2e72305700e3faa846765c68.zip chromium_src-7b4989f11ac8619e2e72305700e3faa846765c68.tar.gz chromium_src-7b4989f11ac8619e2e72305700e3faa846765c68.tar.bz2 |
Extension Storage API: expose storage quota information to extensions, via:
- exposing the constants as properties on chrome.storage.{sync,local}, and
- adding a new API call "getBytesInUse".
BUG=110980, 110583, 110663
TEST=unit_tests --gtest_filter=ExtensionSettingsFrontendTest*, browser_tests --gtest_filter=ExtensionSetting*
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=119598
Review URL: http://codereview.chromium.org/9284013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119643 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
-rw-r--r-- | chrome/test/data/extensions/api_test/settings/simple_test/background.js | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/chrome/test/data/extensions/api_test/settings/simple_test/background.js b/chrome/test/data/extensions/api_test/settings/simple_test/background.js index 85f5e62..7263286 100644 --- a/chrome/test/data/extensions/api_test/settings/simple_test/background.js +++ b/chrome/test/data/extensions/api_test/settings/simple_test/background.js @@ -291,12 +291,55 @@ chrome.test.runTests([ test(stage0); }, + + function quota() { + // Just check that the constants are defined; no need to be forced to + // update them here as well if/when they change. + chrome.test.assertTrue(chrome.storage.sync.QUOTA_BYTES > 0); + chrome.test.assertTrue(chrome.storage.sync.QUOTA_BYTES_PER_ITEM > 0); + chrome.test.assertTrue(chrome.storage.sync.MAX_ITEMS > 0); + + chrome.test.assertTrue(chrome.storage.local.QUOTA_BYTES > 0); + chrome.test.assertEq('undefined', + typeof chrome.storage.local.QUOTA_BYTES_PER_ITEM); + chrome.test.assertEq('undefined', + typeof chrome.storage.local.MAX_ITEMS); + + var area = chrome.storage.sync; + function stage0() { + area.getBytesInUse(null, stage1); + } + function stage1(bytesInUse) { + chrome.test.assertEq(0, bytesInUse); + area.set({ a: 42, b: 43, c: 44 }, stage2); + } + function stage2() { + area.getBytesInUse(null, stage3); + } + function stage3(bytesInUse) { + chrome.test.assertEq(9, bytesInUse); + area.getBytesInUse('a', stage4); + } + function stage4(bytesInUse) { + chrome.test.assertEq(3, bytesInUse); + area.getBytesInUse(['a', 'b'], stage5); + } + function stage5(bytesInUse) { + chrome.test.assertEq(6, bytesInUse); + chrome.test.succeed(); + } + area.clear(stage0); + }, + + // NOTE: throttling test must come last, since each test runs with a single + // quota. function throttling() { // We can only really test one of the namespaces since they will all get // throttled together. var api = chrome.storage.sync; - // Should get throttled after 1000 calls. + // Should get throttled after 1000 calls (though in reality will be fewer + // due to previous tests). var maxRequests = 1001; function next() { @@ -310,4 +353,5 @@ chrome.test.runTests([ } api.clear(next); } + ]); |