Commit 71481f0a authored by Morten Stenshorne's avatar Morten Stenshorne Committed by Commit Bot

[LayoutNG] Fix PositionForPoint() when within range in one axis only.

This is a partial revert of patch set 4 in CL:2515399 (to the initial
patch set). The change in patch set 4 was done in order to improve
readability, but with one oversight: We'd set a non-zero distance when
actually within range, since we'd always subtract one edge from another.

This helps fix 6 tests, but the tests themselves also had to be updated,
because legacy PositionForPoint() for multicol is broken when hitting
above or below columns, in that it assumed UNIX / Mac editing behavior,
which makes a difference when hitting just above the character at e.g.
offset 2 in the first column. UNIX / Mac would return 0 as startOffset
("above the first line... okay, we're before the text, then"), while
Windows should return 2 ("we're above the first line, but the nearest
character is the one at offset 2 - use that"). Force Windows editing
behavior in the tests, to fix this.

The PositionForPoint() implementation for LayoutNG multicol is now
behaving way better than the legacy engine, which allows us to add the
missing parts to those tests (what we tested for vertical-rl was really
limited due to legacy bugs). Legacy was also off-by-one for RTL columns,
when hitting near the middle of a column gap (assigning one pixel too
many to one column, and one too little to the other column).

Rebaseline the tests. Everything now passes in LayoutNG, but there are
obviously failures when running with the legacy engine now.

Bug: 829028
Change-Id: Iecdecf1454318e645fa91bac29119df0fc7ca377
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2526402Reviewed-by: default avatarIan Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: default avatarKoji Ishii <kojii@chromium.org>
Reviewed-by: default avatarYoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#825689}
parent a2f6e394
...@@ -777,24 +777,23 @@ PositionWithAffinity NGPhysicalBoxFragment::PositionForPoint( ...@@ -777,24 +777,23 @@ PositionWithAffinity NGPhysicalBoxFragment::PositionForPoint(
continue; continue;
PhysicalRect child_rect(child.offset, child->Size()); PhysicalRect child_rect(child.offset, child->Size());
if (child_rect.Contains(point)) {
// We actually hit a child. We're done.
closest_child = child;
break;
}
LayoutUnit horizontal_distance; LayoutUnit horizontal_distance;
if (child_rect.X() > point_rect.X()) if (child_rect.X() > point_rect.X())
horizontal_distance = child_rect.X() - point_rect.X(); horizontal_distance = child_rect.X() - point_rect.X();
else else if (point_rect.Right() > child_rect.Right())
horizontal_distance = point_rect.Right() - child_rect.Right(); horizontal_distance = point_rect.Right() - child_rect.Right();
LayoutUnit vertical_distance; LayoutUnit vertical_distance;
if (child_rect.Y() > point_rect.Y()) if (child_rect.Y() > point_rect.Y())
vertical_distance = child_rect.Y() - point_rect.Y(); vertical_distance = child_rect.Y() - point_rect.Y();
else else if (point_rect.Bottom() > child_rect.Bottom())
vertical_distance = point_rect.Bottom() - child_rect.Bottom(); vertical_distance = point_rect.Bottom() - child_rect.Bottom();
if (!horizontal_distance && !vertical_distance) {
// We actually hit a child. We're done.
closest_child = child;
break;
}
const LayoutUnit distance = horizontal_distance * horizontal_distance + const LayoutUnit distance = horizontal_distance * horizontal_distance +
vertical_distance * vertical_distance; vertical_distance * vertical_distance;
......
...@@ -1072,8 +1072,6 @@ crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/mult ...@@ -1072,8 +1072,6 @@ crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/mult
crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/abspos-after-break-after.html [ Failure ] crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/abspos-after-break-after.html [ Failure ]
crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/abspos-new-width-rebalance.html [ Crash Failure ] crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/abspos-new-width-rebalance.html [ Crash Failure ]
crbug.com/1066616 virtual/layout_ng_block_frag/fast/multicol/border-radius-clipped-layer-second-column.html [ Failure ] crbug.com/1066616 virtual/layout_ng_block_frag/fast/multicol/border-radius-clipped-layer-second-column.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/caret-range-outside-columns.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/caret-range-outside-columns-rtl.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/client-rect-nested.html [ Failure ] crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/client-rect-nested.html [ Failure ]
crbug.com/1058792 virtual/layout_ng_block_frag/fast/multicol/composited-layer-multiple-fragments-translated.html [ Failure Crash ] crbug.com/1058792 virtual/layout_ng_block_frag/fast/multicol/composited-layer-multiple-fragments-translated.html [ Failure Crash ]
crbug.com/1058792 virtual/layout_ng_block_frag/fast/multicol/composited-layer-multiple-fragments.html [ Failure Crash ] crbug.com/1058792 virtual/layout_ng_block_frag/fast/multicol/composited-layer-multiple-fragments.html [ Failure Crash ]
...@@ -1134,12 +1132,8 @@ crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/static-child-becomes ...@@ -1134,12 +1132,8 @@ crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/static-child-becomes
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/tall-float1.html [ Failure ] crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/tall-float1.html [ Failure ]
crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/tall-line-in-short-block.html [ Failure ] crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/tall-line-in-short-block.html [ Failure ]
crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/transform-with-fixedpos.html [ Failure ] crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/transform-with-fixedpos.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-lr/caret-range-outside-columns.html [ Timeout Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-lr/caret-range-outside-columns-rtl.html [ Failure ]
crbug.com/1058792 virtual/layout_ng_block_frag/fast/multicol/vertical-lr/composited-relpos-overlapping-will-change.html [ Failure ] crbug.com/1058792 virtual/layout_ng_block_frag/fast/multicol/vertical-lr/composited-relpos-overlapping-will-change.html [ Failure ]
crbug.com/829028 [ Mac ] virtual/layout_ng_block_frag/fast/multicol/vertical-lr/nested-columns.html [ Failure ] crbug.com/829028 [ Mac ] virtual/layout_ng_block_frag/fast/multicol/vertical-lr/nested-columns.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/caret-range-outside-columns.html [ Crash Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/caret-range-outside-columns-rtl.html [ Crash Failure ]
crbug.com/1058792 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change.html [ Failure ] crbug.com/1058792 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/nested-columns.html [ Crash Failure ] crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/nested-columns.html [ Crash Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/widows.html [ Failure ] crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/widows.html [ Failure ]
......
...@@ -4,32 +4,36 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE ...@@ -4,32 +4,36 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
Above first column: Above first column:
PASS document.caretRangeFromPoint(50,0).startOffset is 0 PASS document.caretRangeFromPoint(50,0).startOffset is 0
PASS document.caretRangeFromPoint(150,0).startOffset is 0 FAIL document.caretRangeFromPoint(150,0).startOffset should be 2. Was 0.
PASS document.caretRangeFromPoint(189,0).startOffset is 0 FAIL document.caretRangeFromPoint(189,0).startOffset should be 3. Was 0.
Above second column: Above second column:
PASS document.caretRangeFromPoint(190,0).startOffset is 12 PASS document.caretRangeFromPoint(190,0).startOffset is 12
PASS document.caretRangeFromPoint(250,0).startOffset is 12 FAIL document.caretRangeFromPoint(250,0).startOffset should be 14. Was 12.
PASS document.caretRangeFromPoint(289,0).startOffset is 12 FAIL document.caretRangeFromPoint(289,0).startOffset should be 15. Was 12.
Above third column: Above third column:
PASS document.caretRangeFromPoint(290,0).startOffset is 24 PASS document.caretRangeFromPoint(290,0).startOffset is 24
PASS document.caretRangeFromPoint(350,0).startOffset is 24 FAIL document.caretRangeFromPoint(350,0).startOffset should be 26. Was 24.
PASS document.caretRangeFromPoint(450,0).startOffset is 24 FAIL document.caretRangeFromPoint(450,0).startOffset should be 27. Was 24.
Below first column: Below first column:
PASS document.caretRangeFromPoint(50,100).startOffset is 12 FAIL document.caretRangeFromPoint(50,100).startOffset should be 8. Was 12.
PASS document.caretRangeFromPoint(150,100).startOffset is 12 FAIL document.caretRangeFromPoint(150,100).startOffset should be 10. Was 12.
PASS document.caretRangeFromPoint(189,100).startOffset is 12 FAIL document.caretRangeFromPoint(189,100).startOffset should be 11. Was 12.
Below second column: Below second column:
PASS document.caretRangeFromPoint(190,100).startOffset is 24 FAIL document.caretRangeFromPoint(190,100).startOffset should be 20. Was 24.
PASS document.caretRangeFromPoint(250,100).startOffset is 24 FAIL document.caretRangeFromPoint(250,100).startOffset should be 22. Was 24.
PASS document.caretRangeFromPoint(289,100).startOffset is 24 FAIL document.caretRangeFromPoint(289,100).startOffset should be 23. Was 24.
Below third column:
PASS document.caretRangeFromPoint(290,100).startOffset is 32
FAIL document.caretRangeFromPoint(350,100).startOffset should be 34. Was 32.
FAIL document.caretRangeFromPoint(389,100).startOffset should be 35. Was 32.
To the left of the first column: To the left of the first column:
PASS document.caretRangeFromPoint(0,10).startOffset is 0 PASS document.caretRangeFromPoint(0,10).startOffset is 0
PASS document.caretRangeFromPoint(0,30).startOffset is 0 PASS document.caretRangeFromPoint(0,30).startOffset is 0
PASS document.caretRangeFromPoint(0,50).startOffset is 4 PASS document.caretRangeFromPoint(0,50).startOffset is 4
PASS document.caretRangeFromPoint(0,70).startOffset is 8 PASS document.caretRangeFromPoint(0,70).startOffset is 8
PASS document.caretRangeFromPoint(0,90).startOffset is 12 FAIL document.caretRangeFromPoint(0,90).startOffset should be 8. Was 12.
To the right of the third column: To the right of the third column:
PASS document.caretRangeFromPoint(400,10).startOffset is 24 FAIL document.caretRangeFromPoint(400,10).startOffset should be 27. Was 24.
PASS document.caretRangeFromPoint(400,30).startOffset is 27 PASS document.caretRangeFromPoint(400,30).startOffset is 27
PASS document.caretRangeFromPoint(400,50).startOffset is 31 PASS document.caretRangeFromPoint(400,50).startOffset is 31
PASS document.caretRangeFromPoint(400,70).startOffset is 35 PASS document.caretRangeFromPoint(400,70).startOffset is 35
......
...@@ -4,53 +4,70 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE ...@@ -4,53 +4,70 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
Above first column: Above first column:
PASS document.caretRangeFromPoint(450,0).startOffset is 0 PASS document.caretRangeFromPoint(450,0).startOffset is 0
PASS document.caretRangeFromPoint(350,0).startOffset is 0 FAIL document.caretRangeFromPoint(350,0).startOffset should be 2. Was 0.
PASS document.caretRangeFromPoint(291,0).startOffset is 0 FAIL document.caretRangeFromPoint(291,0).startOffset should be 3. Was 0.
FAIL document.caretRangeFromPoint(290,0).startOffset should be 3. Was 12.
Above second column: Above second column:
PASS document.caretRangeFromPoint(290,0).startOffset is 12 PASS document.caretRangeFromPoint(289,0).startOffset is 12
PASS document.caretRangeFromPoint(250,0).startOffset is 12 FAIL document.caretRangeFromPoint(250,0).startOffset should be 14. Was 12.
PASS document.caretRangeFromPoint(191,0).startOffset is 12 FAIL document.caretRangeFromPoint(191,0).startOffset should be 15. Was 12.
FAIL document.caretRangeFromPoint(190,0).startOffset should be 15. Was 24.
Above third column: Above third column:
PASS document.caretRangeFromPoint(190,0).startOffset is 24 PASS document.caretRangeFromPoint(189,0).startOffset is 24
PASS document.caretRangeFromPoint(150,0).startOffset is 24 FAIL document.caretRangeFromPoint(150,0).startOffset should be 26. Was 24.
PASS document.caretRangeFromPoint(50,0).startOffset is 24 FAIL document.caretRangeFromPoint(50,0).startOffset should be 27. Was 24.
Below first column: Below first column:
PASS document.caretRangeFromPoint(450,100).startOffset is 12 FAIL document.caretRangeFromPoint(450,100).startOffset should be 8. Was 12.
PASS document.caretRangeFromPoint(350,100).startOffset is 12 FAIL document.caretRangeFromPoint(350,100).startOffset should be 10. Was 12.
PASS document.caretRangeFromPoint(291,100).startOffset is 12 FAIL document.caretRangeFromPoint(291,100).startOffset should be 11. Was 12.
FAIL document.caretRangeFromPoint(290,100).startOffset should be 11. Was 24.
Below second column: Below second column:
PASS document.caretRangeFromPoint(290,100).startOffset is 24 FAIL document.caretRangeFromPoint(289,100).startOffset should be 20. Was 24.
PASS document.caretRangeFromPoint(250,100).startOffset is 24 FAIL document.caretRangeFromPoint(250,100).startOffset should be 22. Was 24.
PASS document.caretRangeFromPoint(191,100).startOffset is 24 FAIL document.caretRangeFromPoint(191,100).startOffset should be 23. Was 24.
FAIL document.caretRangeFromPoint(190,100).startOffset should be 23. Was 32.
Below third column:
PASS document.caretRangeFromPoint(189,100).startOffset is 32
FAIL document.caretRangeFromPoint(150,100).startOffset should be 34. Was 32.
FAIL document.caretRangeFromPoint(50,100).startOffset should be 35. Was 32.
To the right of the first column: To the right of the first column:
PASS document.caretRangeFromPoint(400,10).startOffset is 0 PASS document.caretRangeFromPoint(400,10).startOffset is 0
PASS document.caretRangeFromPoint(400,30).startOffset is 0 PASS document.caretRangeFromPoint(400,30).startOffset is 0
PASS document.caretRangeFromPoint(400,50).startOffset is 4 PASS document.caretRangeFromPoint(400,50).startOffset is 4
PASS document.caretRangeFromPoint(400,70).startOffset is 8 PASS document.caretRangeFromPoint(400,70).startOffset is 8
PASS document.caretRangeFromPoint(400,90).startOffset is 12 FAIL document.caretRangeFromPoint(400,90).startOffset should be 8. Was 12.
To the left of the third column: To the left of the third column:
PASS document.caretRangeFromPoint(0,10).startOffset is 24 FAIL document.caretRangeFromPoint(0,10).startOffset should be 27. Was 24.
PASS document.caretRangeFromPoint(0,30).startOffset is 27 PASS document.caretRangeFromPoint(0,30).startOffset is 27
PASS document.caretRangeFromPoint(0,50).startOffset is 31 PASS document.caretRangeFromPoint(0,50).startOffset is 31
PASS document.caretRangeFromPoint(0,70).startOffset is 35 PASS document.caretRangeFromPoint(0,70).startOffset is 35
FAIL document.caretRangeFromPoint(0,90).startOffset should be 35. Was 32.
In the gap between the first and second columns: In the gap between the first and second columns:
PASS document.caretRangeFromPoint(291,20).startOffset is 3 PASS document.caretRangeFromPoint(291,20).startOffset is 3
PASS document.caretRangeFromPoint(291,40).startOffset is 7 PASS document.caretRangeFromPoint(291,40).startOffset is 7
PASS document.caretRangeFromPoint(291,60).startOffset is 11 PASS document.caretRangeFromPoint(291,60).startOffset is 11
PASS document.caretRangeFromPoint(291,69).startOffset is 11 PASS document.caretRangeFromPoint(291,69).startOffset is 11
PASS document.caretRangeFromPoint(290,20).startOffset is 12 FAIL document.caretRangeFromPoint(290,20).startOffset should be 3. Was 12.
PASS document.caretRangeFromPoint(290,40).startOffset is 16 FAIL document.caretRangeFromPoint(290,40).startOffset should be 7. Was 16.
PASS document.caretRangeFromPoint(290,60).startOffset is 20 FAIL document.caretRangeFromPoint(290,60).startOffset should be 11. Was 20.
PASS document.caretRangeFromPoint(290,69).startOffset is 20 FAIL document.caretRangeFromPoint(290,69).startOffset should be 11. Was 20.
PASS document.caretRangeFromPoint(289,20).startOffset is 12
PASS document.caretRangeFromPoint(289,40).startOffset is 16
PASS document.caretRangeFromPoint(289,60).startOffset is 20
PASS document.caretRangeFromPoint(289,69).startOffset is 20
In the gap between the second and third columns: In the gap between the second and third columns:
PASS document.caretRangeFromPoint(191,20).startOffset is 15 PASS document.caretRangeFromPoint(191,20).startOffset is 15
PASS document.caretRangeFromPoint(191,40).startOffset is 19 PASS document.caretRangeFromPoint(191,40).startOffset is 19
PASS document.caretRangeFromPoint(191,60).startOffset is 23 PASS document.caretRangeFromPoint(191,60).startOffset is 23
PASS document.caretRangeFromPoint(191,69).startOffset is 23 PASS document.caretRangeFromPoint(191,69).startOffset is 23
PASS document.caretRangeFromPoint(190,20).startOffset is 24 FAIL document.caretRangeFromPoint(190,20).startOffset should be 15. Was 24.
PASS document.caretRangeFromPoint(190,40).startOffset is 28 FAIL document.caretRangeFromPoint(190,40).startOffset should be 19. Was 28.
PASS document.caretRangeFromPoint(190,60).startOffset is 32 FAIL document.caretRangeFromPoint(190,60).startOffset should be 23. Was 32.
PASS document.caretRangeFromPoint(190,69).startOffset is 32 FAIL document.caretRangeFromPoint(190,69).startOffset should be 23. Was 32.
PASS document.caretRangeFromPoint(189,20).startOffset is 24
PASS document.caretRangeFromPoint(189,40).startOffset is 28
PASS document.caretRangeFromPoint(189,60).startOffset is 32
PASS document.caretRangeFromPoint(189,69).startOffset is 32
PASS successfullyParsed is true PASS successfullyParsed is true
TEST COMPLETE TEST COMPLETE
......
...@@ -26,63 +26,84 @@ ...@@ -26,63 +26,84 @@
<div id="mc">xxx xxx xxx xxx xxx xxx xxx xxx xxx</div> <div id="mc">xxx xxx xxx xxx xxx xxx xxx xxx xxx</div>
<script src="../../resources/js-test.js"></script> <script src="../../resources/js-test.js"></script>
<script> <script>
if (window.internals)
internals.settings.setEditingBehavior('win');
description("Test that hitting areas outside columns takes us to the right text content inside columns."); description("Test that hitting areas outside columns takes us to the right text content inside columns.");
debug("Above first column:"); debug("Above first column:");
shouldBe("document.caretRangeFromPoint(450,0).startOffset", "0"); shouldBe("document.caretRangeFromPoint(450,0).startOffset", "0");
shouldBe("document.caretRangeFromPoint(350,0).startOffset", "0"); shouldBe("document.caretRangeFromPoint(350,0).startOffset", "2");
shouldBe("document.caretRangeFromPoint(291,0).startOffset", "0"); shouldBe("document.caretRangeFromPoint(291,0).startOffset", "3");
shouldBe("document.caretRangeFromPoint(290,0).startOffset", "3");
debug("Above second column:"); debug("Above second column:");
shouldBe("document.caretRangeFromPoint(290,0).startOffset", "12"); shouldBe("document.caretRangeFromPoint(289,0).startOffset", "12");
shouldBe("document.caretRangeFromPoint(250,0).startOffset", "12"); shouldBe("document.caretRangeFromPoint(250,0).startOffset", "14");
shouldBe("document.caretRangeFromPoint(191,0).startOffset", "12"); shouldBe("document.caretRangeFromPoint(191,0).startOffset", "15");
shouldBe("document.caretRangeFromPoint(190,0).startOffset", "15");
debug("Above third column:"); debug("Above third column:");
shouldBe("document.caretRangeFromPoint(190,0).startOffset", "24"); shouldBe("document.caretRangeFromPoint(189,0).startOffset", "24");
shouldBe("document.caretRangeFromPoint(150,0).startOffset", "24"); shouldBe("document.caretRangeFromPoint(150,0).startOffset", "26");
shouldBe("document.caretRangeFromPoint(50,0).startOffset", "24"); shouldBe("document.caretRangeFromPoint(50,0).startOffset", "27");
debug("Below first column:"); debug("Below first column:");
shouldBe("document.caretRangeFromPoint(450,100).startOffset", "12"); shouldBe("document.caretRangeFromPoint(450,100).startOffset", "8");
shouldBe("document.caretRangeFromPoint(350,100).startOffset", "12"); shouldBe("document.caretRangeFromPoint(350,100).startOffset", "10");
shouldBe("document.caretRangeFromPoint(291,100).startOffset", "12"); shouldBe("document.caretRangeFromPoint(291,100).startOffset", "11");
shouldBe("document.caretRangeFromPoint(290,100).startOffset", "11");
debug("Below second column:"); debug("Below second column:");
shouldBe("document.caretRangeFromPoint(290,100).startOffset", "24"); shouldBe("document.caretRangeFromPoint(289,100).startOffset", "20");
shouldBe("document.caretRangeFromPoint(250,100).startOffset", "24"); shouldBe("document.caretRangeFromPoint(250,100).startOffset", "22");
shouldBe("document.caretRangeFromPoint(191,100).startOffset", "24"); shouldBe("document.caretRangeFromPoint(191,100).startOffset", "23");
shouldBe("document.caretRangeFromPoint(190,100).startOffset", "23");
debug("Below third column:");
shouldBe("document.caretRangeFromPoint(189,100).startOffset", "32");
shouldBe("document.caretRangeFromPoint(150,100).startOffset", "34");
shouldBe("document.caretRangeFromPoint(50,100).startOffset", "35");
debug("To the right of the first column:"); debug("To the right of the first column:");
shouldBe("document.caretRangeFromPoint(400,10).startOffset", "0"); shouldBe("document.caretRangeFromPoint(400,10).startOffset", "0");
shouldBe("document.caretRangeFromPoint(400,30).startOffset", "0"); shouldBe("document.caretRangeFromPoint(400,30).startOffset", "0");
shouldBe("document.caretRangeFromPoint(400,50).startOffset", "4"); shouldBe("document.caretRangeFromPoint(400,50).startOffset", "4");
shouldBe("document.caretRangeFromPoint(400,70).startOffset", "8"); shouldBe("document.caretRangeFromPoint(400,70).startOffset", "8");
shouldBe("document.caretRangeFromPoint(400,90).startOffset", "12"); shouldBe("document.caretRangeFromPoint(400,90).startOffset", "8");
debug("To the left of the third column:"); debug("To the left of the third column:");
shouldBe("document.caretRangeFromPoint(0,10).startOffset", "24"); shouldBe("document.caretRangeFromPoint(0,10).startOffset", "27");
shouldBe("document.caretRangeFromPoint(0,30).startOffset", "27"); shouldBe("document.caretRangeFromPoint(0,30).startOffset", "27");
shouldBe("document.caretRangeFromPoint(0,50).startOffset", "31"); shouldBe("document.caretRangeFromPoint(0,50).startOffset", "31");
shouldBe("document.caretRangeFromPoint(0,70).startOffset", "35"); shouldBe("document.caretRangeFromPoint(0,70).startOffset", "35");
shouldBe("document.caretRangeFromPoint(0,90).startOffset", "35");
debug("In the gap between the first and second columns:"); debug("In the gap between the first and second columns:");
shouldBe("document.caretRangeFromPoint(291,20).startOffset", "3"); shouldBe("document.caretRangeFromPoint(291,20).startOffset", "3");
shouldBe("document.caretRangeFromPoint(291,40).startOffset", "7"); shouldBe("document.caretRangeFromPoint(291,40).startOffset", "7");
shouldBe("document.caretRangeFromPoint(291,60).startOffset", "11"); shouldBe("document.caretRangeFromPoint(291,60).startOffset", "11");
shouldBe("document.caretRangeFromPoint(291,69).startOffset", "11"); shouldBe("document.caretRangeFromPoint(291,69).startOffset", "11");
shouldBe("document.caretRangeFromPoint(290,20).startOffset", "12"); shouldBe("document.caretRangeFromPoint(290,20).startOffset", "3");
shouldBe("document.caretRangeFromPoint(290,40).startOffset", "16"); shouldBe("document.caretRangeFromPoint(290,40).startOffset", "7");
shouldBe("document.caretRangeFromPoint(290,60).startOffset", "20"); shouldBe("document.caretRangeFromPoint(290,60).startOffset", "11");
shouldBe("document.caretRangeFromPoint(290,69).startOffset", "20"); shouldBe("document.caretRangeFromPoint(290,69).startOffset", "11");
shouldBe("document.caretRangeFromPoint(289,20).startOffset", "12");
shouldBe("document.caretRangeFromPoint(289,40).startOffset", "16");
shouldBe("document.caretRangeFromPoint(289,60).startOffset", "20");
shouldBe("document.caretRangeFromPoint(289,69).startOffset", "20");
debug("In the gap between the second and third columns:"); debug("In the gap between the second and third columns:");
shouldBe("document.caretRangeFromPoint(191,20).startOffset", "15"); shouldBe("document.caretRangeFromPoint(191,20).startOffset", "15");
shouldBe("document.caretRangeFromPoint(191,40).startOffset", "19"); shouldBe("document.caretRangeFromPoint(191,40).startOffset", "19");
shouldBe("document.caretRangeFromPoint(191,60).startOffset", "23"); shouldBe("document.caretRangeFromPoint(191,60).startOffset", "23");
shouldBe("document.caretRangeFromPoint(191,69).startOffset", "23"); shouldBe("document.caretRangeFromPoint(191,69).startOffset", "23");
shouldBe("document.caretRangeFromPoint(190,20).startOffset", "24"); shouldBe("document.caretRangeFromPoint(190,20).startOffset", "15");
shouldBe("document.caretRangeFromPoint(190,40).startOffset", "28"); shouldBe("document.caretRangeFromPoint(190,40).startOffset", "19");
shouldBe("document.caretRangeFromPoint(190,60).startOffset", "32"); shouldBe("document.caretRangeFromPoint(190,60).startOffset", "23");
shouldBe("document.caretRangeFromPoint(190,69).startOffset", "32"); shouldBe("document.caretRangeFromPoint(190,69).startOffset", "23");
shouldBe("document.caretRangeFromPoint(189,20).startOffset", "24");
shouldBe("document.caretRangeFromPoint(189,40).startOffset", "28");
shouldBe("document.caretRangeFromPoint(189,60).startOffset", "32");
shouldBe("document.caretRangeFromPoint(189,69).startOffset", "32");
</script> </script>
...@@ -24,42 +24,50 @@ ...@@ -24,42 +24,50 @@
<div id="mc">xxx xxx xxx xxx xxx xxx xxx xxx xxx</div> <div id="mc">xxx xxx xxx xxx xxx xxx xxx xxx xxx</div>
<script src="../../resources/js-test.js"></script> <script src="../../resources/js-test.js"></script>
<script> <script>
if (window.internals)
internals.settings.setEditingBehavior('win');
description("Test that hitting areas outside columns takes us to the right text content inside columns."); description("Test that hitting areas outside columns takes us to the right text content inside columns.");
debug("Above first column:"); debug("Above first column:");
shouldBe("document.caretRangeFromPoint(50,0).startOffset", "0"); shouldBe("document.caretRangeFromPoint(50,0).startOffset", "0");
shouldBe("document.caretRangeFromPoint(150,0).startOffset", "0"); shouldBe("document.caretRangeFromPoint(150,0).startOffset", "2");
shouldBe("document.caretRangeFromPoint(189,0).startOffset", "0"); shouldBe("document.caretRangeFromPoint(189,0).startOffset", "3");
debug("Above second column:"); debug("Above second column:");
shouldBe("document.caretRangeFromPoint(190,0).startOffset", "12"); shouldBe("document.caretRangeFromPoint(190,0).startOffset", "12");
shouldBe("document.caretRangeFromPoint(250,0).startOffset", "12"); shouldBe("document.caretRangeFromPoint(250,0).startOffset", "14");
shouldBe("document.caretRangeFromPoint(289,0).startOffset", "12"); shouldBe("document.caretRangeFromPoint(289,0).startOffset", "15");
debug("Above third column:"); debug("Above third column:");
shouldBe("document.caretRangeFromPoint(290,0).startOffset", "24"); shouldBe("document.caretRangeFromPoint(290,0).startOffset", "24");
shouldBe("document.caretRangeFromPoint(350,0).startOffset", "24"); shouldBe("document.caretRangeFromPoint(350,0).startOffset", "26");
shouldBe("document.caretRangeFromPoint(450,0).startOffset", "24"); shouldBe("document.caretRangeFromPoint(450,0).startOffset", "27");
debug("Below first column:"); debug("Below first column:");
shouldBe("document.caretRangeFromPoint(50,100).startOffset", "12"); shouldBe("document.caretRangeFromPoint(50,100).startOffset", "8");
shouldBe("document.caretRangeFromPoint(150,100).startOffset", "12"); shouldBe("document.caretRangeFromPoint(150,100).startOffset", "10");
shouldBe("document.caretRangeFromPoint(189,100).startOffset", "12"); shouldBe("document.caretRangeFromPoint(189,100).startOffset", "11");
debug("Below second column:"); debug("Below second column:");
shouldBe("document.caretRangeFromPoint(190,100).startOffset", "24"); shouldBe("document.caretRangeFromPoint(190,100).startOffset", "20");
shouldBe("document.caretRangeFromPoint(250,100).startOffset", "24"); shouldBe("document.caretRangeFromPoint(250,100).startOffset", "22");
shouldBe("document.caretRangeFromPoint(289,100).startOffset", "24"); shouldBe("document.caretRangeFromPoint(289,100).startOffset", "23");
debug("Below third column:");
shouldBe("document.caretRangeFromPoint(290,100).startOffset", "32");
shouldBe("document.caretRangeFromPoint(350,100).startOffset", "34");
shouldBe("document.caretRangeFromPoint(389,100).startOffset", "35");
debug("To the left of the first column:"); debug("To the left of the first column:");
shouldBe("document.caretRangeFromPoint(0,10).startOffset", "0"); shouldBe("document.caretRangeFromPoint(0,10).startOffset", "0");
shouldBe("document.caretRangeFromPoint(0,30).startOffset", "0"); shouldBe("document.caretRangeFromPoint(0,30).startOffset", "0");
shouldBe("document.caretRangeFromPoint(0,50).startOffset", "4"); shouldBe("document.caretRangeFromPoint(0,50).startOffset", "4");
shouldBe("document.caretRangeFromPoint(0,70).startOffset", "8"); shouldBe("document.caretRangeFromPoint(0,70).startOffset", "8");
shouldBe("document.caretRangeFromPoint(0,90).startOffset", "12"); shouldBe("document.caretRangeFromPoint(0,90).startOffset", "8");
debug("To the right of the third column:"); debug("To the right of the third column:");
shouldBe("document.caretRangeFromPoint(400,10).startOffset", "24"); shouldBe("document.caretRangeFromPoint(400,10).startOffset", "27");
shouldBe("document.caretRangeFromPoint(400,30).startOffset", "27"); shouldBe("document.caretRangeFromPoint(400,30).startOffset", "27");
shouldBe("document.caretRangeFromPoint(400,50).startOffset", "31"); shouldBe("document.caretRangeFromPoint(400,50).startOffset", "31");
shouldBe("document.caretRangeFromPoint(400,70).startOffset", "35"); shouldBe("document.caretRangeFromPoint(400,70).startOffset", "35");
......
...@@ -4,32 +4,36 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE ...@@ -4,32 +4,36 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
To the left of the first column: To the left of the first column:
PASS document.caretRangeFromPoint(0,10).startOffset is 0 PASS document.caretRangeFromPoint(0,10).startOffset is 0
PASS document.caretRangeFromPoint(0,70).startOffset is 0 FAIL document.caretRangeFromPoint(0,70).startOffset should be 2. Was 0.
PASS document.caretRangeFromPoint(0,109).startOffset is 0 FAIL document.caretRangeFromPoint(0,109).startOffset should be 3. Was 0.
To the left of the second column: To the left of the second column:
PASS document.caretRangeFromPoint(0,110).startOffset is 12 PASS document.caretRangeFromPoint(0,110).startOffset is 12
PASS document.caretRangeFromPoint(0,170).startOffset is 12 FAIL document.caretRangeFromPoint(0,170).startOffset should be 14. Was 12.
PASS document.caretRangeFromPoint(0,209).startOffset is 12 FAIL document.caretRangeFromPoint(0,209).startOffset should be 15. Was 12.
To the left of the third column: To the left of the third column:
PASS document.caretRangeFromPoint(0,210).startOffset is 24 PASS document.caretRangeFromPoint(0,210).startOffset is 24
PASS document.caretRangeFromPoint(0,270).startOffset is 24 FAIL document.caretRangeFromPoint(0,270).startOffset should be 26. Was 24.
PASS document.caretRangeFromPoint(0,309).startOffset is 24 FAIL document.caretRangeFromPoint(0,309).startOffset should be 27. Was 24.
To the right of the first column: To the right of the first column:
PASS document.caretRangeFromPoint(400,10).startOffset is 12 FAIL document.caretRangeFromPoint(400,10).startOffset should be 8. Was 12.
PASS document.caretRangeFromPoint(400,70).startOffset is 12 FAIL document.caretRangeFromPoint(400,70).startOffset should be 10. Was 12.
PASS document.caretRangeFromPoint(400,109).startOffset is 12 FAIL document.caretRangeFromPoint(400,109).startOffset should be 11. Was 12.
To the right of the second column: To the right of the second column:
PASS document.caretRangeFromPoint(400,110).startOffset is 24 FAIL document.caretRangeFromPoint(400,110).startOffset should be 20. Was 24.
PASS document.caretRangeFromPoint(400,170).startOffset is 24 FAIL document.caretRangeFromPoint(400,170).startOffset should be 22. Was 24.
PASS document.caretRangeFromPoint(400,209).startOffset is 24 FAIL document.caretRangeFromPoint(400,209).startOffset should be 23. Was 24.
To the right of the third column:
PASS document.caretRangeFromPoint(400,210).startOffset is 32
FAIL document.caretRangeFromPoint(400,270).startOffset should be 34. Was 32.
FAIL document.caretRangeFromPoint(400,309).startOffset should be 35. Was 32.
Above first column: Above first column:
PASS document.caretRangeFromPoint(90,0).startOffset is 0 PASS document.caretRangeFromPoint(90,0).startOffset is 0
PASS document.caretRangeFromPoint(110,0).startOffset is 0 PASS document.caretRangeFromPoint(110,0).startOffset is 0
PASS document.caretRangeFromPoint(130,0).startOffset is 4 PASS document.caretRangeFromPoint(130,0).startOffset is 4
PASS document.caretRangeFromPoint(150,0).startOffset is 8 PASS document.caretRangeFromPoint(150,0).startOffset is 8
PASS document.caretRangeFromPoint(170,0).startOffset is 12 FAIL document.caretRangeFromPoint(170,0).startOffset should be 8. Was 12.
Below third column: Below third column:
PASS document.caretRangeFromPoint(90,350).startOffset is 24 FAIL document.caretRangeFromPoint(90,350).startOffset should be 27. Was 24.
PASS document.caretRangeFromPoint(110,350).startOffset is 27 PASS document.caretRangeFromPoint(110,350).startOffset is 27
PASS document.caretRangeFromPoint(130,350).startOffset is 31 PASS document.caretRangeFromPoint(130,350).startOffset is 31
PASS document.caretRangeFromPoint(150,350).startOffset is 35 PASS document.caretRangeFromPoint(150,350).startOffset is 35
......
...@@ -4,32 +4,40 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE ...@@ -4,32 +4,40 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
To the left of the first column: To the left of the first column:
PASS document.caretRangeFromPoint(0,309).startOffset is 0 PASS document.caretRangeFromPoint(0,309).startOffset is 0
PASS document.caretRangeFromPoint(0,270).startOffset is 0 FAIL document.caretRangeFromPoint(0,270).startOffset should be 2. Was 0.
PASS document.caretRangeFromPoint(0,211).startOffset is 0 FAIL document.caretRangeFromPoint(0,211).startOffset should be 3. Was 0.
FAIL document.caretRangeFromPoint(0,210).startOffset should be 3. Was 12.
To the left of the second column: To the left of the second column:
PASS document.caretRangeFromPoint(0,210).startOffset is 12 PASS document.caretRangeFromPoint(0,209).startOffset is 12
PASS document.caretRangeFromPoint(0,170).startOffset is 12 FAIL document.caretRangeFromPoint(0,170).startOffset should be 14. Was 12.
PASS document.caretRangeFromPoint(0,111).startOffset is 12 FAIL document.caretRangeFromPoint(0,111).startOffset should be 15. Was 12.
FAIL document.caretRangeFromPoint(0,110).startOffset should be 15. Was 24.
To the left of the third column: To the left of the third column:
PASS document.caretRangeFromPoint(0,110).startOffset is 24 PASS document.caretRangeFromPoint(0,109).startOffset is 24
PASS document.caretRangeFromPoint(0,70).startOffset is 24 FAIL document.caretRangeFromPoint(0,70).startOffset should be 26. Was 24.
PASS document.caretRangeFromPoint(0,0).startOffset is 24 FAIL document.caretRangeFromPoint(0,0).startOffset should be 27. Was 24.
To the right of the first column: To the right of the first column:
PASS document.caretRangeFromPoint(400,309).startOffset is 12 FAIL document.caretRangeFromPoint(400,309).startOffset should be 8. Was 12.
PASS document.caretRangeFromPoint(400,270).startOffset is 12 FAIL document.caretRangeFromPoint(400,270).startOffset should be 10. Was 12.
PASS document.caretRangeFromPoint(400,211).startOffset is 12 FAIL document.caretRangeFromPoint(400,211).startOffset should be 11. Was 12.
FAIL document.caretRangeFromPoint(400,210).startOffset should be 11. Was 24.
To the right of the second column: To the right of the second column:
PASS document.caretRangeFromPoint(400,210).startOffset is 24 FAIL document.caretRangeFromPoint(400,209).startOffset should be 20. Was 24.
PASS document.caretRangeFromPoint(400,170).startOffset is 24 FAIL document.caretRangeFromPoint(400,170).startOffset should be 22. Was 24.
PASS document.caretRangeFromPoint(400,111).startOffset is 24 FAIL document.caretRangeFromPoint(400,111).startOffset should be 23. Was 24.
FAIL document.caretRangeFromPoint(400,110).startOffset should be 23. Was 32.
To the right of the third column:
PASS document.caretRangeFromPoint(400,109).startOffset is 32
FAIL document.caretRangeFromPoint(400,70).startOffset should be 34. Was 32.
FAIL document.caretRangeFromPoint(400,11).startOffset should be 35. Was 32.
Below first column: Below first column:
PASS document.caretRangeFromPoint(90,350).startOffset is 0 PASS document.caretRangeFromPoint(90,350).startOffset is 0
PASS document.caretRangeFromPoint(110,350).startOffset is 0 PASS document.caretRangeFromPoint(110,350).startOffset is 0
PASS document.caretRangeFromPoint(130,350).startOffset is 4 PASS document.caretRangeFromPoint(130,350).startOffset is 4
PASS document.caretRangeFromPoint(150,350).startOffset is 8 PASS document.caretRangeFromPoint(150,350).startOffset is 8
PASS document.caretRangeFromPoint(170,350).startOffset is 12 FAIL document.caretRangeFromPoint(170,350).startOffset should be 8. Was 12.
Above third column: Above third column:
PASS document.caretRangeFromPoint(90,0).startOffset is 24 FAIL document.caretRangeFromPoint(90,0).startOffset should be 27. Was 24.
PASS document.caretRangeFromPoint(110,0).startOffset is 27 PASS document.caretRangeFromPoint(110,0).startOffset is 27
PASS document.caretRangeFromPoint(130,0).startOffset is 31 PASS document.caretRangeFromPoint(130,0).startOffset is 31
PASS document.caretRangeFromPoint(150,0).startOffset is 35 PASS document.caretRangeFromPoint(150,0).startOffset is 35
...@@ -38,19 +46,27 @@ PASS document.caretRangeFromPoint(100,211).startOffset is 3 ...@@ -38,19 +46,27 @@ PASS document.caretRangeFromPoint(100,211).startOffset is 3
PASS document.caretRangeFromPoint(120,211).startOffset is 7 PASS document.caretRangeFromPoint(120,211).startOffset is 7
PASS document.caretRangeFromPoint(140,211).startOffset is 11 PASS document.caretRangeFromPoint(140,211).startOffset is 11
PASS document.caretRangeFromPoint(159,211).startOffset is 11 PASS document.caretRangeFromPoint(159,211).startOffset is 11
PASS document.caretRangeFromPoint(100,210).startOffset is 12 FAIL document.caretRangeFromPoint(100,210).startOffset should be 3. Was 12.
PASS document.caretRangeFromPoint(120,210).startOffset is 16 FAIL document.caretRangeFromPoint(120,210).startOffset should be 7. Was 16.
PASS document.caretRangeFromPoint(140,210).startOffset is 20 FAIL document.caretRangeFromPoint(140,210).startOffset should be 11. Was 20.
PASS document.caretRangeFromPoint(159,210).startOffset is 20 FAIL document.caretRangeFromPoint(159,210).startOffset should be 11. Was 20.
PASS document.caretRangeFromPoint(100,209).startOffset is 12
PASS document.caretRangeFromPoint(120,209).startOffset is 16
PASS document.caretRangeFromPoint(140,209).startOffset is 20
PASS document.caretRangeFromPoint(159,209).startOffset is 20
In the gap between the second and third columns: In the gap between the second and third columns:
PASS document.caretRangeFromPoint(100,111).startOffset is 15 PASS document.caretRangeFromPoint(100,111).startOffset is 15
PASS document.caretRangeFromPoint(120,111).startOffset is 19 PASS document.caretRangeFromPoint(120,111).startOffset is 19
PASS document.caretRangeFromPoint(140,111).startOffset is 23 PASS document.caretRangeFromPoint(140,111).startOffset is 23
PASS document.caretRangeFromPoint(159,111).startOffset is 23 PASS document.caretRangeFromPoint(159,111).startOffset is 23
PASS document.caretRangeFromPoint(100,110).startOffset is 24 FAIL document.caretRangeFromPoint(100,110).startOffset should be 15. Was 24.
PASS document.caretRangeFromPoint(120,110).startOffset is 28 FAIL document.caretRangeFromPoint(120,110).startOffset should be 19. Was 28.
PASS document.caretRangeFromPoint(140,110).startOffset is 32 FAIL document.caretRangeFromPoint(140,110).startOffset should be 23. Was 32.
PASS document.caretRangeFromPoint(159,110).startOffset is 32 FAIL document.caretRangeFromPoint(159,110).startOffset should be 23. Was 32.
PASS document.caretRangeFromPoint(100,109).startOffset is 24
PASS document.caretRangeFromPoint(120,109).startOffset is 28
PASS document.caretRangeFromPoint(140,109).startOffset is 32
PASS document.caretRangeFromPoint(159,109).startOffset is 32
PASS successfullyParsed is true PASS successfullyParsed is true
TEST COMPLETE TEST COMPLETE
......
...@@ -35,42 +35,54 @@ ...@@ -35,42 +35,54 @@
</div> </div>
<script src="../../../resources/js-test.js"></script> <script src="../../../resources/js-test.js"></script>
<script> <script>
if (window.internals)
internals.settings.setEditingBehavior('win');
description("Test that hitting areas outside columns takes us to the right text content inside columns."); description("Test that hitting areas outside columns takes us to the right text content inside columns.");
debug("To the left of the first column:"); debug("To the left of the first column:");
shouldBe("document.caretRangeFromPoint(0,309).startOffset", "0"); shouldBe("document.caretRangeFromPoint(0,309).startOffset", "0");
shouldBe("document.caretRangeFromPoint(0,270).startOffset", "0"); shouldBe("document.caretRangeFromPoint(0,270).startOffset", "2");
shouldBe("document.caretRangeFromPoint(0,211).startOffset", "0"); shouldBe("document.caretRangeFromPoint(0,211).startOffset", "3");
shouldBe("document.caretRangeFromPoint(0,210).startOffset", "3");
debug("To the left of the second column:"); debug("To the left of the second column:");
shouldBe("document.caretRangeFromPoint(0,210).startOffset", "12"); shouldBe("document.caretRangeFromPoint(0,209).startOffset", "12");
shouldBe("document.caretRangeFromPoint(0,170).startOffset", "12"); shouldBe("document.caretRangeFromPoint(0,170).startOffset", "14");
shouldBe("document.caretRangeFromPoint(0,111).startOffset", "12"); shouldBe("document.caretRangeFromPoint(0,111).startOffset", "15");
shouldBe("document.caretRangeFromPoint(0,110).startOffset", "15");
debug("To the left of the third column:"); debug("To the left of the third column:");
shouldBe("document.caretRangeFromPoint(0,110).startOffset", "24"); shouldBe("document.caretRangeFromPoint(0,109).startOffset", "24");
shouldBe("document.caretRangeFromPoint(0,70).startOffset", "24"); shouldBe("document.caretRangeFromPoint(0,70).startOffset", "26");
shouldBe("document.caretRangeFromPoint(0,0).startOffset", "24"); shouldBe("document.caretRangeFromPoint(0,0).startOffset", "27");
debug("To the right of the first column:"); debug("To the right of the first column:");
shouldBe("document.caretRangeFromPoint(400,309).startOffset", "12"); shouldBe("document.caretRangeFromPoint(400,309).startOffset", "8");
shouldBe("document.caretRangeFromPoint(400,270).startOffset", "12"); shouldBe("document.caretRangeFromPoint(400,270).startOffset", "10");
shouldBe("document.caretRangeFromPoint(400,211).startOffset", "12"); shouldBe("document.caretRangeFromPoint(400,211).startOffset", "11");
shouldBe("document.caretRangeFromPoint(400,210).startOffset", "11");
debug("To the right of the second column:"); debug("To the right of the second column:");
shouldBe("document.caretRangeFromPoint(400,210).startOffset", "24"); shouldBe("document.caretRangeFromPoint(400,209).startOffset", "20");
shouldBe("document.caretRangeFromPoint(400,170).startOffset", "24"); shouldBe("document.caretRangeFromPoint(400,170).startOffset", "22");
shouldBe("document.caretRangeFromPoint(400,111).startOffset", "24"); shouldBe("document.caretRangeFromPoint(400,111).startOffset", "23");
shouldBe("document.caretRangeFromPoint(400,110).startOffset", "23");
debug("To the right of the third column:");
shouldBe("document.caretRangeFromPoint(400,109).startOffset", "32");
shouldBe("document.caretRangeFromPoint(400,70).startOffset", "34");
shouldBe("document.caretRangeFromPoint(400,11).startOffset", "35");
debug("Below first column:"); debug("Below first column:");
shouldBe("document.caretRangeFromPoint(90,350).startOffset", "0"); shouldBe("document.caretRangeFromPoint(90,350).startOffset", "0");
shouldBe("document.caretRangeFromPoint(110,350).startOffset", "0"); shouldBe("document.caretRangeFromPoint(110,350).startOffset", "0");
shouldBe("document.caretRangeFromPoint(130,350).startOffset", "4"); shouldBe("document.caretRangeFromPoint(130,350).startOffset", "4");
shouldBe("document.caretRangeFromPoint(150,350).startOffset", "8"); shouldBe("document.caretRangeFromPoint(150,350).startOffset", "8");
shouldBe("document.caretRangeFromPoint(170,350).startOffset", "12"); shouldBe("document.caretRangeFromPoint(170,350).startOffset", "8");
debug("Above third column:"); debug("Above third column:");
shouldBe("document.caretRangeFromPoint(90,0).startOffset", "24"); shouldBe("document.caretRangeFromPoint(90,0).startOffset", "27");
shouldBe("document.caretRangeFromPoint(110,0).startOffset", "27"); shouldBe("document.caretRangeFromPoint(110,0).startOffset", "27");
shouldBe("document.caretRangeFromPoint(130,0).startOffset", "31"); shouldBe("document.caretRangeFromPoint(130,0).startOffset", "31");
shouldBe("document.caretRangeFromPoint(150,0).startOffset", "35"); shouldBe("document.caretRangeFromPoint(150,0).startOffset", "35");
...@@ -80,18 +92,26 @@ ...@@ -80,18 +92,26 @@
shouldBe("document.caretRangeFromPoint(120,211).startOffset", "7"); shouldBe("document.caretRangeFromPoint(120,211).startOffset", "7");
shouldBe("document.caretRangeFromPoint(140,211).startOffset", "11"); shouldBe("document.caretRangeFromPoint(140,211).startOffset", "11");
shouldBe("document.caretRangeFromPoint(159,211).startOffset", "11"); shouldBe("document.caretRangeFromPoint(159,211).startOffset", "11");
shouldBe("document.caretRangeFromPoint(100,210).startOffset", "12"); shouldBe("document.caretRangeFromPoint(100,210).startOffset", "3");
shouldBe("document.caretRangeFromPoint(120,210).startOffset", "16"); shouldBe("document.caretRangeFromPoint(120,210).startOffset", "7");
shouldBe("document.caretRangeFromPoint(140,210).startOffset", "20"); shouldBe("document.caretRangeFromPoint(140,210).startOffset", "11");
shouldBe("document.caretRangeFromPoint(159,210).startOffset", "20"); shouldBe("document.caretRangeFromPoint(159,210).startOffset", "11");
shouldBe("document.caretRangeFromPoint(100,209).startOffset", "12");
shouldBe("document.caretRangeFromPoint(120,209).startOffset", "16");
shouldBe("document.caretRangeFromPoint(140,209).startOffset", "20");
shouldBe("document.caretRangeFromPoint(159,209).startOffset", "20");
debug("In the gap between the second and third columns:"); debug("In the gap between the second and third columns:");
shouldBe("document.caretRangeFromPoint(100,111).startOffset", "15"); shouldBe("document.caretRangeFromPoint(100,111).startOffset", "15");
shouldBe("document.caretRangeFromPoint(120,111).startOffset", "19"); shouldBe("document.caretRangeFromPoint(120,111).startOffset", "19");
shouldBe("document.caretRangeFromPoint(140,111).startOffset", "23"); shouldBe("document.caretRangeFromPoint(140,111).startOffset", "23");
shouldBe("document.caretRangeFromPoint(159,111).startOffset", "23"); shouldBe("document.caretRangeFromPoint(159,111).startOffset", "23");
shouldBe("document.caretRangeFromPoint(100,110).startOffset", "24"); shouldBe("document.caretRangeFromPoint(100,110).startOffset", "15");
shouldBe("document.caretRangeFromPoint(120,110).startOffset", "28"); shouldBe("document.caretRangeFromPoint(120,110).startOffset", "19");
shouldBe("document.caretRangeFromPoint(140,110).startOffset", "32"); shouldBe("document.caretRangeFromPoint(140,110).startOffset", "23");
shouldBe("document.caretRangeFromPoint(159,110).startOffset", "32"); shouldBe("document.caretRangeFromPoint(159,110).startOffset", "23");
shouldBe("document.caretRangeFromPoint(100,109).startOffset", "24");
shouldBe("document.caretRangeFromPoint(120,109).startOffset", "28");
shouldBe("document.caretRangeFromPoint(140,109).startOffset", "32");
shouldBe("document.caretRangeFromPoint(159,109).startOffset", "32");
</script> </script>
...@@ -33,42 +33,50 @@ ...@@ -33,42 +33,50 @@
</div> </div>
<script src="../../../resources/js-test.js"></script> <script src="../../../resources/js-test.js"></script>
<script> <script>
if (window.internals)
internals.settings.setEditingBehavior('win');
description("Test that hitting areas outside columns takes us to the right text content inside columns."); description("Test that hitting areas outside columns takes us to the right text content inside columns.");
debug("To the left of the first column:"); debug("To the left of the first column:");
shouldBe("document.caretRangeFromPoint(0,10).startOffset", "0"); shouldBe("document.caretRangeFromPoint(0,10).startOffset", "0");
shouldBe("document.caretRangeFromPoint(0,70).startOffset", "0"); shouldBe("document.caretRangeFromPoint(0,70).startOffset", "2");
shouldBe("document.caretRangeFromPoint(0,109).startOffset", "0"); shouldBe("document.caretRangeFromPoint(0,109).startOffset", "3");
debug("To the left of the second column:"); debug("To the left of the second column:");
shouldBe("document.caretRangeFromPoint(0,110).startOffset", "12"); shouldBe("document.caretRangeFromPoint(0,110).startOffset", "12");
shouldBe("document.caretRangeFromPoint(0,170).startOffset", "12"); shouldBe("document.caretRangeFromPoint(0,170).startOffset", "14");
shouldBe("document.caretRangeFromPoint(0,209).startOffset", "12"); shouldBe("document.caretRangeFromPoint(0,209).startOffset", "15");
debug("To the left of the third column:"); debug("To the left of the third column:");
shouldBe("document.caretRangeFromPoint(0,210).startOffset", "24"); shouldBe("document.caretRangeFromPoint(0,210).startOffset", "24");
shouldBe("document.caretRangeFromPoint(0,270).startOffset", "24"); shouldBe("document.caretRangeFromPoint(0,270).startOffset", "26");
shouldBe("document.caretRangeFromPoint(0,309).startOffset", "24"); shouldBe("document.caretRangeFromPoint(0,309).startOffset", "27");
debug("To the right of the first column:"); debug("To the right of the first column:");
shouldBe("document.caretRangeFromPoint(400,10).startOffset", "12"); shouldBe("document.caretRangeFromPoint(400,10).startOffset", "8");
shouldBe("document.caretRangeFromPoint(400,70).startOffset", "12"); shouldBe("document.caretRangeFromPoint(400,70).startOffset", "10");
shouldBe("document.caretRangeFromPoint(400,109).startOffset", "12"); shouldBe("document.caretRangeFromPoint(400,109).startOffset", "11");
debug("To the right of the second column:"); debug("To the right of the second column:");
shouldBe("document.caretRangeFromPoint(400,110).startOffset", "24"); shouldBe("document.caretRangeFromPoint(400,110).startOffset", "20");
shouldBe("document.caretRangeFromPoint(400,170).startOffset", "24"); shouldBe("document.caretRangeFromPoint(400,170).startOffset", "22");
shouldBe("document.caretRangeFromPoint(400,209).startOffset", "24"); shouldBe("document.caretRangeFromPoint(400,209).startOffset", "23");
debug("To the right of the third column:");
shouldBe("document.caretRangeFromPoint(400,210).startOffset", "32");
shouldBe("document.caretRangeFromPoint(400,270).startOffset", "34");
shouldBe("document.caretRangeFromPoint(400,309).startOffset", "35");
debug("Above first column:"); debug("Above first column:");
shouldBe("document.caretRangeFromPoint(90,0).startOffset", "0"); shouldBe("document.caretRangeFromPoint(90,0).startOffset", "0");
shouldBe("document.caretRangeFromPoint(110,0).startOffset", "0"); shouldBe("document.caretRangeFromPoint(110,0).startOffset", "0");
shouldBe("document.caretRangeFromPoint(130,0).startOffset", "4"); shouldBe("document.caretRangeFromPoint(130,0).startOffset", "4");
shouldBe("document.caretRangeFromPoint(150,0).startOffset", "8"); shouldBe("document.caretRangeFromPoint(150,0).startOffset", "8");
shouldBe("document.caretRangeFromPoint(170,0).startOffset", "12"); shouldBe("document.caretRangeFromPoint(170,0).startOffset", "8");
debug("Below third column:"); debug("Below third column:");
shouldBe("document.caretRangeFromPoint(90,350).startOffset", "24"); shouldBe("document.caretRangeFromPoint(90,350).startOffset", "27");
shouldBe("document.caretRangeFromPoint(110,350).startOffset", "27"); shouldBe("document.caretRangeFromPoint(110,350).startOffset", "27");
shouldBe("document.caretRangeFromPoint(130,350).startOffset", "31"); shouldBe("document.caretRangeFromPoint(130,350).startOffset", "31");
shouldBe("document.caretRangeFromPoint(150,350).startOffset", "35"); shouldBe("document.caretRangeFromPoint(150,350).startOffset", "35");
......
...@@ -4,8 +4,28 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE ...@@ -4,8 +4,28 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
To the right of the first column: To the right of the first column:
PASS document.caretRangeFromPoint(550,10).startOffset is 0 PASS document.caretRangeFromPoint(550,10).startOffset is 0
PASS document.caretRangeFromPoint(550,70).startOffset is 0 FAIL document.caretRangeFromPoint(550,70).startOffset should be 2. Was 0.
PASS document.caretRangeFromPoint(550,109).startOffset is 0 FAIL document.caretRangeFromPoint(550,109).startOffset should be 3. Was 0.
To the right of the second column:
FAIL document.caretRangeFromPoint(550,110).startOffset should be 12. Was 8.
FAIL document.caretRangeFromPoint(550,170).startOffset should be 14. Was 8.
FAIL document.caretRangeFromPoint(550,209).startOffset should be 15. Was 8.
To the right of the third column:
FAIL document.caretRangeFromPoint(550,210).startOffset should be 24. Was 20.
FAIL document.caretRangeFromPoint(550,270).startOffset should be 26. Was 20.
FAIL document.caretRangeFromPoint(550,309).startOffset should be 27. Was 20.
To the left of the first column:
PASS document.caretRangeFromPoint(0,10).startOffset is 8
FAIL document.caretRangeFromPoint(0,70).startOffset should be 10. Was 8.
FAIL document.caretRangeFromPoint(0,109).startOffset should be 11. Was 8.
To the left of the second column:
PASS document.caretRangeFromPoint(0,110).startOffset is 20
FAIL document.caretRangeFromPoint(0,170).startOffset should be 22. Was 20.
FAIL document.caretRangeFromPoint(0,209).startOffset should be 23. Was 20.
To the left of the third column:
PASS document.caretRangeFromPoint(0,210).startOffset is 32
FAIL document.caretRangeFromPoint(0,270).startOffset should be 34. Was 32.
FAIL document.caretRangeFromPoint(0,309).startOffset should be 35. Was 32.
Above first column: Above first column:
PASS document.caretRangeFromPoint(550,0).startOffset is 0 PASS document.caretRangeFromPoint(550,0).startOffset is 0
PASS document.caretRangeFromPoint(490,0).startOffset is 0 PASS document.caretRangeFromPoint(490,0).startOffset is 0
......
...@@ -4,8 +4,32 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE ...@@ -4,8 +4,32 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
To the right of the first column: To the right of the first column:
PASS document.caretRangeFromPoint(550,340).startOffset is 0 PASS document.caretRangeFromPoint(550,340).startOffset is 0
PASS document.caretRangeFromPoint(550,270).startOffset is 0 FAIL document.caretRangeFromPoint(550,270).startOffset should be 2. Was 0.
PASS document.caretRangeFromPoint(550,211).startOffset is 0 FAIL document.caretRangeFromPoint(550,211).startOffset should be 3. Was 0.
FAIL document.caretRangeFromPoint(550,210).startOffset should be 3. Was 8.
To the right of the second column:
FAIL document.caretRangeFromPoint(550,209).startOffset should be 12. Was 8.
FAIL document.caretRangeFromPoint(550,170).startOffset should be 14. Was 8.
FAIL document.caretRangeFromPoint(550,111).startOffset should be 15. Was 8.
FAIL document.caretRangeFromPoint(550,110).startOffset should be 15. Was 20.
To the right of the third column:
FAIL document.caretRangeFromPoint(550,109).startOffset should be 24. Was 20.
FAIL document.caretRangeFromPoint(550,70).startOffset should be 26. Was 20.
FAIL document.caretRangeFromPoint(550,11).startOffset should be 27. Was 20.
To the left of the first column:
PASS document.caretRangeFromPoint(0,340).startOffset is 8
FAIL document.caretRangeFromPoint(0,270).startOffset should be 10. Was 8.
FAIL document.caretRangeFromPoint(0,211).startOffset should be 11. Was 8.
FAIL document.caretRangeFromPoint(0,210).startOffset should be 11. Was 20.
To the left of the second column:
PASS document.caretRangeFromPoint(0,209).startOffset is 20
FAIL document.caretRangeFromPoint(0,170).startOffset should be 22. Was 20.
FAIL document.caretRangeFromPoint(0,111).startOffset should be 23. Was 20.
FAIL document.caretRangeFromPoint(0,110).startOffset should be 23. Was 32.
To the left of the second column:
PASS document.caretRangeFromPoint(0,109).startOffset is 32
FAIL document.caretRangeFromPoint(0,70).startOffset should be 34. Was 32.
FAIL document.caretRangeFromPoint(0,0).startOffset should be 35. Was 32.
Below first column: Below first column:
PASS document.caretRangeFromPoint(550,350).startOffset is 0 PASS document.caretRangeFromPoint(550,350).startOffset is 0
PASS document.caretRangeFromPoint(490,350).startOffset is 0 PASS document.caretRangeFromPoint(490,350).startOffset is 0
...@@ -20,19 +44,27 @@ PASS document.caretRangeFromPoint(499,211).startOffset is 3 ...@@ -20,19 +44,27 @@ PASS document.caretRangeFromPoint(499,211).startOffset is 3
PASS document.caretRangeFromPoint(479,211).startOffset is 7 PASS document.caretRangeFromPoint(479,211).startOffset is 7
PASS document.caretRangeFromPoint(459,211).startOffset is 11 PASS document.caretRangeFromPoint(459,211).startOffset is 11
PASS document.caretRangeFromPoint(440,211).startOffset is 11 PASS document.caretRangeFromPoint(440,211).startOffset is 11
PASS document.caretRangeFromPoint(499,210).startOffset is 12 FAIL document.caretRangeFromPoint(499,210).startOffset should be 3. Was 12.
PASS document.caretRangeFromPoint(479,210).startOffset is 16 FAIL document.caretRangeFromPoint(479,210).startOffset should be 7. Was 16.
PASS document.caretRangeFromPoint(459,210).startOffset is 20 FAIL document.caretRangeFromPoint(459,210).startOffset should be 11. Was 20.
PASS document.caretRangeFromPoint(440,210).startOffset is 20 FAIL document.caretRangeFromPoint(440,210).startOffset should be 11. Was 20.
PASS document.caretRangeFromPoint(499,209).startOffset is 12
PASS document.caretRangeFromPoint(479,209).startOffset is 16
PASS document.caretRangeFromPoint(459,209).startOffset is 20
PASS document.caretRangeFromPoint(440,209).startOffset is 20
In the gap between the second and third columns: In the gap between the second and third columns:
PASS document.caretRangeFromPoint(499,111).startOffset is 15 PASS document.caretRangeFromPoint(499,111).startOffset is 15
PASS document.caretRangeFromPoint(479,111).startOffset is 19 PASS document.caretRangeFromPoint(479,111).startOffset is 19
PASS document.caretRangeFromPoint(459,111).startOffset is 23 PASS document.caretRangeFromPoint(459,111).startOffset is 23
PASS document.caretRangeFromPoint(440,111).startOffset is 23 PASS document.caretRangeFromPoint(440,111).startOffset is 23
PASS document.caretRangeFromPoint(499,110).startOffset is 24 FAIL document.caretRangeFromPoint(499,110).startOffset should be 15. Was 24.
PASS document.caretRangeFromPoint(479,110).startOffset is 28 FAIL document.caretRangeFromPoint(479,110).startOffset should be 19. Was 28.
PASS document.caretRangeFromPoint(459,110).startOffset is 32 FAIL document.caretRangeFromPoint(459,110).startOffset should be 23. Was 32.
PASS document.caretRangeFromPoint(440,110).startOffset is 32 FAIL document.caretRangeFromPoint(440,110).startOffset should be 23. Was 32.
PASS document.caretRangeFromPoint(499,109).startOffset is 24
PASS document.caretRangeFromPoint(479,109).startOffset is 28
PASS document.caretRangeFromPoint(459,109).startOffset is 32
PASS document.caretRangeFromPoint(440,109).startOffset is 32
PASS successfullyParsed is true PASS successfullyParsed is true
TEST COMPLETE TEST COMPLETE
......
...@@ -36,15 +36,44 @@ ...@@ -36,15 +36,44 @@
</div> </div>
<script src="../../../resources/js-test.js"></script> <script src="../../../resources/js-test.js"></script>
<script> <script>
description("Test that hitting areas outside columns takes us to the right text content inside columns."); if (window.internals)
internals.settings.setEditingBehavior('win');
// Note that this test is very limited (compared to the other caret-range- tests), description("Test that hitting areas outside columns takes us to the right text content inside columns.");
// due to platform behavioral differences, and crbug.com/466974
debug("To the right of the first column:"); debug("To the right of the first column:");
shouldBe("document.caretRangeFromPoint(550,340).startOffset", "0"); shouldBe("document.caretRangeFromPoint(550,340).startOffset", "0");
shouldBe("document.caretRangeFromPoint(550,270).startOffset", "0"); shouldBe("document.caretRangeFromPoint(550,270).startOffset", "2");
shouldBe("document.caretRangeFromPoint(550,211).startOffset", "0"); shouldBe("document.caretRangeFromPoint(550,211).startOffset", "3");
shouldBe("document.caretRangeFromPoint(550,210).startOffset", "3");
debug("To the right of the second column:");
shouldBe("document.caretRangeFromPoint(550,209).startOffset", "12");
shouldBe("document.caretRangeFromPoint(550,170).startOffset", "14");
shouldBe("document.caretRangeFromPoint(550,111).startOffset", "15");
shouldBe("document.caretRangeFromPoint(550,110).startOffset", "15");
debug("To the right of the third column:");
shouldBe("document.caretRangeFromPoint(550,109).startOffset", "24");
shouldBe("document.caretRangeFromPoint(550,70).startOffset", "26");
shouldBe("document.caretRangeFromPoint(550,11).startOffset", "27");
debug("To the left of the first column:");
shouldBe("document.caretRangeFromPoint(0,340).startOffset", "8");
shouldBe("document.caretRangeFromPoint(0,270).startOffset", "10");
shouldBe("document.caretRangeFromPoint(0,211).startOffset", "11");
shouldBe("document.caretRangeFromPoint(0,210).startOffset", "11");
debug("To the left of the second column:");
shouldBe("document.caretRangeFromPoint(0,209).startOffset", "20");
shouldBe("document.caretRangeFromPoint(0,170).startOffset", "22");
shouldBe("document.caretRangeFromPoint(0,111).startOffset", "23");
shouldBe("document.caretRangeFromPoint(0,110).startOffset", "23");
debug("To the left of the second column:");
shouldBe("document.caretRangeFromPoint(0,109).startOffset", "32");
shouldBe("document.caretRangeFromPoint(0,70).startOffset", "34");
shouldBe("document.caretRangeFromPoint(0,0).startOffset", "35");
debug("Below first column:"); debug("Below first column:");
shouldBe("document.caretRangeFromPoint(550,350).startOffset", "0"); shouldBe("document.caretRangeFromPoint(550,350).startOffset", "0");
...@@ -62,18 +91,26 @@ ...@@ -62,18 +91,26 @@
shouldBe("document.caretRangeFromPoint(479,211).startOffset", "7"); shouldBe("document.caretRangeFromPoint(479,211).startOffset", "7");
shouldBe("document.caretRangeFromPoint(459,211).startOffset", "11"); shouldBe("document.caretRangeFromPoint(459,211).startOffset", "11");
shouldBe("document.caretRangeFromPoint(440,211).startOffset", "11"); shouldBe("document.caretRangeFromPoint(440,211).startOffset", "11");
shouldBe("document.caretRangeFromPoint(499,210).startOffset", "12"); shouldBe("document.caretRangeFromPoint(499,210).startOffset", "3");
shouldBe("document.caretRangeFromPoint(479,210).startOffset", "16"); shouldBe("document.caretRangeFromPoint(479,210).startOffset", "7");
shouldBe("document.caretRangeFromPoint(459,210).startOffset", "20"); shouldBe("document.caretRangeFromPoint(459,210).startOffset", "11");
shouldBe("document.caretRangeFromPoint(440,210).startOffset", "20"); shouldBe("document.caretRangeFromPoint(440,210).startOffset", "11");
shouldBe("document.caretRangeFromPoint(499,209).startOffset", "12");
shouldBe("document.caretRangeFromPoint(479,209).startOffset", "16");
shouldBe("document.caretRangeFromPoint(459,209).startOffset", "20");
shouldBe("document.caretRangeFromPoint(440,209).startOffset", "20");
debug("In the gap between the second and third columns:"); debug("In the gap between the second and third columns:");
shouldBe("document.caretRangeFromPoint(499,111).startOffset", "15"); shouldBe("document.caretRangeFromPoint(499,111).startOffset", "15");
shouldBe("document.caretRangeFromPoint(479,111).startOffset", "19"); shouldBe("document.caretRangeFromPoint(479,111).startOffset", "19");
shouldBe("document.caretRangeFromPoint(459,111).startOffset", "23"); shouldBe("document.caretRangeFromPoint(459,111).startOffset", "23");
shouldBe("document.caretRangeFromPoint(440,111).startOffset", "23"); shouldBe("document.caretRangeFromPoint(440,111).startOffset", "23");
shouldBe("document.caretRangeFromPoint(499,110).startOffset", "24"); shouldBe("document.caretRangeFromPoint(499,110).startOffset", "15");
shouldBe("document.caretRangeFromPoint(479,110).startOffset", "28"); shouldBe("document.caretRangeFromPoint(479,110).startOffset", "19");
shouldBe("document.caretRangeFromPoint(459,110).startOffset", "32"); shouldBe("document.caretRangeFromPoint(459,110).startOffset", "23");
shouldBe("document.caretRangeFromPoint(440,110).startOffset", "32"); shouldBe("document.caretRangeFromPoint(440,110).startOffset", "23");
shouldBe("document.caretRangeFromPoint(499,109).startOffset", "24");
shouldBe("document.caretRangeFromPoint(479,109).startOffset", "28");
shouldBe("document.caretRangeFromPoint(459,109).startOffset", "32");
shouldBe("document.caretRangeFromPoint(440,109).startOffset", "32");
</script> </script>
...@@ -34,15 +34,40 @@ ...@@ -34,15 +34,40 @@
</div> </div>
<script src="../../../resources/js-test.js"></script> <script src="../../../resources/js-test.js"></script>
<script> <script>
description("Test that hitting areas outside columns takes us to the right text content inside columns."); if (window.internals)
internals.settings.setEditingBehavior('win');
// Note that this test is very limited (compared to the other caret-range- tests), description("Test that hitting areas outside columns takes us to the right text content inside columns.");
// due to platform behavioral differences, and crbug.com/466974
debug("To the right of the first column:"); debug("To the right of the first column:");
shouldBe("document.caretRangeFromPoint(550,10).startOffset", "0"); shouldBe("document.caretRangeFromPoint(550,10).startOffset", "0");
shouldBe("document.caretRangeFromPoint(550,70).startOffset", "0"); shouldBe("document.caretRangeFromPoint(550,70).startOffset", "2");
shouldBe("document.caretRangeFromPoint(550,109).startOffset", "0"); shouldBe("document.caretRangeFromPoint(550,109).startOffset", "3");
debug("To the right of the second column:");
shouldBe("document.caretRangeFromPoint(550,110).startOffset", "12");
shouldBe("document.caretRangeFromPoint(550,170).startOffset", "14");
shouldBe("document.caretRangeFromPoint(550,209).startOffset", "15");
debug("To the right of the third column:");
shouldBe("document.caretRangeFromPoint(550,210).startOffset", "24");
shouldBe("document.caretRangeFromPoint(550,270).startOffset", "26");
shouldBe("document.caretRangeFromPoint(550,309).startOffset", "27");
debug("To the left of the first column:");
shouldBe("document.caretRangeFromPoint(0,10).startOffset", "8");
shouldBe("document.caretRangeFromPoint(0,70).startOffset", "10");
shouldBe("document.caretRangeFromPoint(0,109).startOffset", "11");
debug("To the left of the second column:");
shouldBe("document.caretRangeFromPoint(0,110).startOffset", "20");
shouldBe("document.caretRangeFromPoint(0,170).startOffset", "22");
shouldBe("document.caretRangeFromPoint(0,209).startOffset", "23");
debug("To the left of the third column:");
shouldBe("document.caretRangeFromPoint(0,210).startOffset", "32");
shouldBe("document.caretRangeFromPoint(0,270).startOffset", "34");
shouldBe("document.caretRangeFromPoint(0,309).startOffset", "35");
debug("Above first column:"); debug("Above first column:");
shouldBe("document.caretRangeFromPoint(550,0).startOffset", "0"); shouldBe("document.caretRangeFromPoint(550,0).startOffset", "0");
......
Test that hitting areas outside columns takes us to the right text content inside columns.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Above first column:
PASS document.caretRangeFromPoint(50,0).startOffset is 0
PASS document.caretRangeFromPoint(150,0).startOffset is 2
PASS document.caretRangeFromPoint(189,0).startOffset is 3
Above second column:
PASS document.caretRangeFromPoint(190,0).startOffset is 12
PASS document.caretRangeFromPoint(250,0).startOffset is 14
PASS document.caretRangeFromPoint(289,0).startOffset is 15
Above third column:
PASS document.caretRangeFromPoint(290,0).startOffset is 24
PASS document.caretRangeFromPoint(350,0).startOffset is 26
PASS document.caretRangeFromPoint(450,0).startOffset is 27
Below first column:
PASS document.caretRangeFromPoint(50,100).startOffset is 8
PASS document.caretRangeFromPoint(150,100).startOffset is 10
PASS document.caretRangeFromPoint(189,100).startOffset is 11
Below second column:
PASS document.caretRangeFromPoint(190,100).startOffset is 20
PASS document.caretRangeFromPoint(250,100).startOffset is 22
PASS document.caretRangeFromPoint(289,100).startOffset is 23
Below third column:
PASS document.caretRangeFromPoint(290,100).startOffset is 32
PASS document.caretRangeFromPoint(350,100).startOffset is 34
PASS document.caretRangeFromPoint(389,100).startOffset is 35
To the left of the first column:
PASS document.caretRangeFromPoint(0,10).startOffset is 0
PASS document.caretRangeFromPoint(0,30).startOffset is 0
PASS document.caretRangeFromPoint(0,50).startOffset is 4
PASS document.caretRangeFromPoint(0,70).startOffset is 8
PASS document.caretRangeFromPoint(0,90).startOffset is 8
To the right of the third column:
PASS document.caretRangeFromPoint(400,10).startOffset is 27
PASS document.caretRangeFromPoint(400,30).startOffset is 27
PASS document.caretRangeFromPoint(400,50).startOffset is 31
PASS document.caretRangeFromPoint(400,70).startOffset is 35
In the gap between the first and second columns:
PASS document.caretRangeFromPoint(180,20).startOffset is 3
PASS document.caretRangeFromPoint(180,40).startOffset is 7
PASS document.caretRangeFromPoint(180,60).startOffset is 11
PASS document.caretRangeFromPoint(180,69).startOffset is 11
In the gap between the second and third columns:
PASS document.caretRangeFromPoint(280,20).startOffset is 15
PASS document.caretRangeFromPoint(280,40).startOffset is 19
PASS document.caretRangeFromPoint(280,60).startOffset is 23
PASS document.caretRangeFromPoint(280,69).startOffset is 23
PASS successfullyParsed is true
TEST COMPLETE
xxx xxx xxx xxx xxx xxx xxx xxx xxx
Test that hitting areas outside columns takes us to the right text content inside columns.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Above first column:
PASS document.caretRangeFromPoint(450,0).startOffset is 0
PASS document.caretRangeFromPoint(350,0).startOffset is 2
PASS document.caretRangeFromPoint(291,0).startOffset is 3
PASS document.caretRangeFromPoint(290,0).startOffset is 3
Above second column:
PASS document.caretRangeFromPoint(289,0).startOffset is 12
PASS document.caretRangeFromPoint(250,0).startOffset is 14
PASS document.caretRangeFromPoint(191,0).startOffset is 15
PASS document.caretRangeFromPoint(190,0).startOffset is 15
Above third column:
PASS document.caretRangeFromPoint(189,0).startOffset is 24
PASS document.caretRangeFromPoint(150,0).startOffset is 26
PASS document.caretRangeFromPoint(50,0).startOffset is 27
Below first column:
PASS document.caretRangeFromPoint(450,100).startOffset is 8
PASS document.caretRangeFromPoint(350,100).startOffset is 10
PASS document.caretRangeFromPoint(291,100).startOffset is 11
PASS document.caretRangeFromPoint(290,100).startOffset is 11
Below second column:
PASS document.caretRangeFromPoint(289,100).startOffset is 20
PASS document.caretRangeFromPoint(250,100).startOffset is 22
PASS document.caretRangeFromPoint(191,100).startOffset is 23
PASS document.caretRangeFromPoint(190,100).startOffset is 23
Below third column:
PASS document.caretRangeFromPoint(189,100).startOffset is 32
PASS document.caretRangeFromPoint(150,100).startOffset is 34
PASS document.caretRangeFromPoint(50,100).startOffset is 35
To the right of the first column:
PASS document.caretRangeFromPoint(400,10).startOffset is 0
PASS document.caretRangeFromPoint(400,30).startOffset is 0
PASS document.caretRangeFromPoint(400,50).startOffset is 4
PASS document.caretRangeFromPoint(400,70).startOffset is 8
PASS document.caretRangeFromPoint(400,90).startOffset is 8
To the left of the third column:
PASS document.caretRangeFromPoint(0,10).startOffset is 27
PASS document.caretRangeFromPoint(0,30).startOffset is 27
PASS document.caretRangeFromPoint(0,50).startOffset is 31
PASS document.caretRangeFromPoint(0,70).startOffset is 35
PASS document.caretRangeFromPoint(0,90).startOffset is 35
In the gap between the first and second columns:
PASS document.caretRangeFromPoint(291,20).startOffset is 3
PASS document.caretRangeFromPoint(291,40).startOffset is 7
PASS document.caretRangeFromPoint(291,60).startOffset is 11
PASS document.caretRangeFromPoint(291,69).startOffset is 11
PASS document.caretRangeFromPoint(290,20).startOffset is 3
PASS document.caretRangeFromPoint(290,40).startOffset is 7
PASS document.caretRangeFromPoint(290,60).startOffset is 11
PASS document.caretRangeFromPoint(290,69).startOffset is 11
PASS document.caretRangeFromPoint(289,20).startOffset is 12
PASS document.caretRangeFromPoint(289,40).startOffset is 16
PASS document.caretRangeFromPoint(289,60).startOffset is 20
PASS document.caretRangeFromPoint(289,69).startOffset is 20
In the gap between the second and third columns:
PASS document.caretRangeFromPoint(191,20).startOffset is 15
PASS document.caretRangeFromPoint(191,40).startOffset is 19
PASS document.caretRangeFromPoint(191,60).startOffset is 23
PASS document.caretRangeFromPoint(191,69).startOffset is 23
PASS document.caretRangeFromPoint(190,20).startOffset is 15
PASS document.caretRangeFromPoint(190,40).startOffset is 19
PASS document.caretRangeFromPoint(190,60).startOffset is 23
PASS document.caretRangeFromPoint(190,69).startOffset is 23
PASS document.caretRangeFromPoint(189,20).startOffset is 24
PASS document.caretRangeFromPoint(189,40).startOffset is 28
PASS document.caretRangeFromPoint(189,60).startOffset is 32
PASS document.caretRangeFromPoint(189,69).startOffset is 32
PASS successfullyParsed is true
TEST COMPLETE
xxx xxx xxx xxx xxx xxx xxx xxx xxx
Test that hitting areas outside columns takes us to the right text content inside columns.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
To the left of the first column:
PASS document.caretRangeFromPoint(0,10).startOffset is 0
PASS document.caretRangeFromPoint(0,70).startOffset is 2
PASS document.caretRangeFromPoint(0,109).startOffset is 3
To the left of the second column:
PASS document.caretRangeFromPoint(0,110).startOffset is 12
PASS document.caretRangeFromPoint(0,170).startOffset is 14
PASS document.caretRangeFromPoint(0,209).startOffset is 15
To the left of the third column:
PASS document.caretRangeFromPoint(0,210).startOffset is 24
PASS document.caretRangeFromPoint(0,270).startOffset is 26
PASS document.caretRangeFromPoint(0,309).startOffset is 27
To the right of the first column:
PASS document.caretRangeFromPoint(400,10).startOffset is 8
PASS document.caretRangeFromPoint(400,70).startOffset is 10
PASS document.caretRangeFromPoint(400,109).startOffset is 11
To the right of the second column:
PASS document.caretRangeFromPoint(400,110).startOffset is 20
PASS document.caretRangeFromPoint(400,170).startOffset is 22
PASS document.caretRangeFromPoint(400,209).startOffset is 23
To the right of the third column:
PASS document.caretRangeFromPoint(400,210).startOffset is 32
PASS document.caretRangeFromPoint(400,270).startOffset is 34
PASS document.caretRangeFromPoint(400,309).startOffset is 35
Above first column:
PASS document.caretRangeFromPoint(90,0).startOffset is 0
PASS document.caretRangeFromPoint(110,0).startOffset is 0
PASS document.caretRangeFromPoint(130,0).startOffset is 4
PASS document.caretRangeFromPoint(150,0).startOffset is 8
PASS document.caretRangeFromPoint(170,0).startOffset is 8
Below third column:
PASS document.caretRangeFromPoint(90,350).startOffset is 27
PASS document.caretRangeFromPoint(110,350).startOffset is 27
PASS document.caretRangeFromPoint(130,350).startOffset is 31
PASS document.caretRangeFromPoint(150,350).startOffset is 35
In the gap between the first and second columns:
PASS document.caretRangeFromPoint(100,109).startOffset is 3
PASS document.caretRangeFromPoint(120,109).startOffset is 7
PASS document.caretRangeFromPoint(140,109).startOffset is 11
PASS document.caretRangeFromPoint(159,109).startOffset is 11
PASS document.caretRangeFromPoint(100,110).startOffset is 12
PASS document.caretRangeFromPoint(120,110).startOffset is 16
PASS document.caretRangeFromPoint(140,110).startOffset is 20
PASS document.caretRangeFromPoint(159,110).startOffset is 20
In the gap between the second and third columns:
PASS document.caretRangeFromPoint(100,209).startOffset is 15
PASS document.caretRangeFromPoint(120,209).startOffset is 19
PASS document.caretRangeFromPoint(140,209).startOffset is 23
PASS document.caretRangeFromPoint(159,209).startOffset is 23
PASS document.caretRangeFromPoint(100,210).startOffset is 24
PASS document.caretRangeFromPoint(120,210).startOffset is 28
PASS document.caretRangeFromPoint(140,210).startOffset is 32
PASS document.caretRangeFromPoint(159,210).startOffset is 32
PASS successfullyParsed is true
TEST COMPLETE
xxx xxx xxx xxx xxx xxx xxx xxx xxx
Test that hitting areas outside columns takes us to the right text content inside columns.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
To the left of the first column:
PASS document.caretRangeFromPoint(0,309).startOffset is 0
PASS document.caretRangeFromPoint(0,270).startOffset is 2
PASS document.caretRangeFromPoint(0,211).startOffset is 3
PASS document.caretRangeFromPoint(0,210).startOffset is 3
To the left of the second column:
PASS document.caretRangeFromPoint(0,209).startOffset is 12
PASS document.caretRangeFromPoint(0,170).startOffset is 14
PASS document.caretRangeFromPoint(0,111).startOffset is 15
PASS document.caretRangeFromPoint(0,110).startOffset is 15
To the left of the third column:
PASS document.caretRangeFromPoint(0,109).startOffset is 24
PASS document.caretRangeFromPoint(0,70).startOffset is 26
PASS document.caretRangeFromPoint(0,0).startOffset is 27
To the right of the first column:
PASS document.caretRangeFromPoint(400,309).startOffset is 8
PASS document.caretRangeFromPoint(400,270).startOffset is 10
PASS document.caretRangeFromPoint(400,211).startOffset is 11
PASS document.caretRangeFromPoint(400,210).startOffset is 11
To the right of the second column:
PASS document.caretRangeFromPoint(400,209).startOffset is 20
PASS document.caretRangeFromPoint(400,170).startOffset is 22
PASS document.caretRangeFromPoint(400,111).startOffset is 23
PASS document.caretRangeFromPoint(400,110).startOffset is 23
To the right of the third column:
PASS document.caretRangeFromPoint(400,109).startOffset is 32
PASS document.caretRangeFromPoint(400,70).startOffset is 34
PASS document.caretRangeFromPoint(400,11).startOffset is 35
Below first column:
PASS document.caretRangeFromPoint(90,350).startOffset is 0
PASS document.caretRangeFromPoint(110,350).startOffset is 0
PASS document.caretRangeFromPoint(130,350).startOffset is 4
PASS document.caretRangeFromPoint(150,350).startOffset is 8
PASS document.caretRangeFromPoint(170,350).startOffset is 8
Above third column:
PASS document.caretRangeFromPoint(90,0).startOffset is 27
PASS document.caretRangeFromPoint(110,0).startOffset is 27
PASS document.caretRangeFromPoint(130,0).startOffset is 31
PASS document.caretRangeFromPoint(150,0).startOffset is 35
In the gap between the first and second columns:
PASS document.caretRangeFromPoint(100,211).startOffset is 3
PASS document.caretRangeFromPoint(120,211).startOffset is 7
PASS document.caretRangeFromPoint(140,211).startOffset is 11
PASS document.caretRangeFromPoint(159,211).startOffset is 11
PASS document.caretRangeFromPoint(100,210).startOffset is 3
PASS document.caretRangeFromPoint(120,210).startOffset is 7
PASS document.caretRangeFromPoint(140,210).startOffset is 11
PASS document.caretRangeFromPoint(159,210).startOffset is 11
PASS document.caretRangeFromPoint(100,209).startOffset is 12
PASS document.caretRangeFromPoint(120,209).startOffset is 16
PASS document.caretRangeFromPoint(140,209).startOffset is 20
PASS document.caretRangeFromPoint(159,209).startOffset is 20
In the gap between the second and third columns:
PASS document.caretRangeFromPoint(100,111).startOffset is 15
PASS document.caretRangeFromPoint(120,111).startOffset is 19
PASS document.caretRangeFromPoint(140,111).startOffset is 23
PASS document.caretRangeFromPoint(159,111).startOffset is 23
PASS document.caretRangeFromPoint(100,110).startOffset is 15
PASS document.caretRangeFromPoint(120,110).startOffset is 19
PASS document.caretRangeFromPoint(140,110).startOffset is 23
PASS document.caretRangeFromPoint(159,110).startOffset is 23
PASS document.caretRangeFromPoint(100,109).startOffset is 24
PASS document.caretRangeFromPoint(120,109).startOffset is 28
PASS document.caretRangeFromPoint(140,109).startOffset is 32
PASS document.caretRangeFromPoint(159,109).startOffset is 32
PASS successfullyParsed is true
TEST COMPLETE
xxx xxx xxx xxx xxx xxx xxx xxx xxx
Test that hitting areas outside columns takes us to the right text content inside columns.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
To the right of the first column:
PASS document.caretRangeFromPoint(550,10).startOffset is 0
PASS document.caretRangeFromPoint(550,70).startOffset is 2
PASS document.caretRangeFromPoint(550,109).startOffset is 3
To the right of the second column:
PASS document.caretRangeFromPoint(550,110).startOffset is 12
PASS document.caretRangeFromPoint(550,170).startOffset is 14
PASS document.caretRangeFromPoint(550,209).startOffset is 15
To the right of the third column:
PASS document.caretRangeFromPoint(550,210).startOffset is 24
PASS document.caretRangeFromPoint(550,270).startOffset is 26
PASS document.caretRangeFromPoint(550,309).startOffset is 27
To the left of the first column:
PASS document.caretRangeFromPoint(0,10).startOffset is 8
PASS document.caretRangeFromPoint(0,70).startOffset is 10
PASS document.caretRangeFromPoint(0,109).startOffset is 11
To the left of the second column:
PASS document.caretRangeFromPoint(0,110).startOffset is 20
PASS document.caretRangeFromPoint(0,170).startOffset is 22
PASS document.caretRangeFromPoint(0,209).startOffset is 23
To the left of the third column:
PASS document.caretRangeFromPoint(0,210).startOffset is 32
PASS document.caretRangeFromPoint(0,270).startOffset is 34
PASS document.caretRangeFromPoint(0,309).startOffset is 35
Above first column:
PASS document.caretRangeFromPoint(550,0).startOffset is 0
PASS document.caretRangeFromPoint(490,0).startOffset is 0
PASS document.caretRangeFromPoint(470,0).startOffset is 4
PASS document.caretRangeFromPoint(450,0).startOffset is 8
Below third column:
PASS document.caretRangeFromPoint(490,350).startOffset is 27
PASS document.caretRangeFromPoint(470,350).startOffset is 31
PASS document.caretRangeFromPoint(450,350).startOffset is 35
In the gap between the first and second columns:
PASS document.caretRangeFromPoint(499,109).startOffset is 3
PASS document.caretRangeFromPoint(479,109).startOffset is 7
PASS document.caretRangeFromPoint(459,109).startOffset is 11
PASS document.caretRangeFromPoint(440,109).startOffset is 11
PASS document.caretRangeFromPoint(499,110).startOffset is 12
PASS document.caretRangeFromPoint(479,110).startOffset is 16
PASS document.caretRangeFromPoint(459,110).startOffset is 20
PASS document.caretRangeFromPoint(440,110).startOffset is 20
In the gap between the second and third columns:
PASS document.caretRangeFromPoint(499,209).startOffset is 15
PASS document.caretRangeFromPoint(479,209).startOffset is 19
PASS document.caretRangeFromPoint(459,209).startOffset is 23
PASS document.caretRangeFromPoint(440,209).startOffset is 23
PASS document.caretRangeFromPoint(499,210).startOffset is 24
PASS document.caretRangeFromPoint(479,210).startOffset is 28
PASS document.caretRangeFromPoint(459,210).startOffset is 32
PASS document.caretRangeFromPoint(440,210).startOffset is 32
PASS successfullyParsed is true
TEST COMPLETE
xxx xxx xxx xxx xxx xxx xxx xxx xxx
Test that hitting areas outside columns takes us to the right text content inside columns.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
To the right of the first column:
PASS document.caretRangeFromPoint(550,340).startOffset is 0
PASS document.caretRangeFromPoint(550,270).startOffset is 2
PASS document.caretRangeFromPoint(550,211).startOffset is 3
PASS document.caretRangeFromPoint(550,210).startOffset is 3
To the right of the second column:
PASS document.caretRangeFromPoint(550,209).startOffset is 12
PASS document.caretRangeFromPoint(550,170).startOffset is 14
PASS document.caretRangeFromPoint(550,111).startOffset is 15
PASS document.caretRangeFromPoint(550,110).startOffset is 15
To the right of the third column:
PASS document.caretRangeFromPoint(550,109).startOffset is 24
PASS document.caretRangeFromPoint(550,70).startOffset is 26
PASS document.caretRangeFromPoint(550,11).startOffset is 27
To the left of the first column:
PASS document.caretRangeFromPoint(0,340).startOffset is 8
PASS document.caretRangeFromPoint(0,270).startOffset is 10
PASS document.caretRangeFromPoint(0,211).startOffset is 11
PASS document.caretRangeFromPoint(0,210).startOffset is 11
To the left of the second column:
PASS document.caretRangeFromPoint(0,209).startOffset is 20
PASS document.caretRangeFromPoint(0,170).startOffset is 22
PASS document.caretRangeFromPoint(0,111).startOffset is 23
PASS document.caretRangeFromPoint(0,110).startOffset is 23
To the left of the second column:
PASS document.caretRangeFromPoint(0,109).startOffset is 32
PASS document.caretRangeFromPoint(0,70).startOffset is 34
PASS document.caretRangeFromPoint(0,0).startOffset is 35
Below first column:
PASS document.caretRangeFromPoint(550,350).startOffset is 0
PASS document.caretRangeFromPoint(490,350).startOffset is 0
PASS document.caretRangeFromPoint(470,350).startOffset is 4
PASS document.caretRangeFromPoint(450,350).startOffset is 8
Above third column:
PASS document.caretRangeFromPoint(490,0).startOffset is 27
PASS document.caretRangeFromPoint(470,0).startOffset is 31
PASS document.caretRangeFromPoint(450,0).startOffset is 35
In the gap between the first and second columns:
PASS document.caretRangeFromPoint(499,211).startOffset is 3
PASS document.caretRangeFromPoint(479,211).startOffset is 7
PASS document.caretRangeFromPoint(459,211).startOffset is 11
PASS document.caretRangeFromPoint(440,211).startOffset is 11
PASS document.caretRangeFromPoint(499,210).startOffset is 3
PASS document.caretRangeFromPoint(479,210).startOffset is 7
PASS document.caretRangeFromPoint(459,210).startOffset is 11
PASS document.caretRangeFromPoint(440,210).startOffset is 11
PASS document.caretRangeFromPoint(499,209).startOffset is 12
PASS document.caretRangeFromPoint(479,209).startOffset is 16
PASS document.caretRangeFromPoint(459,209).startOffset is 20
PASS document.caretRangeFromPoint(440,209).startOffset is 20
In the gap between the second and third columns:
PASS document.caretRangeFromPoint(499,111).startOffset is 15
PASS document.caretRangeFromPoint(479,111).startOffset is 19
PASS document.caretRangeFromPoint(459,111).startOffset is 23
PASS document.caretRangeFromPoint(440,111).startOffset is 23
PASS document.caretRangeFromPoint(499,110).startOffset is 15
PASS document.caretRangeFromPoint(479,110).startOffset is 19
PASS document.caretRangeFromPoint(459,110).startOffset is 23
PASS document.caretRangeFromPoint(440,110).startOffset is 23
PASS document.caretRangeFromPoint(499,109).startOffset is 24
PASS document.caretRangeFromPoint(479,109).startOffset is 28
PASS document.caretRangeFromPoint(459,109).startOffset is 32
PASS document.caretRangeFromPoint(440,109).startOffset is 32
PASS successfullyParsed is true
TEST COMPLETE
xxx xxx xxx xxx xxx xxx xxx xxx xxx
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment