class TestHTreeGet
Public Instance Methods
ok(e, s)
click to toggle source
# File vendor/qwik/lib/qwik/htree-get.rb, line 145 def ok(e, s) return '' if s.nil? ok_eq(e, s.format_xml) end
test_all()
click to toggle source
# File vendor/qwik/lib/qwik/htree-get.rb, line 150 def test_all # test_get_tag e = HTree::Elem.new('e') # test_split_name_num ok_eq(['sidebar', 1], e.split_name_num('sidebar')) ok_eq(['sidebar', 1], e.split_name_num("sidebar[1]")) ok_eq(['sidebar', 2], e.split_name_num("sidebar[2]")) # test_get_tag h = HTree("<a><b><c>") ok("<c/>", h.get_tag('c')) ok("<b><c/></b>", h.get_tag('b')) # test_each_in_class h = HTree("<p class='a'><ta/></p><p class='b'><tb/></p><p class='b'><tb2/></p>") h.each_in_class('a') {|l| ok_eq("doc()/p[1]/ta", l.path) ok("<ta/>", l.to_node) } h.each_in_class('b') {|l| ok_eq("doc()/p[2]/tb", l.path) ok("<tb/>", l.to_node) } h.each_in_class("b[2]") {|l| ok_eq("doc()/p[3]/tb2", l.path) ok("<tb2/>", l.to_node) } ok("<ta/>", h.get_class_tag('a', 'ta')) ok("<tb/>", h.get_class_tag('b', 'tb')) ok("<tb2/>", h.get_class_tag("b[2]", 'tb2')) str = <<'EOS' <html><div class='main'> <div class='day'><h2>bh2</h2></div> <div class='sidebar'><h2>sh2</h2></div> </div></html> EOS h = HTree(str) ok("<html><div class=\"main\">\n<div class=\"day\"><h2>bh2</h2></div>\n<div class=\"sidebar\"><h2>sh2</h2></div>\n</div></html>\n", h) ok("<h2>bh2</h2>", h.get_tag('h2')) ok("<h2>sh2</h2>", h.get_tag("h2[2]")) ok("<h2>bh2</h2>", h.get_class_tag('day', 'h2')) ok("<h2>sh2</h2>", h.get_class_tag('sidebar', 'h2')) # test_get_tag2 h = HTree("<a><b>tb</b><b>tb2</b><c>") ok("<b>tb</b>", h.get_tag('b')) ok_eq(nil, h.get_tag('nosuchtag')) ok("<b>tb</b>", h.get_tag("b[1]")) ok("<b>tb2</b>", h.get_tag("b[2]")) ok("<b>tb</b>", h.get_tag("//b")) # test_xpath str = <<'EOS' <html><div class='main'> <div class='day'><h2>bh2</h2></div> <div class='sidebar'><h2>sh2<b>a</b>sh2a</h2></div> </div></html> EOS h = HTree(str) #ok("<html><div class=\"main\">\n<div class=\"day\"><h2>bh2</h2></div>\n<div class=\"sidebar\"><h2>sh2</h2></div>\n</div></html>\n", h) #ok("<h2>sh2</h2>", h.get_class_tag('sidebar', 'h2')) #ok("<h2>sh2<b>a</b>sh2a</h2>", h.get_class('sidebar')) ok("<div class=\"sidebar\"><h2>sh2<b>a</b>sh2a</h2></div>", h.get_class('sidebar')) ok_instance_of(HTree::Elem, h.get_class('sidebar')) ok("<b>a</b>", h.get_class('sidebar').get_tag('b')) ok("<div class=\"sidebar\"><h2>sh2<b>a</b>sh2a</h2></div>", h.get_a_path("div[@class='sidebar']")) ok("<b>a</b>", h.get_a_path("div[@class='sidebar']").get_a_path('b')) ok("<div class=\"sidebar\"><h2>sh2<b>a</b>sh2a</h2></div>", h.get_path("//div[@class='sidebar']")) ok("<b>a</b>", h.get_path("//div[@class='sidebar']/b")) str = <<'EOS' <a href='t1' alt='t2'>t3</a> EOS h = HTree(str) ok_instance_of(HTree::Doc, h) e = h.get_tag('a') ok_instance_of(HTree::Elem, e) ok("<a href=\"t1\" alt=\"t2\">t3</a>", e) #ok_eq({href=>{text 't1'}, alt=>{text 't2'}}, e.attributes) ok_eq({'href'=>'t1', 'alt'=>'t2'}, e.attributes_str) # test_xpath_attr str = <<'EOS' <html><div class='main'> <div id='menu'><h2>menuh2</h2></div> </div></html> EOS h = HTree(str) ok("<div id=\"menu\"><h2>menuh2</h2></div>", h.get_has_attr('id', 'menu')) ok_instance_of(HTree::Elem, h.get_has_attr('id', 'menu')) ok("<div id=\"menu\"><h2>menuh2</h2></div>", h.get_path("//div[@id='menu']")) end