+ t( "Last Child", "p:last-child", ["sap"] );
+ t( "Last Child", "#main a:last-child", ["simon1","anchor1","mark","yahoo","anchor2","simon","liveLink1","liveLink2"] );
+
+ t( "Nth-child", "#main form#form > *:nth-child(2)", ["text1"] );
+ t( "Nth-child", "#main form#form > :nth-child(2)", ["text1"] );
+
+ t( "Nth-child", "#form select:first option:nth-child(3)", ["option1c"] );
+ t( "Nth-child", "#form select:first option:nth-child(0n+3)", ["option1c"] );
+ t( "Nth-child", "#form select:first option:nth-child(1n+0)", ["option1a", "option1b", "option1c", "option1d"] );
+ t( "Nth-child", "#form select:first option:nth-child(1n)", ["option1a", "option1b", "option1c", "option1d"] );
+ t( "Nth-child", "#form select:first option:nth-child(n)", ["option1a", "option1b", "option1c", "option1d"] );
+ t( "Nth-child", "#form select:first option:nth-child(even)", ["option1b", "option1d"] );
+ t( "Nth-child", "#form select:first option:nth-child(odd)", ["option1a", "option1c"] );
+ t( "Nth-child", "#form select:first option:nth-child(2n)", ["option1b", "option1d"] );
+ t( "Nth-child", "#form select:first option:nth-child(2n+1)", ["option1a", "option1c"] );
+ t( "Nth-child", "#form select:first option:nth-child(3n)", ["option1c"] );
+ t( "Nth-child", "#form select:first option:nth-child(3n+1)", ["option1a", "option1d"] );
+ t( "Nth-child", "#form select:first option:nth-child(3n+2)", ["option1b"] );
+ t( "Nth-child", "#form select:first option:nth-child(3n+3)", ["option1c"] );
+ t( "Nth-child", "#form select:first option:nth-child(3n-1)", ["option1b"] );
+ t( "Nth-child", "#form select:first option:nth-child(3n-2)", ["option1a", "option1d"] );
+ t( "Nth-child", "#form select:first option:nth-child(3n-3)", ["option1c"] );
+ t( "Nth-child", "#form select:first option:nth-child(3n+0)", ["option1c"] );
+ t( "Nth-child", "#form select:first option:nth-child(-n+3)", ["option1a", "option1b", "option1c"] );
+});
+
+test("pseudo - misc", function() {
+ expect(6);
+
+ t( "Headers", ":header", ["qunit-header", "qunit-banner", "qunit-userAgent"] );
+ t( "Has Children - :has()", "p:has(a)", ["firstp","ap","en","sap"] );
+
+ t( "Text Contains", "a:contains(Google)", ["google","groups"] );
+ t( "Text Contains", "a:contains(Google Groups)", ["groups"] );
+
+ t( "Text Contains", "a:contains(Google Groups (Link))", ["groups"] );
+ t( "Text Contains", "a:contains((Link))", ["groups"] );
+});
+
+
+test("pseudo - :not", function() {
+ expect(24);
+ t( "Not", "a.blog:not(.link)", ["mark"] );
+
+ t( "Not - multiple", "#form option:not(:contains(Nothing),#option1b,:selected)", ["option1c", "option1d", "option2b", "option2c", "option3d", "option3e", "option4e", "option5b", "option5c"] );
+ t( "Not - recursive", "#form option:not(:not(:selected))[id^='option3']", [ "option3b", "option3c"] );
+
+ t( ":not() failing interior", "p:not(.foo)", ["firstp","ap","sndp","en","sap","first"] );
+ t( ":not() failing interior", "p:not(div.foo)", ["firstp","ap","sndp","en","sap","first"] );
+ t( ":not() failing interior", "p:not(p.foo)", ["firstp","ap","sndp","en","sap","first"] );
+ t( ":not() failing interior", "p:not(#blargh)", ["firstp","ap","sndp","en","sap","first"] );
+ t( ":not() failing interior", "p:not(div#blargh)", ["firstp","ap","sndp","en","sap","first"] );
+ t( ":not() failing interior", "p:not(p#blargh)", ["firstp","ap","sndp","en","sap","first"] );
+
+ t( ":not Multiple", "p:not(a)", ["firstp","ap","sndp","en","sap","first"] );
+ t( ":not Multiple", "p:not(a, b)", ["firstp","ap","sndp","en","sap","first"] );
+ t( ":not Multiple", "p:not(a, b, div)", ["firstp","ap","sndp","en","sap","first"] );
+ t( ":not Multiple", "p:not(p)", [] );
+ t( ":not Multiple", "p:not(a,p)", [] );
+ t( ":not Multiple", "p:not(p,a)", [] );
+ t( ":not Multiple", "p:not(a,p,b)", [] );
+ t( ":not Multiple", ":input:not(:image,:input,:submit)", [] );
+
+ t( "No element not selector", ".container div:not(.excluded) div", [] );
+
+ t( ":not() Existing attribute", "#form select:not([multiple])", ["select1", "select2", "select5"]);
+ t( ":not() Equals attribute", "#form select:not([name=select1])", ["select2", "select3", "select4","select5"]);
+ t( ":not() Equals quoted attribute", "#form select:not([name='select1'])", ["select2", "select3", "select4", "select5"]);
+
+ t( ":not() Multiple Class", "#foo a:not(.blog)", ["yahoo","anchor2"] );
+ t( ":not() Multiple Class", "#foo a:not(.link)", ["yahoo","anchor2"] );
+ t( ":not() Multiple Class", "#foo a:not(.blog.link)", ["yahoo","anchor2"] );
+});
+
+test("pseudo - position", function() {
+ expect(25);