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 |