nokogiri 1.2.3-x86-mswin32-60 → 1.4.5-x86-mswin32-60

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

Files changed (319) hide show
  1. data/.autotest +18 -7
  2. data/.gemtest +0 -0
  3. data/CHANGELOG.ja.rdoc +297 -3
  4. data/CHANGELOG.rdoc +289 -0
  5. data/Manifest.txt +148 -37
  6. data/README.ja.rdoc +20 -20
  7. data/README.rdoc +53 -22
  8. data/Rakefile +127 -211
  9. data/bin/nokogiri +54 -0
  10. data/ext/nokogiri/depend +358 -0
  11. data/ext/nokogiri/extconf.rb +89 -54
  12. data/ext/nokogiri/html_document.c +34 -27
  13. data/ext/nokogiri/html_document.h +1 -1
  14. data/ext/nokogiri/html_element_description.c +276 -0
  15. data/ext/nokogiri/html_element_description.h +10 -0
  16. data/ext/nokogiri/html_entity_lookup.c +7 -5
  17. data/ext/nokogiri/html_entity_lookup.h +1 -1
  18. data/ext/nokogiri/html_sax_parser_context.c +94 -0
  19. data/ext/nokogiri/html_sax_parser_context.h +11 -0
  20. data/ext/nokogiri/{native.c → nokogiri.c} +31 -7
  21. data/ext/nokogiri/{native.h → nokogiri.h} +68 -41
  22. data/ext/nokogiri/xml_attr.c +20 -9
  23. data/ext/nokogiri/xml_attr.h +1 -1
  24. data/ext/nokogiri/xml_attribute_decl.c +70 -0
  25. data/ext/nokogiri/xml_attribute_decl.h +9 -0
  26. data/ext/nokogiri/xml_cdata.c +21 -9
  27. data/ext/nokogiri/xml_cdata.h +1 -1
  28. data/ext/nokogiri/xml_comment.c +18 -6
  29. data/ext/nokogiri/xml_comment.h +1 -1
  30. data/ext/nokogiri/xml_document.c +247 -68
  31. data/ext/nokogiri/xml_document.h +5 -3
  32. data/ext/nokogiri/xml_document_fragment.c +15 -7
  33. data/ext/nokogiri/xml_document_fragment.h +1 -1
  34. data/ext/nokogiri/xml_dtd.c +110 -10
  35. data/ext/nokogiri/xml_dtd.h +3 -1
  36. data/ext/nokogiri/xml_element_content.c +123 -0
  37. data/ext/nokogiri/xml_element_content.h +10 -0
  38. data/ext/nokogiri/xml_element_decl.c +69 -0
  39. data/ext/nokogiri/xml_element_decl.h +9 -0
  40. data/ext/nokogiri/xml_encoding_handler.c +79 -0
  41. data/ext/nokogiri/xml_encoding_handler.h +8 -0
  42. data/ext/nokogiri/xml_entity_decl.c +110 -0
  43. data/ext/nokogiri/xml_entity_decl.h +10 -0
  44. data/ext/nokogiri/xml_entity_reference.c +16 -5
  45. data/ext/nokogiri/xml_entity_reference.h +1 -1
  46. data/ext/nokogiri/xml_io.c +40 -8
  47. data/ext/nokogiri/xml_io.h +2 -1
  48. data/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  49. data/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  50. data/ext/nokogiri/xml_namespace.c +84 -0
  51. data/ext/nokogiri/xml_namespace.h +13 -0
  52. data/ext/nokogiri/xml_node.c +782 -225
  53. data/ext/nokogiri/xml_node.h +2 -4
  54. data/ext/nokogiri/xml_node_set.c +253 -34
  55. data/ext/nokogiri/xml_node_set.h +2 -2
  56. data/ext/nokogiri/xml_processing_instruction.c +17 -5
  57. data/ext/nokogiri/xml_processing_instruction.h +1 -1
  58. data/ext/nokogiri/xml_reader.c +277 -85
  59. data/ext/nokogiri/xml_reader.h +1 -1
  60. data/ext/nokogiri/xml_relax_ng.c +168 -0
  61. data/ext/nokogiri/xml_relax_ng.h +9 -0
  62. data/ext/nokogiri/xml_sax_parser.c +183 -111
  63. data/ext/nokogiri/xml_sax_parser.h +30 -1
  64. data/ext/nokogiri/xml_sax_parser_context.c +199 -0
  65. data/ext/nokogiri/xml_sax_parser_context.h +10 -0
  66. data/ext/nokogiri/xml_sax_push_parser.c +42 -12
  67. data/ext/nokogiri/xml_sax_push_parser.h +1 -1
  68. data/ext/nokogiri/xml_schema.c +205 -0
  69. data/ext/nokogiri/xml_schema.h +9 -0
  70. data/ext/nokogiri/xml_syntax_error.c +28 -173
  71. data/ext/nokogiri/xml_syntax_error.h +2 -1
  72. data/ext/nokogiri/xml_text.c +16 -6
  73. data/ext/nokogiri/xml_text.h +1 -1
  74. data/ext/nokogiri/xml_xpath_context.c +104 -47
  75. data/ext/nokogiri/xml_xpath_context.h +1 -1
  76. data/ext/nokogiri/xslt_stylesheet.c +161 -19
  77. data/ext/nokogiri/xslt_stylesheet.h +1 -1
  78. data/lib/nokogiri.rb +47 -8
  79. data/lib/nokogiri/1.8/nokogiri.so +0 -0
  80. data/lib/nokogiri/1.9/nokogiri.so +0 -0
  81. data/lib/nokogiri/css.rb +6 -3
  82. data/lib/nokogiri/css/node.rb +14 -12
  83. data/lib/nokogiri/css/parser.rb +665 -62
  84. data/lib/nokogiri/css/parser.y +20 -10
  85. data/lib/nokogiri/css/parser_extras.rb +91 -0
  86. data/lib/nokogiri/css/tokenizer.rb +148 -5
  87. data/lib/nokogiri/css/tokenizer.rex +10 -9
  88. data/lib/nokogiri/css/xpath_visitor.rb +47 -44
  89. data/lib/nokogiri/decorators/slop.rb +8 -4
  90. data/lib/nokogiri/ffi/encoding_handler.rb +42 -0
  91. data/lib/nokogiri/ffi/html/document.rb +28 -0
  92. data/lib/nokogiri/ffi/html/element_description.rb +81 -0
  93. data/lib/nokogiri/ffi/html/entity_lookup.rb +16 -0
  94. data/lib/nokogiri/ffi/html/sax/parser_context.rb +38 -0
  95. data/lib/nokogiri/ffi/io_callbacks.rb +42 -0
  96. data/lib/nokogiri/ffi/libxml.rb +420 -0
  97. data/lib/nokogiri/ffi/structs/common_node.rb +38 -0
  98. data/lib/nokogiri/ffi/structs/html_elem_desc.rb +24 -0
  99. data/lib/nokogiri/ffi/structs/html_entity_desc.rb +13 -0
  100. data/lib/nokogiri/ffi/structs/xml_alloc.rb +16 -0
  101. data/lib/nokogiri/ffi/structs/xml_attr.rb +20 -0
  102. data/lib/nokogiri/ffi/structs/xml_attribute.rb +27 -0
  103. data/lib/nokogiri/ffi/structs/xml_buffer.rb +16 -0
  104. data/lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb +11 -0
  105. data/lib/nokogiri/ffi/structs/xml_document.rb +117 -0
  106. data/lib/nokogiri/ffi/structs/xml_dtd.rb +28 -0
  107. data/lib/nokogiri/ffi/structs/xml_element.rb +26 -0
  108. data/lib/nokogiri/ffi/structs/xml_element_content.rb +17 -0
  109. data/lib/nokogiri/ffi/structs/xml_entity.rb +32 -0
  110. data/lib/nokogiri/ffi/structs/xml_enumeration.rb +12 -0
  111. data/lib/nokogiri/ffi/structs/xml_node.rb +28 -0
  112. data/lib/nokogiri/ffi/structs/xml_node_set.rb +53 -0
  113. data/lib/nokogiri/ffi/structs/xml_notation.rb +11 -0
  114. data/lib/nokogiri/ffi/structs/xml_ns.rb +15 -0
  115. data/lib/nokogiri/ffi/structs/xml_parser_context.rb +20 -0
  116. data/lib/nokogiri/ffi/structs/xml_parser_input.rb +19 -0
  117. data/lib/nokogiri/ffi/structs/xml_relax_ng.rb +14 -0
  118. data/lib/nokogiri/ffi/structs/xml_sax_handler.rb +51 -0
  119. data/lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb +124 -0
  120. data/lib/nokogiri/ffi/structs/xml_schema.rb +13 -0
  121. data/lib/nokogiri/ffi/structs/xml_syntax_error.rb +31 -0
  122. data/lib/nokogiri/ffi/structs/xml_text_reader.rb +12 -0
  123. data/lib/nokogiri/ffi/structs/xml_xpath_context.rb +38 -0
  124. data/lib/nokogiri/ffi/structs/xml_xpath_object.rb +35 -0
  125. data/lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb +20 -0
  126. data/lib/nokogiri/ffi/structs/xslt_stylesheet.rb +13 -0
  127. data/lib/nokogiri/ffi/weak_bucket.rb +40 -0
  128. data/lib/nokogiri/ffi/xml/attr.rb +41 -0
  129. data/lib/nokogiri/ffi/xml/attribute_decl.rb +27 -0
  130. data/lib/nokogiri/ffi/xml/cdata.rb +19 -0
  131. data/lib/nokogiri/ffi/xml/comment.rb +18 -0
  132. data/lib/nokogiri/ffi/xml/document.rb +174 -0
  133. data/lib/nokogiri/ffi/xml/document_fragment.rb +21 -0
  134. data/lib/nokogiri/ffi/xml/dtd.rb +67 -0
  135. data/lib/nokogiri/ffi/xml/element_content.rb +43 -0
  136. data/lib/nokogiri/ffi/xml/element_decl.rb +19 -0
  137. data/lib/nokogiri/ffi/xml/entity_decl.rb +36 -0
  138. data/lib/nokogiri/ffi/xml/entity_reference.rb +19 -0
  139. data/lib/nokogiri/ffi/xml/namespace.rb +44 -0
  140. data/lib/nokogiri/ffi/xml/node.rb +559 -0
  141. data/lib/nokogiri/ffi/xml/node_set.rb +150 -0
  142. data/lib/nokogiri/ffi/xml/processing_instruction.rb +20 -0
  143. data/lib/nokogiri/ffi/xml/reader.rb +236 -0
  144. data/lib/nokogiri/ffi/xml/relax_ng.rb +85 -0
  145. data/lib/nokogiri/ffi/xml/sax/parser.rb +143 -0
  146. data/lib/nokogiri/ffi/xml/sax/parser_context.rb +79 -0
  147. data/lib/nokogiri/ffi/xml/sax/push_parser.rb +51 -0
  148. data/lib/nokogiri/ffi/xml/schema.rb +109 -0
  149. data/lib/nokogiri/ffi/xml/syntax_error.rb +98 -0
  150. data/lib/nokogiri/ffi/xml/text.rb +18 -0
  151. data/lib/nokogiri/ffi/xml/xpath.rb +9 -0
  152. data/lib/nokogiri/ffi/xml/xpath_context.rb +153 -0
  153. data/lib/nokogiri/ffi/xslt/stylesheet.rb +77 -0
  154. data/lib/nokogiri/html.rb +13 -47
  155. data/lib/nokogiri/html/builder.rb +27 -1
  156. data/lib/nokogiri/html/document.rb +201 -7
  157. data/lib/nokogiri/html/document_fragment.rb +41 -0
  158. data/lib/nokogiri/html/element_description.rb +23 -0
  159. data/lib/nokogiri/html/entity_lookup.rb +2 -0
  160. data/lib/nokogiri/html/sax/parser.rb +34 -3
  161. data/lib/nokogiri/html/sax/parser_context.rb +16 -0
  162. data/lib/nokogiri/nokogiri.rb +1 -0
  163. data/lib/nokogiri/version.rb +40 -1
  164. data/lib/nokogiri/version_warning.rb +14 -0
  165. data/lib/nokogiri/xml.rb +32 -53
  166. data/lib/nokogiri/xml/attr.rb +5 -0
  167. data/lib/nokogiri/xml/attribute_decl.rb +18 -0
  168. data/lib/nokogiri/xml/builder.rb +349 -29
  169. data/lib/nokogiri/xml/cdata.rb +3 -1
  170. data/lib/nokogiri/xml/character_data.rb +7 -0
  171. data/lib/nokogiri/xml/document.rb +166 -14
  172. data/lib/nokogiri/xml/document_fragment.rb +76 -1
  173. data/lib/nokogiri/xml/dtd.rb +16 -3
  174. data/lib/nokogiri/xml/element_content.rb +36 -0
  175. data/lib/nokogiri/xml/element_decl.rb +13 -0
  176. data/lib/nokogiri/xml/entity_decl.rb +19 -0
  177. data/lib/nokogiri/xml/namespace.rb +13 -0
  178. data/lib/nokogiri/xml/node.rb +561 -166
  179. data/lib/nokogiri/xml/node/save_options.rb +22 -2
  180. data/lib/nokogiri/xml/node_set.rb +202 -40
  181. data/lib/nokogiri/xml/parse_options.rb +93 -0
  182. data/lib/nokogiri/xml/pp.rb +2 -0
  183. data/lib/nokogiri/xml/pp/character_data.rb +18 -0
  184. data/lib/nokogiri/xml/pp/node.rb +56 -0
  185. data/lib/nokogiri/xml/processing_instruction.rb +2 -0
  186. data/lib/nokogiri/xml/reader.rb +93 -8
  187. data/lib/nokogiri/xml/relax_ng.rb +32 -0
  188. data/lib/nokogiri/xml/sax.rb +1 -7
  189. data/lib/nokogiri/xml/sax/document.rb +107 -2
  190. data/lib/nokogiri/xml/sax/parser.rb +57 -7
  191. data/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  192. data/lib/nokogiri/xml/sax/push_parser.rb +13 -1
  193. data/lib/nokogiri/xml/schema.rb +63 -0
  194. data/lib/nokogiri/xml/syntax_error.rb +25 -1
  195. data/lib/nokogiri/xml/text.rb +4 -1
  196. data/lib/nokogiri/xml/xpath.rb +1 -1
  197. data/lib/nokogiri/xml/xpath/syntax_error.rb +3 -0
  198. data/lib/nokogiri/xml/xpath_context.rb +2 -0
  199. data/lib/nokogiri/xslt.rb +26 -2
  200. data/lib/nokogiri/xslt/stylesheet.rb +19 -0
  201. data/lib/xsd/xmlparser/nokogiri.rb +45 -9
  202. data/tasks/cross_compile.rb +173 -0
  203. data/tasks/test.rb +25 -69
  204. data/test/css/test_nthiness.rb +3 -4
  205. data/test/css/test_parser.rb +75 -20
  206. data/test/css/test_tokenizer.rb +23 -1
  207. data/test/css/test_xpath_visitor.rb +10 -1
  208. data/test/decorators/test_slop.rb +16 -0
  209. data/test/ffi/test_document.rb +35 -0
  210. data/test/files/2ch.html +108 -0
  211. data/test/files/address_book.rlx +12 -0
  212. data/test/files/address_book.xml +10 -0
  213. data/test/files/bar/bar.xsd +4 -0
  214. data/test/files/encoding.html +82 -0
  215. data/test/files/encoding.xhtml +84 -0
  216. data/test/files/foo/foo.xsd +4 -0
  217. data/test/files/po.xml +32 -0
  218. data/test/files/po.xsd +66 -0
  219. data/test/files/shift_jis.html +10 -0
  220. data/test/files/shift_jis.xml +5 -0
  221. data/test/files/snuggles.xml +3 -0
  222. data/test/files/staff.dtd +10 -0
  223. data/test/files/valid_bar.xml +2 -0
  224. data/test/helper.rb +101 -23
  225. data/test/html/sax/test_parser.rb +81 -2
  226. data/test/html/sax/test_parser_context.rb +48 -0
  227. data/test/html/test_builder.rb +39 -8
  228. data/test/html/test_document.rb +186 -23
  229. data/test/html/test_document_encoding.rb +78 -1
  230. data/test/html/test_document_fragment.rb +253 -0
  231. data/test/html/test_element_description.rb +98 -0
  232. data/test/html/test_named_characters.rb +1 -1
  233. data/test/html/test_node.rb +124 -36
  234. data/test/html/test_node_encoding.rb +27 -0
  235. data/test/test_convert_xpath.rb +1 -52
  236. data/test/test_css_cache.rb +2 -13
  237. data/test/test_encoding_handler.rb +46 -0
  238. data/test/test_memory_leak.rb +88 -19
  239. data/test/test_nokogiri.rb +38 -5
  240. data/test/test_reader.rb +188 -6
  241. data/test/test_soap4r_sax.rb +52 -0
  242. data/test/test_xslt_transforms.rb +183 -83
  243. data/test/xml/node/test_save_options.rb +1 -1
  244. data/test/xml/node/test_subclass.rb +44 -0
  245. data/test/xml/sax/test_parser.rb +175 -4
  246. data/test/xml/sax/test_parser_context.rb +113 -0
  247. data/test/xml/sax/test_push_parser.rb +90 -2
  248. data/test/xml/test_attr.rb +35 -1
  249. data/test/xml/test_attribute_decl.rb +82 -0
  250. data/test/xml/test_builder.rb +186 -1
  251. data/test/xml/test_cdata.rb +32 -1
  252. data/test/xml/test_comment.rb +13 -1
  253. data/test/xml/test_document.rb +415 -43
  254. data/test/xml/test_document_encoding.rb +1 -1
  255. data/test/xml/test_document_fragment.rb +173 -5
  256. data/test/xml/test_dtd.rb +61 -6
  257. data/test/xml/test_dtd_encoding.rb +3 -1
  258. data/test/xml/test_element_content.rb +56 -0
  259. data/test/xml/test_element_decl.rb +73 -0
  260. data/test/xml/test_entity_decl.rb +120 -0
  261. data/test/xml/test_entity_reference.rb +5 -1
  262. data/test/xml/test_namespace.rb +68 -0
  263. data/test/xml/test_node.rb +546 -201
  264. data/test/xml/test_node_attributes.rb +34 -0
  265. data/test/xml/test_node_encoding.rb +33 -3
  266. data/test/xml/test_node_reparenting.rb +321 -0
  267. data/test/xml/test_node_set.rb +538 -2
  268. data/test/xml/test_parse_options.rb +52 -0
  269. data/test/xml/test_processing_instruction.rb +6 -1
  270. data/test/xml/test_reader_encoding.rb +1 -1
  271. data/test/xml/test_relax_ng.rb +60 -0
  272. data/test/xml/test_schema.rb +94 -0
  273. data/test/xml/test_syntax_error.rb +12 -0
  274. data/test/xml/test_text.rb +35 -1
  275. data/test/xml/test_unparented_node.rb +5 -5
  276. data/test/xml/test_xpath.rb +142 -11
  277. data/test/xslt/test_custom_functions.rb +94 -0
  278. metadata +328 -92
  279. data/ext/nokogiri/html_sax_parser.c +0 -57
  280. data/ext/nokogiri/html_sax_parser.h +0 -11
  281. data/ext/nokogiri/iconv.dll +0 -0
  282. data/ext/nokogiri/libexslt.dll +0 -0
  283. data/ext/nokogiri/libxml2.dll +0 -0
  284. data/ext/nokogiri/libxslt.dll +0 -0
  285. data/ext/nokogiri/native.so +0 -0
  286. data/ext/nokogiri/xml_xpath.c +0 -53
  287. data/ext/nokogiri/xml_xpath.h +0 -11
  288. data/ext/nokogiri/zlib1.dll +0 -0
  289. data/lib/action-nokogiri.rb +0 -30
  290. data/lib/nokogiri/css/generated_parser.rb +0 -713
  291. data/lib/nokogiri/css/generated_tokenizer.rb +0 -144
  292. data/lib/nokogiri/decorators.rb +0 -2
  293. data/lib/nokogiri/decorators/hpricot.rb +0 -3
  294. data/lib/nokogiri/decorators/hpricot/node.rb +0 -56
  295. data/lib/nokogiri/decorators/hpricot/node_set.rb +0 -54
  296. data/lib/nokogiri/decorators/hpricot/xpath_visitor.rb +0 -28
  297. data/lib/nokogiri/hpricot.rb +0 -51
  298. data/lib/nokogiri/xml/comment.rb +0 -6
  299. data/lib/nokogiri/xml/element.rb +0 -6
  300. data/lib/nokogiri/xml/entity_declaration.rb +0 -9
  301. data/lib/nokogiri/xml/fragment_handler.rb +0 -34
  302. data/test/hpricot/files/basic.xhtml +0 -17
  303. data/test/hpricot/files/boingboing.html +0 -2266
  304. data/test/hpricot/files/cy0.html +0 -3653
  305. data/test/hpricot/files/immob.html +0 -400
  306. data/test/hpricot/files/pace_application.html +0 -1320
  307. data/test/hpricot/files/tenderlove.html +0 -16
  308. data/test/hpricot/files/uswebgen.html +0 -220
  309. data/test/hpricot/files/utf8.html +0 -1054
  310. data/test/hpricot/files/week9.html +0 -1723
  311. data/test/hpricot/files/why.xml +0 -19
  312. data/test/hpricot/load_files.rb +0 -11
  313. data/test/hpricot/test_alter.rb +0 -68
  314. data/test/hpricot/test_builder.rb +0 -20
  315. data/test/hpricot/test_parser.rb +0 -426
  316. data/test/hpricot/test_paths.rb +0 -15
  317. data/test/hpricot/test_preserved.rb +0 -77
  318. data/test/hpricot/test_xml.rb +0 -30
  319. data/test/test_gc.rb +0 -15
@@ -0,0 +1,12 @@
1
+ <element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
2
+ <oneOrMore>
3
+ <element name="card">
4
+ <element name="name">
5
+ <text/>
6
+ </element>
7
+ <element name="email">
8
+ <text/>
9
+ </element>
10
+ </element>
11
+ </oneOrMore>
12
+ </element>
@@ -0,0 +1,10 @@
1
+ <addressBook>
2
+ <card>
3
+ <name>John Smith</name>
4
+ <email>js@example.com</email>
5
+ </card>
6
+ <card>
7
+ <name>Fred Bloggs</name>
8
+ <email>fb@example.net</email>
9
+ </card>
10
+ </addressBook>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <xsd:element name="bar"/>
4
+ </xsd:schema>
@@ -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,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <xsd:include schemaLocation="../bar/bar.xsd"/>
4
+ </xsd:schema>
data/test/files/po.xml ADDED
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0"?>
2
+ <purchaseOrder orderDate="1999-10-20">
3
+ <shipTo country="US">
4
+ <name>Alice Smith</name>
5
+ <street>123 Maple Street</street>
6
+ <city>Mill Valley</city>
7
+ <state>CA</state>
8
+ <zip>90952</zip>
9
+ </shipTo>
10
+ <billTo country="US">
11
+ <name>Robert Smith</name>
12
+ <street>8 Oak Avenue</street>
13
+ <city>Old Town</city>
14
+ <state>PA</state>
15
+ <zip>95819</zip>
16
+ </billTo>
17
+ <comment>Hurry, my lawn is going wild!</comment>
18
+ <items>
19
+ <item partNum="872-AA">
20
+ <productName>Lawnmower</productName>
21
+ <quantity>1</quantity>
22
+ <USPrice>148.95</USPrice>
23
+ <comment>Confirm this is electric</comment>
24
+ </item>
25
+ <item partNum="926-AA">
26
+ <productName>Baby Monitor</productName>
27
+ <quantity>1</quantity>
28
+ <USPrice>39.98</USPrice>
29
+ <shipDate>1999-05-21</shipDate>
30
+ </item>
31
+ </items>
32
+ </purchaseOrder>
data/test/files/po.xsd ADDED
@@ -0,0 +1,66 @@
1
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
2
+
3
+ <xsd:annotation>
4
+ <xsd:documentation xml:lang="en">
5
+ Purchase order schema for Example.com.
6
+ Copyright 2000 Example.com. All rights reserved.
7
+ </xsd:documentation>
8
+ </xsd:annotation>
9
+
10
+ <xsd:element name="purchaseOrder" type="PurchaseOrderType"/>
11
+
12
+ <xsd:element name="comment" type="xsd:string"/>
13
+
14
+ <xsd:complexType name="PurchaseOrderType">
15
+ <xsd:sequence>
16
+ <xsd:element name="shipTo" type="USAddress"/>
17
+ <xsd:element name="billTo" type="USAddress"/>
18
+ <xsd:element ref="comment" minOccurs="0"/>
19
+ <xsd:element name="items" type="Items"/>
20
+ </xsd:sequence>
21
+ <xsd:attribute name="orderDate" type="xsd:date"/>
22
+ </xsd:complexType>
23
+
24
+ <xsd:complexType name="USAddress">
25
+ <xsd:sequence>
26
+ <xsd:element name="name" type="xsd:string"/>
27
+ <xsd:element name="street" type="xsd:string"/>
28
+ <xsd:element name="city" type="xsd:string"/>
29
+ <xsd:element name="state" type="xsd:string"/>
30
+ <xsd:element name="zip" type="xsd:decimal"/>
31
+ </xsd:sequence>
32
+ <xsd:attribute name="country" type="xsd:NMTOKEN"
33
+ fixed="US"/>
34
+ </xsd:complexType>
35
+
36
+ <xsd:complexType name="Items">
37
+ <xsd:sequence>
38
+ <xsd:element name="item" minOccurs="0" maxOccurs="unbounded">
39
+ <xsd:complexType>
40
+ <xsd:sequence>
41
+ <xsd:element name="productName" type="xsd:string"/>
42
+ <xsd:element name="quantity">
43
+ <xsd:simpleType>
44
+ <xsd:restriction base="xsd:positiveInteger">
45
+ <xsd:maxExclusive value="100"/>
46
+ </xsd:restriction>
47
+ </xsd:simpleType>
48
+ </xsd:element>
49
+ <xsd:element name="USPrice" type="xsd:decimal"/>
50
+ <xsd:element ref="comment" minOccurs="0"/>
51
+ <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/>
52
+ </xsd:sequence>
53
+ <xsd:attribute name="partNum" type="SKU" use="required"/>
54
+ </xsd:complexType>
55
+ </xsd:element>
56
+ </xsd:sequence>
57
+ </xsd:complexType>
58
+
59
+ <!-- Stock Keeping Unit, a code for identifying products -->
60
+ <xsd:simpleType name="SKU">
61
+ <xsd:restriction base="xsd:string">
62
+ <xsd:pattern value="\d{3}-[A-Z]{2}"/>
63
+ </xsd:restriction>
64
+ </xsd:simpleType>
65
+
66
+ </xsd:schema>
@@ -0,0 +1,10 @@
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
4
+ <title>����ɂ��́I</title>
5
+ </head>
6
+ <body>
7
+ <h1>This is a Shift_JIS File</h1>
8
+ <h2>����ɂ��́I</h2>
9
+ </body>
10
+ </html>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="Shift_JIS"?>
2
+ <root>
3
+ <hi>This is a Shift_JIS File</hi>
4
+ <hi_again>����ɂ���</hi_again>
5
+ </root>
@@ -0,0 +1,3 @@
1
+ <x xmlns:tenderlove='http://tenderlovemaking.com/'>
2
+ <tenderlove:foo awesome='true'>snuggles!</tenderlove:foo>
3
+ </x>
@@ -0,0 +1,10 @@
1
+ <!ENTITY ent1 "es">
2
+ <!ENTITY ent2 "1900 Dallas Road">
3
+ <!ENTITY ent3 "Texas">
4
+ <!ENTITY ent4 "<entElement domestic='Yes'>Element data</entElement><?PItarget PIdata?>">
5
+ <!ENTITY ent5 PUBLIC "entityURI" "entityFile" NDATA notation1>
6
+ <!ENTITY ent1 "This entity should be discarded">
7
+ <!ELEMENT br EMPTY>
8
+ <!ATTLIST br width CDATA "0">
9
+ <!NOTATION notation1 PUBLIC "notation1File">
10
+ <!NOTATION notation2 SYSTEM "notation2File">
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <bar />
data/test/helper.rb CHANGED
@@ -1,34 +1,96 @@
1
+ #Process.setrlimit(Process::RLIMIT_CORE, Process::RLIM_INFINITY) unless RUBY_PLATFORM =~ /(java|mswin|mingw)/i
1
2
  $VERBOSE = true
2
- require 'test/unit'
3
-
4
- %w(../lib ../ext).each do |path|
5
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), path)))
6
- end
3
+ require 'minitest/autorun'
4
+ require 'fileutils'
5
+ require 'tempfile'
6
+ require 'pp'
7
7
 
8
8
  require 'nokogiri'
9
9
 
10
- module Nokogiri
11
- class TestCase < Test::Unit::TestCase
12
- ASSETS_DIR = File.join(File.dirname(__FILE__), 'files')
13
- XML_FILE = File.join(ASSETS_DIR, 'staff.xml')
14
- XSLT_FILE = File.join(ASSETS_DIR, 'staff.xslt')
15
- EXSLT_FILE = File.join(ASSETS_DIR, 'exslt.xslt')
16
- EXML_FILE = File.join(ASSETS_DIR, 'exslt.xml')
17
- HTML_FILE = File.join(ASSETS_DIR, 'tlm.html')
18
-
19
- unless RUBY_VERSION >= '1.9'
20
- undef :default_test
21
- end
10
+ warn "#{__FILE__}:#{__LINE__}: libxml version info: #{Nokogiri::VERSION_INFO.inspect}"
22
11
 
23
- def setup
24
- warn "#{name}" if ENV['TESTOPTS'] == '-v'
25
- end
12
+ module Nokogiri
13
+ class TestCase < MiniTest::Spec
14
+ ASSETS_DIR = File.expand_path File.join(File.dirname(__FILE__), 'files')
15
+ XML_FILE = File.join(ASSETS_DIR, 'staff.xml')
16
+ XSLT_FILE = File.join(ASSETS_DIR, 'staff.xslt')
17
+ EXSLT_FILE = File.join(ASSETS_DIR, 'exslt.xslt')
18
+ EXML_FILE = File.join(ASSETS_DIR, 'exslt.xml')
19
+ HTML_FILE = File.join(ASSETS_DIR, 'tlm.html')
20
+ NICH_FILE = File.join(ASSETS_DIR, '2ch.html')
21
+ SHIFT_JIS_XML = File.join(ASSETS_DIR, 'shift_jis.xml')
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
+ PO_XML_FILE = File.join(ASSETS_DIR, 'po.xml')
26
+ PO_SCHEMA_FILE = File.join(ASSETS_DIR, 'po.xsd')
27
+ ADDRESS_SCHEMA_FILE = File.join(ASSETS_DIR, 'address_book.rlx')
28
+ ADDRESS_XML_FILE = File.join(ASSETS_DIR, 'address_book.xml')
29
+ SNUGGLES_FILE = File.join(ASSETS_DIR, 'snuggles.xml')
26
30
 
27
31
  def teardown
28
32
  if ENV['NOKOGIRI_GC']
29
33
  STDOUT.putc '!'
30
- GC.start
34
+ if RUBY_PLATFORM =~ /java/
35
+ require 'java'
36
+ java.lang.System.gc
37
+ else
38
+ GC.start
39
+ end
40
+ end
41
+ end
42
+
43
+ def assert_indent amount, doc, message = nil
44
+ nodes = []
45
+ doc.traverse do |node|
46
+ nodes << node if node.text? && node.blank?
47
+ end
48
+ assert nodes.length > 0
49
+ nodes.each do |node|
50
+ len = node.content.gsub(/[\r\n]/, '').length
51
+ assert_equal(0, len % amount, message)
52
+ end
53
+ end
54
+
55
+ def util_decorate(document, decorator_module)
56
+ document.decorators(XML::Node) << decorator_module
57
+ document.decorators(XML::NodeSet) << decorator_module
58
+ document.decorate!
59
+ end
60
+
61
+ #
62
+ # Test::Unit backwards compatibility section
63
+ #
64
+ alias :assert_no_match :refute_match
65
+ alias :assert_not_nil :refute_nil
66
+ alias :assert_raise :assert_raises
67
+ alias :assert_not_equal :refute_equal
68
+
69
+ def assert_nothing_raised(*args)
70
+ self._assertions += 1
71
+ if Module === args.last
72
+ msg = nil
73
+ else
74
+ msg = args.pop
31
75
  end
76
+ begin
77
+ line = __LINE__; yield
78
+ rescue Exception => e
79
+ bt = e.backtrace
80
+ as = e.instance_of?(MiniTest::Assertion)
81
+ if as
82
+ ans = /\A#{Regexp.quote(__FILE__)}:#{line}:in /o
83
+ bt.reject! {|ln| ans =~ ln}
84
+ end
85
+ if ((args.empty? && !as) ||
86
+ args.any? {|a| a.instance_of?(Module) ? e.is_a?(a) : e.class == a })
87
+ msg = message(msg) { "Exception raised:\n<#{mu_pp(e)}>" }
88
+ raise MiniTest::Assertion, msg.call, bt
89
+ else
90
+ raise
91
+ end
92
+ end
93
+ nil
32
94
  end
33
95
  end
34
96
 
@@ -37,8 +99,14 @@ module Nokogiri
37
99
  class Doc < XML::SAX::Document
38
100
  attr_reader :start_elements, :start_document_called
39
101
  attr_reader :end_elements, :end_document_called
40
- attr_reader :data, :comments, :cdata_blocks
41
- attr_reader :errors, :warnings
102
+ attr_reader :data, :comments, :cdata_blocks, :start_elements_namespace
103
+ attr_reader :errors, :warnings, :end_elements_namespace
104
+ attr_reader :xmldecls
105
+
106
+ def xmldecl version, encoding, standalone
107
+ @xmldecls = [version, encoding, standalone].compact
108
+ super
109
+ end
42
110
 
43
111
  def start_document
44
112
  @start_document_called = true
@@ -65,11 +133,21 @@ module Nokogiri
65
133
  super
66
134
  end
67
135
 
136
+ def start_element_namespace *args
137
+ (@start_elements_namespace ||= []) << args
138
+ super
139
+ end
140
+
68
141
  def end_element *args
69
142
  (@end_elements ||= []) << args
70
143
  super
71
144
  end
72
145
 
146
+ def end_element_namespace *args
147
+ (@end_elements_namespace ||= []) << args
148
+ super
149
+ end
150
+
73
151
  def characters string
74
152
  @data ||= []
75
153
  @data += [string]