166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Copyright (c) 2013 The Chromium Authors. All rights reserved.
266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Use of this source code is governed by a BSD-style license that can be
366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// found in the LICENSE file.
466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis'use strict';
666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('base.bbox2');
866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('ui.quad_view_viewport');
966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.unittest.testSuite('ui.quad_view_viewport', function() {
1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  var QuadViewViewport = ui.QuadViewViewport;
1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
136833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis  test('basicsHighDPIUnpadded', function() {
1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var bbox = new base.BBox2();
1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    bbox.addXY(0, 0);
1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    bbox.addXY(4000, 2000);
1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var vp = new QuadViewViewport(bbox.asRect(), 0.125, 0, 2);
1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(500, vp.worldWidthInDevicePixels_);
2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(250, vp.worldHeightInDevicePixels_);
2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(250, vp.layoutRect_.width);
2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(125, vp.layoutRect_.height);
2566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    // Top left.
2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(0, 0));
2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(0, tmp[0]);
2966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(0, tmp[1]);
3066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
3166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    // World center.
3266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(125, 62.5));
3366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(2000, tmp[0]);
3466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(1000, tmp[1]);
3566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
3666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    // Bottom right.
3766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(250, 125));
3866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(4000, tmp[0]);
3966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(2000, tmp[1]);
406833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis
416833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis    assertRectEquals(bbox.asRect(), vp.unpaddedWorldRect);
4266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  });
4366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
446833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis  test('basicsHighDPI', function() {
4566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var bbox = new base.BBox2();
4666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    bbox.addXY(0, 0);
4766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    bbox.addXY(4000, 2000);
4866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
4966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var vp = new QuadViewViewport(bbox.asRect(), 0.125, 0.1, 2);
5066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(550, vp.worldWidthInDevicePixels_);
5166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(300, vp.worldHeightInDevicePixels_);
5266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
5366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(275, vp.layoutRect_.width);
5466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(150, vp.layoutRect_.height);
5566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
5666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    // Top left.
5766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(0, 0));
5866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(-200, tmp[0]);
5966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(-200, tmp[1]);
6066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
6166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    // World center.
6266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(137.5, 75));
6366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(2000, tmp[0]);
6466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(1000, tmp[1]);
6566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis
6666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    // Bottom right.
6766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(275, 150));
6866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(4200, tmp[0]);
6966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis    assertEquals(2200, tmp[1]);
706833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis
716833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis    assertRectEquals(bbox.asRect(), vp.unpaddedWorldRect);
7266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis  });
7366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis});
74