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

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

Issue 10559052: Split mode incognito extension can get misleading pref changed events from regular mode (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Added test Created 8 years, 6 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/preference/onchange/test.js
diff --git a/chrome/test/data/extensions/api_test/preference/onchange/test.js b/chrome/test/data/extensions/api_test/preference/onchange/test.js
index f67ec474733c43aa531d18abcb8b8e87973ec57e..9bf9ebd31c702524f355a50ce2588593aedbaa6b 100644
--- a/chrome/test/data/extensions/api_test/preference/onchange/test.js
+++ b/chrome/test/data/extensions/api_test/preference/onchange/test.js
@@ -20,6 +20,16 @@ function listenUntil(event, expected) {
});
}
+// Fail if |event| is fired with |expected|. Because listenUntil stops listening
+// when |event| has fired with all the values in |expected|, it may not capture
+// superfluous unexpected events.
+function listenAndFailWhen(event, expected) {
+ return chrome.test.listenForever(event, function(value) {
+ if (chrome.test.checkDeepEq(expected, value))
+ chrome.test.fail("Unexpected event: " + JSON.stringify(value));
+ });
+}
+
var pw = chrome.privacy.websites;
chrome.test.runTests([
function changeDefault() {
@@ -35,7 +45,7 @@ chrome.test.runTests([
'levelOfControl': 'controlled_by_this_extension'
}]);
pw.thirdPartyCookiesAllowed.set({
- 'value':false
+ 'value': false
}, chrome.test.callbackPass());
},
function changeIncognitoOnly() {
@@ -44,19 +54,30 @@ chrome.test.runTests([
'incognitoSpecific': true,
'levelOfControl': 'controlled_by_this_extension'
}]);
+ var done = listenAndFailWhen(pw.thirdPartyCookiesAllowed.onChange, {
+ 'value': true,
+ 'levelOfControl': 'controlled_by_this_extension'
+ });
pw.thirdPartyCookiesAllowed.set({
Bernhard Bauer 2012/06/20 18:55:36 The problem is that pw.thirdPartyCookiesAllowed.se
'value': true,
'scope': 'incognito_persistent'
}, chrome.test.callbackPass());
+ done();
},
function changeDefaultOnly() {
listenUntil(pw.thirdPartyCookiesAllowed.onChange, [{
'value': true,
'levelOfControl': 'controlled_by_this_extension'
}]);
+ var done = listenAndFailWhen(pw.thirdPartyCookiesAllowed.onChange, {
+ 'value': true,
+ 'incognitoSpecific': true,
+ 'levelOfControl': 'controlled_by_this_extension'
+ });
pw.thirdPartyCookiesAllowed.set({
'value': true
}, chrome.test.callbackPass());
+ done();
},
function changeIncognitoOnlyBack() {
// Change the incognito setting back to false so that we get an event when

Powered by Google App Engine
This is Rietveld 408576698