test_manipulation.php 3.8 KB
<?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";
?>