forked from adhearsion/blather
/
nokogiri_spec.rb
83 lines (68 loc) · 2.26 KB
/
nokogiri_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
require 'spec_helper'
describe 'Nokogiri::XML::Node' do
before { @doc = Nokogiri::XML::Document.new }
it 'aliases #name to #element_name' do
node = Nokogiri::XML::Node.new 'foo', @doc
node.must_respond_to :element_name
node.element_name.must_equal node.name
end
it 'aliases #name= to #element_name=' do
node = Nokogiri::XML::Node.new 'foo', @doc
node.must_respond_to :element_name=
node.element_name.must_equal node.name
node.element_name = 'bar'
node.element_name.must_equal 'bar'
end
it 'allows symbols as hash keys for attributes' do
attrs = Nokogiri::XML::Node.new('foo', @doc)
attrs['foo'] = 'bar'
attrs['foo'].must_equal 'bar'
attrs[:foo].must_equal 'bar'
end
it 'ensures a string is passed to the attribute setter' do
attrs = Nokogiri::XML::Node.new('foo', @doc)
attrs[:foo] = 1
attrs[:foo].must_equal '1'
attrs[:jid] = Blather::JID.new('n@d/r')
attrs[:jid].must_equal 'n@d/r'
end
it 'removes an attribute when set to nil' do
attrs = Nokogiri::XML::Node.new('foo', @doc)
attrs['foo'] = 'bar'
attrs['foo'].must_equal 'bar'
attrs['foo'] = nil
attrs['foo'].must_be_nil
end
it 'allows attribute values to change' do
attrs = Nokogiri::XML::Node.new('foo', @doc)
attrs['foo'] = 'bar'
attrs['foo'].must_equal 'bar'
attrs['foo'] = 'baz'
attrs['foo'].must_equal 'baz'
end
it 'allows symbols as the path in #xpath' do
node = Nokogiri::XML::Node.new('foo', @doc)
node.must_respond_to :find
@doc.root = node
@doc.xpath(:foo).first.wont_be_nil
@doc.xpath(:foo).first.must_equal @doc.xpath('/foo').first
end
it 'allows symbols as namespace names in #xpath' do
node = Nokogiri::XML::Node.new('foo', @doc)
node.namespace = node.add_namespace('bar', 'baz')
@doc.root = node
node.xpath('/bar:foo', :bar => 'baz').first.wont_be_nil
end
it 'aliases #xpath to #find' do
node = Nokogiri::XML::Node.new('foo', @doc)
node.must_respond_to :find
@doc.root = node
node.find('/foo').first.wont_be_nil
end
it 'has a helper function #find_first' do
node = Nokogiri::XML::Node.new('foo', @doc)
node.must_respond_to :find
@doc.root = node
node.find_first('/foo').must_equal node.find('/foo').first
end
end