Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Range tests for changes to the detach() method. #133

Merged
merged 1 commit into from
Aug 13, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions dom/ranges/Range-cloneContents.html
Original file line number Diff line number Diff line change
Expand Up @@ -392,14 +392,12 @@

setup({timeout: 60000});

// First test a detached Range, synchronously
// First test a Range that has the no-op detach() called on it, synchronously
test(function() {
var range = document.createRange();
range.detach();
assert_throws("INVALID_STATE_ERR", function() {
range.cloneContents();
}, "Detached Range must throw INVALID_STATE_ERR on .cloneContents()");
}, "Detached Range");
assert_array_equals(range.cloneContents().childNodes, []);
}, "Range.detach()");

var domTests = [];
var positionTests = [];
Expand Down
12 changes: 9 additions & 3 deletions dom/ranges/Range-cloneRange.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,15 @@
if (rangeEndpoints == "detached") {
range = document.createRange();
range.detach();
assert_throws("INVALID_STATE_ERR", function() {
range.cloneRange();
}, "Detached Range must throw INVALID_STATE_ERR on .cloneRange()");
var clonedRange = range.cloneRange();
assert_equals(clonedRange.startContainer, range.startContainer,
"startContainers must be equal after cloneRange()");
assert_equals(clonedRange.startOffset, range.startOffset,
"startOffsets must be equal after cloneRange()");
assert_equals(clonedRange.endContainer, range.endContainer,
"endContainers must be equal after cloneRange()");
assert_equals(clonedRange.endOffset, range.endOffset,
"endOffsets must be equal after cloneRange()");
return;
}

Expand Down
9 changes: 3 additions & 6 deletions dom/ranges/Range-collapse.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,9 @@
if (rangeEndpoints == "detached") {
range = document.createRange();
range.detach();
assert_throws("INVALID_STATE_ERR", function() {
range.collapse(toStart);
}, "Detached Range must throw INVALID_STATE_ERR on .collapse()");
assert_throws("INVALID_STATE_ERR", function() {
range.collapsed;
}, "Detached Range must throw INVALID_STATE_ERR on .collapsed access");
range.collapse(toStart);
assert_true(range.collapsed,
".collapsed must be set after .collapsed()");
return;
}

Expand Down
9 changes: 0 additions & 9 deletions dom/ranges/Range-commonAncestorContainer.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,6 @@
range = rangeFromEndpoints(eval(testRanges[i]));
}

// "If the detached flag is set, throw an "InvalidStateError" exception
// and terminate these steps."
if (i == 0) {
assert_throws("INVALID_STATE_ERR", function() {
range.commonAncestorContainer;
}, "Detached range must throw InvalidStateError");
return;
}

// "Let container be start node."
var container = range.startContainer;

Expand Down
10 changes: 0 additions & 10 deletions dom/ranges/Range-compareBoundaryPoints.html
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,6 @@
}

// Now to the actual algorithm.
// "If context object's or sourceRange's detached flag is set,
// throw an "InvalidStateError" exception and terminate these
// steps."
if (i == 0 || j == 0) {
assert_throws("INVALID_STATE_ERR", function() {
range1.compareBoundaryPoints(how, range2);
}, "InvalidStateError required if one of the ranges is detached");
return;
}

// "If how is not one of
// START_TO_START,
// START_TO_END,
Expand Down
10 changes: 0 additions & 10 deletions dom/ranges/Range-comparePoint.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,6 @@
normalizedOffset += Math.pow(2, 32);
}

// "If the detached flag is set, throw an "InvalidStateError" exception and
// terminate these steps."
test(function() {
var range = document.createRange();
range.detach();
assert_throws("INVALID_STATE_ERR", function() {
range.comparePoint(node, offset);
}, "Must throw InvalidStateError if range is detached");
}, "Point " + i + " " + testPoints[i] + ", detached range");

for (var j = 0; j < testRanges.length; j++) {
test(function() {
if (testRangesCached[j] === undefined) {
Expand Down
4 changes: 1 addition & 3 deletions dom/ranges/Range-deleteContents.html
Original file line number Diff line number Diff line change
Expand Up @@ -275,9 +275,7 @@
test(function() {
var range = document.createRange();
range.detach();
assert_throws("INVALID_STATE_ERR", function() {
range.deleteContents();
}, "Detached Range must throw INVALID_STATE_ERR on .deleteContents()");
range.deleteContents();
}, "Detached Range");

var domTests = [];
Expand Down
4 changes: 1 addition & 3 deletions dom/ranges/Range-extractContents.html
Original file line number Diff line number Diff line change
Expand Up @@ -190,9 +190,7 @@
test(function() {
var range = document.createRange();
range.detach();
assert_throws("INVALID_STATE_ERR", function() {
range.extractContents();
}, "Detached Range must throw INVALID_STATE_ERR on .extractContents()");
assert_array_equals(range.extractContents().childNodes, []);
}, "Detached Range");

var domTests = [];
Expand Down
4 changes: 1 addition & 3 deletions dom/ranges/Range-intersectsNode.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@
test(function() {
var range = document.createRange();
range.detach();
assert_throws("INVALID_STATE_ERR", function() {
range.intersectsNode(node);
}, "Must throw InvalidStateError if range is detached");
assert_equals(range.intersectsNode(node), node === document);
}, "Node " + i + " " + testNodes[i] + ", detached range");

for (var j = 0; j < testRanges.length; j++) {
Expand Down
32 changes: 11 additions & 21 deletions dom/ranges/Range-isPointInRange.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,18 @@
<script>
"use strict";

// Will be filled in on the first run for that range
var testRangesCached = [];
test(function() {
for (var j = 0; j < testRanges.length; j++) {
test(function() {
testRangesCached[j] = rangeFromEndpoints(eval(testRanges[j]));
}, "Set up for range " + j + " " + testRanges[j]);
}
var detachedRange = document.createRange();
detachedRange.detach();
testRanges.push("detached");
testRangesCached.push(detachedRange);
}, "Setup");

for (var i = 0; i < testPoints.length; i++) {
var node = eval(testPoints[i])[0];
Expand All @@ -22,28 +32,8 @@
normalizedOffset += Math.pow(2, 32);
}

// "If the detached flag is set, throw an "InvalidStateError" exception and
// terminate these steps."
test(function() {
var range = document.createRange();
range.detach();
assert_throws("INVALID_STATE_ERR", function() {
range.isPointInRange(node, offset);
}, "Must throw InvalidStateError if range is detached");
}, "Point " + i + " " + testPoints[i] + ", detached range");

for (var j = 0; j < testRanges.length; j++) {
test(function() {
if (testRangesCached[j] === undefined) {
try {
testRangesCached[j] = rangeFromEndpoints(eval(testRanges[i]));
} catch(e) {
testRangesCached[j] = null;
}
}
assert_not_equals(testRangesCached[j], null,
"Setting up the range failed");

var range = testRangesCached[j].cloneRange();

// "If node's root is different from the context object's root,
Expand Down
50 changes: 0 additions & 50 deletions dom/ranges/Range-set.html
Original file line number Diff line number Diff line change
Expand Up @@ -155,56 +155,6 @@
}


test(function() {
for (var i = 0; i < testPoints.length; i++) {
var point = eval(testPoints[i]);
assert_throws("INVALID_STATE_ERR", function() {
var range = document.createRange();
range.detach();

range.setStart(point[0], point[1]);
}, "setStart(" + testPoints[i] + ")");

assert_throws("INVALID_STATE_ERR", function() {
var range = document.createRange();
range.detach();

range.setEnd(point[0], point[1]);
}, "setEnd(" + testPoints[i] + ")");
}

for (var i = 0; i < testNodes.length; i++) {
var node = eval(testNodes[i]);
assert_throws("INVALID_STATE_ERR", function() {
var range = document.createRange();
range.detach();

range.setStartBefore(node);
}, "setStartBefore(" + testNodes[i] + ")");

assert_throws("INVALID_STATE_ERR", function() {
var range = document.createRange();
range.detach();

range.setStartAfter(node);
}, "setStartAfter(" + testNodes[i] + "");

assert_throws("INVALID_STATE_ERR", function() {
var range = document.createRange();
range.detach();

range.setEndBefore(node);
}, "setEndBefore(" + testNodes[i] + ")");

assert_throws("INVALID_STATE_ERR", function() {
var range = document.createRange();
range.detach();

range.setStartAfter(node);
}, "setEndAfter(" + testNodes[i] + ")");
}
}, "Setting boundary points on a detached Range must throw INVALID_STATE_ERR");

var startTests = [];
var endTests = [];
var startBeforeTests = [];
Expand Down