From 84035542b7176081506dc06f90eb15e7f5b8fd00 Mon Sep 17 00:00:00 2001
From: "(no author)" <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Sat, 1 May 2004 16:09:55 +0000
Subject: This commit was manufactured by cvs2svn to create branch 'ruby_1_8'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
---
test/rss/test_parser.rb | 470 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 470 insertions(+)
create mode 100644 test/rss/test_parser.rb
(limited to 'test')
diff --git a/test/rss/test_parser.rb b/test/rss/test_parser.rb
new file mode 100644
index 0000000000..05ff9748ad
--- /dev/null
+++ b/test/rss/test_parser.rb
@@ -0,0 +1,470 @@
+# -*- tab-width: 2 -*- vim: ts=2
+
+require "rss-testcase"
+
+require "rss/1.0"
+
+module RSS
+ class TestParser < TestCase
+
+ def setup
+ @_default_parser = Parser.default_parser
+ end
+
+ def teardown
+ Parser.default_parser = @_default_parser
+ end
+
+ def test_RDF
+ assert_ns("", RDF::URI) do
+ Parser.parse(<<-EOR)
+#{make_xmldecl}
+
+EOR
+ end
+
+ assert_ns("", RDF::URI) do
+ Parser.parse(<<-EOR)
+#{make_xmldecl}
+
+EOR
+ end
+
+ assert_ns("rdf", RDF::URI) do
+ Parser.parse(<<-EOR)
+#{make_xmldecl}
+
+EOR
+ end
+
+ assert_parse(<<-EOR, :missing_tag, "channel", "RDF")
+#{make_xmldecl}
+
+EOR
+
+ assert_parse(<<-EOR, :missing_tag, "channel", "RDF")
+#{make_xmldecl}
+
+EOR
+
+ assert_parse(<<-EOR, :missing_tag, "channel", "RDF")
+#{make_xmldecl}
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "item", "RDF")
+#{make_channel}
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "item", "RDF")
+#{make_channel}
+#{make_image}
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "item", "RDF")
+#{make_channel}
+#{make_textinput}
+EOR
+
+ assert_too_much_tag("image", "RDF") do
+ Parser.parse(make_RDF(<<-EOR))
+#{make_channel}
+#{make_image}
+#{make_image}
+#{make_item}
+#{make_textinput}
+EOR
+ end
+
+ assert_not_excepted_tag("image", "RDF") do
+ Parser.parse(make_RDF(<<-EOR))
+#{make_channel}
+#{make_item}
+#{make_image}
+#{make_textinput}
+EOR
+ end
+
+ assert_parse(make_RDF(<<-EOR), :nothing_raised)
+#{make_channel}
+#{make_image}
+#{make_item}
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :nothing_raised)
+#{make_channel}
+#{make_image}
+#{make_item}
+#{make_textinput}
+EOR
+
+ 1.step(15, 3) do |i|
+ rss = make_RDF() do
+ res = make_channel
+ i.times { res << make_item }
+ res
+ end
+ assert_parse(rss, :nothing_raised)
+ end
+
+ end
+
+ def test_channel
+
+ assert_parse(make_RDF(<<-EOR), :missing_attribute, "channel", "about")
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "title", "channel")
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "link", "channel")
+
+ hoge
+
+EOR
+
+ assert_parse(make_RDF(<
+ hoge
+ http://example.com/
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "items", "channel")
+
+ hoge
+ http://example.com/
+ hogehoge
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_attribute, "image", "resource")
+
+ hoge
+ http://example.com/
+ hogehoge
+
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "items", "channel")
+
+ hoge
+ http://example.com/
+ hogehoge
+
+
+EOR
+
+ rss = make_RDF(<<-EOR)
+
+ hoge
+ http://example.com/
+ hogehoge
+
+
+
+EOR
+
+ assert_missing_tag("Seq", "items") do
+ Parser.parse(rss)
+ end
+
+ assert_missing_tag("item", "RDF") do
+ Parser.parse(rss, false).validate
+ end
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "item", "RDF")
+
+ hoge
+ http://example.com/
+ hogehoge
+
+
+
+
+
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_attribute, "textinput", "resource")
+
+ hoge
+ http://example.com/
+ hogehoge
+
+
+
+
+
+
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "item", "RDF")
+
+ hoge
+ http://example.com/
+ hogehoge
+
+
+
+
+
+
+
+EOR
+
+ end
+
+ def test_rdf_li
+
+ rss = make_RDF(<<-EOR)
+
+ hoge
+ http://example.com/
+ hogehoge
+
+
+
+
+
+
+
+
+#{make_item}
+EOR
+
+ source = Proc.new do |rdf_li_attr|
+ eval(%Q[%Q[#{rss}]], binding)
+ end
+
+ attr = %q[resource="http://example.com/hoge"]
+ assert_parse(source.call(attr), :nothing_raised)
+
+ attr = %q[rdf:resource="http://example.com/hoge"]
+ assert_parse(source.call(attr), :nothing_raised)
+
+ assert_parse(source.call(""), :missing_attribute, "li", "resource")
+ end
+
+ def test_image
+
+ assert_parse(make_RDF(<<-EOR), :missing_attribute, "image", "about")
+#{make_channel}
+
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "title", "image")
+#{make_channel}
+
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "url", "image")
+#{make_channel}
+
+ hoge
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "link", "image")
+#{make_channel}
+
+ hoge
+ http://example.com/hoge.png
+
+EOR
+
+ rss = make_RDF(<<-EOR)
+#{make_channel}
+
+ hoge
+ http://example.com/
+ http://example.com/hoge.png
+
+EOR
+
+ assert_missing_tag("url", "image") do
+ Parser.parse(rss)
+ end
+
+ assert_missing_tag("item", "RDF") do
+ Parser.parse(rss, false).validate
+ end
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "item", "RDF")
+#{make_channel}
+
+ hoge
+ http://example.com/hoge.png
+ http://example.com/
+
+EOR
+
+ end
+
+ def test_item
+
+ assert_parse(make_RDF(<<-EOR), :missing_attribute, "item", "about")
+#{make_channel}
+#{make_image}
+-
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "title", "item")
+#{make_channel}
+#{make_image}
+-
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "link", "item")
+#{make_channel}
+#{make_image}
+-
+ hoge
+
+EOR
+
+ assert_too_much_tag("title", "item") do
+ Parser.parse(make_RDF(<<-EOR))
+#{make_channel}
+#{make_image}
+-
+ hoge
+ hoge
+ http://example.com/hoge.html
+
+EOR
+ end
+
+ assert_parse(make_RDF(<<-EOR), :nothing_raised)
+#{make_channel}
+#{make_image}
+-
+ hoge
+ http://example.com/hoge.html
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :nothing_raised)
+#{make_channel}
+#{make_image}
+-
+ hoge
+ http://example.com/hoge.html
+ hogehoge
+
+EOR
+
+ end
+
+ def test_textinput
+
+ assert_parse(make_RDF(<<-EOR), :missing_attribute, "textinput", "about")
+#{make_channel}
+#{make_image}
+#{make_item}
+
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "title", "textinput")
+#{make_channel}
+#{make_image}
+#{make_item}
+
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "description", "textinput")
+#{make_channel}
+#{make_image}
+#{make_item}
+
+ hoge
+
+EOR
+
+ assert_too_much_tag("title", "textinput") do
+ Parser.parse(make_RDF(<<-EOR))
+#{make_channel}
+#{make_image}
+#{make_item}
+
+ hoge
+ hoge
+ hogehoge
+
+EOR
+ end
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "name", "textinput")
+#{make_channel}
+#{make_image}
+#{make_item}
+
+ hoge
+ hogehoge
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :missing_tag, "link", "textinput")
+#{make_channel}
+#{make_image}
+#{make_item}
+
+ hoge
+ hogehoge
+ key
+
+EOR
+
+ assert_parse(make_RDF(<<-EOR), :nothing_raised)
+#{make_channel}
+#{make_image}
+#{make_item}
+
+ hoge
+ hogehoge
+ key
+ http://example.com/search.html
+
+EOR
+
+ end
+
+ def test_ignore
+
+ rss = make_RDF(<<-EOR)
+#{make_channel}
+#{make_item}
+
+EOR
+
+ assert_parse(rss, :nothing_raised)
+
+ assert_not_excepted_tag("a", "RDF") do
+ Parser.parse(rss, true, false)
+ end
+
+ end
+
+ def test_default_parser
+ assert_nothing_raised() do
+ Parser.default_parser = RSS::AVAILABLE_PARSERS.first
+ end
+
+ assert_raise(RSS::NotValidXMLParser) do
+ Parser.default_parser = RSS::Parser
+ end
+ end
+
+ end
+end
+
--
cgit v1.2.3