// 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); }); });