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

Unified Diff: chrome/test/data/extensions/api_test/preference/onchange/test.js

Issue 8762014: Move another set of extension tests to manifest_version 2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month 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/preference/onchange/test.js
===================================================================
--- chrome/test/data/extensions/api_test/preference/onchange/test.js (revision 0)
+++ chrome/test/data/extensions/api_test/preference/onchange/test.js (revision 0)
@@ -0,0 +1,96 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Content settings API test
+// Run with browser_tests --gtest_filter=ExtensionApiTest.PreferenceOnChange
+
+// Listen until |event| has fired with all of the values in |expected|.
+function listenUntil(event, expected) {
+ 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 pw = chrome.experimental.privacy.websites;
+chrome.test.runTests([
+ function changeDefault() {
+ // Changing the regular settings when no incognito-specific settings are
+ // defined should fire two events.
+ listenUntil(pw.thirdPartyCookiesAllowed.onChange, [{
+ 'value': false,
+ 'levelOfControl': 'controlled_by_this_extension'
+ },
+ {
+ 'value': false,
+ 'incognitoSpecific': false,
+ 'levelOfControl': 'controlled_by_this_extension'
+ }]);
+ pw.thirdPartyCookiesAllowed.set({
+ 'value':false
+ }, chrome.test.callbackPass());
+ },
+ function changeIncognitoOnly() {
+ listenUntil(pw.thirdPartyCookiesAllowed.onChange, [{
+ 'value': true,
+ 'incognitoSpecific': true,
+ 'levelOfControl': 'controlled_by_this_extension'
+ }]);
+ pw.thirdPartyCookiesAllowed.set({
+ 'value': true,
+ 'scope': 'incognito_persistent'
+ }, chrome.test.callbackPass());
+ },
+ function changeDefaultOnly() {
+ listenUntil(pw.thirdPartyCookiesAllowed.onChange, [{
+ 'value': true,
+ 'levelOfControl': 'controlled_by_this_extension'
+ }]);
+ pw.thirdPartyCookiesAllowed.set({
+ 'value': true
+ }, chrome.test.callbackPass());
+ },
+ function changeIncognitoOnlyBack() {
+ // Change the incognito setting back to false so that we get an event when
+ // clearing the value.
+ listenUntil(pw.thirdPartyCookiesAllowed.onChange, [{
+ 'value': false,
+ 'incognitoSpecific': true,
+ 'levelOfControl': 'controlled_by_this_extension'
+ }]);
+ pw.thirdPartyCookiesAllowed.set({
+ 'value': false,
+ 'scope': 'incognito_persistent'
+ }, chrome.test.callbackPass());
+ },
+ function clearIncognito() {
+ listenUntil(pw.thirdPartyCookiesAllowed.onChange, [{
+ 'value': true,
+ 'incognitoSpecific': false,
+ 'levelOfControl': 'controlled_by_this_extension'
+ }]);
+ pw.thirdPartyCookiesAllowed.clear({
+ 'scope': 'incognito_persistent'
+ }, chrome.test.callbackPass());
+ },
+ function clearDefault() {
+ listenUntil(pw.thirdPartyCookiesAllowed.onChange, [{
+ 'value': true,
+ 'levelOfControl': 'controllable_by_this_extension'
+ },
+ {
+ 'value': true,
+ 'incognitoSpecific': false,
+ 'levelOfControl': 'controllable_by_this_extension'
+ }]);
+ pw.thirdPartyCookiesAllowed.clear({}, chrome.test.callbackPass());
+ }
+]);

Powered by Google App Engine
This is Rietveld 408576698