From 1b56bcce22a069eba6afb7e36f654783e5b4fbbc Mon Sep 17 00:00:00 2001 From: kou Date: Sat, 15 Sep 2007 04:41:28 +0000 Subject: * lib/rss.rb, lib/rss/, test/rss/: - 0.1.9 -> 0.2.0. - supported Slash module. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rss/rss-assertions.rb | 12 +++++++ test/rss/test_maker_slash.rb | 37 ++++++++++++++++++++++ test/rss/test_parser.rb | 2 +- test/rss/test_parser_1.0.rb | 8 +++++ test/rss/test_setup_maker_slash.rb | 38 ++++++++++++++++++++++ test/rss/test_slash.rb | 64 ++++++++++++++++++++++++++++++++++++++ test/rss/test_version.rb | 2 +- 7 files changed, 161 insertions(+), 2 deletions(-) create mode 100644 test/rss/test_maker_slash.rb create mode 100644 test/rss/test_setup_maker_slash.rb create mode 100644 test/rss/test_slash.rb (limited to 'test/rss') diff --git a/test/rss/rss-assertions.rb b/test/rss/rss-assertions.rb index 3b212c794d..41e6cd62c5 100644 --- a/test/rss/rss-assertions.rb +++ b/test/rss/rss-assertions.rb @@ -2018,6 +2018,18 @@ EOA end end + def assert_slash_elements(expected, target) + assert_equal(expected, + { + "section" => target.slash_section, + "department" => target.slash_department, + "comments" => target.slash_comments, + "hit_parades" => target.slash_hit_parades, + }) + assert_equal(expected["hit_parades"].join(","), + target.slash_hit_parade) + end + def chain_reader(target, readers, &block) readers.inject(target) do |result, reader| return nil if result.nil? diff --git a/test/rss/test_maker_slash.rb b/test/rss/test_maker_slash.rb new file mode 100644 index 0000000000..f2fbf9a231 --- /dev/null +++ b/test/rss/test_maker_slash.rb @@ -0,0 +1,37 @@ +require "rss-testcase" + +require "rss/maker" + +module RSS + class TestMakerSlash < TestCase + def setup + @elements = { + "section" => "articles", + "department" => "not-an-ocean-unless-there-are-lobsters", + "comments" => 177, + "hit_parades" => [177, 155, 105, 33, 6, 3, 0], + } + end + + def test_rss10 + rss = RSS::Maker.make("1.0") do |maker| + setup_dummy_channel(maker) + + setup_dummy_item(maker) + item = maker.items.last + @elements.each do |name, value| + item.send("slash_#{name}=", value) + end + end + + item = rss.items.last + assert_not_nil(item) + assert_slash_elements(item) + end + + private + def assert_slash_elements(target) + super(@elements, target) + end + end +end diff --git a/test/rss/test_parser.rb b/test/rss/test_parser.rb index 45f31e2014..59458ef51b 100644 --- a/test/rss/test_parser.rb +++ b/test/rss/test_parser.rb @@ -1,4 +1,4 @@ -require 'fileutils' +require "fileutils" require "rss-testcase" diff --git a/test/rss/test_parser_1.0.rb b/test/rss/test_parser_1.0.rb index 472602b04a..1c4e53c1da 100644 --- a/test/rss/test_parser_1.0.rb +++ b/test/rss/test_parser_1.0.rb @@ -498,6 +498,14 @@ EOR Parser.parse(rss, true, false) end end + + def test_unknown_duplicated_element + assert_parse(make_RDF(<<-EOR), :nothing_raised) + #{make_channel("")} + #{make_item} + #{make_image} + EOR + end end end diff --git a/test/rss/test_setup_maker_slash.rb b/test/rss/test_setup_maker_slash.rb new file mode 100644 index 0000000000..07fa5bb342 --- /dev/null +++ b/test/rss/test_setup_maker_slash.rb @@ -0,0 +1,38 @@ +require "rss-testcase" + +require "rss/maker" + +module RSS + class TestSetupMakerSlash < TestCase + def test_setup_maker + elements = { + "section" => "articles", + "department" => "not-an-ocean-unless-there-are-lobsters", + "comments" => 177, + "hit_parades" => [177, 155, 105, 33, 6, 3, 0], + } + + rss = RSS::Maker.make("rss1.0") do |maker| + setup_dummy_channel(maker) + setup_dummy_item(maker) + + item = maker.items.last + item.slash_section = elements["section"] + item.slash_department = elements["department"] + item.slash_comments = elements["comments"] + item.slash_hit_parade = elements["hit_parades"].join(",") + end + assert_not_nil(rss) + + new_rss = RSS::Maker.make("rss1.0") do |maker| + rss.setup_maker(maker) + end + assert_not_nil(new_rss) + + item = new_rss.items.last + assert_not_nil(item) + + assert_slash_elements(elements, item) + end + end +end diff --git a/test/rss/test_slash.rb b/test/rss/test_slash.rb new file mode 100644 index 0000000000..aec0a868f5 --- /dev/null +++ b/test/rss/test_slash.rb @@ -0,0 +1,64 @@ +require "cgi" +require "rexml/document" + +require "rss-testcase" + +require "rss/1.0" +require "rss/slash" + +module RSS + class TestSlash < TestCase + def setup + @elements = { + "section" => "articles", + "department" => "not-an-ocean-unless-there-are-lobsters", + "comments" => 177, + "hit_parades" => [177, 155, 105, 33, 6, 3, 0], + } + + slash_nodes = @elements.collect do |name, value| + if name == "hit_parades" + name = "hit_parade" + value = value.join(",") + end + "#{value}" + end.join("\n") + + slash_ns = {"slash" => "http://purl.org/rss/1.0/modules/slash/"} + @source = make_RDF(<<-EOR, slash_ns) +#{make_channel} +#{make_image} +#{make_item(slash_nodes)} +#{make_textinput} +EOR + end + + def test_parser + rss = RSS::Parser.parse(@source) + + assert_not_nil(rss) + + item = rss.items[0] + assert_not_nil(item) + + assert_slash_elements(item) + end + + def test_to_s + rss = RSS::Parser.parse(@source) + rss = RSS::Parser.parse(rss.to_s) + + assert_not_nil(rss) + + item = rss.items[0] + assert_not_nil(item) + + assert_slash_elements(item) + end + + private + def assert_slash_elements(target) + super(@elements, target) + end + end +end diff --git a/test/rss/test_version.rb b/test/rss/test_version.rb index 8e63af7c23..9b64f0d4ed 100644 --- a/test/rss/test_version.rb +++ b/test/rss/test_version.rb @@ -3,7 +3,7 @@ require "rss-testcase" module RSS class TestVersion < TestCase def test_version - assert_equal("0.1.9", ::RSS::VERSION) + assert_equal("0.2.0", ::RSS::VERSION) end end end -- cgit v1.2.3