Chromium Code Reviews| 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..097d5bf4ba36f8368a7573ac51231d92b1fb7aea 100644 |
| --- a/chrome/test/data/extensions/api_test/preference/onchange/test.js |
| +++ b/chrome/test/data/extensions/api_test/preference/onchange/test.js |
| @@ -20,8 +20,21 @@ 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)); |
|
Bernhard Bauer
2012/06/20 20:55:27
Nit: Use single quotes (I realize we did this wron
|
| + }); |
| +} |
| + |
| var pw = chrome.privacy.websites; |
| chrome.test.runTests([ |
| + function openIncognito() { |
|
Bernhard Bauer
2012/06/20 20:55:27
What is this for?
|
| + chrome.windows.create({incognito: true}, chrome.test.callbackPass()); |
| + }, |
| function changeDefault() { |
| // Changing the regular settings when no incognito-specific settings are |
| // defined should fire two events. |
| @@ -35,7 +48,7 @@ chrome.test.runTests([ |
| 'levelOfControl': 'controlled_by_this_extension' |
| }]); |
| pw.thirdPartyCookiesAllowed.set({ |
| - 'value':false |
| + 'value': false |
| }, chrome.test.callbackPass()); |
| }, |
| function changeIncognitoOnly() { |
| @@ -44,19 +57,28 @@ 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({ |
| 'value': true, |
| - 'scope': 'incognito_persistent' |
| - }, chrome.test.callbackPass()); |
| + 'scope': 'incognito_session_only' |
| + }, 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 |
| @@ -68,7 +90,7 @@ chrome.test.runTests([ |
| }]); |
| pw.thirdPartyCookiesAllowed.set({ |
| 'value': false, |
| - 'scope': 'incognito_persistent' |
| + 'scope': 'incognito_session_only' |
| }, chrome.test.callbackPass()); |
| }, |
| function clearIncognito() { |
| @@ -78,7 +100,7 @@ chrome.test.runTests([ |
| 'levelOfControl': 'controlled_by_this_extension' |
| }]); |
| pw.thirdPartyCookiesAllowed.clear({ |
| - 'scope': 'incognito_persistent' |
| + 'scope': 'incognito_session_only' |
| }, chrome.test.callbackPass()); |
| }, |
| function clearDefault() { |