<?php require_once('../phpQuery/phpQuery.php'); phpQuery::$debug = true; $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', ), ); phpQuery::newDocumentFile('test.html'); $articles = pq('.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('.articles')->htmlOuter(); //print htmlspecialchars("<pre>{$result}</pre>").'<br />'; $similarity = 0.0; similar_text($testResult, $result, $similarity); if ($similarity > 90) print "Test '{$testName}' passed :)"; else print "Test '{$testName}' <strong>FAILED</strong> ($similarity) !!!"; print "\n"; $testName = 'Parent && children'; $result = phpQuery::newDocumentFile('test.html'); $parent = $result->find('ul:first'); $children = $parent->find('li:first'); $e = null; try { $children->before('<li>test</li>'); } catch(Exception $e) { print "Test '{$testName}' <strong>FAILED</strong> !!! "; } if (! $e) { print "Test '{$testName}' PASSED :)"; } print "\n"; $testName = 'HTML insertion'; $doc = phpQuery::newDocument('<div><p/></div>'); $string = "La Thermo-sonde de cuisson vous permet de cuire à la perfection au four comme au bain-marie. Température: entre <b>0°C et 210°C</b>."; $doc->find('p')->html($string); if (pq('p')->length == 1) print "Test '{$testName}' PASSED :)"; else { print "Test '{$testName}' <strong>FAILED</strong> !!! "; print $doc->htmlOuter('htmlentities'); } print "\n"; $testName = 'HTML insertion 2'; $doc = phpQuery::newDocument('<div><p/></div>'); $string = "<div>La Thermo-sonde de cuisson vous permet de cuire à la perfection au four comme au bain-marie. Température: entre <b>0°C et 210°C</b>.</div>"; $doc->find('p')->html($string); if (pq('div')->length == 2) { print "Test '{$testName}' PASSED :)"; } else { print "Test '{$testName}' <strong>FAILED</strong> !!! "; print $doc->htmlOuter('htmlentities'); } print "\n"; $testName = 'HTML insertion 3'; $doc = phpQuery::newDocument('<div><p/></div>'); $string = 'Hors paragraphe. <img align="right" src="http://www.stlouisstpierre.com/institution/images/plan.jpg"> <p>Éditorial de l\'institution Saint-Pierre.</p> Hors paragraphe.'; $doc->find('p')->html($string); if (pq('img')->length == 1) { print "Test '{$testName}' PASSED :)"; print $doc->htmlOuter(); } else { print "Test '{$testName}' <strong>FAILED</strong> !!! "; print $doc->htmlOuter('htmlentities'); } print "\n"; $testName = 'Text insertion'; $doc = phpQuery::newDocument('<div><p/></div>'); $string = "La Thermo-sonde de cuisson vous permet de cuire à la perfection au four comme au bain-marie"; $doc->find('p')->html($string); if (trim(pq('p:first')->html()) == $string) print "Test '{$testName}' PASSED :)"; else { print "Test '{$testName}' <strong>FAILED</strong> !!! "; print $doc->htmlOuter('htmlentities'); } print "\n"; ?>