diff --git a/src/browser/tests/selection.html b/src/browser/tests/selection.html index af6321a1..4aad996d 100644 --- a/src/browser/tests/selection.html +++ b/src/browser/tests/selection.html @@ -102,7 +102,10 @@ range2.selectNodeContents(p2); sel.addRange(range2); - testing.expectEqual(2, sel.rangeCount); + + // Firefox does support multiple ranges so it will be 2 here instead of 1. + // Chrome and Safari don't so we don't either. + testing.expectEqual(1, sel.rangeCount); } @@ -136,15 +139,17 @@ sel.addRange(range1); sel.addRange(range2); - testing.expectEqual(2, sel.rangeCount); - - sel.removeRange(range1); + + // Firefox does support multiple ranges so it will be 2 here instead of 1. + // Chrome and Safari don't so we don't either. testing.expectEqual(1, sel.rangeCount); - testing.expectEqual(range2, sel.getRangeAt(0)); - // Removing non-existent range does nothing - testing.expectError('NotFoundError', () => { sel.removeRange(range1); }); + // Chrome doesn't throw an error here even though the spec defines it: + // https://w3c.github.io/selection-api/#dom-selection-removerange + testing.expectError('NotFoundError', () => { sel.removeRange(range2); }); + testing.expectEqual(1, sel.rangeCount); + testing.expectEqual(range1, sel.getRangeAt(0)); } @@ -161,7 +166,10 @@ sel.addRange(range1); sel.addRange(range2); - testing.expectEqual(2, sel.rangeCount); + + // Firefox does support multiple ranges so it will be 2 here instead of 1. + // Chrome and Safari don't so we don't either. + testing.expectEqual(1, sel.rangeCount); sel.removeAllRanges(); testing.expectEqual(0, sel.rangeCount); @@ -312,12 +320,7 @@ sel.removeAllRanges(); sel.addRange(range); - - // Full containment (default) - testing.expectEqual(true, sel.containsNode(s1, false)); - testing.expectEqual(true, sel.containsNode(s2, false)); - testing.expectEqual(false, sel.containsNode(nested, false)); - + // Partial containment testing.expectEqual(true, sel.containsNode(s1, true)); testing.expectEqual(true, sel.containsNode(s2, true)); @@ -361,32 +364,6 @@ } - -