Chromium Code Reviews| 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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 63 // Tests that the given value is converted to the expected value, for a | 63 // Tests that the given value is converted to the expected value, for a |
| 64 // given prefType. | 64 // given prefType. |
| 65 function isAllowed(origin, exceptionList) { | 65 function isAllowed(origin, exceptionList) { |
| 66 for (var i = 0; i < exceptionList.length; ++i) { | 66 for (var i = 0; i < exceptionList.length; ++i) { |
| 67 if (exceptionList[i].origin == origin) | 67 if (exceptionList[i].origin == origin) |
| 68 return exceptionList[i].setting == 'allow'; | 68 return exceptionList[i].setting == 'allow'; |
| 69 } | 69 } |
| 70 return false; | 70 return false; |
| 71 }; | 71 }; |
| 72 | 72 |
| 73 function validatePermissionFlipWorks(origin, allow) { | 73 function validatePermissionFlipWorks(origin, expectedPermissionValue) { |
|
dschuyler
2016/10/05 22:23:17
|expectedPermissionValue|, I like it!
dpapad
2016/10/05 22:41:47
Done. I also merged 4 calls to "browserProxy.reset
| |
| 74 MockInteractions.tap(allow ? testElement.$.allow : testElement.$.block); | 74 // Simulate permission change initiated by the user. |
| 75 testElement.$.permission.value = expectedPermissionValue; | |
| 76 testElement.$.permission.dispatchEvent(new CustomEvent('change')); | |
| 77 | |
| 75 return browserProxy.whenCalled('setCategoryPermissionForOrigin').then( | 78 return browserProxy.whenCalled('setCategoryPermissionForOrigin').then( |
| 76 function(arguments) { | 79 function(args) { |
| 77 assertEquals(origin, arguments[0]); | 80 assertEquals(origin, args[0]); |
| 78 assertEquals('', arguments[1]); | 81 assertEquals('', args[1]); |
| 79 assertEquals(testElement.category, arguments[2]); | 82 assertEquals(testElement.category, args[2]); |
| 80 assertEquals(allow ? | 83 assertEquals(expectedPermissionValue, args[3]); |
| 81 settings.PermissionValues.ALLOW : | |
| 82 settings.PermissionValues.BLOCK, arguments[3]); | |
| 83 }); | 84 }); |
| 84 }; | 85 }; |
| 85 | 86 |
| 86 test('empty state', function() { | 87 test('empty state', function() { |
| 87 browserProxy.setPrefs(prefsEmpty); | 88 browserProxy.setPrefs(prefsEmpty); |
| 88 testElement.category = settings.ContentSettingsTypes.CAMERA; | 89 testElement.category = settings.ContentSettingsTypes.CAMERA; |
| 89 testElement.site = { | 90 testElement.site = { |
| 90 origin: 'http://www.google.com', | 91 origin: 'http://www.google.com', |
| 91 embeddingOrigin: '', | 92 embeddingOrigin: '', |
| 92 }; | 93 }; |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 107 | 108 |
| 108 return browserProxy.whenCalled('getExceptionList').then(function() { | 109 return browserProxy.whenCalled('getExceptionList').then(function() { |
| 109 assertFalse(testElement.$.details.hidden); | 110 assertFalse(testElement.$.details.hidden); |
| 110 | 111 |
| 111 var header = testElement.$.details.querySelector( | 112 var header = testElement.$.details.querySelector( |
| 112 '#permissionHeader'); | 113 '#permissionHeader'); |
| 113 assertEquals('Camera', header.innerText.trim(), | 114 assertEquals('Camera', header.innerText.trim(), |
| 114 'Widget should be labelled correctly'); | 115 'Widget should be labelled correctly'); |
| 115 | 116 |
| 116 // Flip the permission and validate that prefs stay in sync. | 117 // Flip the permission and validate that prefs stay in sync. |
| 117 return validatePermissionFlipWorks(origin, true); | 118 return validatePermissionFlipWorks( |
| 119 origin, settings.PermissionValues.ALLOW); | |
| 118 }).then(function() { | 120 }).then(function() { |
| 119 browserProxy.resetResolver('setCategoryPermissionForOrigin'); | 121 browserProxy.resetResolver('setCategoryPermissionForOrigin'); |
| 120 return validatePermissionFlipWorks(origin, false); | 122 return validatePermissionFlipWorks( |
| 123 origin, settings.PermissionValues.BLOCK); | |
| 121 }).then(function() { | 124 }).then(function() { |
| 122 browserProxy.resetResolver('setCategoryPermissionForOrigin'); | 125 browserProxy.resetResolver('setCategoryPermissionForOrigin'); |
| 123 return validatePermissionFlipWorks(origin, true); | 126 return validatePermissionFlipWorks( |
| 127 origin, settings.PermissionValues.ALLOW); | |
| 124 }); | 128 }); |
| 125 }); | 129 }); |
| 126 | 130 |
| 127 test('cookies category', function() { | 131 test('cookies category', function() { |
| 128 var origin = "https://www.example.com"; | 132 var origin = "https://www.example.com"; |
| 129 browserProxy.setPrefs(prefsCookies); | 133 browserProxy.setPrefs(prefsCookies); |
| 130 testElement.category = settings.ContentSettingsTypes.COOKIES; | 134 testElement.category = settings.ContentSettingsTypes.COOKIES; |
| 131 testElement.site = { | 135 testElement.site = { |
| 132 origin: origin, | 136 origin: origin, |
| 133 embeddingOrigin: '', | 137 embeddingOrigin: '', |
| 134 }; | 138 }; |
| 135 | 139 |
| 136 return browserProxy.whenCalled('getExceptionList').then(function() { | 140 return browserProxy.whenCalled('getExceptionList').then(function() { |
| 137 assertFalse(testElement.$.details.hidden); | 141 assertFalse(testElement.$.details.hidden); |
| 138 | 142 |
| 139 var header = testElement.$.details.querySelector( | 143 var header = testElement.$.details.querySelector( |
| 140 '#permissionHeader'); | 144 '#permissionHeader'); |
| 141 assertEquals('Cookies', header.innerText.trim(), | 145 assertEquals('Cookies', header.innerText.trim(), |
| 142 'Widget should be labelled correctly'); | 146 'Widget should be labelled correctly'); |
| 143 | 147 |
| 144 MockInteractions.tap(testElement.$.sessionOnly); | 148 return validatePermissionFlipWorks( |
| 145 return browserProxy.whenCalled('setCategoryPermissionForOrigin'); | 149 origin, settings.PermissionValues.SESSION_ONLY); |
| 146 }).then(function(arguments) { | 150 }).then(function(arguments) { |
|
dschuyler
2016/10/05 22:23:17
Let's remove the |arguments| arg (it's not used no
| |
| 147 assertEquals(origin, arguments[0]); | |
| 148 assertEquals('', arguments[1]); | |
| 149 assertEquals(testElement.category, arguments[2]); | |
| 150 assertEquals(settings.PermissionValues.SESSION_ONLY, arguments[3]); | |
| 151 // Flip the permission and validate that prefs stay in sync. | 151 // Flip the permission and validate that prefs stay in sync. |
| 152 browserProxy.resetResolver('setCategoryPermissionForOrigin'); | 152 browserProxy.resetResolver('setCategoryPermissionForOrigin'); |
| 153 return validatePermissionFlipWorks(origin, true); | 153 return validatePermissionFlipWorks( |
| 154 origin, settings.PermissionValues.ALLOW); | |
| 154 }).then(function() { | 155 }).then(function() { |
| 155 browserProxy.resetResolver('setCategoryPermissionForOrigin'); | 156 browserProxy.resetResolver('setCategoryPermissionForOrigin'); |
| 156 return validatePermissionFlipWorks(origin, false); | 157 return validatePermissionFlipWorks( |
| 158 origin, settings.PermissionValues.BLOCK); | |
| 157 }); | 159 }); |
| 158 }); | 160 }); |
| 159 | 161 |
| 160 test('disappear on empty', function() { | 162 test('disappear on empty', function() { |
| 161 var origin = "https://www.example.com"; | 163 var origin = "https://www.example.com"; |
| 162 browserProxy.setPrefs(prefs); | 164 browserProxy.setPrefs(prefs); |
| 163 testElement.category = settings.ContentSettingsTypes.CAMERA; | 165 testElement.category = settings.ContentSettingsTypes.CAMERA; |
| 164 testElement.site = { | 166 testElement.site = { |
| 165 origin: origin, | 167 origin: origin, |
| 166 embeddingOrigin: '', | 168 embeddingOrigin: '', |
| 167 }; | 169 }; |
| 168 | 170 |
| 169 return browserProxy.whenCalled('getExceptionList').then(function() { | 171 return browserProxy.whenCalled('getExceptionList').then(function() { |
| 170 assertFalse(testElement.$.details.hidden); | 172 assertFalse(testElement.$.details.hidden); |
| 171 | 173 |
| 172 browserProxy.setPrefs(prefsEmpty); | 174 browserProxy.setPrefs(prefsEmpty); |
| 173 return browserProxy.whenCalled('getExceptionList'); | 175 return browserProxy.whenCalled('getExceptionList'); |
| 174 }).then(function() { | 176 }).then(function() { |
| 175 assertTrue(testElement.$.details.hidden); | 177 assertTrue(testElement.$.details.hidden); |
| 176 }); | 178 }); |
| 177 }); | 179 }); |
| 178 }); | 180 }); |
| 179 } | 181 } |
| 180 return { | 182 return { |
| 181 registerTests: registerTests, | 183 registerTests: registerTests, |
| 182 }; | 184 }; |
| 183 }); | 185 }); |
| OLD | NEW |