1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-12-04 14:46:47 -05:00

Merge with git+ssh://pasky.or.cz/srv/git/elinks.git

This commit is contained in:
Miciah Dashiel Butler Masters 2005-12-29 07:08:37 +00:00 committed by Miciah Dashiel Butler Masters
commit 898c2a8165
2 changed files with 83 additions and 18 deletions

View File

@ -21,7 +21,7 @@
static void
print_compressed_string(struct dom_string *string)
{
unsigned char escape[2] = "\\";
unsigned char escape[3] = { '\\', '?', 0 };
size_t pos;
for (pos = 0; pos < string->length; pos++) {
@ -142,8 +142,8 @@ struct dom_stack_context_info sgml_parser_test_context_info = {
/* DOM_NODE_ELEMENT */ sgml_parser_test_branch,
/* DOM_NODE_ATTRIBUTE */ sgml_parser_test_id_leaf,
/* DOM_NODE_TEXT */ sgml_parser_test_leaf,
/* DOM_NODE_CDATA_SECTION */ sgml_parser_test_id_leaf,
/* DOM_NODE_ENTITY_REFERENCE */ sgml_parser_test_id_leaf,
/* DOM_NODE_CDATA_SECTION */ sgml_parser_test_leaf,
/* DOM_NODE_ENTITY_REFERENCE */ sgml_parser_test_branch,
/* DOM_NODE_ENTITY */ sgml_parser_test_id_leaf,
/* DOM_NODE_PROC_INSTRUCTION */ sgml_parser_test_id_leaf,
/* DOM_NODE_COMMENT */ sgml_parser_test_leaf,

View File

@ -11,24 +11,89 @@ correctly in the DOM tree.
. ./libtest
test_output_equals () {
desc="$1"
src="$2"
out="$3"
URI="test:$(echo "$desc" | sed '
s/^[ \t]*\[[^]]*\][ \t]*//;
s/[:., \t][:., \t]*/-/g;
s/_/-/g;
# *cough*
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
s/[^a-zA-Z0-9-]//g;')"
sgml-parser --uri "$URI" --src "$src" | sed 's/^ //' > output
echo "#document: $URI" > expected
echo "$out" | sed -n '2,$p' >> expected
test_expect_success "$desc" 'cmp -b output expected'
}
################################################################
# init-db has been done in an empty repository.
# make sure it is empty.
# Parse various SGML node types.
sgml-parser --uri "test:hello-world" \
--src "<html><body><p>Hello World!</p></body></html>" \
> output
cat > expected <<EOF
#document: test:hello-world
element: html
test_output_equals \
'Parse a small document.' \
'<html><body><p>Hello World!</p></body></html>' \
'
element: html
element: body
element: p
#text: Hello World!
EOF
#text: Hello World!'
test_expect_success \
'Test a small document.' \
'cmp output expected'
test_output_equals \
'Parse an enclosed comment.' \
'<root><!-- Hello World! --></root>' \
'
element: root
#comment: Hello World! '
test_output_equals \
'Parse an enclosed CDATA section.' \
'<root><![CDATA[...] ]>...]]></root>' \
'
element: root
#cdata-section: ...] ]>...'
test_output_equals \
'Parse attributes.' \
'<root lang="fr" attr name="value with &foo; <stuff"></root>' \
'
element: root
attribute: lang -> fr
attribute: attr ->
attribute: name -> value with &foo; <stuff'
test_output_equals \
'Parse entity references.' \
'<root>&amp;...&#42;...&...copy;...&;...&#;' \
'
element: root
entity-reference: amp
#text: ...
entity-reference: #42
#text: ...
entity-reference: ...copy
#text: ...
#text: &;
#text: ...
entity-reference: #'
# Test <?>
test_output_equals \
'Parse processing instructions.' \
'<?xml encoding="UTF8"?>
...
<?ecmascript
var val=2;
?>' \
'
proc-instruction: xml -> encoding="UTF8"
attribute: encoding -> UTF8
#text: \n...\n
proc-instruction: ecmascript -> \nvar -> val=2;\n'
test_done