167 lines
5 KiB
PHP
167 lines
5 KiB
PHP
<?php
|
|
|
|
require_once(DIR_ALVEOLATA . '/html/functions.php');
|
|
|
|
|
|
\alveolata\test\add(
|
|
[
|
|
'name' => 'alveolata',
|
|
'sections' => [
|
|
[
|
|
'name' => 'html',
|
|
'setup' => function (&$environment) {
|
|
},
|
|
'sections' => [
|
|
[
|
|
'name' => 'parse',
|
|
'cases' => [
|
|
[
|
|
'name' => 'oblique',
|
|
'procedure' => function ($assert, &$environment) {
|
|
$html = '<html><head><meta charset="utf-8"/></head><body><span class="abc def">foo <b>bar</b> baz <i>qux</i></span></body></html>';
|
|
$xmlnode = \alveolata\html\parse($html);
|
|
$output_actual = $xmlnode->to_raw();
|
|
$output_expected = [
|
|
'kind' => 'group',
|
|
'data' => [
|
|
'members' => [
|
|
[
|
|
'kind' => 'complex',
|
|
'data' => [
|
|
'name' => 'html',
|
|
'attributes' => [],
|
|
'subnode' => [
|
|
'kind' => 'group',
|
|
'data' => [
|
|
'members' => [
|
|
[
|
|
'kind' => 'complex',
|
|
'data' => [
|
|
'name' => 'head',
|
|
'attributes' => [],
|
|
'subnode' => [
|
|
'kind' => 'group',
|
|
'data' => [
|
|
'members' => [
|
|
[
|
|
'kind' => 'complex',
|
|
'data' => [
|
|
'name' => 'meta',
|
|
'attributes' => [
|
|
'charset' => 'utf-8'
|
|
],
|
|
'subnode' => [
|
|
'kind' => 'group',
|
|
'data' => [
|
|
'members' => []
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
],
|
|
[
|
|
'kind' => 'complex',
|
|
'data' => [
|
|
'name' => 'body',
|
|
'attributes' => [],
|
|
'subnode' => [
|
|
'kind' => 'group',
|
|
'data' => [
|
|
'members' => [
|
|
[
|
|
'kind' => 'complex',
|
|
'data' => [
|
|
'name' => 'span',
|
|
'attributes' => [
|
|
'class' => 'abc def'
|
|
],
|
|
'subnode' => [
|
|
'kind' => 'group',
|
|
'data' => [
|
|
'members' => [
|
|
[
|
|
'kind' => 'text',
|
|
'data' => [
|
|
'content' => 'foo'
|
|
]
|
|
],
|
|
[
|
|
'kind' => 'complex',
|
|
'data' => [
|
|
'name' => 'b',
|
|
'attributes' => [],
|
|
'subnode' => [
|
|
'kind' => 'group',
|
|
'data' => [
|
|
'members' => [
|
|
[
|
|
'kind' => 'text',
|
|
'data' => [
|
|
'content' => 'bar'
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
],
|
|
[
|
|
'kind' => 'text',
|
|
'data' => [
|
|
'content' => 'baz'
|
|
]
|
|
],
|
|
[
|
|
'kind' => 'complex',
|
|
'data' => [
|
|
'name' => 'i',
|
|
'attributes' => [],
|
|
'subnode' => [
|
|
'kind' => 'group',
|
|
'data' => [
|
|
'members' => [
|
|
[
|
|
'kind' => 'text',
|
|
'data' => [
|
|
'content' => 'qux'
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
]
|
|
];
|
|
$assert->equal($output_actual, $output_expected);
|
|
},
|
|
],
|
|
],
|
|
],
|
|
],
|
|
]
|
|
]
|
|
]
|
|
);
|
|
|
|
?>
|