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

Side by Side Diff: chrome/browser/ui/webui/downloads_ui_browsertest.js

Issue 23851007: Hide the "downloads" page policy disabled UI elements from supervised users (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: .... Created 7 years, 3 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/ui/webui/downloads_ui_browsertest.cc ('k') | chrome/chrome_tests.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 GEN('#include "chrome/browser/ui/webui/downloads_ui_browsertest.h"'); 5 GEN('#include "chrome/browser/ui/webui/downloads_ui_browsertest.h"');
6 6
7 /** @const */ var TOTAL_RESULT_COUNT = 25; 7 /** @const */ var TOTAL_RESULT_COUNT = 25;
8 8
9 /** 9 /**
10 * Test C++ fixture for downloads WebUI testing. 10 * Test C++ fixture for downloads WebUI testing.
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 download.received = 128; 80 download.received = 128;
81 81
82 return download; 82 return download;
83 }, 83 },
84 }; 84 };
85 85
86 // Test UI when removing entries is allowed. 86 // Test UI when removing entries is allowed.
87 TEST_F('BaseDownloadsWebUITest', 'deleteAllowed', function() { 87 TEST_F('BaseDownloadsWebUITest', 'deleteAllowed', function() {
88 // "Clear all" should be a link. 88 // "Clear all" should be a link.
89 var clearAllHolder = document.querySelectorAll('#clear-all-holder > a'); 89 var clearAllHolder = document.querySelectorAll('#clear-all-holder > a');
90 expectEquals(clearAllHolder.length, 1); 90 expectEquals(1, clearAllHolder.length);
91 91
92 // All the "Remove from list" items should be links. 92 // All the "Remove from list" items should be links.
93 var removeLinks = document.querySelectorAll( 93 var removeLinks = document.querySelectorAll(
94 '.controls > a.control-remove-link'); 94 '.controls > a.control-remove-link');
95 expectEquals(removeLinks.length, TOTAL_RESULT_COUNT); 95 expectEquals(TOTAL_RESULT_COUNT, removeLinks.length);
96 96
97 // There should be no disabled text "links". 97 // There should be no disabled text "links".
98 var disabledLinks = document.querySelectorAll('.disabled-link'); 98 var disabledLinks = document.querySelectorAll('.disabled-link');
99 expectEquals(disabledLinks.length, 0); 99 expectEquals(0, disabledLinks.length);
100 100
101 // The model is updated synchronously, even though the actual back-end removal 101 // The model is updated synchronously, even though the actual back-end removal
102 // (tested elsewhere) is asynchronous. 102 // (tested elsewhere) is asynchronous.
103 clearAll(); 103 clearAll();
104 expectEquals(downloads.size(), 0); 104 expectEquals(0, downloads.size());
105 105
106 // TODO(pamg): Mock out the back-end calls, so we can also test removing a 106 // TODO(pamg): Mock out the back-end calls, so we can also test removing a
107 // single item. 107 // single item.
108 testDone(); 108 testDone();
109 }); 109 });
110 110
111 /** 111 /**
112 * Fixture for Downloads WebUI testing when deletions are prohibited. 112 * Fixture for Downloads WebUI testing when deletions are prohibited.
113 * @extends {BaseDownloadsWebUITest} 113 * @extends {BaseDownloadsWebUITest}
114 * @constructor 114 * @constructor
115 */ 115 */
116 function DownloadsWebUIDeleteProhibitedTest() {} 116 function DownloadsWebUIDeleteProhibitedTest() {}
117 117
118 DownloadsWebUIDeleteProhibitedTest.prototype = { 118 DownloadsWebUIDeleteProhibitedTest.prototype = {
119 __proto__: BaseDownloadsWebUITest.prototype, 119 __proto__: BaseDownloadsWebUITest.prototype,
120 120
121 /** @override */ 121 /** @override */
122 testGenPreamble: function() { 122 testGenPreamble: function() {
123 GEN(' SetDeleteAllowed(false);'); 123 GEN(' SetDeleteAllowed(false);');
124 }, 124 },
125
126 /**
127 * Asserts the correctness of the state of the UI elements
128 * that delete the download history when deletion is prohibited.
129 * @param expectControlsHidden True if the controls to delete download history
Bernhard Bauer 2013/09/06 11:23:26 Add the type?
ibra 2013/09/06 16:56:42 Done.
130 * are expected to be hidden and false otherwise.
131 */
132 deleteProhibitedTestHelper: function(expectControlsHidden) {
Bernhard Bauer 2013/09/06 11:23:26 This is not the best name for the function; does i
133 // "Clear all" should not be a link.
134 var clearAllText = document.querySelectorAll(
135 '#clear-all-holder.disabled-link');
136 expectEquals(1, clearAllText.length);
137 expectEquals('SPAN', clearAllText[0].nodeName);
138 expectEquals(expectControlsHidden, clearAllText[0].hidden);
139
140 // There should be no "Clear all" link.
141 var clearAllLinks = document.querySelectorAll('clear-all-link');
Bernhard Bauer 2013/09/06 11:23:26 This selects all <clear-all-link> elements, which
ibra 2013/09/06 14:18:46 As far as I understand the above test goes through
Bernhard Bauer 2013/09/06 15:12:36 No, it doesn't. This test selects all <clear-all-l
142 expectEquals(0, clearAllLinks.length);
143
144 // All the "Remove from list" items should be text. Check only one, to avoid
145 // spam in case of failure.
146 var removeTexts = document.querySelectorAll('.controls > .disabled-link');
147 expectEquals(TOTAL_RESULT_COUNT, removeTexts.length);
148 expectEquals('SPAN', removeTexts[0].nodeName);
149 expectEquals(expectControlsHidden, removeTexts[0].hidden);
150
151 // There should be no "Remove from list" links.
152 var removeLinks = document.querySelectorAll('control-remove-link');
153 expectEquals(0, removeLinks.length);
154
155 // Attempting to remove items anyway should fail.
156 // The model would have been cleared synchronously, even though the actual
157 // back-end removal (also disabled, but tested elsewhere) is asynchronous.
158 clearAll();
159 expectEquals(TOTAL_RESULT_COUNT, downloads.size());
160 }
125 }; 161 };
126 162
127 // Test UI when removing entries is prohibited. 163 // Test UI when removing entries is prohibited.
128 TEST_F('DownloadsWebUIDeleteProhibitedTest', 'deleteProhibited', function() { 164 TEST_F('DownloadsWebUIDeleteProhibitedTest', 'deleteProhibited', function() {
129 // "Clear all" should not be a link. 165 this.deleteProhibitedTestHelper(false);
130 var clearAllText = document.querySelectorAll(
131 '#clear-all-holder.disabled-link');
132 expectEquals(clearAllText.length, 1);
133 expectEquals(clearAllText[0].nodeName, 'SPAN');
134
135 // There should be no "Clear all" link.
136 var clearAllLinks = document.querySelectorAll('clear-all-link');
137 expectEquals(clearAllLinks.length, 0);
138
139 // All the "Remove from list" items should be text. Check only one, to avoid
140 // spam in case of failure.
141 var removeTexts = document.querySelectorAll('.controls > .disabled-link');
142 expectEquals(removeTexts.length, TOTAL_RESULT_COUNT);
143 expectEquals(removeTexts[0].nodeName, 'SPAN');
144
145 // There should be no "Remove from list" links.
146 var removeLinks = document.querySelectorAll('control-remove-link');
147 expectEquals(removeLinks.length, 0);
148
149 // Attempting to remove items anyway should fail.
150 // The model would have been cleared synchronously, even though the actual
151 // back-end removal (also disabled, but tested elsewhere) is asynchronous.
152 clearAll();
153 expectEquals(downloads.size(), TOTAL_RESULT_COUNT);
154
155 // TODO(pamg): Mock out the back-end calls, so we can also test removing a 166 // TODO(pamg): Mock out the back-end calls, so we can also test removing a
156 // single item. 167 // single item.
157 testDone(); 168 testDone();
158 }); 169 });
170
171 /**
172 * Fixture for Downloads WebUI testing for a supervised user.
173 * @extends {DownloadsWebUIDeleteProhibitedTest}
174 * @constructor
175 */
176 function DownloadsWebUIForSupervisedUsersTest() {}
177
178 DownloadsWebUIForSupervisedUsersTest.prototype = {
179 __proto__: DownloadsWebUIDeleteProhibitedTest.prototype,
180
181 /** @override */
182 testGenPreamble: function() {
183 GEN(' ChangeProfileToSupervised();');
184 },
185 };
186
187 TEST_F('DownloadsWebUIForSupervisedUsersTest', 'supervisedUsers', function() {
Bernhard Bauer 2013/09/06 11:23:26 Test cases should start with an uppercase letter (
ibra 2013/09/06 16:56:42 Done.
188 this.deleteProhibitedTestHelper(true);
189 testDone();
190 });
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/downloads_ui_browsertest.cc ('k') | chrome/chrome_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698