nokogiri 1.8.5 → 1.9.1
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.
- checksums.yaml +4 -4
- data/README.md +0 -1
- data/ext/nokogiri/extconf.rb +10 -6
- data/ext/nokogiri/xml_attr.c +26 -21
- data/ext/nokogiri/xml_document.c +4 -1
- data/ext/nokogiri/xml_namespace.c +3 -3
- data/ext/nokogiri/xml_namespace.h +1 -2
- data/ext/nokogiri/xml_node.c +55 -15
- data/lib/nokogiri/css/parser.rb +61 -61
- data/lib/nokogiri/version.rb +1 -1
- data/lib/nokogiri/xml/document_fragment.rb +11 -0
- data/lib/nokogiri/xml/node.rb +12 -0
- data/lib/nokogiri/xml/node_set.rb +4 -8
- metadata +17 -153
- data/.autotest +0 -22
- data/.cross_rubies +0 -8
- data/.editorconfig +0 -17
- data/.gemtest +0 -0
- data/.travis.yml +0 -63
- data/CHANGELOG.md +0 -1368
- data/CONTRIBUTING.md +0 -42
- data/C_CODING_STYLE.rdoc +0 -33
- data/Gemfile +0 -23
- data/Gemfile-libxml-ruby +0 -3
- data/Manifest.txt +0 -370
- data/ROADMAP.md +0 -111
- data/Rakefile +0 -348
- data/SECURITY.md +0 -19
- data/STANDARD_RESPONSES.md +0 -47
- data/Y_U_NO_GEMSPEC.md +0 -155
- data/appveyor.yml +0 -29
- data/build_all +0 -44
- data/patches/sort-patches-by-date +0 -25
- data/suppressions/README.txt +0 -1
- data/suppressions/nokogiri_ruby-2.supp +0 -10
- data/tasks/test.rb +0 -100
- data/test/css/test_nthiness.rb +0 -226
- data/test/css/test_parser.rb +0 -386
- data/test/css/test_tokenizer.rb +0 -215
- data/test/css/test_xpath_visitor.rb +0 -96
- data/test/decorators/test_slop.rb +0 -23
- data/test/files/2ch.html +0 -108
- data/test/files/GH_1042.html +0 -18
- data/test/files/address_book.rlx +0 -12
- data/test/files/address_book.xml +0 -10
- data/test/files/atom.xml +0 -344
- data/test/files/bar/bar.xsd +0 -4
- data/test/files/bogus.xml +0 -0
- data/test/files/dont_hurt_em_why.xml +0 -422
- data/test/files/encoding.html +0 -82
- data/test/files/encoding.xhtml +0 -84
- data/test/files/exslt.xml +0 -8
- data/test/files/exslt.xslt +0 -35
- data/test/files/foo/foo.xsd +0 -4
- data/test/files/metacharset.html +0 -10
- data/test/files/namespace_pressure_test.xml +0 -1684
- data/test/files/noencoding.html +0 -47
- data/test/files/po.xml +0 -32
- data/test/files/po.xsd +0 -66
- data/test/files/saml/saml20assertion_schema.xsd +0 -283
- data/test/files/saml/saml20protocol_schema.xsd +0 -302
- data/test/files/saml/xenc_schema.xsd +0 -146
- data/test/files/saml/xmldsig_schema.xsd +0 -318
- data/test/files/shift_jis.html +0 -10
- data/test/files/shift_jis.xml +0 -5
- data/test/files/shift_jis_no_charset.html +0 -9
- data/test/files/slow-xpath.xml +0 -25509
- data/test/files/snuggles.xml +0 -3
- data/test/files/staff.dtd +0 -10
- data/test/files/staff.xml +0 -59
- data/test/files/staff.xslt +0 -32
- data/test/files/test_document_url/bar.xml +0 -2
- data/test/files/test_document_url/document.dtd +0 -4
- data/test/files/test_document_url/document.xml +0 -6
- data/test/files/tlm.html +0 -851
- data/test/files/to_be_xincluded.xml +0 -2
- data/test/files/valid_bar.xml +0 -2
- data/test/files/xinclude.xml +0 -4
- data/test/helper.rb +0 -271
- data/test/html/sax/test_parser.rb +0 -168
- data/test/html/sax/test_parser_context.rb +0 -46
- data/test/html/sax/test_parser_text.rb +0 -163
- data/test/html/sax/test_push_parser.rb +0 -87
- data/test/html/test_attributes.rb +0 -85
- data/test/html/test_builder.rb +0 -164
- data/test/html/test_document.rb +0 -712
- data/test/html/test_document_encoding.rb +0 -143
- data/test/html/test_document_fragment.rb +0 -310
- data/test/html/test_element_description.rb +0 -105
- data/test/html/test_named_characters.rb +0 -14
- data/test/html/test_node.rb +0 -212
- data/test/html/test_node_encoding.rb +0 -91
- data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +0 -14
- data/test/namespaces/test_namespaces_aliased_default.rb +0 -24
- data/test/namespaces/test_namespaces_in_builder_doc.rb +0 -75
- data/test/namespaces/test_namespaces_in_cloned_doc.rb +0 -31
- data/test/namespaces/test_namespaces_in_created_doc.rb +0 -75
- data/test/namespaces/test_namespaces_in_parsed_doc.rb +0 -80
- data/test/namespaces/test_namespaces_preservation.rb +0 -31
- data/test/test_convert_xpath.rb +0 -135
- data/test/test_css_cache.rb +0 -47
- data/test/test_encoding_handler.rb +0 -48
- data/test/test_memory_leak.rb +0 -156
- data/test/test_nokogiri.rb +0 -138
- data/test/test_soap4r_sax.rb +0 -52
- data/test/test_xslt_transforms.rb +0 -314
- data/test/xml/node/test_save_options.rb +0 -28
- data/test/xml/node/test_subclass.rb +0 -44
- data/test/xml/sax/test_parser.rb +0 -402
- data/test/xml/sax/test_parser_context.rb +0 -115
- data/test/xml/sax/test_parser_text.rb +0 -202
- data/test/xml/sax/test_push_parser.rb +0 -265
- data/test/xml/test_attr.rb +0 -74
- data/test/xml/test_attribute_decl.rb +0 -86
- data/test/xml/test_builder.rb +0 -341
- data/test/xml/test_c14n.rb +0 -180
- data/test/xml/test_cdata.rb +0 -54
- data/test/xml/test_comment.rb +0 -40
- data/test/xml/test_document.rb +0 -982
- data/test/xml/test_document_encoding.rb +0 -31
- data/test/xml/test_document_fragment.rb +0 -298
- data/test/xml/test_dtd.rb +0 -187
- data/test/xml/test_dtd_encoding.rb +0 -31
- data/test/xml/test_element_content.rb +0 -56
- data/test/xml/test_element_decl.rb +0 -73
- data/test/xml/test_entity_decl.rb +0 -122
- data/test/xml/test_entity_reference.rb +0 -262
- data/test/xml/test_namespace.rb +0 -96
- data/test/xml/test_node.rb +0 -1325
- data/test/xml/test_node_attributes.rb +0 -115
- data/test/xml/test_node_encoding.rb +0 -75
- data/test/xml/test_node_inheritance.rb +0 -32
- data/test/xml/test_node_reparenting.rb +0 -592
- data/test/xml/test_node_set.rb +0 -809
- data/test/xml/test_parse_options.rb +0 -64
- data/test/xml/test_processing_instruction.rb +0 -30
- data/test/xml/test_reader.rb +0 -620
- data/test/xml/test_reader_encoding.rb +0 -134
- data/test/xml/test_relax_ng.rb +0 -60
- data/test/xml/test_schema.rb +0 -142
- data/test/xml/test_syntax_error.rb +0 -36
- data/test/xml/test_text.rb +0 -60
- data/test/xml/test_unparented_node.rb +0 -483
- data/test/xml/test_xinclude.rb +0 -83
- data/test/xml/test_xpath.rb +0 -470
- data/test/xslt/test_custom_functions.rb +0 -133
- data/test/xslt/test_exception_handling.rb +0 -37
@@ -1,314 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
class TestXsltTransforms < Nokogiri::TestCase
|
4
|
-
def setup
|
5
|
-
@doc = Nokogiri::XML(File.open(XML_FILE))
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_class_methods
|
9
|
-
style = Nokogiri::XSLT(File.read(XSLT_FILE))
|
10
|
-
|
11
|
-
assert result = style.apply_to(@doc, ['title', '"Grandma"'])
|
12
|
-
assert_match %r{<h1>Grandma</h1>}, result
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_transform
|
16
|
-
assert style = Nokogiri::XSLT.parse(File.read(XSLT_FILE))
|
17
|
-
|
18
|
-
assert result = style.apply_to(@doc, ['title', '"Booyah"'])
|
19
|
-
assert_match %r{<h1>Booyah</h1>}, result
|
20
|
-
assert_match %r{<th.*Employee ID</th>}, result
|
21
|
-
assert_match %r{<th.*Name</th>}, result
|
22
|
-
assert_match %r{<th.*Position</th>}, result
|
23
|
-
assert_match %r{<th.*Salary</th>}, result
|
24
|
-
assert_match %r{<td>EMP0003</td>}, result
|
25
|
-
assert_match %r{<td>Margaret Martin</td>}, result
|
26
|
-
assert_match %r{<td>Computer Specialist</td>}, result
|
27
|
-
assert_match %r{<td>100,000</td>}, result
|
28
|
-
assert_no_match %r{Dallas|Texas}, result
|
29
|
-
assert_no_match %r{Female}, result
|
30
|
-
|
31
|
-
assert result = style.apply_to(@doc, ['title', '"Grandma"'])
|
32
|
-
assert_match %r{<h1>Grandma</h1>}, result
|
33
|
-
|
34
|
-
assert result = style.apply_to(@doc)
|
35
|
-
assert_match %r{<h1></h1>|<h1/>}, result
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_xml_declaration
|
39
|
-
input_xml = <<-EOS
|
40
|
-
<?xml version="1.0" encoding="utf-8"?>
|
41
|
-
<report>
|
42
|
-
<title>My Report</title>
|
43
|
-
</report>
|
44
|
-
EOS
|
45
|
-
|
46
|
-
input_xsl = <<-EOS
|
47
|
-
<?xml version="1.0" encoding="utf-8"?>
|
48
|
-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
49
|
-
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
|
50
|
-
<xsl:template match="/">
|
51
|
-
<html>
|
52
|
-
<head>
|
53
|
-
<title><xsl:value-of select="report/title"/></title>
|
54
|
-
</head>
|
55
|
-
<body>
|
56
|
-
<h1><xsl:value-of select="report/title"/></h1>
|
57
|
-
</body>
|
58
|
-
</html>
|
59
|
-
</xsl:template>
|
60
|
-
</xsl:stylesheet>
|
61
|
-
EOS
|
62
|
-
|
63
|
-
require 'nokogiri'
|
64
|
-
|
65
|
-
xml = ::Nokogiri::XML(input_xml)
|
66
|
-
xsl = ::Nokogiri::XSLT(input_xsl)
|
67
|
-
|
68
|
-
assert_includes xsl.apply_to(xml), '<?xml version="1.0" encoding="utf-8"?>'
|
69
|
-
end
|
70
|
-
|
71
|
-
def test_transform_with_output_style
|
72
|
-
xslt = ""
|
73
|
-
if Nokogiri.jruby?
|
74
|
-
xslt = Nokogiri::XSLT(<<-eoxslt)
|
75
|
-
<?xml version="1.0" encoding="ISO-8859-1"?>
|
76
|
-
|
77
|
-
<xsl:stylesheet version="1.0"
|
78
|
-
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
79
|
-
<xsl:output method="text" version="1.0"
|
80
|
-
encoding="iso-8859-1" indent="yes"/>
|
81
|
-
|
82
|
-
<xsl:param name="title"/>
|
83
|
-
|
84
|
-
<xsl:template match="/">
|
85
|
-
<html>
|
86
|
-
<body>
|
87
|
-
<xsl:for-each select="staff/employee">
|
88
|
-
<tr>
|
89
|
-
<td><xsl:value-of select="employeeId"/></td>
|
90
|
-
<td><xsl:value-of select="name"/></td>
|
91
|
-
<td><xsl:value-of select="position"/></td>
|
92
|
-
<td><xsl:value-of select="salary"/></td>
|
93
|
-
</tr>
|
94
|
-
</xsl:for-each>
|
95
|
-
</body>
|
96
|
-
</html>
|
97
|
-
</xsl:template>
|
98
|
-
|
99
|
-
</xsl:stylesheet>
|
100
|
-
eoxslt
|
101
|
-
else
|
102
|
-
xslt = Nokogiri::XSLT(<<-eoxslt)
|
103
|
-
<?xml version="1.0" encoding="ISO-8859-1"?>
|
104
|
-
|
105
|
-
<xsl:stylesheet version="1.0"
|
106
|
-
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
107
|
-
<xsl:output method="text" version="1.0"
|
108
|
-
encoding="iso-8859-1" indent="yes"/>
|
109
|
-
|
110
|
-
<xsl:param name="title"/>
|
111
|
-
|
112
|
-
<xsl:template match="/">
|
113
|
-
<html>
|
114
|
-
<body>
|
115
|
-
<xsl:for-each select="staff/employee">
|
116
|
-
<tr>
|
117
|
-
<td><xsl:value-of select="employeeId"/></td>
|
118
|
-
<td><xsl:value-of select="name"/></td>
|
119
|
-
<td><xsl:value-of select="position"/></td>
|
120
|
-
<td><xsl:value-of select="salary"/></td>
|
121
|
-
</tr>
|
122
|
-
</xsl:for-each>
|
123
|
-
</table>
|
124
|
-
</body>
|
125
|
-
</html>
|
126
|
-
</xsl:template>
|
127
|
-
|
128
|
-
</xsl:stylesheet>
|
129
|
-
eoxslt
|
130
|
-
end
|
131
|
-
result = xslt.apply_to(@doc, ['title', 'foo'])
|
132
|
-
assert_no_match(/<td>/, result)
|
133
|
-
assert_match(/This is an adjacent/, result)
|
134
|
-
end
|
135
|
-
|
136
|
-
def test_transform_arg_error
|
137
|
-
assert style = Nokogiri::XSLT(File.read(XSLT_FILE))
|
138
|
-
assert_raises(TypeError) do
|
139
|
-
style.transform(@doc, :foo)
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
def test_transform_with_hash
|
144
|
-
assert style = Nokogiri::XSLT(File.read(XSLT_FILE))
|
145
|
-
result = style.transform(@doc, {'title' => '"Booyah"'})
|
146
|
-
assert result.html?
|
147
|
-
assert_equal "Booyah", result.at_css("h1").content
|
148
|
-
end
|
149
|
-
|
150
|
-
def test_transform2
|
151
|
-
assert style = Nokogiri::XSLT(File.open(XSLT_FILE))
|
152
|
-
assert result_doc = style.transform(@doc)
|
153
|
-
assert result_doc.html?
|
154
|
-
assert_equal "", result_doc.at_css("h1").content
|
155
|
-
|
156
|
-
assert style = Nokogiri::XSLT(File.read(XSLT_FILE))
|
157
|
-
assert result_doc = style.transform(@doc, ['title', '"Booyah"'])
|
158
|
-
assert result_doc.html?
|
159
|
-
assert_equal "Booyah", result_doc.at_css("h1").content
|
160
|
-
|
161
|
-
assert result_string = style.apply_to(@doc, ['title', '"Booyah"'])
|
162
|
-
assert_equal result_string, style.serialize(result_doc)
|
163
|
-
end
|
164
|
-
|
165
|
-
def test_transform_with_quote_params
|
166
|
-
assert style = Nokogiri::XSLT(File.open(XSLT_FILE))
|
167
|
-
assert result_doc = style.transform(@doc, Nokogiri::XSLT.quote_params(['title', 'Booyah']))
|
168
|
-
assert result_doc.html?
|
169
|
-
assert_equal "Booyah", result_doc.at_css("h1").content
|
170
|
-
|
171
|
-
assert style = Nokogiri::XSLT.parse(File.read(XSLT_FILE))
|
172
|
-
assert result_doc = style.transform(@doc, Nokogiri::XSLT.quote_params({'title' => 'Booyah'}))
|
173
|
-
assert result_doc.html?
|
174
|
-
assert_equal "Booyah", result_doc.at_css("h1").content
|
175
|
-
end
|
176
|
-
|
177
|
-
def test_quote_params
|
178
|
-
h = {
|
179
|
-
:sym => %{xxx},
|
180
|
-
'str' => %{"xxx"},
|
181
|
-
:sym2 => %{'xxx'},
|
182
|
-
'str2' => %{x'x'x},
|
183
|
-
:sym3 => %{x"x"x},
|
184
|
-
}
|
185
|
-
hh=h.dup
|
186
|
-
result_hash = Nokogiri::XSLT.quote_params(h)
|
187
|
-
assert_equal hh, h # non-destructive
|
188
|
-
|
189
|
-
a=h.to_a.flatten
|
190
|
-
result_array = Nokogiri::XSLT.quote_params(a)
|
191
|
-
assert_equal h.to_a.flatten, a #non-destructive
|
192
|
-
|
193
|
-
assert_equal result_array, result_hash
|
194
|
-
end
|
195
|
-
|
196
|
-
if Nokogiri.uses_libxml?
|
197
|
-
# By now, cannot get it working on JRuby, see:
|
198
|
-
# http://yokolet.blogspot.com/2010/10/pure-java-nokogiri-xslt-extension.html
|
199
|
-
def test_exslt
|
200
|
-
assert doc = Nokogiri::XML.parse(File.read(EXML_FILE))
|
201
|
-
assert doc.xml?
|
202
|
-
|
203
|
-
assert style = Nokogiri::XSLT.parse(File.read(EXSLT_FILE))
|
204
|
-
params = {
|
205
|
-
:p1 => 'xxx',
|
206
|
-
:p2 => "x'x'x",
|
207
|
-
:p3 => 'x"x"x',
|
208
|
-
:p4 => '"xxx"'
|
209
|
-
}
|
210
|
-
result_doc = Nokogiri::XML.parse(style.apply_to(doc,
|
211
|
-
Nokogiri::XSLT.quote_params(params)))
|
212
|
-
|
213
|
-
assert_equal 'func-result', result_doc.at('/root/function').content
|
214
|
-
assert_equal 3, result_doc.at('/root/max').content.to_i
|
215
|
-
assert_match(
|
216
|
-
/\d{4}-\d\d-\d\d([-|+]\d\d:\d\d)?/,
|
217
|
-
result_doc.at('/root/date').content
|
218
|
-
)
|
219
|
-
result_doc.xpath('/root/params/*').each do |p|
|
220
|
-
assert_equal p.content, params[p.name.intern]
|
221
|
-
end
|
222
|
-
check_params result_doc, params
|
223
|
-
result_doc = Nokogiri::XML.parse(style.apply_to(doc,
|
224
|
-
Nokogiri::XSLT.quote_params(params.to_a.flatten)))
|
225
|
-
check_params result_doc, params
|
226
|
-
end
|
227
|
-
|
228
|
-
def test_xslt_paramaters
|
229
|
-
xslt_str = <<-EOX
|
230
|
-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
|
231
|
-
<xsl:template match="/">
|
232
|
-
<xsl:value-of select="$foo" />
|
233
|
-
</xsl:template>
|
234
|
-
</xsl:stylesheet>
|
235
|
-
EOX
|
236
|
-
|
237
|
-
xslt = Nokogiri::XSLT(xslt_str)
|
238
|
-
doc = Nokogiri::XML("<root />")
|
239
|
-
assert_match %r{bar}, xslt.transform(doc, Nokogiri::XSLT.quote_params('foo' => 'bar')).to_s
|
240
|
-
end
|
241
|
-
|
242
|
-
def test_xslt_transform_error
|
243
|
-
xslt_str = <<-EOX
|
244
|
-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
|
245
|
-
<xsl:template match="/">
|
246
|
-
<xsl:value-of select="$foo" />
|
247
|
-
</xsl:template>
|
248
|
-
</xsl:stylesheet>
|
249
|
-
EOX
|
250
|
-
|
251
|
-
xslt = Nokogiri::XSLT(xslt_str)
|
252
|
-
doc = Nokogiri::XML("<root />")
|
253
|
-
assert_raises(RuntimeError) { xslt.transform(doc) }
|
254
|
-
end
|
255
|
-
end
|
256
|
-
|
257
|
-
|
258
|
-
def test_xslt_parse_error
|
259
|
-
xslt_str = <<-EOX
|
260
|
-
<xsl:stylesheet version="1.0"
|
261
|
-
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
262
|
-
<!-- Not well-formed: -->
|
263
|
-
<xsl:template match="/"/>
|
264
|
-
<values>
|
265
|
-
<xsl:for-each select="//*">
|
266
|
-
<value>
|
267
|
-
<xsl:value-of select="@id"/>
|
268
|
-
</value>
|
269
|
-
</xsl:for-each>
|
270
|
-
</values>
|
271
|
-
</xsl:template>
|
272
|
-
</xsl:stylesheet>}
|
273
|
-
EOX
|
274
|
-
assert_raises(RuntimeError) { Nokogiri::XSLT.parse(xslt_str) }
|
275
|
-
end
|
276
|
-
|
277
|
-
|
278
|
-
def test_passing_a_non_document_to_transform
|
279
|
-
xsl = Nokogiri::XSLT('<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></xsl:stylesheet>')
|
280
|
-
assert_raises(ArgumentError) { xsl.transform("<div></div>") }
|
281
|
-
assert_raises(ArgumentError) { xsl.transform(Nokogiri::HTML("").css("body")) }
|
282
|
-
end
|
283
|
-
|
284
|
-
def check_params result_doc, params
|
285
|
-
result_doc.xpath('/root/params/*').each do |p|
|
286
|
-
assert_equal p.content, params[p.name.intern]
|
287
|
-
end
|
288
|
-
end
|
289
|
-
|
290
|
-
def test_non_html_xslt_transform
|
291
|
-
xml = Nokogiri.XML(<<-EOXML)
|
292
|
-
<a>
|
293
|
-
<b>
|
294
|
-
<c>123</c>
|
295
|
-
</b>
|
296
|
-
</a>
|
297
|
-
EOXML
|
298
|
-
|
299
|
-
xsl = Nokogiri.XSLT(<<-EOXSL)
|
300
|
-
<xsl:stylesheet version="1.0"
|
301
|
-
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
302
|
-
|
303
|
-
<xsl:output encoding="UTF-8" indent="yes" method="xml" />
|
304
|
-
|
305
|
-
<xsl:template match="/">
|
306
|
-
<a><xsl:value-of select="/a" /></a>
|
307
|
-
</xsl:template>
|
308
|
-
</xsl:stylesheet>
|
309
|
-
EOXSL
|
310
|
-
|
311
|
-
result = xsl.transform xml
|
312
|
-
assert !result.html?
|
313
|
-
end
|
314
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
module Nokogiri
|
4
|
-
module XML
|
5
|
-
class Node
|
6
|
-
class TestSaveOptions < Nokogiri::TestCase
|
7
|
-
SaveOptions.constants.each do |constant|
|
8
|
-
class_eval <<-EOEVAL
|
9
|
-
def test_predicate_#{constant.downcase}
|
10
|
-
options = SaveOptions.new(SaveOptions::#{constant})
|
11
|
-
assert options.#{constant.downcase}?
|
12
|
-
|
13
|
-
assert SaveOptions.new.#{constant.downcase}.#{constant.downcase}?
|
14
|
-
end
|
15
|
-
EOEVAL
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_default_xml_save_options
|
19
|
-
if Nokogiri.jruby?
|
20
|
-
assert_equal 0, (SaveOptions::DEFAULT_XML & SaveOptions::FORMAT)
|
21
|
-
else
|
22
|
-
assert_equal SaveOptions::FORMAT, (SaveOptions::DEFAULT_XML & SaveOptions::FORMAT)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
module Nokogiri
|
4
|
-
module XML
|
5
|
-
class Node
|
6
|
-
class TestSubclass < Nokogiri::TestCase
|
7
|
-
{
|
8
|
-
Nokogiri::XML::CDATA => 'doc, "foo"',
|
9
|
-
Nokogiri::XML::Attr => 'doc, "foo"',
|
10
|
-
Nokogiri::XML::Comment => 'doc, "foo"',
|
11
|
-
Nokogiri::XML::EntityReference => 'doc, "foo"',
|
12
|
-
Nokogiri::XML::ProcessingInstruction => 'doc, "foo", "bar"',
|
13
|
-
Nokogiri::XML::DocumentFragment => 'doc',
|
14
|
-
Nokogiri::XML::Node => '"foo", doc',
|
15
|
-
Nokogiri::XML::Text => '"foo", doc',
|
16
|
-
}.each do |klass, constructor|
|
17
|
-
class_eval %{
|
18
|
-
def test_subclass_#{klass.name.gsub('::', '_')}
|
19
|
-
doc = Nokogiri::XML::Document.new
|
20
|
-
klass = Class.new(#{klass.name})
|
21
|
-
node = klass.new(#{constructor})
|
22
|
-
assert_instance_of klass, node
|
23
|
-
end
|
24
|
-
}
|
25
|
-
|
26
|
-
class_eval <<-eocode, __FILE__, __LINE__ + 1
|
27
|
-
def test_subclass_initialize_#{klass.name.gsub('::', '_')}
|
28
|
-
doc = Nokogiri::XML::Document.new
|
29
|
-
klass = Class.new(#{klass.name}) do
|
30
|
-
attr_accessor :initialized_with
|
31
|
-
|
32
|
-
def initialize *args
|
33
|
-
@initialized_with = args
|
34
|
-
end
|
35
|
-
end
|
36
|
-
node = klass.new(#{constructor}, 1)
|
37
|
-
assert_equal [#{constructor}, 1], node.initialized_with
|
38
|
-
end
|
39
|
-
eocode
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|