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,134 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
require "helper"
|
3
|
-
|
4
|
-
module Nokogiri
|
5
|
-
module XML
|
6
|
-
class TestReaderEncoding < Nokogiri::TestCase
|
7
|
-
def setup
|
8
|
-
super
|
9
|
-
@reader = Nokogiri::XML::Reader(
|
10
|
-
File.read(XML_FILE),
|
11
|
-
XML_FILE,
|
12
|
-
'UTF-8'
|
13
|
-
)
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_attribute_at
|
17
|
-
@reader.each do |node|
|
18
|
-
next unless attribute = node.attribute_at(0)
|
19
|
-
assert_equal @reader.encoding, attribute.encoding.name
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_attributes
|
24
|
-
@reader.each do |node|
|
25
|
-
node.attributes.each do |k,v|
|
26
|
-
assert_equal @reader.encoding, k.encoding.name
|
27
|
-
assert_equal @reader.encoding, v.encoding.name
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_attribute
|
33
|
-
xml = <<-eoxml
|
34
|
-
<x xmlns:tenderlove='http://tenderlovemaking.com/'>
|
35
|
-
<tenderlove:foo awesome='true'>snuggles!</tenderlove:foo>
|
36
|
-
</x>
|
37
|
-
eoxml
|
38
|
-
reader = Nokogiri::XML::Reader(xml, nil, 'UTF-8')
|
39
|
-
reader.each do |node|
|
40
|
-
next unless attribute = node.attribute('awesome')
|
41
|
-
assert_equal reader.encoding, attribute.encoding.name
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_xml_version
|
46
|
-
@reader.each do |node|
|
47
|
-
next unless version = node.xml_version
|
48
|
-
assert_equal @reader.encoding, version.encoding.name
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_lang
|
53
|
-
xml = <<-eoxml
|
54
|
-
<awesome>
|
55
|
-
<p xml:lang="en">The quick brown fox jumps over the lazy dog.</p>
|
56
|
-
<p xml:lang="ja">日本語が上手です</p>
|
57
|
-
</awesome>
|
58
|
-
eoxml
|
59
|
-
|
60
|
-
reader = Nokogiri::XML::Reader(xml, nil, 'UTF-8')
|
61
|
-
reader.each do |node|
|
62
|
-
next unless lang = node.lang
|
63
|
-
assert_equal reader.encoding, lang.encoding.name
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_value
|
68
|
-
called = false
|
69
|
-
@reader.each do |node|
|
70
|
-
next unless value = node.value
|
71
|
-
assert_equal @reader.encoding, value.encoding.name
|
72
|
-
called = true
|
73
|
-
end
|
74
|
-
assert called
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_prefix
|
78
|
-
xml = <<-eoxml
|
79
|
-
<x xmlns:edi='http://ecommerce.example.org/schema'>
|
80
|
-
<edi:foo>hello</edi:foo>
|
81
|
-
</x>
|
82
|
-
eoxml
|
83
|
-
reader = Nokogiri::XML::Reader(xml, nil, 'UTF-8')
|
84
|
-
reader.each do |node|
|
85
|
-
next unless prefix = node.prefix
|
86
|
-
assert_equal reader.encoding, prefix.encoding.name
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_ns_uri
|
91
|
-
xml = <<-eoxml
|
92
|
-
<x xmlns:edi='http://ecommerce.example.org/schema'>
|
93
|
-
<edi:foo>hello</edi:foo>
|
94
|
-
</x>
|
95
|
-
eoxml
|
96
|
-
reader = Nokogiri::XML::Reader(xml, nil, 'UTF-8')
|
97
|
-
reader.each do |node|
|
98
|
-
next unless uri = node.namespace_uri
|
99
|
-
assert_equal reader.encoding, uri.encoding.name
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_local_name
|
104
|
-
xml = <<-eoxml
|
105
|
-
<x xmlns:edi='http://ecommerce.example.org/schema'>
|
106
|
-
<edi:foo>hello</edi:foo>
|
107
|
-
</x>
|
108
|
-
eoxml
|
109
|
-
reader = Nokogiri::XML::Reader(xml, nil, 'UTF-8')
|
110
|
-
reader.each do |node|
|
111
|
-
next unless lname = node.local_name
|
112
|
-
assert_equal reader.encoding, lname.encoding.name
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
def test_name
|
117
|
-
@reader.each do |node|
|
118
|
-
next unless name = node.name
|
119
|
-
assert_equal @reader.encoding, name.encoding.name
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_value_lookup_segfault
|
124
|
-
skip("JRuby doesn't do GC.") if Nokogiri.jruby?
|
125
|
-
stress_memory_while do
|
126
|
-
while node = @reader.read
|
127
|
-
nodes = node.send(:attr_nodes)
|
128
|
-
nodes.first.name if nodes.first
|
129
|
-
end
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
data/test/xml/test_relax_ng.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
module Nokogiri
|
4
|
-
module XML
|
5
|
-
class TestRelaxNG < Nokogiri::TestCase
|
6
|
-
def setup
|
7
|
-
assert @schema = Nokogiri::XML::RelaxNG(File.read(ADDRESS_SCHEMA_FILE))
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_parse_with_memory
|
11
|
-
assert_instance_of Nokogiri::XML::RelaxNG, @schema
|
12
|
-
assert_equal 0, @schema.errors.length
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_new
|
16
|
-
assert schema = Nokogiri::XML::RelaxNG.new(
|
17
|
-
File.read(ADDRESS_SCHEMA_FILE))
|
18
|
-
assert_instance_of Nokogiri::XML::RelaxNG, schema
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_parse_with_io
|
22
|
-
xsd = nil
|
23
|
-
File.open(ADDRESS_SCHEMA_FILE, 'rb') { |f|
|
24
|
-
assert xsd = Nokogiri::XML::RelaxNG(f)
|
25
|
-
}
|
26
|
-
assert_equal 0, xsd.errors.length
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_parse_with_errors
|
30
|
-
xml = File.read(ADDRESS_SCHEMA_FILE).sub(/name="/, 'name=')
|
31
|
-
assert_raises(Nokogiri::XML::SyntaxError) {
|
32
|
-
Nokogiri::XML::RelaxNG(xml)
|
33
|
-
}
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_validate_document
|
37
|
-
doc = Nokogiri::XML(File.read(ADDRESS_XML_FILE))
|
38
|
-
assert errors = @schema.validate(doc)
|
39
|
-
assert_equal 0, errors.length
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_validate_invalid_document
|
43
|
-
# Empty address book is not allowed
|
44
|
-
read_doc = '<addressBook></addressBook>'
|
45
|
-
|
46
|
-
assert errors = @schema.validate(Nokogiri::XML(read_doc))
|
47
|
-
assert_equal 1, errors.length
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_valid?
|
51
|
-
valid_doc = Nokogiri::XML(File.read(ADDRESS_XML_FILE))
|
52
|
-
|
53
|
-
invalid_doc = Nokogiri::XML('<addressBook></addressBook>')
|
54
|
-
|
55
|
-
assert(@schema.valid?(valid_doc))
|
56
|
-
assert(!@schema.valid?(invalid_doc))
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
data/test/xml/test_schema.rb
DELETED
@@ -1,142 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
module Nokogiri
|
4
|
-
module XML
|
5
|
-
class TestSchema < Nokogiri::TestCase
|
6
|
-
def setup
|
7
|
-
assert @xsd = Nokogiri::XML::Schema(File.read(PO_SCHEMA_FILE))
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_schema_from_document
|
11
|
-
doc = Nokogiri::XML(File.open(PO_SCHEMA_FILE))
|
12
|
-
assert doc
|
13
|
-
xsd = Nokogiri::XML::Schema.from_document doc
|
14
|
-
assert_instance_of Nokogiri::XML::Schema, xsd
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_invalid_schema_do_not_raise_exceptions
|
18
|
-
xsd = Nokogiri::XML::Schema.new <<EOF
|
19
|
-
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
20
|
-
<xs:group name="foo1">
|
21
|
-
<xs:sequence>
|
22
|
-
<xs:element name="bar" type="xs:boolean" />
|
23
|
-
</xs:sequence>
|
24
|
-
</xs:group>
|
25
|
-
<xs:group name="foo2">
|
26
|
-
<xs:sequence>
|
27
|
-
<xs:element name="bar" type="xs:string" />
|
28
|
-
</xs:sequence>
|
29
|
-
</xs:group>
|
30
|
-
<xs:element name="foo">
|
31
|
-
<xs:complexType>
|
32
|
-
<xs:choice>
|
33
|
-
<xs:group ref="foo1"/>
|
34
|
-
<xs:group ref="foo2"/>
|
35
|
-
</xs:choice>
|
36
|
-
</xs:complexType>
|
37
|
-
</xs:element>
|
38
|
-
</xs:schema>
|
39
|
-
EOF
|
40
|
-
assert_instance_of Nokogiri::XML::Schema, xsd
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_schema_from_document_node
|
44
|
-
doc = Nokogiri::XML(File.open(PO_SCHEMA_FILE))
|
45
|
-
assert doc
|
46
|
-
xsd = Nokogiri::XML::Schema.from_document doc.root
|
47
|
-
assert_instance_of Nokogiri::XML::Schema, xsd
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_schema_validates_with_relative_paths
|
51
|
-
xsd = File.join(ASSETS_DIR, 'foo', 'foo.xsd')
|
52
|
-
xml = File.join(ASSETS_DIR, 'valid_bar.xml')
|
53
|
-
doc = Nokogiri::XML(File.open(xsd))
|
54
|
-
xsd = Nokogiri::XML::Schema.from_document doc
|
55
|
-
|
56
|
-
doc = Nokogiri::XML(File.open(xml))
|
57
|
-
assert xsd.valid?(doc)
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_parse_with_memory
|
61
|
-
assert_instance_of Nokogiri::XML::Schema, @xsd
|
62
|
-
assert_equal 0, @xsd.errors.length
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_new
|
66
|
-
assert xsd = Nokogiri::XML::Schema.new(File.read(PO_SCHEMA_FILE))
|
67
|
-
assert_instance_of Nokogiri::XML::Schema, xsd
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_parse_with_io
|
71
|
-
xsd = nil
|
72
|
-
File.open(PO_SCHEMA_FILE, 'rb') { |f|
|
73
|
-
assert xsd = Nokogiri::XML::Schema(f)
|
74
|
-
}
|
75
|
-
assert_equal 0, xsd.errors.length
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_parse_with_errors
|
79
|
-
xml = File.read(PO_SCHEMA_FILE).sub(/name="/, 'name=')
|
80
|
-
assert_raises(Nokogiri::XML::SyntaxError) {
|
81
|
-
Nokogiri::XML::Schema(xml)
|
82
|
-
}
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_validate_document
|
86
|
-
doc = Nokogiri::XML(File.read(PO_XML_FILE))
|
87
|
-
assert errors = @xsd.validate(doc)
|
88
|
-
assert_equal 0, errors.length
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_validate_file
|
92
|
-
assert errors = @xsd.validate(PO_XML_FILE)
|
93
|
-
assert_equal 0, errors.length
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_validate_invalid_document
|
97
|
-
doc = Nokogiri::XML File.read(PO_XML_FILE)
|
98
|
-
doc.css("city").unlink
|
99
|
-
|
100
|
-
assert errors = @xsd.validate(doc)
|
101
|
-
assert_equal 2, errors.length
|
102
|
-
end
|
103
|
-
|
104
|
-
def test_validate_invalid_file
|
105
|
-
tempfile = Tempfile.new("xml")
|
106
|
-
|
107
|
-
doc = Nokogiri::XML File.read(PO_XML_FILE)
|
108
|
-
doc.css("city").unlink
|
109
|
-
tempfile.write doc.to_xml
|
110
|
-
tempfile.close
|
111
|
-
|
112
|
-
assert errors = @xsd.validate(tempfile.path)
|
113
|
-
assert_equal 2, errors.length
|
114
|
-
end
|
115
|
-
|
116
|
-
def test_validate_non_document
|
117
|
-
string = File.read(PO_XML_FILE)
|
118
|
-
assert_raise(ArgumentError) {@xsd.validate(string)}
|
119
|
-
end
|
120
|
-
|
121
|
-
def test_valid?
|
122
|
-
valid_doc = Nokogiri::XML(File.read(PO_XML_FILE))
|
123
|
-
|
124
|
-
invalid_doc = Nokogiri::XML(
|
125
|
-
File.read(PO_XML_FILE).gsub(/<city>[^<]*<\/city>/, '')
|
126
|
-
)
|
127
|
-
|
128
|
-
assert(@xsd.valid?(valid_doc))
|
129
|
-
assert(!@xsd.valid?(invalid_doc))
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_xsd_with_dtd
|
133
|
-
Dir.chdir(File.join(ASSETS_DIR, 'saml')) do
|
134
|
-
# works
|
135
|
-
Nokogiri::XML::Schema(IO.read('xmldsig_schema.xsd'))
|
136
|
-
# was not working
|
137
|
-
Nokogiri::XML::Schema(IO.read('saml20protocol_schema.xsd'))
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
module Nokogiri
|
4
|
-
module XML
|
5
|
-
class TestSyntaxError < Nokogiri::TestCase
|
6
|
-
def test_new
|
7
|
-
error = Nokogiri::XML::SyntaxError.new 'hello'
|
8
|
-
assert_equal 'hello', error.message
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_line_column_level_libxml
|
12
|
-
skip unless Nokogiri.uses_libxml?
|
13
|
-
|
14
|
-
bad_doc = Nokogiri::XML('test')
|
15
|
-
error = bad_doc.errors.first
|
16
|
-
|
17
|
-
assert_equal "1:1: FATAL: Start tag expected, '<' not found", error.message
|
18
|
-
assert_equal 1, error.line
|
19
|
-
assert_equal 1, error.column
|
20
|
-
assert_equal 3, error.level
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_line_column_level_jruby
|
24
|
-
skip unless Nokogiri.jruby?
|
25
|
-
|
26
|
-
bad_doc = Nokogiri::XML('<root>test</bar>')
|
27
|
-
error = bad_doc.errors.first
|
28
|
-
|
29
|
-
assert_equal "The element type \"root\" must be terminated by the matching end-tag \"</root>\".", error.message
|
30
|
-
assert_nil error.line
|
31
|
-
assert_nil error.column
|
32
|
-
assert_nil error.level
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
data/test/xml/test_text.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
|
3
|
-
module Nokogiri
|
4
|
-
module XML
|
5
|
-
class TestText < Nokogiri::TestCase
|
6
|
-
def test_css_path
|
7
|
-
doc = Nokogiri.XML "<root> foo <a>something</a> bar bazz </root>"
|
8
|
-
node = doc.root.children[2]
|
9
|
-
assert_instance_of Nokogiri::XML::Text, node
|
10
|
-
assert_equal node, doc.at_css(node.css_path)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_inspect
|
14
|
-
node = Text.new('hello world', Document.new)
|
15
|
-
assert_equal "#<#{node.class.name}:#{sprintf("0x%x",node.object_id)} #{node.text.inspect}>", node.inspect
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_new
|
19
|
-
node = Text.new('hello world', Document.new)
|
20
|
-
assert node
|
21
|
-
assert_equal('hello world', node.content)
|
22
|
-
assert_instance_of Nokogiri::XML::Text, node
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_lots_of_text
|
26
|
-
100.times { Text.new('hello world', Document.new) }
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_new_without_document
|
30
|
-
doc = Document.new
|
31
|
-
node = Nokogiri::XML::Element.new('foo', doc)
|
32
|
-
|
33
|
-
assert Text.new('hello world', node)
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_content=
|
37
|
-
node = Text.new('foo', Document.new)
|
38
|
-
assert_equal('foo', node.content)
|
39
|
-
node.content = '& <foo> &'
|
40
|
-
assert_equal('& <foo> &', node.content)
|
41
|
-
assert_equal('& <foo> &amp;', node.to_xml)
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_add_child
|
45
|
-
node = Text.new('foo', Document.new)
|
46
|
-
if Nokogiri.jruby?
|
47
|
-
exc = RuntimeError
|
48
|
-
else
|
49
|
-
exc = ArgumentError
|
50
|
-
end
|
51
|
-
assert_raises(exc) {
|
52
|
-
node.add_child Text.new('bar', Document.new)
|
53
|
-
}
|
54
|
-
assert_raises(exc) {
|
55
|
-
node << Text.new('bar', Document.new)
|
56
|
-
}
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|