UNPKG

chrome-devtools-frontend

Version:
43 lines (36 loc) 1.48 kB
// Copyright 2020 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. import {applyMatrixToPoint, buildPath, emptyBounds} from './highlight_common.js'; describe('highlight common helper', () => { it('can build a path and set bounds', () => { const bounds = emptyBounds(); const highlightPath = ['M', 100, 60, 'L', 420, 60, 'L', 420, 204, 'L', 100, 204, 'Z']; buildPath(highlightPath, bounds, 1); assert.strictEqual(bounds.minX, 100); assert.strictEqual(bounds.minY, 60); assert.strictEqual(bounds.maxX, 420); assert.strictEqual(bounds.maxY, 204); assert.deepEqual(bounds.leftmostXForY, {[60]: 100, [204]: 100}); assert.deepEqual(bounds.bottommostYForX, {[100]: 204, [420]: 204}); assert.deepEqual(bounds.rightmostXForY, {[60]: 420, [204]: 420}); assert.deepEqual(bounds.topmostYForX, {[100]: 60, [420]: 60}); }); it('can map points using writing-mode matrices', () => { const point = {x: 0, y: 0}; const matrix = new DOMMatrix(); assert.deepEqual( applyMatrixToPoint(point, matrix), {x: 0, y: 0}, 'The identity matrix does not move the point', ); point.x = 10; point.y = 10; matrix.translateSelf(10, 10, 0); assert.deepEqual( applyMatrixToPoint(point, matrix), {x: 20, y: 20}, 'A simple translation matrix does transform a point', ); }); });