can
Version:
MIT-licensed, client-side, JavaScript framework that makes building rich web applications easy.
53 lines (37 loc) • 1.36 kB
JavaScript
steal('can/view/node_lists', 'can/view/elements.js', 'steal-qunit', function (nodeLists, elements) {
module('can/view/live/node_lists');
test('unregisters child nodeLists', function () {
expect(3);
// two spans that might have been created by #each
var spansFrag = can.buildFragment("<span>1</span><span>2</span>");
var spansList = can.makeArray(spansFrag.childNodes);
nodeLists.register(spansList, function(){
ok(true,"unregistered spansList");
});
// A label that might have been created by #foo
var labelFrag = can.buildFragment("<label>l</label>");
var labelList = can.makeArray(labelFrag.childNodes);
nodeLists.register( labelList, function(){
ok(true,"unregistered labelList");
});
// the html inside #if}
var ifPreHookupFrag = can.frag(["~","","-",""]),
ifChildNodes = ifPreHookupFrag.childNodes,
ifEls = can.makeArray(ifChildNodes);
//
elements.replace([ifChildNodes[1]], spansFrag);
// 4 because 2 elements are inserted
elements.replace([ifChildNodes[4]], labelFrag);
var ifList = can.makeArray(ifPreHookupFrag.childNodes);
nodeLists.register(ifList, function(){
ok(true,"unregistered ifList");
});
deepEqual(ifList,[
ifEls[0],
spansList,
ifEls[2],
labelList
]);
nodeLists.update(ifList, [document.createTextNode("empty")]);
});
});