summaryrefslogtreecommitdiff
path: root/test/rss
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-29 09:12:56 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-29 09:12:56 +0000
commit51bd9cada87c6f07499d767dc712f0177cb19a08 (patch)
treed8163b71056db73ec20a0a32dbdf552cefac0833 /test/rss
parent8272251f6dd058fab4e34150525f345eebb5693c (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.rb48
-rw-r--r--test/rss/test_atom.rb2
-rw-r--r--test/rss/test_maker_0.9.rb5
-rw-r--r--test/rss/test_maker_1.0.rb7
-rw-r--r--test/rss/test_maker_2.0.rb5
-rw-r--r--test/rss/test_maker_dc.rb5
-rw-r--r--test/rss/test_maker_itunes.rb2
-rw-r--r--test/rss/test_parser_1.0.rb1
-rw-r--r--test/rss/test_version.rb2
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