/home/mjc1/public_html/lib/html_dom/testcase/callback_testcase.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
// $Rev: 179 $
// -----------------------------------------------------------------------------
// setup
error_reporting(E_ALL);
require_once(
'../simple_html_dom.php');
$dom = new simple_html_dom;

// -----------------------------------------------------------------------------
// test problem of last emelemt not found
$str = <<<HTML
<img src="src0"><p>foo</p><img src="src2">
HTML;

function 
callback_1($e) {
    if (
$e->tag==='img')
        
$e->outertext '';
}

$dom->load($str);
$dom->set_callback('callback_1');
assert($dom=='<p>foo</p>');

// -----------------------------------------------
// innertext test
function callback_2($e) {
    if (
$e->tag==='p')
        
$e->innertext 'bar';
}

$dom->load($str);
$dom->set_callback('callback_2');
assert($dom=='<img src="src0"><p>bar</p><img src="src2">');

// -----------------------------------------------
// attributes test
function callback_3($e) {
    if (
$e->tag==='img')
        
$e->src 'foo';
}

$dom->load($str);
$dom->set_callback('callback_3');
assert($dom=='<img src="foo"><p>foo</p><img src="foo">');

function 
callback_4($e) {
    if (
$e->tag==='img')
        
$e->id 'foo';
}

$dom->set_callback('callback_4');
assert($dom=='<img src="foo" id="foo"><p>foo</p><img src="foo" id="foo">');

// -----------------------------------------------
// attributes test2
//$dom = str_get_dom($str);
$dom->load($str);
$dom->remove_callback();
$dom->find('img'0)->id "foo";
assert($dom=='<img src="src0" id="foo"><p>foo</p><img src="src2">');

function 
callback_5($e) {
    if (
$e->src==='src0')
        unset(
$e->id);
}

$dom->set_callback('callback_5');
assert($dom==$str);

// -----------------------------------------------------------------------------
// tear down
$dom->clear();
unset(
$dom);
?>