Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Unified Diff: LayoutTests/editing/selection/no-range-canonicalization.html

Issue 225303002: Let Selection.collapse remember a raw Position instead of a canonicalized one. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix setSelectedRange arguments Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/editing/selection/no-range-canonicalization.html
diff --git a/LayoutTests/editing/selection/no-range-canonicalization.html b/LayoutTests/editing/selection/no-range-canonicalization.html
index 31ad3245fc487f6f714f579b1b1461f173adf9ad..ed69c2ffa131e2cda4313489678a866c0c32270c 100644
--- a/LayoutTests/editing/selection/no-range-canonicalization.html
+++ b/LayoutTests/editing/selection/no-range-canonicalization.html
@@ -6,7 +6,7 @@
</head>
<body>
<script>
-description('Ranges set by Selection.addRange() and returned by Selection.getRangeAt() should be identical.');
+description('Ranges/Nodes set by a Selection method and returned by a corresoponding Selection method should be identical.');
var sandboxRoot = document.createElement('div');
sandboxRoot.innerHTML =
@@ -33,10 +33,10 @@ function collapsedRangeAt(anchorNode, offset)
var originalRange;
var gotRange;
-function testSingleRange(range)
+function testAddRange()
{
- originalRange = range;
- selectRange(range);
+ originalRange = collapsedRangeAt(originalAnchorNode, originalAnchorOffset);
+ selectRange(originalRange);
gotRange = selection.getRangeAt(0);
shouldBeTrue('gotRange.startContainer === originalRange.startContainer');
@@ -45,6 +45,27 @@ function testSingleRange(range)
shouldBe('gotRange.endOffset', 'originalRange.endOffset');
}
+function testCollapse()
+{
+ selection.collapse(originalAnchorNode, originalAnchorOffset);
+ gotRange = selection.getRangeAt(0);
+ shouldBeTrue('gotRange.startContainer === originalAnchorNode');
+ shouldBe('gotRange.startOffset', 'originalAnchorOffset');
+ shouldBeTrue('gotRange.endContainer === originalAnchorNode');
+ shouldBe('gotRange.endOffset', 'originalAnchorOffset');
+}
+
+var originalAnchorNode;
+var originalAnchorOffset;
+function testSingleRange(anchorNode, anchorOffset)
+{
+ originalAnchorNode = anchorNode;
+ originalAnchorOffset = anchorOffset;
+
+ testAddRange();
+ testCollapse();
+}
+
function runTest(rootElement)
{
var span1 = rootElement.childNodes[0];
@@ -55,19 +76,19 @@ function runTest(rootElement)
// These positions are all visually equivalent, and should not mutate when obtained by getRangeAt().
debug('position = [text1, 1]');
- testSingleRange(collapsedRangeAt(text1, 1));
+ testSingleRange(text1, 1);
debug('position = [span1, 1]');
- testSingleRange(collapsedRangeAt(span1, 1));
+ testSingleRange(span1, 1);
debug('position = [rootElement, 1]');
- testSingleRange(collapsedRangeAt(rootElement, 1));
+ testSingleRange(rootElement, 1);
debug('position = [span2, 0]');
- testSingleRange(collapsedRangeAt(span2, 0));
+ testSingleRange(span2, 0);
debug('position = [rootElement, 2]');
- testSingleRange(collapsedRangeAt(rootElement, 2));
+ testSingleRange(rootElement, 2);
debug('position = [span3, 0]');
- testSingleRange(collapsedRangeAt(span3, 0));
+ testSingleRange(span3, 0);
debug('position = [text2, 0]');
- testSingleRange(collapsedRangeAt(text2, 0));
+ testSingleRange(text2, 0);
}
debug('Testing selection on non-editable nodes...');

Powered by Google App Engine
This is Rietveld 408576698