summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
authorkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-29 11:19:11 +0000
committerkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-29 11:19:11 +0000
commit7b4989f11ac8619e2e72305700e3faa846765c68 (patch)
tree18850b550613d2cce4a53703fc32199d2fc5fe8c /chrome/test
parentefb5f5799f2c3aab8c3ddf3558320b7c3d587c99 (diff)
downloadchromium_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.js46
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);
}
+
]);