| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 | 
							- <?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";
 
- ?>
 
 
  |