#!/www/server/bin/php -qC
$xmldata";
$xml = new $classname($xmldata, $p);
is(
preg_replace('/[#\s]+/', " ", print_r($xml->$varname, true)),
$expected,
"$name (string)"
);
$tmpfile = tmpfile();
fwrite($tmpfile, $xmldata);
rewind($tmpfile);
$xml = new $classname($tmpfile, $p);
fclose($tmpfile);
is(
preg_replace('/[#\s]+/', " ", print_r($xml->$varname, true)),
$expected,
"$name (file)"
);
}
match(
'',
'foo Object ( ) ',
'empty tag'
);
match(
'',
'Array ( [0] => foo Object ( ) [1] => foo Object ( ) ) ',
'multiple empty tags converted to array'
);
match(
'Stüssihofstadt',
'foo Object ( [attr] => Array ( [title] => Zürich ) [val] => Stüssihofstadt ) ',
'simple tag with latin1 content and attribute'
);
match(
'',
'foo Object ( [a_b__c] => a_b__c Object ( [attr] => Array ( [d_e_f] => value ) ) ) ',
'Tags and attributes with name space and special characters'
);
match(
'x & y',
'foo Object ( [val] => x & y ) ',
'Character data with entities'
);
match(
'& <a> & <b> & <c> ü',
'foo Object ( [val] => & & & ü ) ',
'Predecode illegal entities while keeping properly encoded ones',
);
match(
'& <a> & <b> & <c> ü',
utf8_encode('foo Object ( [val] => & & & ü ) '),
'Predecode illegal entities while keeping properly encoded ones (UTF-8)',
"",
array('encoding' => "UTF-8"),
);
# Test inheritance
class my_xml extends it_xml
{
function my_xml($xmldata)
{
parent::it_xml($xmldata);
# Code which should be executed in root and only there
$this->qux = new it_xml;
$this->qux->val = "qux";
if (is_object($this->myfoo))
$this->myfoo->inheritbaseclass = is_a($this->myfoo, "my_xml");
}
}
match(
'',
'myfoo Object ( [inheritbaseclass] => ) ',
'Inheritance and constructor (critical for e.g. tel_xmlentry)',
'my'
);
$x = new foo("", 'prefix' => "test");
$x->set('gna' => 42, 'bar' => array('baz' => array("qux", "quux")));
match(
$x->to_xml(),
'foo Object ( [gna] => gna Object ( [val] => 42 ) [bar] => bar Object ( [baz] => Array ( [0] => baz Object ( [val] => qux ) [1] => baz Object ( [val] => quux ) ) ) ) ',
"Method set()",
);
?>