Index: chrome/test/data/extensions/api_test/preference/session_only_incognito/test.js |
=================================================================== |
--- chrome/test/data/extensions/api_test/preference/session_only_incognito/test.js (revision 0) |
+++ chrome/test/data/extensions/api_test/preference/session_only_incognito/test.js (revision 0) |
@@ -0,0 +1,84 @@ |
+// 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.PreferenceSessionOnlyIncognito |
+ |
+var pw = chrome.experimental.privacy.websites; |
+function expect(expected, message) { |
+ return chrome.test.callbackPass(function(value) { |
+ chrome.test.assertNoLastError(); |
+ chrome.test.assertEq(expected, value, message); |
+ }); |
+} |
+chrome.test.runTests([ |
+ function getRegular() { |
+ pw.thirdPartyCookiesAllowed.get( |
+ {}, |
+ expect({ 'value': true, |
+ 'levelOfControl': "controllable_by_this_extension" }, |
+ "third-party cookies should not be blocked")); |
+ }, |
+ function getIncognito() { |
+ pw.thirdPartyCookiesAllowed.get( |
+ { 'incognito': true }, |
+ expect({ 'value': true, |
+ 'incognitoSpecific': false, |
+ 'levelOfControl': "controllable_by_this_extension" }, |
+ "third-party cookies should not be blocked in incognito mode")); |
+ }, |
+ function set() { |
+ pw.thirdPartyCookiesAllowed.set( |
+ { 'scope': 'incognito_persistent', 'value': false }, |
+ chrome.test.callbackPass()); |
+ }, |
+ function getRegular2() { |
+ pw.thirdPartyCookiesAllowed.get( |
+ {}, |
+ expect({ 'value': true, |
+ 'levelOfControl': "controllable_by_this_extension" }, |
+ "third-party cookies should not be blocked")); |
+ }, |
+ function getIncognito2() { |
+ pw.thirdPartyCookiesAllowed.get( |
+ { 'incognito': true }, |
+ expect({ 'value': false, |
+ 'incognitoSpecific': true, |
+ 'levelOfControl': "controlled_by_this_extension" }, |
+ "third-party cookies should be blocked in incognito mode")); |
+ }, |
+ // We cannot set session_only_persistent preferences if there is no incognito |
+ // session. |
+ function set2() { |
+ pw.thirdPartyCookiesAllowed.set( |
+ { 'scope': 'incognito_session_only', 'value': true }, |
+ chrome.test.callbackFail("You cannot set a preference with scope " + |
+ "'incognito_session_only' when no incognito " + |
+ "window is open.")); |
+ }, |
+ function openIncognito() { |
+ chrome.windows.create({incognito: true}, chrome.test.callbackPass()); |
+ }, |
+ // session_only_persistent overrides incognito_persistent. |
+ function set3() { |
+ pw.thirdPartyCookiesAllowed.set( |
+ { 'scope': 'incognito_session_only', 'value': true }, |
+ chrome.test.callbackPass()); |
+ }, |
+ function getRegular3() { |
+ pw.thirdPartyCookiesAllowed.get( |
+ {}, |
+ expect({ 'value': true, |
+ 'levelOfControl': "controllable_by_this_extension" }, |
+ "third-party cookies should not be blocked")); |
+ }, |
+ function getIncognito3() { |
+ pw.thirdPartyCookiesAllowed.get( |
+ { 'incognito': true }, |
+ expect({ 'value': true, |
+ 'incognitoSpecific': true, |
+ 'levelOfControl': "controlled_by_this_extension" }, |
+ "third-party cookies should be blocked in incognito mode")); |
+ }, |
+]); |