123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- <?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);
|