virt2/api/soft/phpquery/test-cases/test_manipulation.php

143 lines
3.8 KiB
PHP
Executable File

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