Chromium Code Reviews| 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 8f68198dab0f84f77cccac440c596595c0ab81e8..2071c4fe8d004323b8e99dbb5fdab390435c52ea 100644 |
| --- a/chrome/test/data/webui/settings/site_settings_category_tests.js |
| +++ b/chrome/test/data/webui/settings/site_settings_category_tests.js |
| @@ -44,6 +44,18 @@ cr.define('site_settings_category', function() { |
| }, |
| }; |
| + /** |
| + * An example pref where the Flash category is set on detect mode. |
| + */ |
| + var prefsFlashDetect = { |
| + defaults: { |
| + plugins: 'detect_important_content', |
| + }, |
| + exceptions: { |
| + plugins: [], |
| + }, |
| + }; |
| + |
| // Import necessary html before running suite. |
| suiteSetup(function() { |
| return PolymerTest.importHtml( |
| @@ -122,14 +134,23 @@ cr.define('site_settings_category', function() { |
| category != settings.ContentSettingsTypes.USB_DEVICES) { |
| assertNotEquals('', testElement.computeCategoryTextId(category)); |
| - assertNotEquals( |
| - '', testElement.computeCategoryDesc(category, true, true)); |
| - assertNotEquals( |
| - '', testElement.computeCategoryDesc(category, true, false)); |
| - assertNotEquals( |
| - '', testElement.computeCategoryDesc(category, false, true)); |
| - assertNotEquals( |
| - '', testElement.computeCategoryDesc(category, false, false)); |
| + assertNotEquals('', testElement.computeCategoryDesc( |
| + category, settings.PermissionValues.ALLOW, true)); |
| + assertNotEquals('', testElement.computeCategoryDesc( |
| + category, settings.PermissionValues.ALLOW, false)); |
| + assertNotEquals('', testElement.computeCategoryDesc( |
| + category, settings.PermissionValues.BLOCK, true)); |
| + assertNotEquals('', testElement.computeCategoryDesc( |
| + category, settings.PermissionValues.BLOCK, false)); |
| + |
| + // Test additional tri-state values: |
| + if (category == settings.ContentSettingsTypes.PLUGINS) { |
| + assertNotEquals('', testElement.computeCategoryDesc( |
| + category, settings.PermissionValues.IMPORTANT_CONTENT, true)); |
| + assertNotEquals('', testElement.computeCategoryDesc( |
| + category, settings.PermissionValues.IMPORTANT_CONTENT, |
| + false)); |
| + } |
| } |
| // All categories have an icon and a title. |
| @@ -139,6 +160,113 @@ cr.define('site_settings_category', function() { |
| '', testElement.computeTitleForContentCategory(category)); |
| } |
| }); |
| + |
| + test('test special tri-state Flash category', function() { |
| + browserProxy.setPrefs(prefsFlashDetect); |
| + |
| + testElement.category = settings.ContentSettingsTypes.PLUGINS; |
| + var askCheckbox = null; |
| + |
| + return browserProxy.whenCalled('getDefaultValueForContentType').then( |
| + function(contentType) { |
| + Polymer.dom.flush(); |
| + |
| + askCheckbox = testElement.$$('#flashAskCheckbox'); |
| + assertTrue(!!askCheckbox); |
| + |
| + assertEquals( |
| + settings.ContentSettingsTypes.PLUGINS, contentType); |
| + assertTrue(testElement.categoryEnabled); |
| + assertFalse(askCheckbox.disabled); |
| + assertTrue(askCheckbox.checked); |
| + |
| + MockInteractions.tap(testElement.$.toggle); |
| + return browserProxy.whenCalled('setDefaultValueForContentType'); |
| + }).then(function(arguments) { |
|
Finnur
2016/09/29 11:19:03
Apologies for raising an old thread here, but Dave
|
| + // Check DETECT => BLOCK transition succeeded. |
| + Polymer.dom.flush(); |
| + |
| + assertEquals( |
| + settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
| + assertEquals(settings.PermissionValues.BLOCK, arguments[1]); |
| + assertFalse(testElement.categoryEnabled); |
| + assertTrue(askCheckbox.disabled); |
| + assertTrue(askCheckbox.checked); |
| + |
| + browserProxy.resetResolver('setDefaultValueForContentType'); |
| + MockInteractions.tap(testElement.$.toggle); |
| + return browserProxy.whenCalled('setDefaultValueForContentType'); |
| + }).then(function(arguments) { |
| + // Check BLOCK => DETECT transition succeeded. |
| + Polymer.dom.flush(); |
| + |
| + assertEquals( |
| + settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
| + assertEquals( |
| + settings.PermissionValues.IMPORTANT_CONTENT, arguments[1]); |
| + assertTrue(testElement.categoryEnabled); |
| + assertFalse(askCheckbox.disabled); |
| + assertTrue(askCheckbox.checked); |
| + |
| + browserProxy.resetResolver('setDefaultValueForContentType'); |
| + MockInteractions.tap(askCheckbox); |
| + return browserProxy.whenCalled('setDefaultValueForContentType'); |
| + }).then(function(arguments) { |
| + // Check DETECT => ALLOW transition succeeded. |
| + Polymer.dom.flush(); |
| + |
| + assertEquals( |
| + settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
| + assertEquals( |
| + settings.PermissionValues.ALLOW, arguments[1]); |
| + assertTrue(testElement.categoryEnabled); |
| + assertFalse(askCheckbox.disabled); |
| + assertFalse(askCheckbox.checked); |
| + |
| + browserProxy.resetResolver('setDefaultValueForContentType'); |
| + MockInteractions.tap(testElement.$.toggle); |
| + return browserProxy.whenCalled('setDefaultValueForContentType'); |
| + }).then(function(arguments) { |
| + // Check ALLOW => BLOCK transition succeeded. |
| + Polymer.dom.flush(); |
| + |
| + assertEquals( |
| + settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
| + assertEquals(settings.PermissionValues.BLOCK, arguments[1]); |
| + assertFalse(testElement.categoryEnabled); |
| + assertTrue(askCheckbox.disabled); |
| + assertFalse(askCheckbox.checked); |
| + |
| + browserProxy.resetResolver('setDefaultValueForContentType'); |
| + MockInteractions.tap(testElement.$.toggle); |
| + return browserProxy.whenCalled('setDefaultValueForContentType'); |
| + }).then(function(arguments) { |
| + // Check BLOCK => ALLOW transition succeeded. |
| + Polymer.dom.flush(); |
| + |
| + assertEquals( |
| + settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
| + assertEquals(settings.PermissionValues.ALLOW, arguments[1]); |
| + assertTrue(testElement.categoryEnabled); |
| + assertFalse(askCheckbox.disabled); |
| + assertFalse(askCheckbox.checked); |
| + |
| + browserProxy.resetResolver('setDefaultValueForContentType'); |
| + MockInteractions.tap(askCheckbox); |
| + return browserProxy.whenCalled('setDefaultValueForContentType'); |
| + }).then(function(arguments) { |
| + // Check ALLOW => DETECT transition succeeded. |
| + Polymer.dom.flush(); |
| + |
| + assertEquals( |
| + settings.ContentSettingsTypes.PLUGINS, arguments[0]); |
| + assertEquals( |
| + settings.PermissionValues.IMPORTANT_CONTENT, arguments[1]); |
| + assertTrue(testElement.categoryEnabled); |
| + assertFalse(askCheckbox.disabled); |
| + assertTrue(askCheckbox.checked); |
| + });; |
| + }); |
| }); |
| } |