| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** @fileoverview Suite of tests for site-details. */ | 5 /** @fileoverview Suite of tests for site-details. */ |
| 6 cr.define('site_details_permission', function() { | 6 cr.define('site_details_permission', function() { |
| 7 function registerTests() { | 7 function registerTests() { |
| 8 suite('SiteDetailsPermission', function() { | 8 suite('SiteDetailsPermission', function() { |
| 9 /** | 9 /** |
| 10 * A site list element created before each test. | 10 * A site list element created before each test. |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 return exceptionList[i].setting == 'allow'; | 52 return exceptionList[i].setting == 'allow'; |
| 53 } | 53 } |
| 54 return false; | 54 return false; |
| 55 }; | 55 }; |
| 56 | 56 |
| 57 function validatePermissionFlipWorks(origin, allow) { | 57 function validatePermissionFlipWorks(origin, allow) { |
| 58 MockInteractions.tap(allow ? testElement.$.allow : testElement.$.block); | 58 MockInteractions.tap(allow ? testElement.$.allow : testElement.$.block); |
| 59 return browserProxy.whenCalled('setCategoryPermissionForOrigin').then( | 59 return browserProxy.whenCalled('setCategoryPermissionForOrigin').then( |
| 60 function(arguments) { | 60 function(arguments) { |
| 61 assertEquals(origin, arguments[0]); | 61 assertEquals(origin, arguments[0]); |
| 62 assertEquals('', arguments[1]); | 62 assertEquals(origin, arguments[1]); |
| 63 assertEquals(testElement.category, arguments[2]); | 63 assertEquals(testElement.category, arguments[2]); |
| 64 assertEquals(allow ? | 64 assertEquals(allow ? |
| 65 settings.PermissionValues.ALLOW : | 65 settings.PermissionValues.ALLOW : |
| 66 settings.PermissionValues.BLOCK, arguments[3]); | 66 settings.PermissionValues.BLOCK, arguments[3]); |
| 67 }); | 67 }); |
| 68 }; | 68 }; |
| 69 | 69 |
| 70 test('empty state', function() { | 70 test('empty state', function() { |
| 71 browserProxy.setPrefs(prefsEmpty); | 71 browserProxy.setPrefs(prefsEmpty); |
| 72 testElement.category = settings.ContentSettingsTypes.CAMERA; | 72 testElement.category = settings.ContentSettingsTypes.CAMERA; |
| 73 testElement.site = { | 73 testElement.site = { |
| 74 origin: 'http://www.google.com', | 74 origin: 'http://www.google.com', |
| 75 embeddingOrigin: '', | 75 embeddingOrigin: '', |
| 76 }; | 76 }; |
| 77 | 77 |
| 78 return browserProxy.whenCalled('getExceptionList').then(function() { | 78 return browserProxy.whenCalled('getExceptionList').then(function() { |
| 79 assertTrue(testElement.$.details.hidden); | 79 assertTrue(testElement.$.details.hidden); |
| 80 }); | 80 }); |
| 81 }); | 81 }); |
| 82 | 82 |
| 83 test('camera category', function() { | 83 test('camera category', function() { |
| 84 var origin = "https://foo-allow.com:443"; | 84 var origin = "https://foo-allow.com:443"; |
| 85 browserProxy.setPrefs(prefs); | 85 browserProxy.setPrefs(prefs); |
| 86 testElement.category = settings.ContentSettingsTypes.CAMERA; | 86 testElement.category = settings.ContentSettingsTypes.CAMERA; |
| 87 testElement.site = { | 87 testElement.site = { |
| 88 origin: origin, | 88 origin: origin, |
| 89 embeddingOrigin: '', | 89 embeddingOrigin: origin, |
| 90 }; | 90 }; |
| 91 | 91 |
| 92 return browserProxy.whenCalled('getExceptionList').then(function() { | 92 return browserProxy.whenCalled('getExceptionList').then(function() { |
| 93 assertFalse(testElement.$.details.hidden); | 93 assertFalse(testElement.$.details.hidden); |
| 94 | 94 |
| 95 var header = testElement.$.details.querySelector( | 95 var header = testElement.$.details.querySelector( |
| 96 '#permissionHeader'); | 96 '#permissionHeader'); |
| 97 assertEquals('Camera', header.innerText.trim(), | 97 assertEquals('Camera', header.innerText.trim(), |
| 98 'Widget should be labelled correctly'); | 98 'Widget should be labelled correctly'); |
| 99 | 99 |
| 100 // Flip the permission and validate that prefs stay in sync. | 100 // Flip the permission and validate that prefs stay in sync. |
| 101 return validatePermissionFlipWorks(origin, true); | 101 return validatePermissionFlipWorks(origin, true); |
| 102 }).then(function() { | 102 }).then(function() { |
| 103 browserProxy.resetResolver('setCategoryPermissionForOrigin'); | 103 browserProxy.resetResolver('setCategoryPermissionForOrigin'); |
| 104 return validatePermissionFlipWorks(origin, false); | 104 return validatePermissionFlipWorks(origin, false); |
| 105 }).then(function() { | 105 }).then(function() { |
| 106 browserProxy.resetResolver('setCategoryPermissionForOrigin'); | 106 browserProxy.resetResolver('setCategoryPermissionForOrigin'); |
| 107 return validatePermissionFlipWorks(origin, true); | 107 return validatePermissionFlipWorks(origin, true); |
| 108 }); | 108 }); |
| 109 }); | 109 }); |
| 110 | 110 |
| 111 test('disappear on empty', function() { | 111 test('disappear on empty', function() { |
| 112 var origin = "https://foo-allow.com:443"; | 112 var origin = "https://foo-allow.com:443"; |
| 113 browserProxy.setPrefs(prefs); | 113 browserProxy.setPrefs(prefs); |
| 114 testElement.category = settings.ContentSettingsTypes.CAMERA; | 114 testElement.category = settings.ContentSettingsTypes.CAMERA; |
| 115 testElement.site = { | 115 testElement.site = { |
| 116 origin: origin, | 116 origin: origin, |
| 117 embeddingOrigin: '', | 117 embeddingOrigin: origin, |
| 118 }; | 118 }; |
| 119 | 119 |
| 120 return browserProxy.whenCalled('getExceptionList').then(function() { | 120 return browserProxy.whenCalled('getExceptionList').then(function() { |
| 121 assertFalse(testElement.$.details.hidden); | 121 assertFalse(testElement.$.details.hidden); |
| 122 | 122 |
| 123 browserProxy.setPrefs(prefsEmpty); | 123 browserProxy.setPrefs(prefsEmpty); |
| 124 return browserProxy.whenCalled('getExceptionList'); | 124 return browserProxy.whenCalled('getExceptionList'); |
| 125 }).then(function() { | 125 }).then(function() { |
| 126 assertTrue(testElement.$.details.hidden); | 126 assertTrue(testElement.$.details.hidden); |
| 127 }); | 127 }); |
| 128 }); | 128 }); |
| 129 }); | 129 }); |
| 130 } | 130 } |
| 131 return { | 131 return { |
| 132 registerTests: registerTests, | 132 registerTests: registerTests, |
| 133 }; | 133 }; |
| 134 }); | 134 }); |
| OLD | NEW |