-test("insertAfter(String|Element|Array<Element>|jQuery)", function() {
- expect(4);
- var expected = 'This is a normal link: Yahoobuga';
- jQuery('<b>buga</b>').insertAfter('#yahoo');
- equals( expected, jQuery('#en').text(), 'Insert String after' );
-
- reset();
- expected = "This is a normal link: YahooTry them out:";
- jQuery(document.getElementById('first')).insertAfter('#yahoo');
- equals( expected, jQuery('#en').text(), "Insert element after" );
-
- reset();
- expected = "This is a normal link: YahooTry them out:diveintomark";
- jQuery([document.getElementById('mark'), document.getElementById('first')]).insertAfter('#yahoo');
- equals( expected, jQuery('#en').text(), "Insert array of elements after" );
-
- reset();
- expected = "This is a normal link: YahooTry them out:diveintomark";
- jQuery("#mark, #first").insertAfter('#yahoo');
- equals( expected, jQuery('#en').text(), "Insert jQuery after" );
-});
-
-test("replaceWith(String|Element|Array<Element>|jQuery)", function() {
- expect(10);
- jQuery('#yahoo').replaceWith('<b id="replace">buga</b>');
- ok( jQuery("#replace")[0], 'Replace element with string' );
- ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after string' );
-
- reset();
- jQuery('#yahoo').replaceWith(document.getElementById('first'));
- ok( jQuery("#first")[0], 'Replace element with element' );
- ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after element' );
-
- reset();
- jQuery('#yahoo').replaceWith([document.getElementById('first'), document.getElementById('mark')]);
- ok( jQuery("#first")[0], 'Replace element with array of elements' );
- ok( jQuery("#mark")[0], 'Replace element with array of elements' );
- ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after array of elements' );
-
- reset();
- jQuery('#yahoo').replaceWith(jQuery("#first, #mark"));
- ok( jQuery("#first")[0], 'Replace element with set of elements' );
- ok( jQuery("#mark")[0], 'Replace element with set of elements' );
- ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after set of elements' );
-});
-
-test("replaceAll(String|Element|Array<Element>|jQuery)", function() {
- expect(10);
- jQuery('<b id="replace">buga</b>').replaceAll("#yahoo");
- ok( jQuery("#replace")[0], 'Replace element with string' );
- ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after string' );
-
- reset();
- jQuery(document.getElementById('first')).replaceAll("#yahoo");
- ok( jQuery("#first")[0], 'Replace element with element' );
- ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after element' );
-
- reset();
- jQuery([document.getElementById('first'), document.getElementById('mark')]).replaceAll("#yahoo");
- ok( jQuery("#first")[0], 'Replace element with array of elements' );
- ok( jQuery("#mark")[0], 'Replace element with array of elements' );
- ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after array of elements' );
-
- reset();
- jQuery("#first, #mark").replaceAll("#yahoo");
- ok( jQuery("#first")[0], 'Replace element with set of elements' );
- ok( jQuery("#mark")[0], 'Replace element with set of elements' );
- ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after set of elements' );
-});
-
-test("end()", function() {
- expect(3);
- equals( 'Yahoo', jQuery('#yahoo').parent().end().text(), 'Check for end' );
- ok( jQuery('#yahoo').end(), 'Check for end with nothing to end' );
-
- var x = jQuery('#yahoo');
- x.parent();
- equals( 'Yahoo', jQuery('#yahoo').text(), 'Check for non-destructive behaviour' );
-});
-
-test("find(String)", function() {
- expect(2);
- equals( 'Yahoo', jQuery('#foo').find('.blogTest').text(), 'Check for find' );
-
- // using contents will get comments regular, text, and comment nodes
- var j = jQuery("#nonnodes").contents();
- equals( j.find("div").length, 0, "Check node,textnode,comment to find zero divs" );
-});
-
-test("clone()", function() {
- expect(20);
- equals( 'This is a normal link: Yahoo', jQuery('#en').text(), 'Assert text for #en' );
- var clone = jQuery('#yahoo').clone();
- equals( 'Try them out:Yahoo', jQuery('#first').append(clone).text(), 'Check for clone' );
- equals( 'This is a normal link: Yahoo', jQuery('#en').text(), 'Reassert text for #en' );
-
- var cloneTags = [
- "<table/>", "<tr/>", "<td/>", "<div/>",
- "<button/>", "<ul/>", "<ol/>", "<li/>",
- "<input type='checkbox' />", "<select/>", "<option/>", "<textarea/>",
- "<tbody/>", "<thead/>", "<tfoot/>", "<iframe/>"
- ];
- for (var i = 0; i < cloneTags.length; i++) {
- var j = jQuery(cloneTags[i]);
- equals( j[0].tagName, j.clone()[0].tagName, 'Clone a <' + cloneTags[i].substring(1));
- }
-
- // using contents will get comments regular, text, and comment nodes
- var cl = jQuery("#nonnodes").contents().clone();
- ok( cl.length >= 2, "Check node,textnode,comment clone works (some browsers delete comments on clone)" );
-});
-
-if (!isLocal) {
-test("clone() on XML nodes", function() {
- expect(2);
- stop();
- jQuery.get("data/dashboard.xml", function (xml) {
- var root = jQuery(xml.documentElement).clone();
- jQuery("tab:first", xml).text("origval");
- jQuery("tab:first", root).text("cloneval");
- equals(jQuery("tab:first", xml).text(), "origval", "Check original XML node was correctly set");
- equals(jQuery("tab:first", root).text(), "cloneval", "Check cloned XML node was correctly set");
- start();
- });
-});
-}
-
-test("is(String)", function() {
- expect(26);
- ok( jQuery('#form').is('form'), 'Check for element: A form must be a form' );
- ok( !jQuery('#form').is('div'), 'Check for element: A form is not a div' );
- ok( jQuery('#mark').is('.blog'), 'Check for class: Expected class "blog"' );
- ok( !jQuery('#mark').is('.link'), 'Check for class: Did not expect class "link"' );
- ok( jQuery('#simon').is('.blog.link'), 'Check for multiple classes: Expected classes "blog" and "link"' );
- ok( !jQuery('#simon').is('.blogTest'), 'Check for multiple classes: Expected classes "blog" and "link", but not "blogTest"' );
- ok( jQuery('#en').is('[lang="en"]'), 'Check for attribute: Expected attribute lang to be "en"' );
- ok( !jQuery('#en').is('[lang="de"]'), 'Check for attribute: Expected attribute lang to be "en", not "de"' );
- ok( jQuery('#text1').is('[type="text"]'), 'Check for attribute: Expected attribute type to be "text"' );
- ok( !jQuery('#text1').is('[type="radio"]'), 'Check for attribute: Expected attribute type to be "text", not "radio"' );
- ok( jQuery('#text2').is(':disabled'), 'Check for pseudoclass: Expected to be disabled' );
- ok( !jQuery('#text1').is(':disabled'), 'Check for pseudoclass: Expected not disabled' );
- ok( jQuery('#radio2').is(':checked'), 'Check for pseudoclass: Expected to be checked' );
- ok( !jQuery('#radio1').is(':checked'), 'Check for pseudoclass: Expected not checked' );
- ok( jQuery('#foo').is(':has(p)'), 'Check for child: Expected a child "p" element' );
- ok( !jQuery('#foo').is(':has(ul)'), 'Check for child: Did not expect "ul" element' );
- ok( jQuery('#foo').is(':has(p):has(a):has(code)'), 'Check for childs: Expected "p", "a" and "code" child elements' );
- ok( !jQuery('#foo').is(':has(p):has(a):has(code):has(ol)'), 'Check for childs: Expected "p", "a" and "code" child elements, but no "ol"' );
- ok( !jQuery('#foo').is(0), 'Expected false for an invalid expression - 0' );
- ok( !jQuery('#foo').is(null), 'Expected false for an invalid expression - null' );
- ok( !jQuery('#foo').is(''), 'Expected false for an invalid expression - ""' );
- ok( !jQuery('#foo').is(undefined), 'Expected false for an invalid expression - undefined' );
-
- // test is() with comma-seperated expressions
- ok( jQuery('#en').is('[lang="en"],[lang="de"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' );
- ok( jQuery('#en').is('[lang="de"],[lang="en"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' );
- ok( jQuery('#en').is('[lang="en"] , [lang="de"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' );
- ok( jQuery('#en').is('[lang="de"] , [lang="en"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' );
-});
-
-test("jQuery.extend(Object, Object)", function() {
- expect(20);
-
- var settings = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" },
- options = { xnumber2: 1, xstring2: "x", xxx: "newstring" },
- optionsCopy = { xnumber2: 1, xstring2: "x", xxx: "newstring" },
- merged = { xnumber1: 5, xnumber2: 1, xstring1: "peter", xstring2: "x", xxx: "newstring" },
- deep1 = { foo: { bar: true } },
- deep1copy = { foo: { bar: true } },
- deep2 = { foo: { baz: true }, foo2: document },
- deep2copy = { foo: { baz: true }, foo2: document },
- deepmerged = { foo: { bar: true, baz: true }, foo2: document };
-
- jQuery.extend(settings, options);
- isObj( settings, merged, "Check if extended: settings must be extended" );
- isObj( options, optionsCopy, "Check if not modified: options must not be modified" );
-
- jQuery.extend(settings, null, options);
- isObj( settings, merged, "Check if extended: settings must be extended" );
- isObj( options, optionsCopy, "Check if not modified: options must not be modified" );
-
- jQuery.extend(true, deep1, deep2);
- isObj( deep1.foo, deepmerged.foo, "Check if foo: settings must be extended" );
- isObj( deep2.foo, deep2copy.foo, "Check if not deep2: options must not be modified" );
- equals( deep1.foo2, document, "Make sure that a deep clone was not attempted on the document" );
-
- var nullUndef;
- nullUndef = jQuery.extend({}, options, { xnumber2: null });
- ok( nullUndef.xnumber2 === null, "Check to make sure null values are copied");
-
- nullUndef = jQuery.extend({}, options, { xnumber2: undefined });
- ok( nullUndef.xnumber2 === options.xnumber2, "Check to make sure undefined values are not copied");
-
- nullUndef = jQuery.extend({}, options, { xnumber0: null });
- ok( nullUndef.xnumber0 === null, "Check to make sure null values are inserted");
-
- var target = {};
- var recursive = { foo:target, bar:5 };
- jQuery.extend(true, target, recursive);
- isObj( target, { bar:5 }, "Check to make sure a recursive obj doesn't go never-ending loop by not copying it over" );