diff options
author | Rick Olson <technoweenie@gmail.com> | 2007-02-04 20:04:40 +0000 |
---|---|---|
committer | Rick Olson <technoweenie@gmail.com> | 2007-02-04 20:04:40 +0000 |
commit | 19fbb31464da45ac0935b3db193305f18e245ba9 (patch) | |
tree | 57543807ad63d7deb7cf5deb037fc64aed710492 /actionpack/test/controller/html-scanner/node_test.rb | |
parent | 4790228bc437c6c882bb2171a429979b37f52618 (diff) | |
download | rails-19fbb31464da45ac0935b3db193305f18e245ba9.tar.gz rails-19fbb31464da45ac0935b3db193305f18e245ba9.tar.bz2 rails-19fbb31464da45ac0935b3db193305f18e245ba9.zip |
Add much-needed html-scanner tests. Fixed CDATA parsing bug. [Rick]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6117 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/test/controller/html-scanner/node_test.rb')
-rw-r--r-- | actionpack/test/controller/html-scanner/node_test.rb | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/actionpack/test/controller/html-scanner/node_test.rb b/actionpack/test/controller/html-scanner/node_test.rb new file mode 100644 index 0000000000..1cf0a4bb67 --- /dev/null +++ b/actionpack/test/controller/html-scanner/node_test.rb @@ -0,0 +1,69 @@ +require File.dirname(__FILE__) + '/../../abstract_unit' +require 'test/unit' + +class NodeTest < Test::Unit::TestCase + + class MockNode + def initialize(matched, value) + @matched = matched + @value = value + end + + def find(conditions) + @matched && self + end + + def to_s + @value.to_s + end + end + + def setup + @node = HTML::Node.new("parent") + @node.children.concat [MockNode.new(false,1), MockNode.new(true,"two"), MockNode.new(false,:three)] + end + + def test_match + assert !@node.match("foo") + end + + def test_tag + assert !@node.tag? + end + + def test_to_s + assert_equal "1twothree", @node.to_s + end + + def test_find + assert_equal "two", @node.find('blah').to_s + end + + def test_parse_strict + s = "<b foo='hello'' bar='baz'>" + assert_raise(RuntimeError) { HTML::Node.parse(nil,0,0,s) } + end + + def test_parse_relaxed + s = "<b foo='hello'' bar='baz'>" + node = nil + assert_nothing_raised { node = HTML::Node.parse(nil,0,0,s,false) } + assert node.attributes.has_key?("foo") + assert !node.attributes.has_key?("bar") + end + + def test_to_s_with_boolean_attrs + s = "<b foo bar>" + node = HTML::Node.parse(nil,0,0,s) + assert node.attributes.has_key?("foo") + assert node.attributes.has_key?("bar") + assert "<b foo bar>", node.to_s + end + + def test_parse_with_unclosed_tag + s = "<span onmouseover='bang'" + node = nil + assert_nothing_raised { node = HTML::Node.parse(nil,0,0,s,false) } + assert node.attributes.has_key?("onmouseover") + end +end |