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

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

Issue 2394923002: MD Settings: Migrating site_details_permission to native select. (Closed)
Patch Set: "Nits." Created 4 years, 2 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
« no previous file with comments | « chrome/browser/resources/settings/site_settings/site_details_permission.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 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
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) {
74 MockInteractions.tap(allow ? testElement.$.allow : testElement.$.block); 74 browserProxy.resetResolver('setCategoryPermissionForOrigin');
75
76 // Simulate permission change initiated by the user.
77 testElement.$.permission.value = expectedPermissionValue;
78 testElement.$.permission.dispatchEvent(new CustomEvent('change'));
79
75 return browserProxy.whenCalled('setCategoryPermissionForOrigin').then( 80 return browserProxy.whenCalled('setCategoryPermissionForOrigin').then(
76 function(arguments) { 81 function(args) {
77 assertEquals(origin, arguments[0]); 82 assertEquals(origin, args[0]);
78 assertEquals('', arguments[1]); 83 assertEquals('', args[1]);
79 assertEquals(testElement.category, arguments[2]); 84 assertEquals(testElement.category, args[2]);
80 assertEquals(allow ? 85 assertEquals(expectedPermissionValue, args[3]);
81 settings.PermissionValues.ALLOW :
82 settings.PermissionValues.BLOCK, arguments[3]);
83 }); 86 });
84 }; 87 };
85 88
86 test('empty state', function() { 89 test('empty state', function() {
87 browserProxy.setPrefs(prefsEmpty); 90 browserProxy.setPrefs(prefsEmpty);
88 testElement.category = settings.ContentSettingsTypes.CAMERA; 91 testElement.category = settings.ContentSettingsTypes.CAMERA;
89 testElement.site = { 92 testElement.site = {
90 origin: 'http://www.google.com', 93 origin: 'http://www.google.com',
91 embeddingOrigin: '', 94 embeddingOrigin: '',
92 }; 95 };
(...skipping 14 matching lines...) Expand all
107 110
108 return browserProxy.whenCalled('getExceptionList').then(function() { 111 return browserProxy.whenCalled('getExceptionList').then(function() {
109 assertFalse(testElement.$.details.hidden); 112 assertFalse(testElement.$.details.hidden);
110 113
111 var header = testElement.$.details.querySelector( 114 var header = testElement.$.details.querySelector(
112 '#permissionHeader'); 115 '#permissionHeader');
113 assertEquals('Camera', header.innerText.trim(), 116 assertEquals('Camera', header.innerText.trim(),
114 'Widget should be labelled correctly'); 117 'Widget should be labelled correctly');
115 118
116 // Flip the permission and validate that prefs stay in sync. 119 // Flip the permission and validate that prefs stay in sync.
117 return validatePermissionFlipWorks(origin, true); 120 return validatePermissionFlipWorks(
121 origin, settings.PermissionValues.ALLOW);
118 }).then(function() { 122 }).then(function() {
119 browserProxy.resetResolver('setCategoryPermissionForOrigin'); 123 return validatePermissionFlipWorks(
120 return validatePermissionFlipWorks(origin, false); 124 origin, settings.PermissionValues.BLOCK);
121 }).then(function() { 125 }).then(function() {
122 browserProxy.resetResolver('setCategoryPermissionForOrigin'); 126 return validatePermissionFlipWorks(
123 return validatePermissionFlipWorks(origin, true); 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() {
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 return validatePermissionFlipWorks(
153 return validatePermissionFlipWorks(origin, true); 153 origin, settings.PermissionValues.ALLOW);
154 }).then(function() { 154 }).then(function() {
155 browserProxy.resetResolver('setCategoryPermissionForOrigin'); 155 return validatePermissionFlipWorks(
156 return validatePermissionFlipWorks(origin, false); 156 origin, settings.PermissionValues.BLOCK);
157 }); 157 });
158 }); 158 });
159 159
160 test('disappear on empty', function() { 160 test('disappear on empty', function() {
161 var origin = "https://www.example.com"; 161 var origin = "https://www.example.com";
162 browserProxy.setPrefs(prefs); 162 browserProxy.setPrefs(prefs);
163 testElement.category = settings.ContentSettingsTypes.CAMERA; 163 testElement.category = settings.ContentSettingsTypes.CAMERA;
164 testElement.site = { 164 testElement.site = {
165 origin: origin, 165 origin: origin,
166 embeddingOrigin: '', 166 embeddingOrigin: '',
167 }; 167 };
168 168
169 return browserProxy.whenCalled('getExceptionList').then(function() { 169 return browserProxy.whenCalled('getExceptionList').then(function() {
170 assertFalse(testElement.$.details.hidden); 170 assertFalse(testElement.$.details.hidden);
171 171
172 browserProxy.setPrefs(prefsEmpty); 172 browserProxy.setPrefs(prefsEmpty);
173 return browserProxy.whenCalled('getExceptionList'); 173 return browserProxy.whenCalled('getExceptionList');
174 }).then(function() { 174 }).then(function() {
175 assertTrue(testElement.$.details.hidden); 175 assertTrue(testElement.$.details.hidden);
176 }); 176 });
177 }); 177 });
178 }); 178 });
179 } 179 }
180 return { 180 return {
181 registerTests: registerTests, 181 registerTests: registerTests,
182 }; 182 };
183 }); 183 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/settings/site_settings/site_details_permission.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698