Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8451)

Unified Diff: chrome/test/data/extensions/api_test/content_settings/onchange/test.html

Issue 6596044: Add onChange event to preference extension APIs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: test Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/api_test/content_settings/onchange/test.html
diff --git a/chrome/test/data/extensions/api_test/content_settings/onchange/test.html b/chrome/test/data/extensions/api_test/content_settings/onchange/test.html
new file mode 100644
index 0000000000000000000000000000000000000000..08c0c7763f8d71876d5f809becc89f306c482890
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/content_settings/onchange/test.html
@@ -0,0 +1,93 @@
+<script>
+// Content settings API test
+// Run with browser_tests --gtest_filter=ExtensionApiTest.ContentSettingsOnChange
+
+// Listen until |event| has fired with all of the values in |expected|.
+function listenUntil(event, expected) {
battre 2011/03/10 13:07:28 add a comment that listenForever subscribes to bot
Bernhard Bauer 2011/03/10 14:51:15 I think we already explain that sufficiently below
+ var done = chrome.test.listenForever(event, function(value) {
+ for (var i = 0; i < expected.length; i++) {
+ if (chrome.test.checkDeepEq(expected[i], value)) {
+ expected.splice(i, 1);
+ if (expected.length == 0)
+ done();
+ return;
+ }
+ }
+ chrome.test.fail("Unexpected event: " + JSON.stringify(value));
+ });
+}
+
+var cs = chrome.experimental.contentSettings;
+chrome.test.runTests([
+ function changeDefault() {
battre 2011/03/10 13:07:28 add comment // Setting the value for the first tim
Bernhard Bauer 2011/03/10 14:51:15 Done.
+ listenUntil(cs.misc.blockThirdPartyCookies.onChange, [{
+ 'value': true,
+ 'levelOfControl': 'ControlledByThisExtension'
+ },
+ {
+ 'value': true,
+ 'incognitoSpecific': false,
+ 'levelOfControl': 'ControlledByThisExtension'
+ }]);
+ cs.misc.blockThirdPartyCookies.set({
+ 'value':true
+ }, chrome.test.callbackPass());
+ },
+ function changeIncognitoOnly() {
+ listenUntil(cs.misc.blockThirdPartyCookies.onChange, [{
+ 'value': false,
+ 'incognitoSpecific': true,
+ 'levelOfControl': 'ControlledByThisExtension'
+ }]);
+ cs.misc.blockThirdPartyCookies.set({
+ 'value': false,
+ 'incognito': true
+ }, chrome.test.callbackPass());
+ },
+ function changeDefaultOnly() {
+ listenUntil(cs.misc.blockThirdPartyCookies.onChange, [{
+ 'value': false,
+ 'levelOfControl': 'ControlledByThisExtension'
+ }]);
+ cs.misc.blockThirdPartyCookies.set({
+ 'value': false
+ }, chrome.test.callbackPass());
+ },
+ function changeIncognitoOnlyBack() {
+ // Change the incognito setting back to true so that we get an event when
+ // clearing the value.
+ listenUntil(cs.misc.blockThirdPartyCookies.onChange, [{
+ 'value': true,
+ 'incognitoSpecific': true,
+ 'levelOfControl': 'ControlledByThisExtension'
+ }]);
+ cs.misc.blockThirdPartyCookies.set({
+ 'value': true,
+ 'incognito': true
+ }, chrome.test.callbackPass());
+ },
+ function clearIncognito() {
+ listenUntil(cs.misc.blockThirdPartyCookies.onChange, [{
+ 'value': false,
+ 'incognitoSpecific': false,
+ 'levelOfControl': 'ControlledByThisExtension'
+ }]);
+ cs.misc.blockThirdPartyCookies.clear({
+ 'incognito': true
+ }, chrome.test.callbackPass());
+ },
+ function clearDefault() {
+ listenUntil(cs.misc.blockThirdPartyCookies.onChange, [{
+ 'value': false,
+ 'levelOfControl': 'ControllableByThisExtension'
+ },
+ {
+ 'value': false,
+ 'incognitoSpecific': false,
+ 'levelOfControl': 'ControllableByThisExtension'
+ }]);
+ cs.misc.blockThirdPartyCookies.clear({}, chrome.test.callbackPass());
+ }
+]);
+
+</script>

Powered by Google App Engine
This is Rietveld 408576698