92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the parent node': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the same node': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Y.one(document.body).ancestor('body', true)._node);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the matching ancestor': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.areEqual(document.body, Y.one(node).ancestor(fn)._node);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the matching ancestor via selector': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.areEqual(document.body, Y.one(node).ancestor('body')._node);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the matching ancestor (test self match)': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.areEqual(node, Y.one(node).ancestor(fn, true)._node);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the matching ancestor (test self match) via selector': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.areEqual(node, Y.one(node).ancestor('em', true)._node);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the matching ancestor (test self not matched)': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.areEqual(document.body, Y.one(node).ancestor(fn, true)._node);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the matching ancestor (test self not matched) via selector': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.areEqual(document.body, Y.one(node).ancestor('body', true)._node);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should stop when the stop function returns true': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.isNull(Y.one(node).ancestor(fn, null, stopFn));
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should stop when the stop function returns true via selector': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.isNull(Y.one(node).ancestor('body', null, '#test-ancestor-stop'));
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should stop when the stop function returns true via selector as 2nd arg': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.isNull(Y.one(node).ancestor('body', '#test-ancestor-stop'));
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find ancestor before stop': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Y.one(node).ancestor(fn, null, stopFn)._node.id);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find ancestor before stop fn as 2nd arg': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find ancestor before stop via selector': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Y.one(node).ancestor(fn, null, 'body')._node.id);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find ancestor before stop via selector as 2nd arg': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find ancestor via selector before stop via selector': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Y.one(node).ancestor('#test-ancestor-stop', null, 'body')._node.id);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find ancestor when both test and stop return true': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Y.one(node).ancestor(fn, null, stopFn)._node.id);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find ancestor when testFn and stop via selector both pass': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Y.one(node).ancestor(fn, null, '#test-ancestor-stop')._node.id);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find ancestor when test and stop via selector both pass': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Y.one(node).ancestor('#test-ancestor-stop', null, '#test-ancestor-stop')._node.id);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find TD ancestor': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var node = Y.one('#test-table div div').ancestor('td');
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Y.Assert.areEqual(document.getElementById('test-td'), node._node);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return an array of one (documentElement)': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney ArrayAssert.itemsAreEqual([document.documentElement],
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should include the starting node': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney ArrayAssert.itemsAreEqual([document.documentElement, document.body, node],
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should omit the starting node': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney ArrayAssert.itemsAreEqual([document.documentElement, document.body],
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the matching ancestors': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney ArrayAssert.itemsAreEqual([document.body], Y.one(node).ancestors(fn)._nodes);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the matching ancestors via selector': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney ArrayAssert.itemsAreEqual([document.body], Y.one(node).ancestors(':not(html)')._nodes);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the matching ancestors (test self match)': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney ArrayAssert.itemsAreEqual([node], Y.one(node).ancestors(fn, true)._nodes);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the matching ancestors (test self not matched)': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney ArrayAssert.itemsAreEqual([document.body], Y.one(node).ancestors(fn, true)._nodes);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should stop when the stop function returns true': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney ArrayAssert.itemsAreEqual([], Y.one(node).ancestors(fn, null, stopFn)._nodes);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find ancestor before stop': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Y.one(node).ancestors(fn, null, stopFn)._nodes);
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should find ancestor when both test and stop return true': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Y.one(node).ancestors(fn, null, stopFn).size());
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should stop when the stop function returns true as 2nd arg': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney var root = document.getElementById('test-element-by-axis'),
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.areEqual(0, Y.one(node).ancestors(fn, stopFn).size());
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney setUp: function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney this._testNodes = Y.one('#test-nodes > ol').get('children');
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney tearDown: function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return all siblings': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney [children.item(0)._node, children.item(1)._node, children.item(3)._node],
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return all LI siblings': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney [children.item(0)._node, children.item(1)._node, children.item(3)._node],
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return all LI.bar siblings': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney [children.item(0)._node, children.item(3)._node],
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney setUp: function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney 'should return the correct previous element': function() {
92f0160a7d6fdb2b1521115725c8f8555b721ee1Matt Sweeney Assert.areEqual('test-class', Y.one('#test-prop').previous().get('id'));