Skip to content

Commit

Permalink
fixed unit tests for NodeListAdapter
Browse files Browse the repository at this point in the history
  • Loading branch information
John Hann committed Apr 11, 2012
1 parent 98c034a commit 5450085
Showing 1 changed file with 26 additions and 31 deletions.
57 changes: 26 additions & 31 deletions test/dom/NodeListAdapter.html
Expand Up @@ -30,7 +30,8 @@

function compareById (a, b) { return a.id - b.id; }
function symbolizeById (a) { return a.id; }
function querySelector (selector, node) { return node.querySelector(selector); }
function querySelector (selector, node) { return (node||document).querySelector(selector); }
function querySelectorAll (selector, node) { return (node||document).querySelectorAll(selector); }


function init () {
Expand All @@ -41,75 +42,69 @@
}

doh.register('the basics', [
function canHandle (doh) {
function shouldHandleNodes (doh) {
doh.assertTrue(NodeListAdapter.canHandle(getNode('test')), 'DOMNode');
},
function shouldNotHandleNonNodes (doh) {
doh.assertFalse(NodeListAdapter.canHandle(), 'undefined');
doh.assertFalse(NodeListAdapter.canHandle(null), 'null');
doh.assertFalse(NodeListAdapter.canHandle(function(){}), 'function');
doh.assertFalse(NodeListAdapter.canHandle([]), 'array');
doh.assertFalse(NodeListAdapter.canHandle({}), 'object');
doh.assertTrue(NodeListAdapter.canHandle(getNode('test')), 'DOMNode');
}
]);
doh.register('add', [
function add (doh) {
doh.register('events', [
function shouldAddNodeForEachItem (doh) {
var item, adapted, options;
init();
options = {
querySelector: querySelector,
itemTemplateSelector: itemNode,
comparator: compareById,
symbolizer: symbolizeById
identifier: symbolizeById
};
adapted = new NodeListAdapter(rootNode, options);
item = { id: 1 };
adapted.add(item);
adapted.add({ id: 9 });
adapted.add({ id: 3 });
doh.assertEqual(3, rootNode.querySelectorAll('fieldset').length);
}
]);
doh.register('events', [
function add (doh) {
var item, adapted, dfd, options;
},
function shouldUpdateNode (doh) {
var item, adapted, options;
init();
options = {
querySelector: querySelector,
itemTemplateSelector: itemNode,
comparator: compareById,
symbolizer: symbolizeById
identifier: symbolizeById,
bindings: {
name: { node: '', prop: 'name' }
}
};
adapted = new NodeListAdapter(rootNode, options);
dfd = new doh.Deferred();
item = { id: 1 };
adapted.watch(
function (addedItem) {
dfd.callback(addedItem == item);
}
);
item = { id: 1, name: 'bar' };
adapted.add(item);
return dfd;
adapted.update({ id: 1, name: 'foo' });
doh.assertEqual('foo', querySelector(itemNode).name);
},
function remove (doh) {
var item, adapted, dfd;
function shouldRemoveNode (doh) {
var item, adapted;
init();
options = {
querySelector: querySelector,
itemTemplateSelector: itemNode,
comparator: compareById,
symbolizer: symbolizeById
identifier: symbolizeById
};
adapted = new NodeListAdapter(rootNode, options);
dfd = new doh.Deferred();
rootNode.innerHTML = ''; // clear out previous tests
item = { id: 1 };
adapted.add(item);
adapted.watch(
null,
function (removedItem) {
dfd.callback(removedItem == item);
}
);
adapted.add({ id: 2 });
adapted.add({ id: 3 });
adapted.remove(item);
return dfd;
doh.assertEqual(2, querySelectorAll(itemNode, rootNode).length, 'two items remain in list')
}
]);

Expand Down

0 comments on commit 5450085

Please sign in to comment.