more tests

This commit is contained in:
David Greenspan
2013-09-02 15:37:35 -07:00
parent 07738efc19
commit bca0d2ec1e
2 changed files with 35 additions and 3 deletions

View File

@@ -214,7 +214,6 @@ _extend(DomRange.prototype, {
throw new Error("Member already exists: " + id.slice(1));
}
}
members[id] = newMember;
if ('dom' in newMember) {
if (! newMember.dom)
@@ -225,8 +224,11 @@ _extend(DomRange.prototype, {
var nodes = range.getNodes();
if (tbodyFixNeeded(nodes, parentNode))
// may cause a refresh(); important that the
// member isn't added yet
parentNode = moveWithOwnersIntoTbody(this);
members[id] = newMember;
for (var i = 0; i < nodes.length; i++)
insertNode(nodes[i], parentNode, nextNode);
} else {
@@ -240,8 +242,11 @@ _extend(DomRange.prototype, {
node.$ui = this.component;
if (tbodyFixNeeded(node, parentNode))
// may cause a refresh(); important that the
// member isn't added yet
parentNode = moveWithOwnersIntoTbody(this);
members[id] = newMember;
insertNode(node, parentNode, nextNode);
}
},
@@ -693,8 +698,6 @@ DomRange.prototype.contains = function (compOrNode) {
return false;
var range;
if (! compOrNode)
debugger;
if ('dom' in compOrNode) {
// Component
range = compOrNode.dom;

View File

@@ -846,6 +846,35 @@ Tinytest.addAsync("ui - DomRange - IE TextNode GC", function (test, onComplete)
}, 500);
});
Tinytest.add("ui - DomRange - more TBODY", function (test) {
inDocument(htmlRange("<table></table>"), function (r) {
var table = r.elements()[0];
var tableContent = new DomRange;
var buf = [];
DomRange.insert(tableContent, table);
var trRange = htmlRange("<tr><td>Hello</td></tr>");
tableContent.add(trRange);
test.isTrue(tableContent.contains(trRange));
});
inDocument(htmlRange("<table></table>"), function (r) {
var table = r.elements()[0];
var tableContent = new DomRange;
var buf = [];
DomRange.insert(tableContent, table);
var trRange = htmlRange("<tr><td>Hello</td></tr>");
var tr = trRange.elements()[0];
tableContent.add('tr', tr);
test.equal(_.keys(tableContent.members).length, 1);
test.isTrue(tableContent.contains(tr));
tableContent.remove('tr');
// bizarrely, in IE 8, the `tr` still has some
// DocumentFragment as its parent even though `removeChild`
// has been called on it directly.
test.isFalse(tr.parentNode && tr.parentNode.nodeType === 1);
});
});
Tinytest.add("ui - DomRange - events in tables", function (test) {
inDocument(htmlRange("<table></table>"), function (r) {
var table = r.elements()[0];