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

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

Issue 2357983005: Site Settings Desktop: Support SessionOnly for cookies on Site Details page. (Closed)
Patch Set: 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.
11 * @type {SiteDetailsPermission} 11 * @type {SiteDetailsPermission}
12 */ 12 */
13 var testElement; 13 var testElement;
14 14
15 /** 15 /**
16 * An example pref with only camera allowed. 16 * An example pref with only camera allowed.
17 */ 17 */
18 var prefs = { 18 var prefs = {
19 exceptions: { 19 exceptions: {
20 camera: [ 20 camera: [
21 { 21 {
22 embeddingOrigin: 'https://foo-allow.com:443', 22 embeddingOrigin: '',
23 origin: 'https://foo-allow.com:443', 23 origin: 'https://www.example.com',
24 setting: 'allow', 24 setting: 'allow',
25 source: 'preference', 25 source: 'preference',
26 }, 26 },
27 ]
28 }
29 };
30
31 /**
32 * An example pref with only one entry allowed.
33 */
34 var prefsCookies = {
35 exceptions: {
36 cookies: [
37 {
38 embeddingOrigin: '',
39 origin: 'https://www.example.com',
40 setting: 'allow',
41 source: 'preference',
42 },
27 ] 43 ]
28 } 44 }
29 }; 45 };
30 46
31 // Import necessary html before running suite. 47 // Import necessary html before running suite.
32 suiteSetup(function() { 48 suiteSetup(function() {
33 return PolymerTest.importHtml( 49 return PolymerTest.importHtml(
34 'chrome://md-settings/site_settings/site_details_permission.html' 50 'chrome://md-settings/site_settings/site_details_permission.html'
35 ); 51 );
36 }); 52 });
(...skipping 15 matching lines...) Expand all
52 return exceptionList[i].setting == 'allow'; 68 return exceptionList[i].setting == 'allow';
53 } 69 }
54 return false; 70 return false;
55 }; 71 };
56 72
57 function validatePermissionFlipWorks(origin, allow) { 73 function validatePermissionFlipWorks(origin, allow) {
58 MockInteractions.tap(allow ? testElement.$.allow : testElement.$.block); 74 MockInteractions.tap(allow ? testElement.$.allow : testElement.$.block);
59 return browserProxy.whenCalled('setCategoryPermissionForOrigin').then( 75 return browserProxy.whenCalled('setCategoryPermissionForOrigin').then(
60 function(arguments) { 76 function(arguments) {
61 assertEquals(origin, arguments[0]); 77 assertEquals(origin, arguments[0]);
62 assertEquals(origin, arguments[1]); 78 assertEquals('', arguments[1]);
63 assertEquals(testElement.category, arguments[2]); 79 assertEquals(testElement.category, arguments[2]);
64 assertEquals(allow ? 80 assertEquals(allow ?
65 settings.PermissionValues.ALLOW : 81 settings.PermissionValues.ALLOW :
66 settings.PermissionValues.BLOCK, arguments[3]); 82 settings.PermissionValues.BLOCK, arguments[3]);
67 }); 83 });
68 }; 84 };
69 85
70 test('empty state', function() { 86 test('empty state', function() {
71 browserProxy.setPrefs(prefsEmpty); 87 browserProxy.setPrefs(prefsEmpty);
72 testElement.category = settings.ContentSettingsTypes.CAMERA; 88 testElement.category = settings.ContentSettingsTypes.CAMERA;
73 testElement.site = { 89 testElement.site = {
74 origin: 'http://www.google.com', 90 origin: 'http://www.google.com',
75 embeddingOrigin: '', 91 embeddingOrigin: '',
76 }; 92 };
77 93
78 return browserProxy.whenCalled('getExceptionList').then(function() { 94 return browserProxy.whenCalled('getExceptionList').then(function() {
79 assertTrue(testElement.$.details.hidden); 95 assertTrue(testElement.$.details.hidden);
80 }); 96 });
81 }); 97 });
82 98
83 test('camera category', function() { 99 test('camera category', function() {
84 var origin = "https://foo-allow.com:443"; 100 var origin = "https://www.example.com";
85 browserProxy.setPrefs(prefs); 101 browserProxy.setPrefs(prefs);
86 testElement.category = settings.ContentSettingsTypes.CAMERA; 102 testElement.category = settings.ContentSettingsTypes.CAMERA;
87 testElement.site = { 103 testElement.site = {
88 origin: origin, 104 origin: origin,
89 embeddingOrigin: origin, 105 embeddingOrigin: '',
90 }; 106 };
91 107
92 return browserProxy.whenCalled('getExceptionList').then(function() { 108 return browserProxy.whenCalled('getExceptionList').then(function() {
93 assertFalse(testElement.$.details.hidden); 109 assertFalse(testElement.$.details.hidden);
94 110
95 var header = testElement.$.details.querySelector( 111 var header = testElement.$.details.querySelector(
96 '#permissionHeader'); 112 '#permissionHeader');
97 assertEquals('Camera', header.innerText.trim(), 113 assertEquals('Camera', header.innerText.trim(),
98 'Widget should be labelled correctly'); 114 'Widget should be labelled correctly');
99 115
100 // Flip the permission and validate that prefs stay in sync. 116 // Flip the permission and validate that prefs stay in sync.
101 return validatePermissionFlipWorks(origin, true); 117 return validatePermissionFlipWorks(origin, true);
102 }).then(function() { 118 }).then(function() {
103 browserProxy.resetResolver('setCategoryPermissionForOrigin'); 119 browserProxy.resetResolver('setCategoryPermissionForOrigin');
104 return validatePermissionFlipWorks(origin, false); 120 return validatePermissionFlipWorks(origin, false);
105 }).then(function() { 121 }).then(function() {
106 browserProxy.resetResolver('setCategoryPermissionForOrigin'); 122 browserProxy.resetResolver('setCategoryPermissionForOrigin');
107 return validatePermissionFlipWorks(origin, true); 123 return validatePermissionFlipWorks(origin, true);
108 }); 124 });
109 }); 125 });
110 126
127 test('cookies category', function() {
128 var origin = "https://www.example.com";
129 browserProxy.setPrefs(prefsCookies);
130 testElement.category = settings.ContentSettingsTypes.COOKIES;
131 testElement.site = {
132 origin: origin,
133 embeddingOrigin: '',
134 };
135
136 return browserProxy.whenCalled('getExceptionList').then(function() {
137 assertFalse(testElement.$.details.hidden);
138
139 var header = testElement.$.details.querySelector(
140 '#permissionHeader');
141 assertEquals('Cookies', header.innerText.trim(),
142 'Widget should be labelled correctly');
143
144 MockInteractions.tap(testElement.$.sessionOnly);
145 return browserProxy.whenCalled('setCategoryPermissionForOrigin');
146 }).then(function(arguments) {
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.
152 browserProxy.resetResolver('setCategoryPermissionForOrigin');
153 return validatePermissionFlipWorks(origin, true);
154 }).then(function() {
155 browserProxy.resetResolver('setCategoryPermissionForOrigin');
156 return validatePermissionFlipWorks(origin, false);
157 });
158 });
159
111 test('disappear on empty', function() { 160 test('disappear on empty', function() {
112 var origin = "https://foo-allow.com:443"; 161 var origin = "https://www.example.com";
113 browserProxy.setPrefs(prefs); 162 browserProxy.setPrefs(prefs);
114 testElement.category = settings.ContentSettingsTypes.CAMERA; 163 testElement.category = settings.ContentSettingsTypes.CAMERA;
115 testElement.site = { 164 testElement.site = {
116 origin: origin, 165 origin: origin,
117 embeddingOrigin: origin, 166 embeddingOrigin: '',
118 }; 167 };
119 168
120 return browserProxy.whenCalled('getExceptionList').then(function() { 169 return browserProxy.whenCalled('getExceptionList').then(function() {
121 assertFalse(testElement.$.details.hidden); 170 assertFalse(testElement.$.details.hidden);
122 171
123 browserProxy.setPrefs(prefsEmpty); 172 browserProxy.setPrefs(prefsEmpty);
124 return browserProxy.whenCalled('getExceptionList'); 173 return browserProxy.whenCalled('getExceptionList');
125 }).then(function() { 174 }).then(function() {
126 assertTrue(testElement.$.details.hidden); 175 assertTrue(testElement.$.details.hidden);
127 }); 176 });
128 }); 177 });
129 }); 178 });
130 } 179 }
131 return { 180 return {
132 registerTests: registerTests, 181 registerTests: registerTests,
133 }; 182 };
134 }); 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