Index: chrome/test/data/webui/settings/site_settings_category_tests.js |
diff --git a/chrome/test/data/webui/settings/site_settings_category_tests.js b/chrome/test/data/webui/settings/site_settings_category_tests.js |
index 2071c4fe8d004323b8e99dbb5fdab390435c52ea..a31785bd94351069f17c0e5cc27db4f4e2630e36 100644 |
--- a/chrome/test/data/webui/settings/site_settings_category_tests.js |
+++ b/chrome/test/data/webui/settings/site_settings_category_tests.js |
@@ -56,6 +56,19 @@ cr.define('site_settings_category', function() { |
}, |
}; |
+ /** |
+ * An example pref where the Cookies category is set to delete when |
+ * session ends. |
+ */ |
+ var prefsCookesSessionOnly = { |
+ defaults: { |
+ cookies: 'session_only', |
+ }, |
+ exceptions: { |
+ cookies: [], |
+ }, |
+ }; |
+ |
// Import necessary html before running suite. |
suiteSetup(function() { |
return PolymerTest.importHtml( |
@@ -150,6 +163,11 @@ cr.define('site_settings_category', function() { |
assertNotEquals('', testElement.computeCategoryDesc( |
category, settings.PermissionValues.IMPORTANT_CONTENT, |
false)); |
+ } else if (category == settings.ContentSettingsTypes.COOKIES) { |
+ assertNotEquals('', testElement.computeCategoryDesc( |
+ category, settings.PermissionValues.SESSION_ONLY, true)); |
+ assertNotEquals('', testElement.computeCategoryDesc( |
+ category, settings.PermissionValues.SESSION_ONLY, false)); |
} |
} |
@@ -161,21 +179,20 @@ cr.define('site_settings_category', function() { |
} |
}); |
- test('test special tri-state Flash category', function() { |
- browserProxy.setPrefs(prefsFlashDetect); |
+ function testTristateCategory(prefs, category, thirdState, checkbox) { |
+ browserProxy.setPrefs(prefs); |
- testElement.category = settings.ContentSettingsTypes.PLUGINS; |
+ testElement.category = category; |
var askCheckbox = null; |
return browserProxy.whenCalled('getDefaultValueForContentType').then( |
function(contentType) { |
Polymer.dom.flush(); |
- askCheckbox = testElement.$$('#flashAskCheckbox'); |
+ askCheckbox = testElement.$$(checkbox); |
assertTrue(!!askCheckbox); |
- assertEquals( |
- settings.ContentSettingsTypes.PLUGINS, contentType); |
+ assertEquals(category, contentType); |
assertTrue(testElement.categoryEnabled); |
assertFalse(askCheckbox.disabled); |
assertTrue(askCheckbox.checked); |
@@ -183,11 +200,10 @@ cr.define('site_settings_category', function() { |
MockInteractions.tap(testElement.$.toggle); |
return browserProxy.whenCalled('setDefaultValueForContentType'); |
}).then(function(arguments) { |
- // Check DETECT => BLOCK transition succeeded. |
+ // Check THIRD_STATE => BLOCK transition succeeded. |
Polymer.dom.flush(); |
- assertEquals( |
- settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
+ assertEquals(category, arguments[0]); |
assertEquals(settings.PermissionValues.BLOCK, arguments[1]); |
assertFalse(testElement.categoryEnabled); |
assertTrue(askCheckbox.disabled); |
@@ -197,13 +213,11 @@ cr.define('site_settings_category', function() { |
MockInteractions.tap(testElement.$.toggle); |
return browserProxy.whenCalled('setDefaultValueForContentType'); |
}).then(function(arguments) { |
- // Check BLOCK => DETECT transition succeeded. |
+ // Check BLOCK => THIRD_STATE transition succeeded. |
Polymer.dom.flush(); |
- assertEquals( |
- settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
- assertEquals( |
- settings.PermissionValues.IMPORTANT_CONTENT, arguments[1]); |
+ assertEquals(category, arguments[0]); |
+ assertEquals(thirdState, arguments[1]); |
assertTrue(testElement.categoryEnabled); |
assertFalse(askCheckbox.disabled); |
assertTrue(askCheckbox.checked); |
@@ -212,11 +226,10 @@ cr.define('site_settings_category', function() { |
MockInteractions.tap(askCheckbox); |
return browserProxy.whenCalled('setDefaultValueForContentType'); |
}).then(function(arguments) { |
- // Check DETECT => ALLOW transition succeeded. |
+ // Check THIRD_STATE => ALLOW transition succeeded. |
Polymer.dom.flush(); |
- assertEquals( |
- settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
+ assertEquals(category, arguments[0]); |
assertEquals( |
settings.PermissionValues.ALLOW, arguments[1]); |
assertTrue(testElement.categoryEnabled); |
@@ -230,8 +243,7 @@ cr.define('site_settings_category', function() { |
// Check ALLOW => BLOCK transition succeeded. |
Polymer.dom.flush(); |
- assertEquals( |
- settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
+ assertEquals(category, arguments[0]); |
assertEquals(settings.PermissionValues.BLOCK, arguments[1]); |
assertFalse(testElement.categoryEnabled); |
assertTrue(askCheckbox.disabled); |
@@ -244,8 +256,7 @@ cr.define('site_settings_category', function() { |
// Check BLOCK => ALLOW transition succeeded. |
Polymer.dom.flush(); |
- assertEquals( |
- settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
+ assertEquals(category, arguments[0]); |
assertEquals(settings.PermissionValues.ALLOW, arguments[1]); |
assertTrue(testElement.categoryEnabled); |
assertFalse(askCheckbox.disabled); |
@@ -255,18 +266,28 @@ cr.define('site_settings_category', function() { |
MockInteractions.tap(askCheckbox); |
return browserProxy.whenCalled('setDefaultValueForContentType'); |
}).then(function(arguments) { |
- // Check ALLOW => DETECT transition succeeded. |
+ // Check ALLOW => THIRD_STATE transition succeeded. |
Polymer.dom.flush(); |
- assertEquals( |
- settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
- assertEquals( |
- settings.PermissionValues.IMPORTANT_CONTENT, arguments[1]); |
+ assertEquals(category, arguments[0]); |
+ assertEquals(thirdState, arguments[1]); |
assertTrue(testElement.categoryEnabled); |
assertFalse(askCheckbox.disabled); |
assertTrue(askCheckbox.checked); |
- });; |
- }); |
+ }); |
+ } |
+ |
+ test('test special tri-state Flash category', function() { |
+ return testTristateCategory( |
+ prefsFlashDetect, settings.ContentSettingsTypes.PLUGINS, |
+ settings.PermissionValues.IMPORTANT_CONTENT, '#flashAskCheckbox'); |
+ }); |
+ |
+ test('test special tri-state Cookies category', function() { |
+ return testTristateCategory( |
+ prefsCookesSessionOnly, settings.ContentSettingsTypes.COOKIES, |
+ settings.PermissionValues.SESSION_ONLY, '#sessionOnlyCheckbox'); |
+ }); |
}); |
} |