Chromium Code Reviews| Index: remoting/webapp/unittests/client_session_unittest.js |
| diff --git a/remoting/webapp/unittests/client_session_unittest.js b/remoting/webapp/unittests/client_session_unittest.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f8e842850dcc0ab570e316065d9b00d197ec2cd9 |
| --- /dev/null |
| +++ b/remoting/webapp/unittests/client_session_unittest.js |
| @@ -0,0 +1,102 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +(function() { |
| + |
| +'use strict'; |
| + |
| +module('client_session'); |
| + |
| +function size(width, height) { |
| + return {width: width, height: height}; |
| +} |
| + |
| +function dpi(x, y) { |
| + return {x: x, y: y}; |
| +} |
| + |
| +test('choosePluginSize() chooses sensible sizes', |
| + function() { |
| + // Client and host w/ same DPI. |
|
Jamie
2015/02/04 23:18:30
I think these test cases need descriptions to make
Wez
2015/02/06 01:29:43
Yeah, I think splitting into a set of distinct tes
|
| + var pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 1.0, size(640, 480), dpi(96, 96), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(640, 480)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(1280, 900), 1.0, size(640, 480), dpi(96, 96), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(640, 480)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(1280, 1024), 1.0, size(640, 480), dpi(96, 96), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(1280, 960)); |
| + |
| + // High DPI client, low DPI host. |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 450), 2.0, size(640, 480), dpi(96, 96), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(600, 450)); |
|
Jamie
2015/02/04 23:18:30
It took me a while to work out where the 600 came
Wez
2015/02/06 01:29:43
Acknowledged.
|
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 2.0, size(640, 480), dpi(96, 96), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(640, 480)); |
| + |
| + // High DPI host, low DPI client. |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 1.0, size(640, 480), dpi(192, 192), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(640, 480)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 1.0, size(1024, 768), dpi(192, 192), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(640, 480)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(1024, 768), 1.0, size(640, 480), dpi(192, 192), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(640, 480)); |
| + |
| + // High DPI host, high DPI client. |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 2.0, size(640, 480), dpi(192, 192), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(640, 480)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 2.0, size(1024, 768), dpi(192, 192), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(512, 384)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(1024, 768), 2.0, size(640, 480), dpi(192, 192), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(960, 720)); |
| + |
| + // 150% DPI host, high DPI client. |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 2.0, size(640, 480), dpi(144, 144), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(640, 480)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 2.0, size(1024, 768), dpi(144, 144), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(512, 384)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(1024, 768), 2.0, size(640, 480), dpi(144, 144), 1.0, false, true); |
| + QUnit.deepEqual(pluginSize, size(960, 720)); |
| + |
| + // Shrink-to-fit disabled. |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 1.0, size(640, 480), dpi(96, 96), 1.0, false, false); |
| + QUnit.deepEqual(pluginSize, size(640, 480)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(1280, 1024), 1.0, size(640, 480), dpi(96, 96), 1.0, false, false); |
| + QUnit.deepEqual(pluginSize, size(1280, 960)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 1.0, size(1280, 1024), dpi(96, 96), 1.0, false, false); |
| + QUnit.deepEqual(pluginSize, size(1280, 1024)); |
| + |
| + pluginSize = remoting.ClientSession.choosePluginSize( |
| + size(640, 480), 2.0, size(1280, 1024), dpi(96, 96), 1.0, false, false); |
| + QUnit.deepEqual(pluginSize, size(1280, 1024)); |
| + |
| + // Full-screen multi-monitor handling. |
| +}); |
| + |
| +})(); |