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