summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
authorkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-28 08:46:35 +0000
committerkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-28 08:46:35 +0000
commit6c1a852ad00df937a1c9ce8e15f9940e72d24386 (patch)
treea47a80b970c86fefa48b6809da26d9ad02509899 /chrome/test
parent7a338dcbd7a00980a53824b9901beb2344047a19 (diff)
downloadchromium_src-6c1a852ad00df937a1c9ce8e15f9940e72d24386.zip
chromium_src-6c1a852ad00df937a1c9ce8e15f9940e72d24386.tar.gz
chromium_src-6c1a852ad00df937a1c9ce8e15f9940e72d24386.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* Review URL: http://codereview.chromium.org/9284013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119598 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);
}
+
]);