<?php require_once('../phpQuery/phpQuery.php'); phpQuery::$debug = true; $testName = 'Selectors'; $tests = array( array( 'div:first', array( 'div.articles', ) ), array( "p:contains('title')", array( 'p.title', 'p.title', 'p.noTitle', ) ), array( "p:contains('title 2')", array( 'p.title', ) ), array( 'li:eq(1)', array( 'li#testID', ) ), array( 'li:eq(1) p:eq(1)', array( 'p.title', ) ), array( '*[rel="test"]', array( 'p', 'p' ) ), array( '#testID p:first', array( 'p' ) ), array( "p:not('.title'):not('.body')", array( 'p', 'p', 'p', 'p.noTitle', 'p.after', ) ), array( "[content*=html]", array( 'meta' ) ), array( "li#testID, div.articles", array( 'li#testID', 'div.articles' ) ), array( "script[src]:not([src^=<?php])", array( 'script' ) ), // array( // 'li:not([ul/li])', // array( // 'li', // 'li#testID', // 'li', // 'li.nested', // 'li.second', // ) // ), array( 'li:has(ul)', array( 'li#i_have_nested_list', ) ), array( 'p[rel] + p', array( 'p.title', 'p.noTitle', ) ), array( 'ul:first > li:first ~ *', array( 'li#testID', 'li', ) ), // CSS3 pseudoclasses array( 'li:only-child', array( 'li.nested', ) ), array( 'p[rel=test]:parent', array( 'p', 'p', ) ), array( 'li:first-child', array( 'li', 'li#i_have_nested_list', 'li.nested', ) ), array( ':last-child', array( 'html', 'script', 'body', 'p.body', 'p.body', 'li', 'p.body', 'p.after', 'ul', 'ul', 'li.nested', 'li.second', ) ), array( ':nth-child(1n+1)', array( 'html', 'head', 'meta', 'div.articles', 'ul', 'li', 'p', 'p', 'p', 'li#i_have_nested_list', 'ul', 'li.nested', ) ), array( ':nth-child(3n+6)', array( 'script', 'p.body', 'p.body', 'li', 'p.body', ) ), array( ':nth-child(2n)', array( 'title', 'script', 'body', 'p.title', 'li#testID', 'p.title', 'p.noTitle', 'p.after', 'ul', 'li.second', ) ), array( ':nth-child(1)', array( 'html', 'head', 'meta', 'div.articles', 'ul', 'li', 'p', 'p', 'p', 'li#i_have_nested_list', 'ul', 'li.nested', ) ), array( ':nth-child(odd)', array( 'html', 'head', 'meta', 'script', 'div.articles', 'ul', 'li', 'p', 'p.body', 'p', 'p.body', 'li', 'p', 'p.body', 'li#i_have_nested_list', 'ul', 'li.nested', ) ), array( ':nth-child(even)', array( 'title', 'script', 'body', 'p.title', 'li#testID', 'p.title', 'p.noTitle', 'p.after', 'ul', 'li.second', ) ), array( ':empty', array( 'meta', 'script', 'script', 'li.nested', ) ), // array( // '', // array( // '', // ) // ), // array( // '', // array( // '', // ) // ), // array( // '', // array( // '', // ) // ), ); phpQuery::newDocumentFile('test.html'); foreach( $tests as $k => $test ) { $tests[ $k ][2] = pq( $test[0] )->whois(); } foreach( $tests as $test ) { if ( $test[1] == $test[2] ) print "Test '{$test[0]}' PASSED :)"; else { print "Test '{$test[0]}' <strong>FAILED</strong> !!!"; print_r($test[2]); } print "<br /><br />"; } // $testName = 'Complicated selector 1'; phpQuery::newDocumentFile('test.html'); pq('<select name="test[]"><option value=3>test</option></select>') ->appendTo('body'); $result = pq('select[name="test[]"]:has(option[value=3])'); if ( $result->size() == 1 ) print "Test '{$testName}' PASSED :)"; else print "Test '{$testName}' <strong>FAILED</strong> !!! "; $result->dump(); print "\n"; ?>