mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
test more jQuery cases
This commit is contained in:
@@ -192,6 +192,9 @@ var DomRange = function (component) {
|
||||
|
||||
_extend(DomRange.prototype, {
|
||||
getNodes: function () {
|
||||
if (! this.parentNode())
|
||||
return [];
|
||||
|
||||
this.refresh();
|
||||
|
||||
var afterNode = this.end.nextSibling;
|
||||
@@ -203,6 +206,9 @@ _extend(DomRange.prototype, {
|
||||
return nodes;
|
||||
},
|
||||
removeAll: function () {
|
||||
if (! this.parentNode())
|
||||
return;
|
||||
|
||||
this.refresh();
|
||||
|
||||
// leave start and end
|
||||
@@ -494,6 +500,9 @@ _extend(DomRange.prototype, {
|
||||
// see `getInsertionPoint`. Adding multiple members
|
||||
// at once using `add(array)` is faster.
|
||||
refresh: function () {
|
||||
var parentNode = this.parentNode();
|
||||
if (! parentNode)
|
||||
return;
|
||||
|
||||
// Using `eachMember`, do several things:
|
||||
// - Refresh all member ranges
|
||||
@@ -520,7 +529,6 @@ _extend(DomRange.prototype, {
|
||||
numMembers++;
|
||||
});
|
||||
|
||||
var parentNode = this.parentNode();
|
||||
var firstNode = null;
|
||||
var lastNode = null;
|
||||
|
||||
|
||||
@@ -1027,6 +1027,8 @@ Tinytest.add("ui - DomRange - structural removal", function (test) {
|
||||
test.isTrue(f.isRemoved);
|
||||
test.isTrue(h.isRemoved);
|
||||
test.isTrue(k.isRemoved);
|
||||
|
||||
r.removeAll();
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1039,26 +1041,46 @@ Tinytest.add("ui - DomRange - noticed removal", function (test) {
|
||||
|
||||
Tinytest.add("ui - DomRange - jQuery removal", function (test) {
|
||||
inDocument(htmlRange("<div></div>"), function (r) {
|
||||
var g = document.createElement("DIV");
|
||||
var h = new DomRange;
|
||||
var i = document.createElement("DIV");
|
||||
var j = document.createElement("DIV");
|
||||
var k = new DomRange;
|
||||
r.add('g', g);
|
||||
DomRange.insert(h, g);
|
||||
h.add(i);
|
||||
DomRange.insert(k, j);
|
||||
i.appendChild(j);
|
||||
test.isFalse(h.isRemoved);
|
||||
test.isFalse(k.isRemoved);
|
||||
for (var scenario = 0; scenario < 3; scenario++) {
|
||||
var f = document.createElement("DIV");
|
||||
var g = document.createElement("DIV");
|
||||
var h = new DomRange;
|
||||
var i = document.createElement("DIV");
|
||||
var j = document.createElement("DIV");
|
||||
var k = new DomRange;
|
||||
r.add(f);
|
||||
f.appendChild(g);
|
||||
DomRange.insert(h, g);
|
||||
h.add(i);
|
||||
DomRange.insert(k, j);
|
||||
i.appendChild(j);
|
||||
test.isFalse(h.isRemoved);
|
||||
test.isFalse(k.isRemoved);
|
||||
|
||||
$(g).removeData();
|
||||
test.isFalse(h.isRemoved);
|
||||
test.isFalse(k.isRemoved);
|
||||
$(g).removeData();
|
||||
test.isFalse(h.isRemoved);
|
||||
test.isFalse(k.isRemoved);
|
||||
|
||||
$(g).remove();
|
||||
test.isTrue(h.isRemoved);
|
||||
test.isTrue(k.isRemoved);
|
||||
if (scenario === 0)
|
||||
$(g).remove();
|
||||
else if (scenario === 1)
|
||||
$(f).empty();
|
||||
else if (scenario === 2)
|
||||
$(f).html("<br>");
|
||||
else if (scenario === 3)
|
||||
$(g).detach();
|
||||
|
||||
if (scenario !== 3) {
|
||||
test.isTrue(h.isRemoved);
|
||||
test.isTrue(k.isRemoved);
|
||||
} else {
|
||||
// `detach` doesn't remove
|
||||
test.isFalse(h.isRemoved);
|
||||
test.isFalse(k.isRemoved);
|
||||
}
|
||||
|
||||
r.removeAll();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user