<?php require_once 'PHPUnit/Autoload.php'; require_once '../phpQuery/phpQuery.php'; //phpQuery::$debug = true; class phpQueryBasicTest extends PHPUnit_Framework_TestCase { function provider() { // TODO change filename return array( array( phpQuery::newDocumentFile('test.html') )); } /** * @param phpQueryObject $pq * @dataProvider provider * @return void */ function testFilterWithPseudoclass( $pq ) { // xdebug_break(); // function testFilterWithPseudoclass( $pq ) { // print_r(`ls`); // $pq = phpQuery::newDocumentFile('test.html'); $pq = $pq->find('p') ->filter('.body:gt(1)'); $result = array( 'p.body', ); $this->assertTrue( $pq->whois() == $result ); } /** * @param phpQueryObject $pq * @dataProvider provider * @return void */ function testSlice( $pq ) { $testResult = array( 'li#testID', ); $pq = $pq->find('li') ->slice(1, 2); $this->assertTrue( $pq->whois() == $testResult ); } /** * @param phpQueryObject $pq * @dataProvider provider * @return void */ function testSlice2( $pq ) { // SLICE2 $testResult = array( 'li#testID', 'li', 'li#i_have_nested_list', 'li.nested', ); $pq = $pq->find('li') ->slice(1, -1); $this->assertTrue( $pq->whois() == $testResult ); } /** * @return void */ function testMultiInsert() { // Multi-insert $pq = phpQuery::newDocument('<li><span class="field1"></span><span class="field1"></span></li>') ->find('.field1') ->php('longlongtest'); $validResult = '<li><span class="field1"><php>longlongtest</php></span><span class="field1"><php>longlongtest</php></span></li>'; similar_text($pq->htmlOuter(), $validResult, $similarity); $this->assertGreaterThan( 80, $similarity); } /** * @param phpQueryObject $pq * @dataProvider provider * @return void */ function testIndex( $pq ) { $testResult = 1; $pq = $pq->find('p') ->index( $pq->find('p.title:first') ); $this->assertTrue( $pq == $testResult ); } /** * @param phpQueryObject $pq * @dataProvider provider * @return void */ function testClone( $pq ) { $testResult = 3; $document = null; $pq = $pq->toReference($document) ->find('p:first'); foreach(array(0,1,2) as $i) { $pq->clone() ->addClass("clone-test") ->addClass("class-$i") ->insertBefore($pq); } $size = $document->find('.clone-test')->size(); $this->assertEquals( $testResult, $size); } /** * @param phpQueryObject $pq * @dataProvider provider * @return void */ function testNextSibling( $pq ) { $testResult = 3; $document = null; $result = $pq->find('li:first') ->next() ->next() ->prev() ->is('#testID'); $this->assertTrue( $result ); } /** * @param phpQueryObject $pq * @dataProvider provider * @return void */ function testSimpleDataInsertion( $pq ) { $testName = 'Simple data insertion'; $testResult = <<<EOF <div class="articles"> div.articles text node <ul> <li> <p>This is paragraph of first LI</p> <p class="title">News 1 title</p> <p class="body">News 1 body</p> </li> <li> <p>This is paragraph of first LI</p> <p class="title">News 2 title</p> <p class="body">News 2 body</p> </li> <li> <p>This is paragraph of first LI</p> <p class="title">News 3</p> <p class="body">News 3 body</p> </li> </ul> <p>paragraph after UL</p> </div> EOF; $rows = array( array( 'title' => 'News 1 title', 'body' => 'News 1 body', ), array( 'title' => 'News 2 title', 'body' => 'News 2 body', ), array( 'title' => 'News 3', 'body' => 'News 3 body', ), ); $articles = $pq->find('.articles ul'); $rowSrc = $articles->find('li') ->remove() ->eq(0); foreach ($rows as $r) { $row = $rowSrc->_clone(); foreach ($r as $field => $value) { $row->find(".{$field}") ->html($value); // die($row->htmlOuter()); } $row->appendTo($articles); } $result = $pq->find('.articles')->htmlOuter(); //print htmlspecialchars("<pre>{$result}</pre>").'<br />'; $similarity = 0.0; similar_text($testResult, $result, $similarity); $this->assertGreaterThan( 90, $similarity); } // function __construct() { // xdebug_break(); // parent::__construct(); // } } $test = new phpQueryBasicTest(); //$test->testFilterWithPseudoclass(); $result = null; //$test->run($result);