Chromium Code Reviews| Index: chrome/test/data/extensions/api_test/settings/simple_test/background.html |
| diff --git a/chrome/test/data/extensions/api_test/settings/simple_test/background.html b/chrome/test/data/extensions/api_test/settings/simple_test/background.html |
| index 8bb3c15d2ae227d2675630847dfefe847648c892..ff8d5dc82d1e03fe40370a79c6e9f997c35fae65 100644 |
| --- a/chrome/test/data/extensions/api_test/settings/simple_test/background.html |
| +++ b/chrome/test/data/extensions/api_test/settings/simple_test/background.html |
| @@ -2,54 +2,69 @@ |
| // Calls chrome.test.succeed after the settings have been cleared for the next |
| // test. |
| function succeed() { |
| - chrome.experimental.settings.clear(chrome.test.succeed); |
| + this.clear(this.countDown); |
| +} |
| + |
| +function test(stage0) { |
| + // Make sure chrome.test.succeed() is only called once (see succeed()). |
|
Matt Perry
2011/11/23 03:35:05
chrome.test.callbackPass might be better suited fo
not at google - send to devlin
2011/11/23 11:04:52
Nice.
|
| + var countDown = function() { |
| + if (--this.count === 0) { |
| + chrome.test.succeed(); |
| + } |
| + }.bind({ count: 2 }); |
| + |
| + var apis = [ |
| + chrome.experimental.settings.sync, |
| + chrome.experimental.settings.local |
| + ]; |
| + apis.forEach(function(api) { api.countDown = countDown; }); |
| + apis.forEach(function(api) { stage0.call(api); }); |
| } |
| chrome.test.runTests([ |
| function getWhenEmpty() { |
| function stage0() { |
| - chrome.experimental.settings.get('foo', stage1); |
| + this.get('foo', stage1.bind(this)); |
| } |
| function stage1(settings) { |
| chrome.test.assertEq({}, settings); |
| - chrome.experimental.settings.get(['foo', 'bar'], stage2); |
| + this.get(['foo', 'bar'], stage2.bind(this)); |
| } |
| function stage2(settings) { |
| chrome.test.assertEq({}, settings); |
| - chrome.experimental.settings.get(undefined, stage3); |
| + this.get(undefined, stage3.bind(this)); |
| } |
| function stage3(settings) { |
| chrome.test.assertEq({}, settings); |
| - succeed(); |
| + succeed.call(this); |
| } |
| - stage0(); |
| + test(stage0); |
| }, |
| function getWhenNonempty() { |
| function stage0() { |
| - chrome.experimental.settings.set({ |
| + this.set({ |
| 'foo' : 'bar', |
| 'baz' : 'qux', |
| 'hello': 'world' |
| - }, stage1); |
| + }, stage1.bind(this)); |
| } |
| function stage1() { |
| - chrome.experimental.settings.get(['foo', 'baz'], stage2); |
| + this.get(['foo', 'baz'], stage2.bind(this)); |
| } |
| function stage2(settings) { |
| chrome.test.assertEq({ |
| 'foo': 'bar', |
| 'baz': 'qux' |
| }, settings); |
| - chrome.experimental.settings.get( |
| - ['nothing', 'baz', 'hello', 'ignore'], stage3); |
| + this.get(['nothing', 'baz', 'hello', 'ignore'], stage3.bind(this)); |
| } |
| function stage3(settings) { |
| chrome.test.assertEq({ |
| 'baz' : 'qux', |
| 'hello': 'world' |
| }, settings); |
| - chrome.experimental.settings.get(null, stage4); |
| + this.get(null, stage4.bind(this)); |
| } |
| function stage4(settings) { |
| chrome.test.assertEq({ |
| @@ -57,80 +72,77 @@ chrome.test.runTests([ |
| 'baz' : 'qux', |
| 'hello': 'world' |
| }, settings); |
| - succeed(); |
| + succeed.call(this); |
| } |
| - stage0(); |
| + test(stage0); |
| }, |
| function removeWhenEmpty() { |
| function stage0() { |
| - chrome.experimental.settings.remove('foo', stage1); |
| + this.remove('foo', stage1.bind(this)); |
| } |
| function stage1() { |
| - chrome.experimental.settings.remove(['foo', 'bar'], stage2); |
| + this.remove(['foo', 'bar'], succeed.bind(this)); |
| } |
| - function stage2() { |
| - succeed(); |
| - } |
| - stage0(); |
| + test(stage0); |
| }, |
| function removeWhenNonempty() { |
| function stage0() { |
| - chrome.experimental.settings.set({ |
| + this.set({ |
| 'foo' : 'bar', |
| 'baz' : 'qux', |
| 'hello': 'world' |
| - }, stage1); |
| + }, stage1.bind(this)); |
| } |
| function stage1() { |
| - chrome.experimental.settings.remove('foo', stage2); |
| + this.remove('foo', stage2.bind(this)); |
| } |
| function stage2() { |
| - chrome.experimental.settings.get(null, stage3); |
| + this.get(null, stage3.bind(this)); |
| } |
| function stage3(settings) { |
| chrome.test.assertEq({ |
| 'baz' : 'qux', |
| 'hello': 'world' |
| }, settings); |
| - chrome.experimental.settings.remove(['baz', 'nothing'], stage4); |
| + this.remove(['baz', 'nothing'], stage4.bind(this)); |
| } |
| function stage4() { |
| - chrome.experimental.settings.get(null, stage5); |
| + this.get(null, stage5.bind(this)); |
| } |
| function stage5(settings) { |
| chrome.test.assertEq({ |
| 'hello': 'world' |
| }, settings); |
| - chrome.experimental.settings.remove('hello', stage6); |
| + this.remove('hello', stage6.bind(this)); |
| } |
| function stage6() { |
| - chrome.experimental.settings.get(null, stage7); |
| + this.get(null, stage7.bind(this)); |
| } |
| function stage7(settings) { |
| chrome.test.assertEq({}, settings); |
| - succeed(); |
| + succeed.call(this); |
| } |
| - stage0(); |
| + test(stage0); |
| }, |
| function setWhenOverwriting() { |
| function stage0() { |
| - chrome.experimental.settings.set({ |
| + this.set({ |
| 'foo' : 'bar', |
| 'baz' : 'qux', |
| 'hello': 'world' |
| - }, stage1); |
| + }, stage1.bind(this)); |
| } |
| function stage1() { |
| - chrome.experimental.settings.set({ |
| + this.set({ |
| 'foo' : 'otherBar', |
| 'baz' : 'otherQux' |
| - }, stage2); |
| + }, stage2.bind(this)); |
| } |
| function stage2() { |
| - chrome.experimental.settings.get(null, stage3); |
| + this.get(null, stage3.bind(this)); |
| } |
| function stage3(settings) { |
| chrome.test.assertEq({ |
| @@ -138,14 +150,14 @@ chrome.test.runTests([ |
| 'baz' : 'otherQux', |
| 'hello': 'world' |
| }, settings); |
| - chrome.experimental.settings.set({ |
| + this.set({ |
| 'baz' : 'anotherQux', |
| 'hello': 'otherWorld', |
| 'some' : 'value' |
| - }, stage4); |
| + }, stage4.bind(this)); |
| } |
| function stage4() { |
| - chrome.experimental.settings.get(null, stage5); |
| + this.get(null, stage5.bind(this)); |
| } |
| function stage5(settings) { |
| chrome.test.assertEq({ |
| @@ -154,152 +166,157 @@ chrome.test.runTests([ |
| 'hello': 'otherWorld', |
| 'some' : 'value' |
| }, settings); |
| - succeed(); |
| + succeed.call(this); |
| } |
| - stage0(); |
| + test(stage0); |
| }, |
| function clearWhenEmpty() { |
| function stage0() { |
| - chrome.experimental.settings.clear(stage1); |
| + this.clear(stage1.bind(this)); |
| } |
| function stage1() { |
| - chrome.experimental.settings.get(null, stage2); |
| + this.get(null, stage2.bind(this)); |
| } |
| function stage2(settings) { |
| chrome.test.assertEq({}, settings); |
| - succeed(); |
| + succeed.call(this); |
| } |
| - stage0(); |
| + test(stage0); |
| }, |
| function clearWhenNonempty() { |
| function stage0() { |
| - chrome.experimental.settings.set({ |
| + this.set({ |
| 'foo' : 'bar', |
| 'baz' : 'qux', |
| 'hello': 'world' |
| - }, stage1); |
| + }, stage1.bind(this)); |
| } |
| function stage1() { |
| - chrome.experimental.settings.clear(stage2); |
| + this.clear(stage2.bind(this)); |
| } |
| function stage2() { |
| - chrome.experimental.settings.get(null, stage3); |
| + this.get(null, stage3.bind(this)); |
| } |
| function stage3(settings) { |
| chrome.test.assertEq({}, settings); |
| - succeed(); |
| + succeed.call(this); |
| } |
| - stage0(); |
| + test(stage0); |
| }, |
| function keysWithDots() { |
| function stage0() { |
| - chrome.experimental.settings.set({ |
| + this.set({ |
| 'foo.bar' : 'baz', |
| 'one' : {'two': 'three'} |
| - }, stage1); |
| + }, stage1.bind(this)); |
| } |
| function stage1() { |
| - chrome.experimental.settings.get(['foo.bar', 'one'], stage2); |
| + this.get(['foo.bar', 'one'], stage2.bind(this)); |
| } |
| function stage2(settings) { |
| chrome.test.assertEq({ |
| 'foo.bar' : 'baz', |
| 'one' : {'two': 'three'} |
| }, settings); |
| - chrome.experimental.settings.get('one.two', stage3); |
| + this.get('one.two', stage3.bind(this)); |
| } |
| function stage3(settings) { |
| chrome.test.assertEq({}, settings); |
| - chrome.experimental.settings.remove(['foo.bar', 'one.two'], stage4); |
| + this.remove(['foo.bar', 'one.two'], stage4.bind(this)); |
| } |
| function stage4() { |
| - chrome.experimental.settings.get(null, stage5); |
| + this.get(null, stage5.bind(this)); |
| } |
| function stage5(settings) { |
| chrome.test.assertEq({ |
| 'one' : {'two': 'three'} |
| }, settings); |
| - succeed(); |
| + succeed.call(this); |
| } |
| - stage0(); |
| + test(stage0); |
| }, |
| function getWithDefaultValues() { |
| function stage0() { |
| - chrome.experimental.settings.get({ |
| + this.get({ |
| 'foo': 'defaultBar', |
| 'baz': [1, 2, 3] |
| - }, stage1); |
| + }, stage1.bind(this)); |
| } |
| function stage1(settings) { |
| chrome.test.assertEq({ |
| 'foo': 'defaultBar', |
| 'baz': [1, 2, 3] |
| }, settings); |
| - chrome.experimental.settings.get(null, stage2); |
| + this.get(null, stage2.bind(this)); |
| } |
| function stage2(settings) { |
| chrome.test.assertEq({}, settings); |
| - chrome.experimental.settings.set({'foo': 'bar'}, stage3); |
| + this.set({'foo': 'bar'}, stage3.bind(this)); |
| } |
| function stage3() { |
| - chrome.experimental.settings.get({ |
| + this.get({ |
| 'foo': 'defaultBar', |
| 'baz': [1, 2, 3] |
| - }, stage4); |
| + }, stage4.bind(this)); |
| } |
| function stage4(settings) { |
| chrome.test.assertEq({ |
| 'foo': 'bar', |
| 'baz': [1, 2, 3] |
| }, settings); |
| - chrome.experimental.settings.set({'baz': {}}, stage5); |
| + this.set({'baz': {}}, stage5.bind(this)); |
| } |
| function stage5() { |
| - chrome.experimental.settings.get({ |
| + this.get({ |
| 'foo': 'defaultBar', |
| 'baz': [1, 2, 3] |
| - }, stage6); |
| + }, stage6.bind(this)); |
| } |
| function stage6(settings) { |
| chrome.test.assertEq({ |
| 'foo': 'bar', |
| 'baz': {} |
| }, settings); |
| - chrome.experimental.settings.remove('foo', stage7); |
| + this.remove('foo', stage7.bind(this)); |
| } |
| function stage7() { |
| - chrome.experimental.settings.get({ |
| + this.get({ |
| 'foo': 'defaultBar', |
| 'baz': [1, 2, 3] |
| - }, stage8); |
| + }, stage8.bind(this)); |
| } |
| function stage8(settings) { |
| chrome.test.assertEq({ |
| 'foo': 'defaultBar', |
| 'baz': {} |
| }, settings); |
| - succeed(); |
| + succeed.call(this); |
| } |
| - stage0(); |
| + test(stage0); |
| }, |
| function throttling() { |
| + // We can only really test one of the namespaces since they will all get |
| + // throttled together. |
| + var api = chrome.experimental.settings.sync; |
| + |
| // Should get throttled after 1000 calls. |
| var maxRequests = 1001; |
| + |
| function next() { |
| - chrome.experimental.settings.clear((--maxRequests > 0) ? next : done); |
| + api.clear((--maxRequests > 0) ? next : done); |
| } |
| function done() { |
| chrome.test.assertEq( |
| "This request exceeds available quota.", |
| chrome.extension.lastError.message); |
| - succeed(); |
| + chrome.test.succeed(); |
| } |
| - chrome.experimental.settings.clear(next); |
| + api.clear(next); |
| } |
| ]); |
| </script> |