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

Side by Side Diff: remoting/webapp/unittests/desktop_viewport_unittest.js

Issue 984203003: Move mocks and unittest JS files to sit alongside production code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 9 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
(Empty)
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
3 // found in the LICENSE file.
4
5 (function() {
6
7 'use strict';
8
9 /**
10 * @param {number} width
11 * @param {number} height
12 * @return {{width:number, height:number}}
13 */
14 function size(width, height) {
15 return {width: width, height: height};
16 }
17
18 /**
19 * @param {number} x
20 * @param {number} y
21 * @return {{x:number, y:number}}
22 */
23 function dpi(x, y) {
24 return {x: x, y: y};
25 }
26
27 module('DesktopViewport');
28
29 test('choosePluginSize() handles low-DPI client & host',
30 function() {
31 // 1. Client & host size the same.
32 var pluginSize = remoting.DesktopViewport.choosePluginSize(
33 size(640, 480), 1.0, size(640, 480), dpi(96, 96), 1.0, false, true);
34 QUnit.deepEqual(pluginSize, size(640, 480));
35
36 // 2. Client logical dimensions smaller than host's.
37 pluginSize = remoting.DesktopViewport.choosePluginSize(
38 size(640, 480), 1.0, size(1024, 600), dpi(96, 96), 1.0, false, true);
39 QUnit.deepEqual(pluginSize, size(640, (640 / 1024) * 600));
40
41 // 3. Client Y dimension larger than host's, X dimension smaller.
42 pluginSize = remoting.DesktopViewport.choosePluginSize(
43 size(640, 640), 1.0, size(1024, 600), dpi(96, 96), 1.0, false, true);
44 QUnit.deepEqual(pluginSize, size(640, (640 / 1024) * 600));
45
46 // 4. Client dimensions larger than host's by <2x.
47 pluginSize = remoting.DesktopViewport.choosePluginSize(
48 size(1280, 900), 1.0, size(640, 480), dpi(96, 96), 1.0, false, true);
49 QUnit.deepEqual(pluginSize, size(640, 480));
50
51 // 5. Client dimensions larger than host's by >2x.
52 pluginSize = remoting.DesktopViewport.choosePluginSize(
53 size(1280, 1024), 1.0, size(640, 480), dpi(96, 96), 1.0, false, true);
54 QUnit.deepEqual(pluginSize, size(2 * 640, 2 * 480));
55
56 // 6. Client X dimension larger than host's, Y dimension smaller.
57 pluginSize = remoting.DesktopViewport.choosePluginSize(
58 size(1152, 600), 1.0, size(1024, 768), dpi(96, 96), 1.0, false, true);
59 QUnit.deepEqual(pluginSize, size(1024 * (600 / 768), 600));
60 });
61
62 test('choosePluginSize() handles high-DPI client, low-DPI host',
63 function() {
64 // 1. Client & host size the same.
65 var pluginSize = remoting.DesktopViewport.choosePluginSize(
66 size(640, 480), 2.0, size(640, 480), dpi(96, 96), 1.0, false, true);
67 QUnit.deepEqual(pluginSize, size(640, 480));
68
69 // 2. Client logical dimensions smaller than host's.
70 pluginSize = remoting.DesktopViewport.choosePluginSize(
71 size(640, 480), 2.0, size(1024, 600), dpi(96, 96), 1.0, false, true);
72 QUnit.deepEqual(pluginSize, size(640, (640 / 1024) * 600));
73
74 // 3. Client Y dimension larger than host's, X dimension smaller.
75 pluginSize = remoting.DesktopViewport.choosePluginSize(
76 size(640, 640), 2.0, size(1024, 600), dpi(96, 96), 1.0, false, true);
77 QUnit.deepEqual(pluginSize, size(640, (640 / 1024) * 600));
78
79 // 4. Client logical dimensions larger than host's by <2x.
80 // Host dimensions fit into the client's _device_ dimensions 3x, so the
81 // size in client DIPs should be 1:3/2.
82 pluginSize = remoting.DesktopViewport.choosePluginSize(
83 size(1280, 900), 2.0, size(640, 480), dpi(96, 96), 1.0, false, true);
84 QUnit.deepEqual(pluginSize, size(640 * 3 / 2.0, 480 * 3 / 2.0));
85
86 // 5. Client dimensions larger than host's by >2x.
87 pluginSize = remoting.DesktopViewport.choosePluginSize(
88 size(1280, 1024), 2.0, size(640, 480), dpi(96, 96), 1.0, false, true);
89 QUnit.deepEqual(pluginSize, size(1280, (1280 / 640) * 480));
90
91 // 6. Client X dimension larger than host's, Y dimension smaller.
92 pluginSize = remoting.DesktopViewport.choosePluginSize(
93 size(1152, 600), 2.0, size(1024, 768), dpi(96, 96), 1.0, false, true);
94 QUnit.deepEqual(pluginSize, size(1024 * (600 / 768), 600));
95 });
96
97 test('choosePluginSize() handles low-DPI client, high-DPI host',
98 function() {
99 // 1. Client & host size the same.
100 var pluginSize = remoting.DesktopViewport.choosePluginSize(
101 size(640, 480), 1.0, size(640, 480), dpi(192, 192), 1.0, false, true);
102 QUnit.deepEqual(pluginSize, size(640, 480));
103
104 // 2. Client logical dimensions smaller than host's.
105 pluginSize = remoting.DesktopViewport.choosePluginSize(
106 size(640, 480), 1.0, size(1024, 600), dpi(192, 192), 1.0, false, true);
107 QUnit.deepEqual(pluginSize, size(640, (640 / 1024) * 600));
108
109 // 3. Client Y dimension larger than host's, X dimension smaller.
110 pluginSize = remoting.DesktopViewport.choosePluginSize(
111 size(640, 640), 1.0, size(1024, 600), dpi(192, 192), 1.0, false, true);
112 QUnit.deepEqual(pluginSize, size(640, (640 / 1024) * 600));
113
114 // 4. Client dimensions larger than host's by <2x.
115 pluginSize = remoting.DesktopViewport.choosePluginSize(
116 size(1280, 900), 1.0, size(640, 480), dpi(192, 192), 1.0, false, true);
117 QUnit.deepEqual(pluginSize, size(640, 480));
118
119 // 5. Client dimensions larger than host's by >2x.
120 pluginSize = remoting.DesktopViewport.choosePluginSize(
121 size(1280, 1024), 1.0, size(640, 480), dpi(192, 192), 1.0, false, true);
122 QUnit.deepEqual(pluginSize, size(1280, (1280 / 640) * 480));
123
124 // 6. Client X dimension larger than host's, Y dimension smaller.
125 pluginSize = remoting.DesktopViewport.choosePluginSize(
126 size(1152, 600), 1.0, size(1024, 768), dpi(192, 192), 1.0, false, true);
127 QUnit.deepEqual(pluginSize, size(1024 * (600 / 768), 600));
128 });
129
130 test('choosePluginSize() handles high-DPI client and host',
131 function() {
132 // 1. Client & host size the same.
133 var pluginSize = remoting.DesktopViewport.choosePluginSize(
134 size(640, 480), 2.0, size(640, 480), dpi(192, 192), 1.0, false, true);
135 QUnit.deepEqual(pluginSize, size(640, 480));
136
137 // 2. Client logical dimensions smaller than host's.
138 pluginSize = remoting.DesktopViewport.choosePluginSize(
139 size(640, 480), 2.0, size(1024, 600), dpi(192, 192), 1.0, false, true);
140 QUnit.deepEqual(pluginSize, size(1024 / 2.0, 600 / 2.0));
141
142 // 3. Client Y dimension larger than host's, X dimension smaller.
143 pluginSize = remoting.DesktopViewport.choosePluginSize(
144 size(640, 640), 2.0, size(1024, 600), dpi(192, 192), 1.0, false, true);
145 QUnit.deepEqual(pluginSize, size(1024 / 2.0, 600 / 2.0));
146
147 // 4. Client logical dimensions larger than host's by <2x.
148 // Host dimensions fit into the client's _device_ dimensions 3x, so the
149 // size in client DIPs should be 1:3/2.
150 pluginSize = remoting.DesktopViewport.choosePluginSize(
151 size(1280, 900), 2.0, size(640, 480), dpi(192, 192), 1.0, false, true);
152 QUnit.deepEqual(pluginSize, size(640 * 3 / 2.0, 480 * 3 / 2.0));
153
154 // 5. Client dimensions larger than host's by >2x.
155 pluginSize = remoting.DesktopViewport.choosePluginSize(
156 size(1280, 1024), 2.0, size(640, 480), dpi(192, 192), 1.0, false, true);
157 QUnit.deepEqual(pluginSize, size(1280, (1280 / 640) * 480));
158
159 // 6. Client X dimension larger than host's, Y dimension smaller.
160 pluginSize = remoting.DesktopViewport.choosePluginSize(
161 size(1152, 600), 2.0, size(1024, 768), dpi(192, 192), 1.0, false, true);
162 QUnit.deepEqual(pluginSize, size(1024 / 2.0, 768 / 2.0));
163 });
164
165 test('choosePluginSize() handles high-DPI client, 150% DPI host',
166 function() {
167 // 1. Client & host size the same.
168 var pluginSize = remoting.DesktopViewport.choosePluginSize(
169 size(640, 480), 2.0, size(640, 480), dpi(144, 144), 1.0, false, true);
170 QUnit.deepEqual(pluginSize, size(640, 480));
171
172 // 2. Client dimensions smaller than host's.
173 pluginSize = remoting.DesktopViewport.choosePluginSize(
174 size(640, 480), 2.0, size(1024, 600), dpi(144, 144), 1.0, false, true);
175 QUnit.deepEqual(pluginSize, size(1024 / 2.0, 600 / 2.0));
176
177 // 3. Client Y dimension larger than host's, X dimension smaller.
178 pluginSize = remoting.DesktopViewport.choosePluginSize(
179 size(640, 640), 2.0, size(1024, 600), dpi(144, 144), 1.0, false, true);
180 QUnit.deepEqual(pluginSize, size(1024 / 2.0, 600 / 2.0));
181
182 // 4. Client dimensions larger than host's by <2x.
183 // Host dimensions fit into the client's _device_ dimensions 3x, so the
184 // size in client DIPs should be 1:3/2.
185 pluginSize = remoting.DesktopViewport.choosePluginSize(
186 size(1280, 900), 2.0, size(640, 480), dpi(144, 144), 1.0, false, true);
187 QUnit.deepEqual(pluginSize, size(640 * 3 / 2.0, 480 * 3 / 2.0));
188
189 // 5. Client dimensions larger than host's by >2x.
190 pluginSize = remoting.DesktopViewport.choosePluginSize(
191 size(1280, 1024), 2.0, size(640, 480), dpi(144, 144), 1.0, false, true);
192 QUnit.deepEqual(pluginSize, size(1280, (1280 / 640) * 480));
193
194 // 6. Client X dimension larger than host's, Y dimension smaller.
195 pluginSize = remoting.DesktopViewport.choosePluginSize(
196 size(1152, 600), 2.0, size(1024, 768), dpi(144, 144), 1.0, false, true);
197 QUnit.deepEqual(pluginSize, size(1024 / 2.0, 768 / 2.0));
198 });
199
200 test('choosePluginSize() handles high-DPI client, 125% DPI host',
201 function() {
202 // 1. Client & host size the same.
203 var pluginSize = remoting.DesktopViewport.choosePluginSize(
204 size(640, 480), 2.0, size(640, 480), dpi(120, 120), 1.0, false, true);
205 QUnit.deepEqual(pluginSize, size(640, 480));
206
207 // 2. Client dimensions smaller than host's.
208 pluginSize = remoting.DesktopViewport.choosePluginSize(
209 size(640, 480), 2.0, size(1024, 600), dpi(120, 120), 1.0, false, true);
210 QUnit.deepEqual(pluginSize, size(640, 600 * (640 / 1024)));
211
212 // 3. Client Y dimension larger than host's, X dimension smaller.
213 pluginSize = remoting.DesktopViewport.choosePluginSize(
214 size(640, 640), 2.0, size(1024, 600), dpi(120, 120), 1.0, false, true);
215 QUnit.deepEqual(pluginSize, size(640, 600 * (640 / 1024)));
216
217 // 4. Client dimensions larger than host's by <2x.
218 // Host dimensions fit into the client's _device_ dimensions 3x, so the
219 // size in client DIPs should be 1:3/2.
220 pluginSize = remoting.DesktopViewport.choosePluginSize(
221 size(1280, 900), 2.0, size(640, 480), dpi(120, 120), 1.0, false, true);
222 QUnit.deepEqual(pluginSize, size(640 * 3 / 2.0, 480 * 3 / 2.0));
223
224 // 5. Client dimensions larger than host's by >2x.
225 pluginSize = remoting.DesktopViewport.choosePluginSize(
226 size(1280, 1024), 2.0, size(640, 480), dpi(120, 120), 1.0, false, true);
227 QUnit.deepEqual(pluginSize, size(1280, (1280 / 640) * 480));
228
229 // 6. Client X dimension larger than host's, Y dimension smaller.
230 pluginSize = remoting.DesktopViewport.choosePluginSize(
231 size(1152, 600), 2.0, size(1024, 768), dpi(120, 120), 1.0, false, true);
232 QUnit.deepEqual(pluginSize, size(1024 * (600 / 768), 600));
233 });
234
235 test('choosePluginSize() with shrink-to-fit disabled',
236 function() {
237 // 1. Client & host size the same.
238 var pluginSize = remoting.DesktopViewport.choosePluginSize(
239 size(640, 480), 1.0, size(640, 480), dpi(96, 96), 1.0, false, false);
240 QUnit.deepEqual(pluginSize, size(640, 480));
241
242 // 2. Client logical dimensions smaller than host's.
243 pluginSize = remoting.DesktopViewport.choosePluginSize(
244 size(640, 480), 1.0, size(1024, 600), dpi(96, 96), 1.0, false, false);
245 QUnit.deepEqual(pluginSize, size(1024, 600));
246
247 // 3. Client dimensions larger than host's by <2x.
248 pluginSize = remoting.DesktopViewport.choosePluginSize(
249 size(1280, 900), 1.0, size(640, 480), dpi(96, 96), 1.0, false, false);
250 QUnit.deepEqual(pluginSize, size(640, 480));
251
252 // 4. Client dimensions larger than host's by >2x.
253 pluginSize = remoting.DesktopViewport.choosePluginSize(
254 size(1280, 1024), 1.0, size(640, 480), dpi(96, 96), 1.0, false, false);
255 QUnit.deepEqual(pluginSize, size(1280, (1280 / 640) * 480));
256
257 // 5. Client smaller than host, client high-DPI, host low-DPI.
258 pluginSize = remoting.DesktopViewport.choosePluginSize(
259 size(640, 480), 2.0, size(1024, 600), dpi(96, 96), 1.0, false, false);
260 QUnit.deepEqual(pluginSize, size(1024, 600));
261
262 // 6. Client smaller than host, client low-DPI, host high-DPI.
263 pluginSize = remoting.DesktopViewport.choosePluginSize(
264 size(640, 480), 1.0, size(1024, 600), dpi(192, 192), 1.0, false, false);
265 QUnit.deepEqual(pluginSize, size(1024, 600));
266
267 // 7. Client smaller than host, both high-DPI.
268 pluginSize = remoting.DesktopViewport.choosePluginSize(
269 size(640, 480), 2.0, size(1024, 600), dpi(192, 192), 1.0, false, false);
270 QUnit.deepEqual(pluginSize, size(512, (512 / 1024) * 600));
271
272 // 8. Client smaller than host, client high-DPI, host 150% DPI.
273 pluginSize = remoting.DesktopViewport.choosePluginSize(
274 size(640, 480), 2.0, size(1024, 600), dpi(144, 144), 1.0, false, false);
275 QUnit.deepEqual(pluginSize, size(512, (512 / 1024) * 600));
276 });
277
278 test('choosePluginSize() full-screen multi-monitor optimization',
279 function() {
280 // Each test has a host sized to approximate two or more monitors.
281
282 // 1. Client & host per-monitor dimensions match, two monitors side-by-side.
283 var pluginSize = remoting.DesktopViewport.choosePluginSize(
284 size(640, 480), 1.0, size(2 * 640, 480), dpi(96, 96), 1.0, true, true);
285 QUnit.deepEqual(pluginSize, size(2 * 640, 480));
286
287 // 2. Client & host per-monitor dimensions match, two monitors stacked.
288 pluginSize = remoting.DesktopViewport.choosePluginSize(
289 size(640, 480), 1.0, size(640, 2 * 480), dpi(96, 96), 1.0, true, true);
290 QUnit.deepEqual(pluginSize, size(640, 2 * 480));
291
292 // 3. Client larger, two monitors stacked.
293 pluginSize = remoting.DesktopViewport.choosePluginSize(
294 size(1024, 768), 1.0, size(640, 2 * 480), dpi(96, 96), 1.0, true, true);
295 QUnit.deepEqual(pluginSize, size(640 * (768 / (2 * 480)), 768));
296
297 // 4. Client smaller, two monitors stacked.
298 pluginSize = remoting.DesktopViewport.choosePluginSize(
299 size(640, 480), 1.0, size(1024, 2 * 768), dpi(96, 96), 1.0, true, true);
300 QUnit.deepEqual(pluginSize, size(640, 2 * 768 * (640 / 1024)));
301
302 // 5. Client wide-screen, host two standard monitors stacked.
303 pluginSize = remoting.DesktopViewport.choosePluginSize(
304 size(1920, 1080), 1.0, size(1024, 2 * 768), dpi(96, 96), 1.0,
305 true, true);
306 QUnit.deepEqual(pluginSize, size(1024 * (1080 / (2 * 768)), 1080));
307
308 // 6. Client & host per-monitor dimensions match, two monitors stacked,
309 // high-DPI client.
310 pluginSize = remoting.DesktopViewport.choosePluginSize(
311 size(640, 480), 2.0, size(640, 2 * 480), dpi(96, 96), 1.0, true, true);
312 QUnit.deepEqual(pluginSize, size(640, 2 * 480));
313
314 // 7. Client & host per-monitor dimensions match, two monitors stacked,
315 // high-DPI host.
316 pluginSize = remoting.DesktopViewport.choosePluginSize(
317 size(640, 480), 1.0, size(640, 2 * 480), dpi(192, 192),
318 1.0, true, true);
319 QUnit.deepEqual(pluginSize, size(640, 2 * 480));
320
321 // 8. Client & host per-monitor dimensions match, two monitors stacked,
322 // high-DPI client & host.
323 pluginSize = remoting.DesktopViewport.choosePluginSize(
324 size(640, 480), 2.0, size(640, 2 * 480), dpi(192, 192),
325 1.0, true, true);
326 QUnit.deepEqual(pluginSize, size(640 / 2.0, (2 * 480) / 2.0));
327 });
328
329 })();
OLDNEW
« no previous file with comments | « remoting/webapp/unittests/chrome_mocks.js ('k') | remoting/webapp/unittests/dns_blackhole_checker_unittest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698