You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.0 KiB
Ruby
68 lines
2.0 KiB
Ruby
require 'test/unit'
|
|
require 'htree/tag'
|
|
require 'htree/elem'
|
|
require 'htree/traverse'
|
|
|
|
class TestAttr < Test::Unit::TestCase
|
|
def test_each_attribute
|
|
t = HTree::STag.new('ename', [['p:n', 'a&b']], HTree::DefaultContext.subst_namespaces({'p'=>'u'}))
|
|
t = HTree::Elem.new!(t)
|
|
t.each_attribute {|n, v|
|
|
assert_instance_of(HTree::Name, n)
|
|
assert_instance_of(HTree::Text, v)
|
|
assert_equal('{u}n', n.universal_name)
|
|
assert_equal('a&b', v.rcdata)
|
|
}
|
|
end
|
|
|
|
def test_each_attr
|
|
t = HTree::STag.new('ename', [['p:n', 'a&b']], HTree::DefaultContext.subst_namespaces({'p'=>'u'}))
|
|
t = HTree::Elem.new!(t)
|
|
t.each_attr {|n, v|
|
|
assert_instance_of(String, n)
|
|
assert_instance_of(String, v)
|
|
assert_equal('{u}n', n)
|
|
assert_equal('a&b', v)
|
|
}
|
|
end
|
|
|
|
def test_fetch_attribute
|
|
t = HTree::STag.new('ename', [['p:n', 'a&b']], HTree::DefaultContext.subst_namespaces({'p'=>'u'}))
|
|
t = HTree::Elem.new!(t)
|
|
v = t.fetch_attribute('{u}n')
|
|
assert_instance_of(HTree::Text, v)
|
|
assert_equal('a&b', v.rcdata)
|
|
assert_equal('y', t.fetch_attribute('x', 'y'))
|
|
assert_raises(IndexError) { t.fetch_attribute('x') }
|
|
end
|
|
|
|
def test_get_attribute
|
|
t = HTree::STag.new('ename', [['p:n', 'a&b']], HTree::DefaultContext.subst_namespaces({'p'=>'u'}))
|
|
t = HTree::Elem.new!(t)
|
|
v = t.get_attribute('{u}n')
|
|
assert_instance_of(HTree::Text, v)
|
|
assert_equal('a&b', v.rcdata)
|
|
assert_equal(nil, t.get_attribute('x'))
|
|
end
|
|
|
|
def test_get_attr
|
|
t = HTree::STag.new('ename', [['p:n', 'a&b']], HTree::DefaultContext.subst_namespaces({'p'=>'u'}))
|
|
t = HTree::Elem.new!(t)
|
|
v = t.get_attr('{u}n')
|
|
assert_instance_of(String, v)
|
|
assert_equal('a&b', v)
|
|
assert_equal(nil, t.get_attr('x'))
|
|
end
|
|
|
|
def test_loc_get_attr
|
|
t = HTree::Elem.new('e', {'k'=>'v'})
|
|
v = t.make_loc.get_attr('k')
|
|
assert_instance_of(String, v)
|
|
assert_equal('v', v)
|
|
v = t.make_loc.fetch_attr('k')
|
|
assert_instance_of(String, v)
|
|
assert_equal('v', v)
|
|
end
|
|
|
|
end
|