nokogiri 1.4.3.1-java → 1.5.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gemtest +0 -0
- data/CHANGELOG.ja.rdoc +113 -0
- data/CHANGELOG.rdoc +113 -1
- data/Manifest.txt +72 -68
- data/README.ja.rdoc +4 -4
- data/README.rdoc +31 -7
- data/Rakefile +110 -132
- data/bin/nokogiri +7 -3
- data/ext/java/nokogiri/EncodingHandler.java +124 -0
- data/ext/java/nokogiri/HtmlDocument.java +119 -0
- data/ext/java/nokogiri/HtmlElementDescription.java +145 -0
- data/ext/java/nokogiri/HtmlEntityLookup.java +79 -0
- data/ext/java/nokogiri/HtmlSaxParserContext.java +259 -0
- data/ext/java/nokogiri/NokogiriService.java +590 -0
- data/ext/java/nokogiri/XmlAttr.java +180 -0
- data/ext/java/nokogiri/XmlAttributeDecl.java +130 -0
- data/ext/java/nokogiri/XmlCdata.java +84 -0
- data/ext/java/nokogiri/XmlComment.java +86 -0
- data/ext/java/nokogiri/XmlDocument.java +519 -0
- data/ext/java/nokogiri/XmlDocumentFragment.java +223 -0
- data/ext/java/nokogiri/XmlDtd.java +469 -0
- data/ext/java/nokogiri/XmlElement.java +195 -0
- data/ext/java/nokogiri/XmlElementContent.java +382 -0
- data/ext/java/nokogiri/XmlElementDecl.java +152 -0
- data/ext/java/nokogiri/XmlEntityDecl.java +162 -0
- data/ext/java/nokogiri/XmlEntityReference.java +97 -0
- data/ext/java/nokogiri/XmlNamespace.java +183 -0
- data/ext/java/nokogiri/XmlNode.java +1378 -0
- data/ext/java/nokogiri/XmlNodeSet.java +267 -0
- data/ext/java/nokogiri/XmlProcessingInstruction.java +99 -0
- data/ext/java/nokogiri/XmlReader.java +408 -0
- data/ext/java/nokogiri/XmlRelaxng.java +144 -0
- data/ext/java/nokogiri/XmlSaxParserContext.java +367 -0
- data/ext/java/nokogiri/XmlSaxPushParser.java +184 -0
- data/ext/java/nokogiri/XmlSchema.java +324 -0
- data/ext/java/nokogiri/XmlSyntaxError.java +119 -0
- data/ext/java/nokogiri/XmlText.java +119 -0
- data/ext/java/nokogiri/XmlXpathContext.java +199 -0
- data/ext/java/nokogiri/XsltStylesheet.java +197 -0
- data/ext/java/nokogiri/internals/HtmlDomParserContext.java +204 -0
- data/ext/java/nokogiri/internals/NokogiriDocumentCache.java +73 -0
- data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +86 -0
- data/ext/java/nokogiri/internals/NokogiriHandler.java +327 -0
- data/ext/java/nokogiri/internals/NokogiriHelpers.java +639 -0
- data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +167 -0
- data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +130 -0
- data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +74 -0
- data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +121 -0
- data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +79 -0
- data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +141 -0
- data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +73 -0
- data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +67 -0
- data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +86 -0
- data/ext/java/nokogiri/internals/ParserContext.java +276 -0
- data/ext/java/nokogiri/internals/PushInputStream.java +411 -0
- data/ext/java/nokogiri/internals/ReaderNode.java +531 -0
- data/ext/java/nokogiri/internals/SaveContextVisitor.java +567 -0
- data/ext/java/nokogiri/internals/SchemaErrorHandler.java +76 -0
- data/ext/java/nokogiri/internals/XmlDeclHandler.java +42 -0
- data/ext/java/nokogiri/internals/XmlDomParser.java +76 -0
- data/ext/java/nokogiri/internals/XmlDomParserContext.java +244 -0
- data/ext/java/nokogiri/internals/XmlSaxParser.java +65 -0
- data/ext/java/nokogiri/internals/XsltExtensionFunction.java +72 -0
- data/ext/nokogiri/depend +358 -32
- data/ext/nokogiri/extconf.rb +10 -6
- data/ext/nokogiri/nokogiri.c +23 -3
- data/ext/nokogiri/nokogiri.h +7 -2
- data/ext/nokogiri/xml_document.c +9 -0
- data/ext/nokogiri/xml_dtd.c +2 -2
- data/ext/nokogiri/xml_io.c +32 -7
- data/ext/nokogiri/xml_node.c +45 -25
- data/ext/nokogiri/xml_node_set.c +1 -1
- data/ext/nokogiri/xml_relax_ng.c +0 -7
- data/ext/nokogiri/xml_sax_parser.c +14 -7
- data/ext/nokogiri/xml_sax_parser_context.c +40 -0
- data/ext/nokogiri/xml_xpath_context.c +33 -2
- data/ext/nokogiri/xslt_stylesheet.c +128 -6
- data/lib/isorelax.jar +0 -0
- data/lib/jing.jar +0 -0
- data/lib/nekodtd.jar +0 -0
- data/lib/nekohtml.jar +0 -0
- data/lib/nokogiri/css/parser.rb +665 -70
- data/lib/nokogiri/css/parser.y +3 -1
- data/lib/nokogiri/css/parser_extras.rb +91 -0
- data/lib/nokogiri/css/tokenizer.rb +148 -3
- data/lib/nokogiri/css/tokenizer.rex +1 -1
- data/lib/nokogiri/css/xpath_visitor.rb +15 -7
- data/lib/nokogiri/css.rb +5 -3
- data/lib/nokogiri/decorators/slop.rb +5 -3
- data/lib/nokogiri/html/document.rb +142 -19
- data/lib/nokogiri/html/document_fragment.rb +19 -17
- data/lib/nokogiri/html/element_description_defaults.rb +671 -0
- data/lib/nokogiri/html/sax/parser.rb +6 -2
- data/lib/nokogiri/html.rb +1 -0
- data/lib/nokogiri/nokogiri.jar +0 -0
- data/lib/nokogiri/version.rb +76 -26
- data/lib/nokogiri/xml/attribute_decl.rb +1 -1
- data/lib/nokogiri/xml/builder.rb +7 -0
- data/lib/nokogiri/xml/document.rb +43 -2
- data/lib/nokogiri/xml/document_fragment.rb +16 -2
- data/lib/nokogiri/xml/dtd.rb +12 -1
- data/lib/nokogiri/xml/element_decl.rb +1 -1
- data/lib/nokogiri/xml/entity_decl.rb +1 -1
- data/lib/nokogiri/xml/node/save_options.rb +20 -1
- data/lib/nokogiri/xml/node.rb +198 -78
- data/lib/nokogiri/xml/node_set.rb +10 -3
- data/lib/nokogiri/xml/parse_options.rb +8 -0
- data/lib/nokogiri/xml/reader.rb +42 -6
- data/lib/nokogiri/xml/sax/document.rb +4 -2
- data/lib/nokogiri/xml/schema.rb +7 -1
- data/lib/nokogiri/xslt/stylesheet.rb +1 -1
- data/lib/nokogiri/xslt.rb +9 -5
- data/lib/nokogiri.rb +19 -25
- data/lib/xercesImpl.jar +0 -0
- data/nokogiri_help_responses.md +40 -0
- data/tasks/cross_compile.rb +130 -136
- data/tasks/nokogiri.org.rb +18 -0
- data/tasks/test.rb +2 -2
- data/test/css/test_parser.rb +29 -18
- data/test/css/test_tokenizer.rb +8 -0
- data/test/decorators/test_slop.rb +16 -0
- data/test/files/encoding.html +82 -0
- data/test/files/encoding.xhtml +84 -0
- data/test/files/metacharset.html +10 -0
- data/test/files/noencoding.html +47 -0
- data/test/helper.rb +5 -1
- data/test/html/sax/test_parser.rb +65 -3
- data/test/html/test_document.rb +75 -1
- data/test/html/test_document_encoding.rb +61 -0
- data/test/html/test_document_fragment.rb +50 -5
- data/test/html/test_element_description.rb +4 -2
- data/test/html/test_node.rb +9 -0
- data/test/test_memory_leak.rb +20 -35
- data/test/test_nokogiri.rb +14 -20
- data/test/test_reader.rb +23 -6
- data/test/test_xslt_transforms.rb +6 -2
- data/test/xml/node/test_save_options.rb +10 -2
- data/test/xml/sax/test_parser.rb +39 -8
- data/test/xml/sax/test_parser_context.rb +50 -0
- data/test/xml/sax/test_push_parser.rb +18 -1
- data/test/xml/test_attribute_decl.rb +7 -3
- data/test/xml/test_builder.rb +17 -0
- data/test/xml/test_document.rb +34 -5
- data/test/xml/test_document_fragment.rb +14 -2
- data/test/xml/test_dtd.rb +28 -3
- data/test/xml/test_element_content.rb +1 -1
- data/test/xml/test_element_decl.rb +1 -1
- data/test/xml/test_entity_decl.rb +12 -10
- data/test/xml/test_namespace.rb +7 -5
- data/test/xml/test_node.rb +65 -13
- data/test/xml/test_node_reparenting.rb +72 -31
- data/test/xml/test_node_set.rb +57 -0
- data/test/xml/test_schema.rb +5 -0
- data/test/xml/test_xpath.rb +32 -0
- data/test/xslt/test_custom_functions.rb +94 -0
- data/test/xslt/test_exception_handling.rb +37 -0
- metadata +512 -517
- data/deps.rip +0 -5
- data/ext/nokogiri/libcharset-1.dll +0 -0
- data/ext/nokogiri/libexslt.dll +0 -0
- data/ext/nokogiri/libiconv-2.dll +0 -0
- data/ext/nokogiri/libxml2.dll +0 -0
- data/ext/nokogiri/libxslt.dll +0 -0
- data/ext/nokogiri/zlib1.dll +0 -0
- data/lib/nokogiri/css/generated_parser.rb +0 -676
- data/lib/nokogiri/css/generated_tokenizer.rb +0 -146
- data/lib/nokogiri/ffi/encoding_handler.rb +0 -42
- data/lib/nokogiri/ffi/html/document.rb +0 -28
- data/lib/nokogiri/ffi/html/element_description.rb +0 -81
- data/lib/nokogiri/ffi/html/entity_lookup.rb +0 -16
- data/lib/nokogiri/ffi/html/sax/parser_context.rb +0 -38
- data/lib/nokogiri/ffi/io_callbacks.rb +0 -42
- data/lib/nokogiri/ffi/libxml.rb +0 -411
- data/lib/nokogiri/ffi/structs/common_node.rb +0 -38
- data/lib/nokogiri/ffi/structs/html_elem_desc.rb +0 -24
- data/lib/nokogiri/ffi/structs/html_entity_desc.rb +0 -13
- data/lib/nokogiri/ffi/structs/xml_alloc.rb +0 -16
- data/lib/nokogiri/ffi/structs/xml_attr.rb +0 -19
- data/lib/nokogiri/ffi/structs/xml_attribute.rb +0 -27
- data/lib/nokogiri/ffi/structs/xml_buffer.rb +0 -16
- data/lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb +0 -11
- data/lib/nokogiri/ffi/structs/xml_document.rb +0 -117
- data/lib/nokogiri/ffi/structs/xml_dtd.rb +0 -28
- data/lib/nokogiri/ffi/structs/xml_element.rb +0 -26
- data/lib/nokogiri/ffi/structs/xml_element_content.rb +0 -17
- data/lib/nokogiri/ffi/structs/xml_entity.rb +0 -32
- data/lib/nokogiri/ffi/structs/xml_enumeration.rb +0 -12
- data/lib/nokogiri/ffi/structs/xml_node.rb +0 -28
- data/lib/nokogiri/ffi/structs/xml_node_set.rb +0 -53
- data/lib/nokogiri/ffi/structs/xml_notation.rb +0 -11
- data/lib/nokogiri/ffi/structs/xml_ns.rb +0 -15
- data/lib/nokogiri/ffi/structs/xml_parser_context.rb +0 -19
- data/lib/nokogiri/ffi/structs/xml_relax_ng.rb +0 -14
- data/lib/nokogiri/ffi/structs/xml_sax_handler.rb +0 -51
- data/lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb +0 -124
- data/lib/nokogiri/ffi/structs/xml_schema.rb +0 -13
- data/lib/nokogiri/ffi/structs/xml_syntax_error.rb +0 -31
- data/lib/nokogiri/ffi/structs/xml_text_reader.rb +0 -12
- data/lib/nokogiri/ffi/structs/xml_xpath_context.rb +0 -38
- data/lib/nokogiri/ffi/structs/xml_xpath_object.rb +0 -35
- data/lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb +0 -20
- data/lib/nokogiri/ffi/structs/xslt_stylesheet.rb +0 -13
- data/lib/nokogiri/ffi/weak_bucket.rb +0 -40
- data/lib/nokogiri/ffi/xml/attr.rb +0 -41
- data/lib/nokogiri/ffi/xml/attribute_decl.rb +0 -27
- data/lib/nokogiri/ffi/xml/cdata.rb +0 -19
- data/lib/nokogiri/ffi/xml/comment.rb +0 -18
- data/lib/nokogiri/ffi/xml/document.rb +0 -166
- data/lib/nokogiri/ffi/xml/document_fragment.rb +0 -21
- data/lib/nokogiri/ffi/xml/dtd.rb +0 -67
- data/lib/nokogiri/ffi/xml/element_content.rb +0 -43
- data/lib/nokogiri/ffi/xml/element_decl.rb +0 -19
- data/lib/nokogiri/ffi/xml/entity_decl.rb +0 -36
- data/lib/nokogiri/ffi/xml/entity_reference.rb +0 -19
- data/lib/nokogiri/ffi/xml/namespace.rb +0 -44
- data/lib/nokogiri/ffi/xml/node.rb +0 -554
- data/lib/nokogiri/ffi/xml/node_set.rb +0 -149
- data/lib/nokogiri/ffi/xml/processing_instruction.rb +0 -20
- data/lib/nokogiri/ffi/xml/reader.rb +0 -236
- data/lib/nokogiri/ffi/xml/relax_ng.rb +0 -85
- data/lib/nokogiri/ffi/xml/sax/parser.rb +0 -135
- data/lib/nokogiri/ffi/xml/sax/parser_context.rb +0 -67
- data/lib/nokogiri/ffi/xml/sax/push_parser.rb +0 -51
- data/lib/nokogiri/ffi/xml/schema.rb +0 -109
- data/lib/nokogiri/ffi/xml/syntax_error.rb +0 -98
- data/lib/nokogiri/ffi/xml/text.rb +0 -18
- data/lib/nokogiri/ffi/xml/xpath.rb +0 -9
- data/lib/nokogiri/ffi/xml/xpath_context.rb +0 -148
- data/lib/nokogiri/ffi/xslt/stylesheet.rb +0 -53
- data/lib/nokogiri/version_warning.rb +0 -14
- data/test/ffi/test_document.rb +0 -35
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>����������</title>
|
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<p>���������\�z���B</p>
|
|
9
|
+
<p>�����������\�z���B</p>
|
|
10
|
+
<p>�������������\�z���B</p>
|
|
11
|
+
<p>���������������\�z���B</p>
|
|
12
|
+
<p>�����������������\�z���B</p>
|
|
13
|
+
<p>�������������������\�z���B</p>
|
|
14
|
+
<p>���������������������\�z���B</p>
|
|
15
|
+
<p>�����������������������\�z���B</p>
|
|
16
|
+
<p>�������������������������\�z���B</p>
|
|
17
|
+
<p>���������������������������\�z���B</p>
|
|
18
|
+
<p>�����������������������������\�z���B</p>
|
|
19
|
+
<p>�������������������������������\�z���B</p>
|
|
20
|
+
<p>���������������������������������\�z���B</p>
|
|
21
|
+
<p>�����������������������������������\�z���B</p>
|
|
22
|
+
<p>�������������������������������������\�z���B</p>
|
|
23
|
+
<p>���������������������������������������\�z���B</p>
|
|
24
|
+
<p>�����������������������������������������\�z���B</p>
|
|
25
|
+
<p>�������������������������������������������\�z���B</p>
|
|
26
|
+
<p>���������������������������������������������\�z���B</p>
|
|
27
|
+
<p>�����������������������������������������������\�z���B</p>
|
|
28
|
+
<p>�������������������������������������������������\�z���B</p>
|
|
29
|
+
<p>���������������������������������������������������\�z���B</p>
|
|
30
|
+
<p>�����������������������������������������������������\�z���B</p>
|
|
31
|
+
<p>�������������������������������������������������������\�z���B</p>
|
|
32
|
+
<p>���������������������������������������������������������\�z���B</p>
|
|
33
|
+
<p>�����������������������������������������������������������\�z���B</p>
|
|
34
|
+
<p>�������������������������������������������������������������\�z���B</p>
|
|
35
|
+
<p>���������������������������������������������������������������\�z���B</p>
|
|
36
|
+
<p>�����������������������������������������������������������������\�z���B</p>
|
|
37
|
+
<p>�������������������������������������������������������������������\�z���B</p>
|
|
38
|
+
<p>���������������������������������������������������������������������\�z���B</p>
|
|
39
|
+
<p>�����������������������������������������������������������������������\�z���B</p>
|
|
40
|
+
<p>�������������������������������������������������������������������������\�z���B</p>
|
|
41
|
+
<p>���������������������������������������������������������������������������\�z���B</p>
|
|
42
|
+
<p>�����������������������������������������������������������������������������\�z���B</p>
|
|
43
|
+
<p>�������������������������������������������������������������������������������\�z���B</p>
|
|
44
|
+
<p>���������������������������������������������������������������������������������\�z���B</p>
|
|
45
|
+
<p>�����������������������������������������������������������������������������������\�z���B</p>
|
|
46
|
+
<p>�������������������������������������������������������������������������������������\�z���B</p>
|
|
47
|
+
<p>���������������������������������������������������������������������������������������\�z���B</p>
|
|
48
|
+
<p>�����������������������������������������������������������������������������������������\�z���B</p>
|
|
49
|
+
<p>�������������������������������������������������������������������������������������������\�z���B</p>
|
|
50
|
+
<p>���������������������������������������������������������������������������������������������\�z���B</p>
|
|
51
|
+
<p>�����������������������������������������������������������������������������������������������\�z���B</p>
|
|
52
|
+
<p>�������������������������������������������������������������������������������������������������\�z���B</p>
|
|
53
|
+
<p>���������������������������������������������������������������������������������������������������\�z���B</p>
|
|
54
|
+
<p>�����������������������������������������������������������������������������������������������������\�z���B</p>
|
|
55
|
+
<p>�������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
56
|
+
<p>���������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
57
|
+
<p>�����������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
58
|
+
<p>�������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
59
|
+
<p>���������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
60
|
+
<p>�����������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
61
|
+
<p>�������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
62
|
+
<p>���������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
63
|
+
<p>�����������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
64
|
+
<p>�������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
65
|
+
<p>���������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
66
|
+
<p>�����������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
67
|
+
<p>�������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
68
|
+
<p>���������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
69
|
+
<p>�����������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
70
|
+
<p>�������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
71
|
+
<p>���������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
72
|
+
<p>�����������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
73
|
+
<p>�������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
74
|
+
<p>���������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
75
|
+
<p>�����������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
76
|
+
<p>�������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
77
|
+
<p>���������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
78
|
+
<p>�����������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
79
|
+
<p>�������������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
80
|
+
<p>���������������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
81
|
+
</body>
|
|
82
|
+
</html>
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="Shift_JIS"?>
|
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
3
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
|
|
5
|
+
<head>
|
|
6
|
+
<title>����������</title>
|
|
7
|
+
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<p>���������\�z���B</p>
|
|
11
|
+
<p>�����������\�z���B</p>
|
|
12
|
+
<p>�������������\�z���B</p>
|
|
13
|
+
<p>���������������\�z���B</p>
|
|
14
|
+
<p>�����������������\�z���B</p>
|
|
15
|
+
<p>�������������������\�z���B</p>
|
|
16
|
+
<p>���������������������\�z���B</p>
|
|
17
|
+
<p>�����������������������\�z���B</p>
|
|
18
|
+
<p>�������������������������\�z���B</p>
|
|
19
|
+
<p>���������������������������\�z���B</p>
|
|
20
|
+
<p>�����������������������������\�z���B</p>
|
|
21
|
+
<p>�������������������������������\�z���B</p>
|
|
22
|
+
<p>���������������������������������\�z���B</p>
|
|
23
|
+
<p>�����������������������������������\�z���B</p>
|
|
24
|
+
<p>�������������������������������������\�z���B</p>
|
|
25
|
+
<p>���������������������������������������\�z���B</p>
|
|
26
|
+
<p>�����������������������������������������\�z���B</p>
|
|
27
|
+
<p>�������������������������������������������\�z���B</p>
|
|
28
|
+
<p>���������������������������������������������\�z���B</p>
|
|
29
|
+
<p>�����������������������������������������������\�z���B</p>
|
|
30
|
+
<p>�������������������������������������������������\�z���B</p>
|
|
31
|
+
<p>���������������������������������������������������\�z���B</p>
|
|
32
|
+
<p>�����������������������������������������������������\�z���B</p>
|
|
33
|
+
<p>�������������������������������������������������������\�z���B</p>
|
|
34
|
+
<p>���������������������������������������������������������\�z���B</p>
|
|
35
|
+
<p>�����������������������������������������������������������\�z���B</p>
|
|
36
|
+
<p>�������������������������������������������������������������\�z���B</p>
|
|
37
|
+
<p>���������������������������������������������������������������\�z���B</p>
|
|
38
|
+
<p>�����������������������������������������������������������������\�z���B</p>
|
|
39
|
+
<p>�������������������������������������������������������������������\�z���B</p>
|
|
40
|
+
<p>���������������������������������������������������������������������\�z���B</p>
|
|
41
|
+
<p>�����������������������������������������������������������������������\�z���B</p>
|
|
42
|
+
<p>�������������������������������������������������������������������������\�z���B</p>
|
|
43
|
+
<p>���������������������������������������������������������������������������\�z���B</p>
|
|
44
|
+
<p>�����������������������������������������������������������������������������\�z���B</p>
|
|
45
|
+
<p>�������������������������������������������������������������������������������\�z���B</p>
|
|
46
|
+
<p>���������������������������������������������������������������������������������\�z���B</p>
|
|
47
|
+
<p>�����������������������������������������������������������������������������������\�z���B</p>
|
|
48
|
+
<p>�������������������������������������������������������������������������������������\�z���B</p>
|
|
49
|
+
<p>���������������������������������������������������������������������������������������\�z���B</p>
|
|
50
|
+
<p>�����������������������������������������������������������������������������������������\�z���B</p>
|
|
51
|
+
<p>�������������������������������������������������������������������������������������������\�z���B</p>
|
|
52
|
+
<p>���������������������������������������������������������������������������������������������\�z���B</p>
|
|
53
|
+
<p>�����������������������������������������������������������������������������������������������\�z���B</p>
|
|
54
|
+
<p>�������������������������������������������������������������������������������������������������\�z���B</p>
|
|
55
|
+
<p>���������������������������������������������������������������������������������������������������\�z���B</p>
|
|
56
|
+
<p>�����������������������������������������������������������������������������������������������������\�z���B</p>
|
|
57
|
+
<p>�������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
58
|
+
<p>���������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
59
|
+
<p>�����������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
60
|
+
<p>�������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
61
|
+
<p>���������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
62
|
+
<p>�����������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
63
|
+
<p>�������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
64
|
+
<p>���������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
65
|
+
<p>�����������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
66
|
+
<p>�������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
67
|
+
<p>���������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
68
|
+
<p>�����������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
69
|
+
<p>�������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
70
|
+
<p>���������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
71
|
+
<p>�����������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
72
|
+
<p>�������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
73
|
+
<p>���������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
74
|
+
<p>�����������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
75
|
+
<p>�������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
76
|
+
<p>���������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
77
|
+
<p>�����������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
78
|
+
<p>�������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
79
|
+
<p>���������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
80
|
+
<p>�����������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
81
|
+
<p>�������������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
82
|
+
<p>���������������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
|
|
83
|
+
</body>
|
|
84
|
+
</html>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>I have no encoding declaration.</title>
|
|
5
|
+
</head>
|
|
6
|
+
<body>
|
|
7
|
+
<p>I want one.</p>
|
|
8
|
+
<p>I really want one.</p>
|
|
9
|
+
<p>I really really want one.</p>
|
|
10
|
+
<p>I really really really want one.</p>
|
|
11
|
+
<p>I really really really really want one.</p>
|
|
12
|
+
<p>I really really really really really want one.</p>
|
|
13
|
+
<p>I really really really really really really want one.</p>
|
|
14
|
+
<p>I really really really really really really really want one.</p>
|
|
15
|
+
<p>I really really really really really really really really want one.</p>
|
|
16
|
+
<p>I really really really really really really really really really want one.</p>
|
|
17
|
+
<p>I really really really really really really really really really really want one.</p>
|
|
18
|
+
<p>I really really really really really really really really really really really want one.</p>
|
|
19
|
+
<p>I really really really really really really really really really really really really want one.</p>
|
|
20
|
+
<p>I really really really really really really really really really really really really really want one.</p>
|
|
21
|
+
<p>I really really really really really really really really really really really really really really want one.</p>
|
|
22
|
+
<p>I really really really really really really really really really really really really really really really want one.</p>
|
|
23
|
+
<p>I really really really really really really really really really really really really really really really really want one.</p>
|
|
24
|
+
<p>I really really really really really really really really really really really really really really really really really want one.</p>
|
|
25
|
+
<p>I really really really really really really really really really really really really really really really really really really want one.</p>
|
|
26
|
+
<p>I really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
27
|
+
<p>I really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
28
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
29
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
30
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
31
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
32
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
33
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
34
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
35
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
36
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
37
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
38
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
39
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
40
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
41
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
42
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
43
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
44
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
45
|
+
<p>I really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really want one.</p>
|
|
46
|
+
</body>
|
|
47
|
+
</html>
|
data/test/helper.rb
CHANGED
|
@@ -7,7 +7,7 @@ require 'pp'
|
|
|
7
7
|
|
|
8
8
|
require 'nokogiri'
|
|
9
9
|
|
|
10
|
-
warn "#{__FILE__}:#{__LINE__}:
|
|
10
|
+
warn "#{__FILE__}:#{__LINE__}: version info: #{Nokogiri::VERSION_INFO.inspect}"
|
|
11
11
|
|
|
12
12
|
module Nokogiri
|
|
13
13
|
class TestCase < MiniTest::Spec
|
|
@@ -20,6 +20,10 @@ module Nokogiri
|
|
|
20
20
|
NICH_FILE = File.join(ASSETS_DIR, '2ch.html')
|
|
21
21
|
SHIFT_JIS_XML = File.join(ASSETS_DIR, 'shift_jis.xml')
|
|
22
22
|
SHIFT_JIS_HTML = File.join(ASSETS_DIR, 'shift_jis.html')
|
|
23
|
+
ENCODING_XHTML_FILE = File.join(ASSETS_DIR, 'encoding.xhtml')
|
|
24
|
+
ENCODING_HTML_FILE = File.join(ASSETS_DIR, 'encoding.html')
|
|
25
|
+
NOENCODING_FILE = File.join(ASSETS_DIR, 'noencoding.html')
|
|
26
|
+
METACHARSET_FILE = File.join(ASSETS_DIR, 'metacharset.html')
|
|
23
27
|
PO_XML_FILE = File.join(ASSETS_DIR, 'po.xml')
|
|
24
28
|
PO_SCHEMA_FILE = File.join(ASSETS_DIR, 'po.xsd')
|
|
25
29
|
ADDRESS_SCHEMA_FILE = File.join(ASSETS_DIR, 'address_book.rlx')
|
|
@@ -24,7 +24,14 @@ module Nokogiri
|
|
|
24
24
|
|
|
25
25
|
def test_parse_file
|
|
26
26
|
@parser.parse_file(HTML_FILE)
|
|
27
|
-
|
|
27
|
+
|
|
28
|
+
# Take a look at the comment in test_parse_document to know
|
|
29
|
+
# a possible reason to this difference.
|
|
30
|
+
if Nokogiri.uses_libxml?
|
|
31
|
+
assert_equal 1110, @parser.document.end_elements.length
|
|
32
|
+
else
|
|
33
|
+
assert_equal 1119, @parser.document.end_elements.length
|
|
34
|
+
end
|
|
28
35
|
end
|
|
29
36
|
|
|
30
37
|
def test_parse_file_nil_argument
|
|
@@ -65,8 +72,63 @@ module Nokogiri
|
|
|
65
72
|
<p>Paragraph 1</p>
|
|
66
73
|
<p>Paragraph 2</p>
|
|
67
74
|
eoxml
|
|
68
|
-
|
|
69
|
-
|
|
75
|
+
|
|
76
|
+
# JRuby version is different because of the internal implementation
|
|
77
|
+
# JRuby version uses NekoHTML which inserts empty "head" elements.
|
|
78
|
+
#
|
|
79
|
+
# Currently following features are set:
|
|
80
|
+
# "http://cyberneko.org/html/properties/names/elems" => "lower"
|
|
81
|
+
# "http://cyberneko.org/html/properties/names/attrs" => "lower"
|
|
82
|
+
if Nokogiri.uses_libxml?
|
|
83
|
+
assert_equal([["html", []], ["body", []], ["p", []], ["p", []]],
|
|
84
|
+
@parser.document.start_elements)
|
|
85
|
+
else
|
|
86
|
+
assert_equal([["html", []], ["head", []], ["body", []], ["p", []], ["p", []]],
|
|
87
|
+
@parser.document.start_elements)
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test_parser_attributes
|
|
92
|
+
html = <<-eohtml
|
|
93
|
+
<html>
|
|
94
|
+
<head>
|
|
95
|
+
<title>hello</title>
|
|
96
|
+
</head>
|
|
97
|
+
<body>
|
|
98
|
+
<img src="face.jpg" title="daddy & me">
|
|
99
|
+
<hr noshade size="2">
|
|
100
|
+
</body>
|
|
101
|
+
</html>
|
|
102
|
+
eohtml
|
|
103
|
+
|
|
104
|
+
block_called = false
|
|
105
|
+
@parser.parse(html) { |ctx|
|
|
106
|
+
block_called = true
|
|
107
|
+
ctx.replace_entities = true
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
assert block_called
|
|
111
|
+
|
|
112
|
+
noshade_value = if Nokogiri.uses_libxml? && Nokogiri::VERSION_INFO['libxml']['loaded'] < '2.7.7'
|
|
113
|
+
['noshade', 'noshade']
|
|
114
|
+
else
|
|
115
|
+
['noshade', nil]
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
assert_equal [
|
|
119
|
+
['html', []],
|
|
120
|
+
['head', []],
|
|
121
|
+
['title', []],
|
|
122
|
+
['body', []],
|
|
123
|
+
['img', [
|
|
124
|
+
['src', 'face.jpg'],
|
|
125
|
+
['title', 'daddy & me']
|
|
126
|
+
]],
|
|
127
|
+
['hr', [
|
|
128
|
+
noshade_value,
|
|
129
|
+
['size', '2']
|
|
130
|
+
]]
|
|
131
|
+
], @parser.document.start_elements
|
|
70
132
|
end
|
|
71
133
|
end
|
|
72
134
|
end
|
data/test/html/test_document.rb
CHANGED
|
@@ -8,6 +8,12 @@ module Nokogiri
|
|
|
8
8
|
@html = Nokogiri::HTML.parse(File.read(HTML_FILE))
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
+
def test_nil_css
|
|
12
|
+
# Behavior is undefined but shouldn't break
|
|
13
|
+
assert @html.css(nil)
|
|
14
|
+
assert @html.xpath(nil)
|
|
15
|
+
end
|
|
16
|
+
|
|
11
17
|
def test_exceptions_remove_newlines
|
|
12
18
|
errors = @html.errors
|
|
13
19
|
assert errors.length > 0, 'has errors'
|
|
@@ -87,7 +93,7 @@ module Nokogiri
|
|
|
87
93
|
assert_nil doc.root
|
|
88
94
|
end
|
|
89
95
|
|
|
90
|
-
unless %w[2 6] === LIBXML_VERSION.split('.')[0..1]
|
|
96
|
+
unless Nokogiri.uses_libxml? && %w[2 6] === LIBXML_VERSION.split('.')[0..1]
|
|
91
97
|
# FIXME: this is a hack around broken libxml versions
|
|
92
98
|
def test_to_xhtml_with_indent
|
|
93
99
|
doc = Nokogiri::HTML('<html><body><a>foo</a></body></html>')
|
|
@@ -119,6 +125,18 @@ module Nokogiri
|
|
|
119
125
|
|
|
120
126
|
def test_meta_encoding
|
|
121
127
|
assert_equal 'UTF-8', @html.meta_encoding
|
|
128
|
+
|
|
129
|
+
html = Nokogiri::HTML(<<-eohtml)
|
|
130
|
+
<html>
|
|
131
|
+
<head>
|
|
132
|
+
<meta http-equiv="X-Content-Type" content="text/html; charset=Shift_JIS">
|
|
133
|
+
</head>
|
|
134
|
+
<body>
|
|
135
|
+
foo
|
|
136
|
+
</body>
|
|
137
|
+
</html>
|
|
138
|
+
eohtml
|
|
139
|
+
assert_nil html.meta_encoding
|
|
122
140
|
end
|
|
123
141
|
|
|
124
142
|
def test_meta_encoding=
|
|
@@ -126,6 +144,53 @@ module Nokogiri
|
|
|
126
144
|
assert_equal 'EUC-JP', @html.meta_encoding
|
|
127
145
|
end
|
|
128
146
|
|
|
147
|
+
def test_title
|
|
148
|
+
assert_equal 'Tender Lovemaking ', @html.title
|
|
149
|
+
doc = Nokogiri::HTML('<html><body>foo</body></html>')
|
|
150
|
+
assert_nil doc.title
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def test_title=()
|
|
154
|
+
doc = Nokogiri::HTML(<<eohtml)
|
|
155
|
+
<html>
|
|
156
|
+
<head>
|
|
157
|
+
<title>old</title>
|
|
158
|
+
</head>
|
|
159
|
+
<body>
|
|
160
|
+
foo
|
|
161
|
+
</body>
|
|
162
|
+
</html>
|
|
163
|
+
eohtml
|
|
164
|
+
doc.title = 'new'
|
|
165
|
+
assert_equal 'new', doc.title
|
|
166
|
+
|
|
167
|
+
doc = Nokogiri::HTML(<<eohtml)
|
|
168
|
+
<html>
|
|
169
|
+
<head>
|
|
170
|
+
</head>
|
|
171
|
+
<body>
|
|
172
|
+
foo
|
|
173
|
+
</body>
|
|
174
|
+
</html>
|
|
175
|
+
eohtml
|
|
176
|
+
doc.title = 'new'
|
|
177
|
+
assert_equal 'new', doc.title
|
|
178
|
+
|
|
179
|
+
doc = Nokogiri::HTML(<<eohtml)
|
|
180
|
+
<html>
|
|
181
|
+
<body>
|
|
182
|
+
foo
|
|
183
|
+
</body>
|
|
184
|
+
</html>
|
|
185
|
+
eohtml
|
|
186
|
+
doc.title = 'new'
|
|
187
|
+
if Nokogiri.uses_libxml?
|
|
188
|
+
assert_nil doc.title
|
|
189
|
+
else
|
|
190
|
+
assert_equal 'new', doc.title
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
|
|
129
194
|
def test_meta_encoding_without_head
|
|
130
195
|
html = Nokogiri::HTML('<html><body>foo</body></html>')
|
|
131
196
|
assert_nil html.meta_encoding
|
|
@@ -167,6 +232,15 @@ module Nokogiri
|
|
|
167
232
|
}
|
|
168
233
|
end
|
|
169
234
|
|
|
235
|
+
def test_parse_temp_file
|
|
236
|
+
temp_html_file = Tempfile.new("TEMP_HTML_FILE")
|
|
237
|
+
File.open(HTML_FILE, 'rb') { |f| temp_html_file.write f.read }
|
|
238
|
+
temp_html_file.close
|
|
239
|
+
temp_html_file.open
|
|
240
|
+
assert_equal Nokogiri::HTML.parse(File.read(HTML_FILE)).xpath('//div/a').length,
|
|
241
|
+
Nokogiri::HTML.parse(temp_html_file).xpath('//div/a').length
|
|
242
|
+
end
|
|
243
|
+
|
|
170
244
|
def test_to_xhtml
|
|
171
245
|
assert_match 'XHTML', @html.to_xhtml
|
|
172
246
|
assert_match 'XHTML', @html.to_xhtml(:encoding => 'UTF-8')
|
|
@@ -73,5 +73,66 @@ module Nokogiri
|
|
|
73
73
|
end
|
|
74
74
|
end
|
|
75
75
|
end
|
|
76
|
+
|
|
77
|
+
class TestDocumentEncodingDetection < Nokogiri::TestCase
|
|
78
|
+
if IO.respond_to?(:binread)
|
|
79
|
+
def binread(file)
|
|
80
|
+
IO.binread(file)
|
|
81
|
+
end
|
|
82
|
+
else
|
|
83
|
+
def binread(file)
|
|
84
|
+
IO.read(file)
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def binopen(file)
|
|
89
|
+
File.open(file, 'rb')
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def test_document_html_noencoding
|
|
93
|
+
from_stream = Nokogiri::HTML(binopen(NOENCODING_FILE))
|
|
94
|
+
from_string = Nokogiri::HTML(binread(NOENCODING_FILE))
|
|
95
|
+
|
|
96
|
+
assert_equal from_string.to_s.size, from_stream.to_s.size
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_document_html_charset
|
|
100
|
+
html = Nokogiri::HTML(binopen(METACHARSET_FILE))
|
|
101
|
+
assert_equal 'iso-2022-jp', html.encoding
|
|
102
|
+
assert_equal 'たこ焼き仮面', html.title
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def test_document_xhtml_enc
|
|
106
|
+
[ENCODING_XHTML_FILE, ENCODING_HTML_FILE].each { |file|
|
|
107
|
+
doc_from_string_enc = Nokogiri::HTML(binread(file), nil, 'Shift_JIS')
|
|
108
|
+
ary_from_string_enc = doc_from_string_enc.xpath('//p/text()').map { |text| text.text }
|
|
109
|
+
|
|
110
|
+
doc_from_string = Nokogiri::HTML(binread(file))
|
|
111
|
+
ary_from_string = doc_from_string.xpath('//p/text()').map { |text| text.text }
|
|
112
|
+
|
|
113
|
+
doc_from_file_enc = Nokogiri::HTML(binopen(file), nil, 'Shift_JIS')
|
|
114
|
+
ary_from_file_enc = doc_from_file_enc.xpath('//p/text()').map { |text| text.text }
|
|
115
|
+
|
|
116
|
+
doc_from_file = Nokogiri::HTML(binopen(file))
|
|
117
|
+
ary_from_file = doc_from_file.xpath('//p/text()').map { |text| text.text }
|
|
118
|
+
|
|
119
|
+
title = 'たこ焼き仮面'
|
|
120
|
+
|
|
121
|
+
assert_equal(title, doc_from_string_enc.at('//title/text()').text)
|
|
122
|
+
assert_equal(title, doc_from_string.at('//title/text()').text)
|
|
123
|
+
assert_equal(title, doc_from_file_enc.at('//title/text()').text)
|
|
124
|
+
unless Nokogiri.jruby? && file == ENCODING_HTML_FILE
|
|
125
|
+
assert_equal(title, doc_from_file.at('//title/text()').text)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
evil = (0..72).map { |i| '超' * i + '悪い事を構想中。' }
|
|
129
|
+
|
|
130
|
+
assert_equal(evil, ary_from_string_enc)
|
|
131
|
+
assert_equal(evil, ary_from_string)
|
|
132
|
+
assert_equal(evil, ary_from_file_enc)
|
|
133
|
+
assert_equal(evil, ary_from_file)
|
|
134
|
+
}
|
|
135
|
+
end
|
|
136
|
+
end
|
|
76
137
|
end
|
|
77
138
|
end
|