Javascript  |  74行  |  2.13 KB

// Copyright (c) 2013 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.

'use strict';

base.require('base.bbox2');
base.require('ui.quad_view_viewport');

base.unittest.testSuite('ui.quad_view_viewport', function() {
  var QuadViewViewport = ui.QuadViewViewport;

  test('basicsHighDPIUnpadded', function() {
    var bbox = new base.BBox2();
    bbox.addXY(0, 0);
    bbox.addXY(4000, 2000);

    var vp = new QuadViewViewport(bbox.asRect(), 0.125, 0, 2);

    assertEquals(500, vp.worldWidthInDevicePixels_);
    assertEquals(250, vp.worldHeightInDevicePixels_);

    assertEquals(250, vp.layoutRect_.width);
    assertEquals(125, vp.layoutRect_.height);

    // Top left.
    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(0, 0));
    assertEquals(0, tmp[0]);
    assertEquals(0, tmp[1]);

    // World center.
    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(125, 62.5));
    assertEquals(2000, tmp[0]);
    assertEquals(1000, tmp[1]);

    // Bottom right.
    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(250, 125));
    assertEquals(4000, tmp[0]);
    assertEquals(2000, tmp[1]);

    assertRectEquals(bbox.asRect(), vp.unpaddedWorldRect);
  });

  test('basicsHighDPI', function() {
    var bbox = new base.BBox2();
    bbox.addXY(0, 0);
    bbox.addXY(4000, 2000);

    var vp = new QuadViewViewport(bbox.asRect(), 0.125, 0.1, 2);
    assertEquals(550, vp.worldWidthInDevicePixels_);
    assertEquals(300, vp.worldHeightInDevicePixels_);

    assertEquals(275, vp.layoutRect_.width);
    assertEquals(150, vp.layoutRect_.height);

    // Top left.
    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(0, 0));
    assertEquals(-200, tmp[0]);
    assertEquals(-200, tmp[1]);

    // World center.
    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(137.5, 75));
    assertEquals(2000, tmp[0]);
    assertEquals(1000, tmp[1]);

    // Bottom right.
    var tmp = vp.layoutPixelsToWorldPixels(vec2.createXY(275, 150));
    assertEquals(4200, tmp[0]);
    assertEquals(2200, tmp[1]);

    assertRectEquals(bbox.asRect(), vp.unpaddedWorldRect);
  });
});