Class | TestTreeWalkers |
In: |
lib/feed_tools/vendor/html5/tests/test_treewalkers.rb
|
Parent: | Test::Unit::TestCase |
# File lib/feed_tools/vendor/html5/tests/test_treewalkers.rb, line 24 24: def concatenateCharacterTokens(tokens) 25: charactersToken = nil 26: for token in tokens 27: type = token[:type] 28: if [:Characters, :SpaceCharacters].include?(type) 29: if charactersToken == nil 30: charactersToken = {:type => :Characters, :data => token[:data]} 31: else 32: charactersToken[:data] += token[:data] 33: end 34: else 35: if charactersToken != nil 36: yield charactersToken 37: charactersToken = nil 38: end 39: yield token 40: end 41: end 42: yield charactersToken if charactersToken != nil 43: end
# File lib/feed_tools/vendor/html5/tests/test_treewalkers.rb, line 45 45: def convertTokens(tokens) 46: output = [] 47: indent = 0 48: concatenateCharacterTokens(tokens) do |token| 49: case token[:type] 50: when :StartTag, :EmptyTag 51: output << "#{' '*indent}<#{token[:name]}>" 52: indent += 2 53: for name, value in token[:data].to_a.sort 54: next if name=='xmlns' 55: output << "#{' '*indent}#{name}=\"#{value}\"" 56: end 57: indent -= 2 if token[:type] == :EmptyTag 58: when :EndTag 59: indent -= 2 60: when :Comment 61: output << "#{' '*indent}<!-- #{token[:data]} -->" 62: when :Doctype 63: if token[:name] and token[:name].any? 64: output << "#{' '*indent}<!DOCTYPE #{token[:name]}>" 65: else 66: output << "#{' '*indent}<!DOCTYPE >" 67: end 68: when :Characters, :SpaceCharacters 69: output << "#{' '*indent}\"#{token[:data]}\"" 70: end 71: end 72: output.join("\n") 73: end
# File lib/feed_tools/vendor/html5/tests/test_treewalkers.rb, line 115 115: def test_all_tokens 116: expected = [ 117: {:data => [], :type => :StartTag, :name => 'html'}, 118: {:data => [], :type => :StartTag, :name => 'head'}, 119: {:data => [], :type => :EndTag, :name => 'head'}, 120: {:data => [], :type => :StartTag, :name => 'body'}, 121: {:data => [], :type => :EndTag, :name => 'body'}, 122: {:data => [], :type => :EndTag, :name => 'html'}] 123: for treeName, tree_class in $tree_types_to_test 124: p = HTML5::HTMLParser.new(:tree => tree_class[:builder]) 125: document = p.parse("<html></html>") 126: # document = tree_class.get(:adapter)(document) 127: output = tree_class[:walker].new(document) 128: expected.zip(output) do |expected_token, output_token| 129: assert_equal(expected_token, output_token) 130: end 131: end 132: end