libxml-ruby 5.0.4 → 5.0.6

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.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY +17 -6
  3. data/README.rdoc +1 -1
  4. data/Rakefile +98 -98
  5. data/ext/libxml/extconf.h +1 -0
  6. data/ext/libxml/extconf.rb +5 -0
  7. data/ext/libxml/libxml.c +79 -79
  8. data/ext/libxml/ruby_xml.c +556 -556
  9. data/ext/libxml/ruby_xml_attr.c +333 -333
  10. data/ext/libxml/ruby_xml_attr.h +12 -12
  11. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  12. data/ext/libxml/ruby_xml_attributes.h +17 -17
  13. data/ext/libxml/ruby_xml_cbg.c +85 -85
  14. data/ext/libxml/ruby_xml_document.c +1129 -1129
  15. data/ext/libxml/ruby_xml_dtd.c +257 -257
  16. data/ext/libxml/ruby_xml_dtd.h +9 -9
  17. data/ext/libxml/ruby_xml_encoding.c +250 -250
  18. data/ext/libxml/ruby_xml_error.c +1003 -1003
  19. data/ext/libxml/ruby_xml_error.h +14 -14
  20. data/ext/libxml/ruby_xml_html_parser.c +91 -91
  21. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  22. data/ext/libxml/ruby_xml_html_parser_context.c +351 -351
  23. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  24. data/ext/libxml/ruby_xml_html_parser_options.c +48 -48
  25. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  26. data/ext/libxml/ruby_xml_input_cbg.c +188 -188
  27. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  28. data/ext/libxml/ruby_xml_io.c +47 -47
  29. data/ext/libxml/ruby_xml_io.h +10 -10
  30. data/ext/libxml/ruby_xml_namespace.c +151 -151
  31. data/ext/libxml/ruby_xml_namespace.h +10 -10
  32. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  33. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  34. data/ext/libxml/ruby_xml_node.h +13 -13
  35. data/ext/libxml/ruby_xml_parser.c +91 -91
  36. data/ext/libxml/ruby_xml_parser.h +10 -10
  37. data/ext/libxml/ruby_xml_parser_context.c +1009 -1009
  38. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  39. data/ext/libxml/ruby_xml_parser_options.c +74 -74
  40. data/ext/libxml/ruby_xml_parser_options.h +10 -10
  41. data/ext/libxml/ruby_xml_reader.h +14 -14
  42. data/ext/libxml/ruby_xml_relaxng.h +8 -8
  43. data/ext/libxml/ruby_xml_sax2_handler.c +326 -326
  44. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  45. data/ext/libxml/ruby_xml_sax_parser.c +108 -108
  46. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  47. data/ext/libxml/ruby_xml_schema.h +25 -25
  48. data/ext/libxml/ruby_xml_schema_attribute.h +37 -37
  49. data/ext/libxml/ruby_xml_schema_element.h +11 -11
  50. data/ext/libxml/ruby_xml_schema_facet.c +50 -50
  51. data/ext/libxml/ruby_xml_schema_facet.h +9 -9
  52. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  53. data/ext/libxml/ruby_xml_version.h +9 -9
  54. data/ext/libxml/ruby_xml_writer.c +1124 -1124
  55. data/ext/libxml/ruby_xml_writer.h +6 -6
  56. data/ext/libxml/ruby_xml_xinclude.c +20 -20
  57. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  58. data/ext/libxml/ruby_xml_xpath.c +195 -195
  59. data/ext/libxml/ruby_xml_xpath.h +15 -15
  60. data/ext/libxml/ruby_xml_xpath_context.c +362 -362
  61. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  62. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  63. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  64. data/lib/libxml/attr.rb +122 -122
  65. data/lib/libxml/attr_decl.rb +80 -80
  66. data/lib/libxml/attributes.rb +13 -13
  67. data/lib/libxml/document.rb +194 -194
  68. data/lib/libxml/error.rb +95 -95
  69. data/lib/libxml/hpricot.rb +77 -77
  70. data/lib/libxml/html_parser.rb +96 -96
  71. data/lib/libxml/namespace.rb +61 -61
  72. data/lib/libxml/namespaces.rb +37 -37
  73. data/lib/libxml/node.rb +323 -323
  74. data/lib/libxml/parser.rb +102 -102
  75. data/lib/libxml/sax_callbacks.rb +179 -179
  76. data/lib/libxml/sax_parser.rb +40 -40
  77. data/lib/libxml/tree.rb +28 -28
  78. data/lib/libxml-ruby.rb +2 -2
  79. data/lib/libxml.rb +4 -4
  80. data/lib/xml/libxml.rb +10 -10
  81. data/lib/xml.rb +13 -13
  82. data/libxml-ruby.gemspec +50 -49
  83. data/test/test_document.rb +140 -140
  84. data/test/test_document_write.rb +142 -142
  85. data/test/test_dtd.rb +126 -126
  86. data/test/test_encoding.rb +126 -126
  87. data/test/test_error.rb +197 -194
  88. data/test/test_helper.rb +21 -20
  89. data/test/test_namespace.rb +58 -58
  90. data/test/test_node.rb +235 -235
  91. data/test/test_node_write.rb +93 -93
  92. data/test/test_parser.rb +333 -333
  93. data/test/test_reader.rb +364 -364
  94. data/test/test_writer.rb +500 -468
  95. data/test/test_xml.rb +168 -168
  96. metadata +5 -5
  97. data/test/test.rb +0 -5
@@ -1,94 +1,94 @@
1
- # encoding: UTF-8
2
-
3
- require_relative './test_helper'
4
-
5
- class TestNodeWrite < Minitest::Test
6
- def setup
7
- load_encoding("utf-8")
8
- end
9
-
10
- def teardown
11
- @doc = nil
12
- end
13
-
14
- def load_encoding(name)
15
- @encoding = Encoding.find(name)
16
- @file_name = "model/bands.#{name.downcase}.xml"
17
-
18
- file = File.join(File.dirname(__FILE__), @file_name)
19
- @doc = LibXML::XML::Document.file(file, options: LibXML::XML::Parser::Options::NOBLANKS)
20
- end
21
-
22
- def test_to_s_default
23
- # Default to_s has indentation
24
- node = @doc.root
25
- assert_equal(Encoding::UTF_8, node.to_s.encoding)
26
- assert_equal("<bands genre=\"metal\">\n <m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>",
27
- node.to_s)
28
- end
29
-
30
- def test_to_s_no_global_indentation
31
- # No indentation due to global setting
32
- node = @doc.root
33
- LibXML::XML.indent_tree_output = false
34
- assert_equal("<bands genre=\"metal\">\n<m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n<iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>",
35
- node.to_s)
36
- ensure
37
- LibXML::XML.indent_tree_output = true
38
- end
39
-
40
- def test_to_s_no_indentation
41
- # No indentation due to local setting
42
- node = @doc.root
43
- assert_equal("<bands genre=\"metal\"><m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e><iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden></bands>",
44
- node.to_s(:indent => false))
45
- end
46
-
47
- def test_to_s_level
48
- # No indentation due to local setting
49
- node = @doc.root
50
- assert_equal("<bands genre=\"metal\">\n <m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n </bands>",
51
- node.to_s(:level => 1))
52
- end
53
-
54
- def test_to_s_encoding
55
- # Test encodings
56
- node = @doc.root
57
-
58
- # UTF8:
59
- # ö - c3 b6 in hex, \303\266 in octal
60
- # ü - c3 bc in hex, \303\274 in octal
61
- value = node.to_s(:encoding => LibXML::XML::Encoding::UTF_8)
62
- assert_equal(Encoding::UTF_8, node.to_s.encoding)
63
- assert_equal("<bands genre=\"metal\">\n <m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>",
64
- value)
65
-
66
- # ISO_8859_1:
67
- # ö - f6 in hex, \366 in octal
68
- # ü - fc in hex, \374 in octal
69
- value = node.to_s(:encoding => LibXML::XML::Encoding::ISO_8859_1)
70
- assert_equal(Encoding::ISO8859_1, value.encoding)
71
- assert_equal("<bands genre=\"metal\">\n <m\xF6tley_cr\xFCe country=\"us\">M\xF6tley Cr\xFCe is an American heavy metal band formed in Los Angeles, California in 1981.</m\xF6tley_cr\xFCe>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>".force_encoding(Encoding::ISO8859_1),
72
- value)
73
-
74
- # Invalid encoding
75
- error = assert_raises(ArgumentError) do
76
- node.to_s(:encoding => -9999)
77
- end
78
- assert_equal('Unknown encoding value: -9999', error.to_s)
79
- end
80
-
81
- def test_inner_xml
82
- # Default to_s has indentation
83
- node = @doc.root
84
-
85
- assert_equal(Encoding::UTF_8, node.inner_xml.encoding)
86
- assert_equal("<m\u00F6tley_cr\u00FCe country=\"us\">M\u00F6tley Cr\u00FCe is an American heavy metal band formed in Los Angeles, California in 1981.</m\u00F6tley_cr\u00FCe><iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>",
87
- node.inner_xml)
88
- end
89
-
90
- # --- Debug ---
91
- def test_debug
92
- assert(@doc.root.debug)
93
- end
1
+ # encoding: UTF-8
2
+
3
+ require_relative './test_helper'
4
+
5
+ class TestNodeWrite < Minitest::Test
6
+ def setup
7
+ load_encoding("utf-8")
8
+ end
9
+
10
+ def teardown
11
+ @doc = nil
12
+ end
13
+
14
+ def load_encoding(name)
15
+ @encoding = Encoding.find(name)
16
+ @file_name = "model/bands.#{name.downcase}.xml"
17
+
18
+ file = File.join(File.dirname(__FILE__), @file_name)
19
+ @doc = LibXML::XML::Document.file(file, options: LibXML::XML::Parser::Options::NOBLANKS)
20
+ end
21
+
22
+ def test_to_s_default
23
+ # Default to_s has indentation
24
+ node = @doc.root
25
+ assert_equal(Encoding::UTF_8, node.to_s.encoding)
26
+ assert_equal("<bands genre=\"metal\">\n <m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>",
27
+ node.to_s)
28
+ end
29
+
30
+ def test_to_s_no_global_indentation
31
+ # No indentation due to global setting
32
+ node = @doc.root
33
+ LibXML::XML.indent_tree_output = false
34
+ assert_equal("<bands genre=\"metal\">\n<m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n<iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>",
35
+ node.to_s)
36
+ ensure
37
+ LibXML::XML.indent_tree_output = true
38
+ end
39
+
40
+ def test_to_s_no_indentation
41
+ # No indentation due to local setting
42
+ node = @doc.root
43
+ assert_equal("<bands genre=\"metal\"><m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e><iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden></bands>",
44
+ node.to_s(:indent => false))
45
+ end
46
+
47
+ def test_to_s_level
48
+ # No indentation due to local setting
49
+ node = @doc.root
50
+ assert_equal("<bands genre=\"metal\">\n <m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n </bands>",
51
+ node.to_s(:level => 1))
52
+ end
53
+
54
+ def test_to_s_encoding
55
+ # Test encodings
56
+ node = @doc.root
57
+
58
+ # UTF8:
59
+ # ö - c3 b6 in hex, \303\266 in octal
60
+ # ü - c3 bc in hex, \303\274 in octal
61
+ value = node.to_s(:encoding => LibXML::XML::Encoding::UTF_8)
62
+ assert_equal(Encoding::UTF_8, node.to_s.encoding)
63
+ assert_equal("<bands genre=\"metal\">\n <m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>",
64
+ value)
65
+
66
+ # ISO_8859_1:
67
+ # ö - f6 in hex, \366 in octal
68
+ # ü - fc in hex, \374 in octal
69
+ value = node.to_s(:encoding => LibXML::XML::Encoding::ISO_8859_1)
70
+ assert_equal(Encoding::ISO8859_1, value.encoding)
71
+ assert_equal("<bands genre=\"metal\">\n <m\xF6tley_cr\xFCe country=\"us\">M\xF6tley Cr\xFCe is an American heavy metal band formed in Los Angeles, California in 1981.</m\xF6tley_cr\xFCe>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>".force_encoding(Encoding::ISO8859_1),
72
+ value)
73
+
74
+ # Invalid encoding
75
+ error = assert_raises(ArgumentError) do
76
+ node.to_s(:encoding => -9999)
77
+ end
78
+ assert_equal('Unknown encoding value: -9999', error.to_s)
79
+ end
80
+
81
+ def test_inner_xml
82
+ # Default to_s has indentation
83
+ node = @doc.root
84
+
85
+ assert_equal(Encoding::UTF_8, node.inner_xml.encoding)
86
+ assert_equal("<m\u00F6tley_cr\u00FCe country=\"us\">M\u00F6tley Cr\u00FCe is an American heavy metal band formed in Los Angeles, California in 1981.</m\u00F6tley_cr\u00FCe><iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>",
87
+ node.inner_xml)
88
+ end
89
+
90
+ # --- Debug ---
91
+ def test_debug
92
+ assert(@doc.root.debug)
93
+ end
94
94
  end