| Index: chrome/test/data/extensions/api_test/automation/tests/tabs/bounds_for_range.js
|
| diff --git a/chrome/test/data/extensions/api_test/automation/tests/tabs/bounds_for_range.js b/chrome/test/data/extensions/api_test/automation/tests/tabs/bounds_for_range.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..73bfc35c1ae7420c9cb884a89c11e78f7f97d254
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/api_test/automation/tests/tabs/bounds_for_range.js
|
| @@ -0,0 +1,86 @@
|
| +// Copyright 2015 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.
|
| +
|
| +var RoleType = chrome.automation.RoleType;
|
| +
|
| +var allTests = [
|
| + function boundsForRange() {
|
| + function getNthListItemInlineTextBox(index) {
|
| + var list = rootNode.find({role: RoleType.list});
|
| + var listItem = list.children[index];
|
| + assertEq(RoleType.listItem, listItem.role);
|
| + var staticText = listItem.children[1];
|
| + assertEq(RoleType.staticText, staticText.role);
|
| + var inlineTextBox = staticText.firstChild;
|
| + assertEq(RoleType.inlineTextBox, inlineTextBox.role);
|
| + return inlineTextBox;
|
| + }
|
| +
|
| + // Left-to-right.
|
| + var ltr = getNthListItemInlineTextBox(0);
|
| + var bounds = ltr.location;
|
| + var firstHalf = ltr.boundsForRange(0, 4);
|
| + var secondHalf = ltr.boundsForRange(4, ltr.name.length);
|
| + assertEq(bounds.top, firstHalf.top);
|
| + assertEq(bounds.left, firstHalf.left);
|
| + assertEq(bounds.height, firstHalf.height);
|
| + assertEq(bounds.top, secondHalf.top);
|
| + assertEq(bounds.height, secondHalf.height);
|
| + assertTrue(secondHalf.left > bounds.left);
|
| + assertTrue(firstHalf.width < bounds.width);
|
| + assertTrue(secondHalf.width < bounds.width);
|
| + assertTrue(Math.abs(bounds.width - firstHalf.width - secondHalf.width) < 3);
|
| +
|
| + // Right-to-left.
|
| + var rtl = getNthListItemInlineTextBox(1);
|
| + bounds = rtl.location;
|
| + firstHalf = rtl.boundsForRange(0, 4);
|
| + secondHalf = rtl.boundsForRange(4, rtl.name.length);
|
| + assertEq(bounds.top, secondHalf.top);
|
| + assertTrue(Math.abs(bounds.left - secondHalf.left) < 3);
|
| + assertEq(bounds.height, secondHalf.height);
|
| + assertEq(bounds.top, firstHalf.top);
|
| + assertEq(bounds.height, firstHalf.height);
|
| + assertTrue(firstHalf.left > bounds.left);
|
| + assertTrue(secondHalf.width < bounds.width);
|
| + assertTrue(firstHalf.width < bounds.width);
|
| + assertTrue(Math.abs(bounds.width - secondHalf.width - firstHalf.width) < 3);
|
| +
|
| + // Top-to-bottom.
|
| + var ttb = getNthListItemInlineTextBox(2);
|
| + var bounds = ttb.location;
|
| + var firstHalf = ttb.boundsForRange(0, 4);
|
| + var secondHalf = ttb.boundsForRange(4, ttb.name.length);
|
| + assertEq(bounds.left, firstHalf.left);
|
| + assertEq(bounds.top, firstHalf.top);
|
| + assertEq(bounds.width, firstHalf.width);
|
| + assertEq(bounds.left, secondHalf.left);
|
| + assertEq(bounds.width, secondHalf.width);
|
| + assertTrue(secondHalf.top > bounds.top);
|
| + assertTrue(firstHalf.height < bounds.height);
|
| + assertTrue(secondHalf.height < bounds.height);
|
| + assertTrue(Math.abs(bounds.height - firstHalf.height - secondHalf.height)
|
| + < 3);
|
| +
|
| + // Bottom-to-top.
|
| + var btt = getNthListItemInlineTextBox(3);
|
| + bounds = btt.location;
|
| + firstHalf = btt.boundsForRange(0, 4);
|
| + secondHalf = btt.boundsForRange(4, btt.name.length);
|
| + assertEq(bounds.left, secondHalf.left);
|
| + assertTrue(Math.abs(bounds.top - secondHalf.top) < 3);
|
| + assertEq(bounds.width, secondHalf.width);
|
| + assertEq(bounds.left, firstHalf.left);
|
| + assertEq(bounds.width, firstHalf.width);
|
| + assertTrue(firstHalf.top > bounds.top);
|
| + assertTrue(secondHalf.height < bounds.height);
|
| + assertTrue(firstHalf.height < bounds.height);
|
| + assertTrue(Math.abs(bounds.height - secondHalf.height - firstHalf.height)
|
| + < 3);
|
| + chrome.test.succeed();
|
| +
|
| + }
|
| +];
|
| +
|
| +setUpAndRunTests(allTests, 'bounds_for_range.html');
|
|
|