Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(684)

Side by Side Diff: chrome/test/data/webui/settings/site_details_permission_tests.js

Issue 2862463002: [MD settings] split up site settings tests (Closed)
Patch Set: CategoryDefaultSetting fix Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 suite('SiteDetailsPermission', function() {
7 function registerTests() { 7 /**
8 suite('SiteDetailsPermission', function() { 8 * A site list element created before each test.
9 /** 9 * @type {SiteDetailsPermission}
10 * A site list element created before each test. 10 */
11 * @type {SiteDetailsPermission} 11 var testElement;
12 */
13 var testElement;
14 12
15 /** 13 /**
16 * An example pref with only camera allowed. 14 * An example pref with only camera allowed.
17 */ 15 */
18 var prefs = { 16 var prefs = {
19 exceptions: { 17 exceptions: {
20 camera: [ 18 camera: [
21 { 19 {
22 embeddingOrigin: '', 20 embeddingOrigin: '',
23 origin: 'https://www.example.com', 21 origin: 'https://www.example.com',
24 setting: 'allow', 22 setting: 'allow',
25 source: 'preference', 23 source: 'preference',
26 }, 24 },
27 ] 25 ]
28 } 26 }
29 }; 27 };
30 28
31 /** 29 /**
32 * An example pref with only one entry allowed. 30 * An example pref with only one entry allowed.
33 */ 31 */
34 var prefsCookies = { 32 var prefsCookies = {
35 exceptions: { 33 exceptions: {
36 cookies: [ 34 cookies: [
37 { 35 {
38 embeddingOrigin: '', 36 embeddingOrigin: '',
39 origin: 'https://www.example.com', 37 origin: 'https://www.example.com',
40 setting: 'allow', 38 setting: 'allow',
41 source: 'preference', 39 source: 'preference',
42 }, 40 },
43 ] 41 ]
44 } 42 }
45 }; 43 };
46 44
47 // Initialize a site-details-permission before each test. 45 // Initialize a site-details-permission before each test.
48 setup(function() { 46 setup(function() {
49 browserProxy = new TestSiteSettingsPrefsBrowserProxy(); 47 browserProxy = new TestSiteSettingsPrefsBrowserProxy();
50 settings.SiteSettingsPrefsBrowserProxyImpl.instance_ = browserProxy; 48 settings.SiteSettingsPrefsBrowserProxyImpl.instance_ = browserProxy;
51 PolymerTest.clearBody(); 49 PolymerTest.clearBody();
52 testElement = document.createElement('site-details-permission'); 50 testElement = document.createElement('site-details-permission');
53 document.body.appendChild(testElement); 51 document.body.appendChild(testElement);
54 }); 52 });
55 53
56 // Tests that the given value is converted to the expected value, for a 54 // Tests that the given value is converted to the expected value, for a
57 // given prefType. 55 // given prefType.
58 function isAllowed(origin, exceptionList) { 56 function isAllowed(origin, exceptionList) {
59 for (var i = 0; i < exceptionList.length; ++i) { 57 for (var i = 0; i < exceptionList.length; ++i) {
60 if (exceptionList[i].origin == origin) 58 if (exceptionList[i].origin == origin)
61 return exceptionList[i].setting == 'allow'; 59 return exceptionList[i].setting == 'allow';
62 } 60 }
63 return false; 61 return false;
64 }; 62 };
65 63
66 function validatePermissionFlipWorks(origin, expectedPermissionValue) { 64 function validatePermissionFlipWorks(origin, expectedPermissionValue) {
67 browserProxy.resetResolver('setCategoryPermissionForOrigin'); 65 browserProxy.resetResolver('setCategoryPermissionForOrigin');
68 66
69 // Simulate permission change initiated by the user. 67 // Simulate permission change initiated by the user.
70 testElement.$.permission.value = expectedPermissionValue; 68 testElement.$.permission.value = expectedPermissionValue;
71 testElement.$.permission.dispatchEvent(new CustomEvent('change')); 69 testElement.$.permission.dispatchEvent(new CustomEvent('change'));
72 70
73 return browserProxy.whenCalled('setCategoryPermissionForOrigin').then( 71 return browserProxy.whenCalled('setCategoryPermissionForOrigin')
74 function(args) { 72 .then(function(args) {
75 assertEquals(origin, args[0]); 73 assertEquals(origin, args[0]);
76 assertEquals('', args[1]); 74 assertEquals('', args[1]);
77 assertEquals(testElement.category, args[2]); 75 assertEquals(testElement.category, args[2]);
78 assertEquals(expectedPermissionValue, args[3]); 76 assertEquals(expectedPermissionValue, args[3]);
79 }); 77 });
80 }; 78 };
81 79
82 test('empty state', function() { 80 test('empty state', function() {
83 browserProxy.setPrefs(prefsEmpty); 81 browserProxy.setPrefs(prefsEmpty);
84 testElement.category = settings.ContentSettingsTypes.CAMERA; 82 testElement.category = settings.ContentSettingsTypes.CAMERA;
85 testElement.site = { 83 testElement.site = {
86 origin: 'http://www.google.com', 84 origin: 'http://www.google.com',
87 embeddingOrigin: '', 85 embeddingOrigin: '',
88 }; 86 };
89 87
90 return browserProxy.whenCalled('getExceptionList').then(function() { 88 return browserProxy.whenCalled('getExceptionList').then(function() {
91 assertTrue(testElement.$.details.hidden); 89 assertTrue(testElement.$.details.hidden);
92 }); 90 });
93 }); 91 });
94 92
95 test('camera category', function() { 93 test('camera category', function() {
96 var origin = 'https://www.example.com'; 94 var origin = 'https://www.example.com';
97 browserProxy.setPrefs(prefs); 95 browserProxy.setPrefs(prefs);
98 testElement.category = settings.ContentSettingsTypes.CAMERA; 96 testElement.category = settings.ContentSettingsTypes.CAMERA;
99 testElement.label = 'Camera'; 97 testElement.label = 'Camera';
100 testElement.site = { 98 testElement.site = {
101 origin: origin, 99 origin: origin,
102 embeddingOrigin: '', 100 embeddingOrigin: '',
103 }; 101 };
104 102
105 return browserProxy.whenCalled('getExceptionList').then(function() { 103 return browserProxy.whenCalled('getExceptionList')
104 .then(function() {
106 assertFalse(testElement.$.details.hidden); 105 assertFalse(testElement.$.details.hidden);
107 106
108 var header = testElement.$.details.querySelector( 107 var header = testElement.$.details.querySelector('#permissionHeader');
109 '#permissionHeader'); 108 assertEquals(
110 assertEquals('Camera', header.innerText.trim(), 109 'Camera', header.innerText.trim(),
111 'Widget should be labelled correctly'); 110 'Widget should be labelled correctly');
112 111
113 // Flip the permission and validate that prefs stay in sync. 112 // Flip the permission and validate that prefs stay in sync.
114 return validatePermissionFlipWorks( 113 return validatePermissionFlipWorks(
115 origin, settings.PermissionValues.ALLOW); 114 origin, settings.PermissionValues.ALLOW);
116 }).then(function() { 115 })
116 .then(function() {
117 return validatePermissionFlipWorks( 117 return validatePermissionFlipWorks(
118 origin, settings.PermissionValues.BLOCK); 118 origin, settings.PermissionValues.BLOCK);
119 }).then(function() { 119 })
120 .then(function() {
120 return validatePermissionFlipWorks( 121 return validatePermissionFlipWorks(
121 origin, settings.PermissionValues.ALLOW); 122 origin, settings.PermissionValues.ALLOW);
122 }); 123 });
123 }); 124 });
124 125
125 test('cookies category', function() { 126 test('cookies category', function() {
126 var origin = 'https://www.example.com'; 127 var origin = 'https://www.example.com';
127 browserProxy.setPrefs(prefsCookies); 128 browserProxy.setPrefs(prefsCookies);
128 testElement.category = settings.ContentSettingsTypes.COOKIES; 129 testElement.category = settings.ContentSettingsTypes.COOKIES;
129 testElement.label = 'Cookies'; 130 testElement.label = 'Cookies';
130 testElement.site = { 131 testElement.site = {
131 origin: origin, 132 origin: origin,
132 embeddingOrigin: '', 133 embeddingOrigin: '',
133 }; 134 };
134 135
135 return browserProxy.whenCalled('getExceptionList').then(function() { 136 return browserProxy.whenCalled('getExceptionList')
137 .then(function() {
136 assertFalse(testElement.$.details.hidden); 138 assertFalse(testElement.$.details.hidden);
137 139
138 var header = testElement.$.details.querySelector( 140 var header = testElement.$.details.querySelector('#permissionHeader');
139 '#permissionHeader'); 141 assertEquals(
140 assertEquals('Cookies', header.innerText.trim(), 142 'Cookies', header.innerText.trim(),
141 'Widget should be labelled correctly'); 143 'Widget should be labelled correctly');
142 144
143 return validatePermissionFlipWorks( 145 return validatePermissionFlipWorks(
144 origin, settings.PermissionValues.SESSION_ONLY); 146 origin, settings.PermissionValues.SESSION_ONLY);
145 }).then(function() { 147 })
148 .then(function() {
146 // Flip the permission and validate that prefs stay in sync. 149 // Flip the permission and validate that prefs stay in sync.
147 return validatePermissionFlipWorks( 150 return validatePermissionFlipWorks(
148 origin, settings.PermissionValues.ALLOW); 151 origin, settings.PermissionValues.ALLOW);
149 }).then(function() { 152 })
153 .then(function() {
150 return validatePermissionFlipWorks( 154 return validatePermissionFlipWorks(
151 origin, settings.PermissionValues.BLOCK); 155 origin, settings.PermissionValues.BLOCK);
152 }); 156 });
153 }); 157 });
154 158
155 test('disappear on empty', function() { 159 test('disappear on empty', function() {
156 var origin = "https://www.example.com"; 160 var origin = 'https://www.example.com';
157 browserProxy.setPrefs(prefs); 161 browserProxy.setPrefs(prefs);
158 testElement.category = settings.ContentSettingsTypes.CAMERA; 162 testElement.category = settings.ContentSettingsTypes.CAMERA;
159 testElement.site = { 163 testElement.site = {
160 origin: origin, 164 origin: origin,
161 embeddingOrigin: '', 165 embeddingOrigin: '',
162 }; 166 };
163 167
164 return browserProxy.whenCalled('getExceptionList').then(function() { 168 return browserProxy.whenCalled('getExceptionList')
169 .then(function() {
165 assertFalse(testElement.$.details.hidden); 170 assertFalse(testElement.$.details.hidden);
166 171
167 browserProxy.setPrefs(prefsEmpty); 172 browserProxy.setPrefs(prefsEmpty);
168 return browserProxy.whenCalled('getExceptionList'); 173 return browserProxy.whenCalled('getExceptionList');
169 }).then(function() { 174 })
175 .then(function() {
170 assertTrue(testElement.$.details.hidden); 176 assertTrue(testElement.$.details.hidden);
171 }); 177 });
172 }); 178 });
173 });
174 }
175 return {
176 registerTests: registerTests,
177 };
178 }); 179 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698