rosavox/lib/alveolata/html/test.spec.php
2025-05-23 07:33:29 +00:00

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);
},
],
],
],
],
]
]
]
);
?>