diff options
| author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-29 09:12:56 +0000 |
|---|---|---|
| committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-29 09:12:56 +0000 |
| commit | 51bd9cada87c6f07499d767dc712f0177cb19a08 (patch) | |
| tree | d8163b71056db73ec20a0a32dbdf552cefac0833 /test/rss | |
| parent | 8272251f6dd058fab4e34150525f345eebb5693c (diff) | |
* NEWS: add an entry for rss.
* lib/rss/, test/rss/: merge from trunk.
- 0.2.4 -> 0.2.5.
- RSS::Maker.make raise an exception not returns nil for invalid
feed making.
- RSS::Maker.make requires block.
- don't use instance_variable to initialize variables. (speed up)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rss')
| -rw-r--r-- | test/rss/rss-assertions.rb | 48 | ||||
| -rw-r--r-- | test/rss/test_atom.rb | 2 | ||||
| -rw-r--r-- | test/rss/test_maker_0.9.rb | 5 | ||||
| -rw-r--r-- | test/rss/test_maker_1.0.rb | 7 | ||||
| -rw-r--r-- | test/rss/test_maker_2.0.rb | 5 | ||||
| -rw-r--r-- | test/rss/test_maker_dc.rb | 5 | ||||
| -rw-r--r-- | test/rss/test_maker_itunes.rb | 2 | ||||
| -rw-r--r-- | test/rss/test_parser_1.0.rb | 1 | ||||
| -rw-r--r-- | test/rss/test_version.rb | 2 |
9 files changed, 48 insertions, 29 deletions
diff --git a/test/rss/rss-assertions.rb b/test/rss/rss-assertions.rb index 41e6cd62c5..f396e9a446 100644 --- a/test/rss/rss-assertions.rb +++ b/test/rss/rss-assertions.rb @@ -570,7 +570,7 @@ EOA text << char char.succ! end - base64_content = Base64.encode64(Zlib::Deflate.deflate(text)) + base64_content = [Zlib::Deflate.deflate(text)].pack("m").delete("\n") [false, true].each do |with_space| xml_content = base64_content @@ -1272,22 +1272,32 @@ EOA invalid_feed_checker=nil) _wrap_assertion do elements = [] - invalid_feed = false - feed = RSS::Maker.make("atom:#{feed_type}") do |maker| - yield maker - targets = chain_reader(maker, maker_readers) - targets.each do |target| - element = maker_extractor.call(target) - elements << element if element + invalid_feed_exception = nil + feed = nil + begin + feed = RSS::Maker.make("atom:#{feed_type}") do |maker| + yield maker + targets = chain_reader(maker, maker_readers) + targets.each do |target| + element = maker_extractor.call(target) + elements << element if element + end + if invalid_feed_checker + invalid_feed_exception = invalid_feed_checker.call(targets) + end end - if invalid_feed_checker - invalid_feed = invalid_feed_checker.call(targets) + rescue RSS::Error + if invalid_feed_exception.is_a?(RSS::TooMuchTagError) + assert_too_much_tag(invalid_feed_exception.tag, + invalid_feed_exception.parent) do + raise + end + else + raise end end - if invalid_feed - assert_nil(feed) - else + if invalid_feed_exception.nil? actual_elements = chain_reader(feed, feed_readers) || [] actual_elements = actual_elements.collect do |target| feed_extractor.call(target) @@ -1542,18 +1552,24 @@ EOA :length => target.length, } end + + if feed_readers.first == "entries" + parent = "entry" + else + parent = feed_type + end invalid_feed_checker = Proc.new do |targets| infos = {} - invalid = false + invalid_exception = nil targets.each do |target| key = [target.hreflang, target.type] if infos.has_key?(key) - invalid = true + invalid_exception = RSS::TooMuchTagError.new("link", parent) break end infos[key] = true if target.rel.nil? or target.rel == "alternate" end - invalid + invalid_exception end invalid_feed_checker = nil if allow_duplication _assert_maker_atom_elements(feed_type, maker_readers, feed_readers, diff --git a/test/rss/test_atom.rb b/test/rss/test_atom.rb index c442c753b2..1f65008fa0 100644 --- a/test/rss/test_atom.rb +++ b/test/rss/test_atom.rb @@ -658,7 +658,7 @@ module RSS content.content = original_content xml = REXML::Document.new(content.to_s).root assert_rexml_element([], {"type" => type}, - Base64.encode64(original_content), xml) + [original_content].pack("m").delete("\n"), xml) end end diff --git a/test/rss/test_maker_0.9.rb b/test/rss/test_maker_0.9.rb index c211bf605b..815f9e3952 100644 --- a/test/rss/test_maker_0.9.rb +++ b/test/rss/test_maker_0.9.rb @@ -6,8 +6,9 @@ module RSS class TestMaker09 < TestCase def test_rss - rss = RSS::Maker.make("0.91") - assert_nil(rss) + assert_raise(LocalJumpError) do + RSS::Maker.make("0.91") + end rss = RSS::Maker.make("0.9") do |maker| setup_dummy_channel(maker) diff --git a/test/rss/test_maker_1.0.rb b/test/rss/test_maker_1.0.rb index 60cc3708a7..49d506bf6f 100644 --- a/test/rss/test_maker_1.0.rb +++ b/test/rss/test_maker_1.0.rb @@ -6,6 +6,10 @@ module RSS class TestMaker10 < TestCase def test_rdf + assert_raise(LocalJumpError) do + RSS::Maker.make("1.0") + end + rss = RSS::Maker.make("1.0") do |maker| setup_dummy_channel(maker) setup_dummy_item(maker) @@ -48,9 +52,6 @@ module RSS link = "http://hoge.com" description = "fugafugafugafuga" - rss = RSS::Maker.make("1.0") - assert_nil(rss) - rss = RSS::Maker.make("1.0") do |maker| maker.channel.about = about maker.channel.title = title diff --git a/test/rss/test_maker_2.0.rb b/test/rss/test_maker_2.0.rb index c338e343a3..f6d4a11dc3 100644 --- a/test/rss/test_maker_2.0.rb +++ b/test/rss/test_maker_2.0.rb @@ -6,8 +6,9 @@ module RSS class TestMaker20 < TestCase def test_rss - rss = RSS::Maker.make("2.0") - assert_nil(rss) + assert_raise(LocalJumpError) do + RSS::Maker.make("2.0") + end rss = RSS::Maker.make("2.0") do |maker| setup_dummy_channel(maker) diff --git a/test/rss/test_maker_dc.rb b/test/rss/test_maker_dc.rb index c9df36a1ce..72a967231a 100644 --- a/test/rss/test_maker_dc.rb +++ b/test/rss/test_maker_dc.rb @@ -86,9 +86,8 @@ module RSS elems.each do |name, values, plural| dc_elems = item.__send__("dc_#{plural}") values.each do |value| - dc_elems.__send__("new_#{name}") do |elem| - elem.value = value - end + elem = dc_elems.__send__("new_#{name}") + elem.value = value end end diff --git a/test/rss/test_maker_itunes.rb b/test/rss/test_maker_itunes.rb index 1d4e323057..21a4dd1f29 100644 --- a/test/rss/test_maker_itunes.rb +++ b/test/rss/test_maker_itunes.rb @@ -462,7 +462,7 @@ module RSS "all of your answers here.", maker_readers, feed_readers) _assert_maker_itunes_summary("This week we talk about surviving in a " + - "Red state if you’re a Blue person. Or " + + "Red state if you're a Blue person. Or " + "vice versa.", maker_readers, feed_readers) end diff --git a/test/rss/test_parser_1.0.rb b/test/rss/test_parser_1.0.rb index 819ce286a5..216881b767 100644 --- a/test/rss/test_parser_1.0.rb +++ b/test/rss/test_parser_1.0.rb @@ -509,3 +509,4 @@ EOR end end end + diff --git a/test/rss/test_version.rb b/test/rss/test_version.rb index 64f6f0482e..fefdb1e0f0 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.2.4", ::RSS::VERSION) + assert_equal("0.2.5", ::RSS::VERSION) end end end |
