UNPKG

ddd-jquery

Version:

de-bowerified, de-amdified, de-gruntified... jQuery.

88 lines 3.65 kB
module('extending', { teardown: moduleTeardown }); test('custom pseudos', function () { expect(6); Sizzle.selectors.filters.foundation = Sizzle.selectors.filters.root; deepEqual(Sizzle(':foundation'), [document.documentElement], 'Copy element filter with new name'); delete Sizzle.selectors.filters.foundation; Sizzle.selectors.setFilters.primary = Sizzle.selectors.setFilters.first; t('Copy set filter with new name', 'div:primary', ['qunit']); delete Sizzle.selectors.setFilters.primary; Sizzle.selectors.filters.aristotlean = Sizzle.selectors.createPseudo(function () { return function (elem) { return !!elem.id; }; }); t('Custom element filter', '#foo :aristotlean', [ 'sndp', 'en', 'yahoo', 'sap', 'anchor2', 'simon' ]); delete Sizzle.selectors.filters.aristotlean; Sizzle.selectors.filters.endswith = Sizzle.selectors.createPseudo(function (text) { return function (elem) { return Sizzle.getText(elem).slice(-text.length) === text; }; }); t('Custom element filter with argument', 'a:endswith(ogle)', ['google']); delete Sizzle.selectors.filters.endswith; Sizzle.selectors.setFilters.second = Sizzle.selectors.createPseudo(function () { return Sizzle.selectors.createPseudo(function (seed, matches) { if (seed[1]) { matches[1] = seed[1]; seed[1] = false; } }); }); t('Custom set filter', '#qunit-fixture p:second', ['ap']); delete Sizzle.selectors.filters.second; Sizzle.selectors.setFilters.slice = Sizzle.selectors.createPseudo(function (argument) { var bounds = argument.split(':'); return Sizzle.selectors.createPseudo(function (seed, matches) { var i = bounds[1]; while (--i >= bounds[0]) { if (seed[i]) { matches[i] = seed[i]; seed[i] = false; } } }); }); t('Custom set filter with argument', '#qunit-fixture p:slice(1:3)', [ 'ap', 'sndp' ]); delete Sizzle.selectors.filters.slice; }); test('backwards-compatible custom pseudos', function () { expect(3); Sizzle.selectors.filters.icontains = function (elem, i, match) { return Sizzle.getText(elem).toLowerCase().indexOf((match[3] || '').toLowerCase()) > -1; }; t('Custom element filter with argument', 'a:icontains(THIS BLOG ENTRY)', ['simon1']); delete Sizzle.selectors.filters.icontains; Sizzle.selectors.setFilters.podium = function (elements, argument) { var count = argument == null || argument === '' ? 3 : +argument; return elements.slice(0, count); }; t('Custom setFilter', 'form#form :PODIUM', [ 'label-for', 'text1', 'text2' ]); t('Custom setFilter with argument', '#form input:Podium(1)', ['text1']); delete Sizzle.selectors.setFilters.podium; }); test('custom attribute getters', function () { expect(2); var original = Sizzle.selectors.attrHandle.hreflang, selector = 'a:contains(\'mark\')[hreflang=\'http://diveintomark.org/en\']'; Sizzle.selectors.attrHandle.hreflang = function (elem, name) { var href = elem.getAttribute('href'), lang = elem.getAttribute(name); return lang && href + lang; }; deepEqual(Sizzle(selector, createWithFriesXML()), [], 'Custom attrHandle (preferred document)'); t('Custom attrHandle (preferred document)', selector, ['mark']); Sizzle.selectors.attrHandle.hreflang = original; });