summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/rss/0.9.rb19
-rw-r--r--test/rss/rss-assertions.rb8
-rw-r--r--test/rss/test_1.0.rb24
-rw-r--r--test/rss/test_2.0.rb61
5 files changed, 52 insertions, 65 deletions
diff --git a/ChangeLog b/ChangeLog
index 2fb7ee3569..691d31fa3b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -68,6 +68,11 @@ Sat Jun 17 09:03:47 2006 Kouhei Sutou <kou@cozmixng.org>
* test/rss/test_parser.rb: added an entity handling test.
+ * test/rss/test_2.0.rb: added RSS 2.0 tests.
+ * test/rss/rss-assertions.rb: extended XML stylesheet assertion.
+ * lib/rss/0.9.rb: added initialize method.
+ * test/rss/test_1.0.rb: cleanup.
+
Sat Jun 17 02:01:00 2006 Tanaka Akira <akr@m17n.org>
* lib/pp.rb (Kernel#pretty_inspect): defined for pretty printed
diff --git a/lib/rss/0.9.rb b/lib/rss/0.9.rb
index 56fdfb3618..a4b2ba9b8f 100644
--- a/lib/rss/0.9.rb
+++ b/lib/rss/0.9.rb
@@ -339,6 +339,17 @@ module RSS
install_model(name, "?")
end
+ def initialize(url=nil, title=nil, link=nil, width=nil, height=nil,
+ description=nil)
+ super()
+ @url = url
+ @title = title
+ @link = link
+ @width = width
+ @height = height
+ @description = description
+ end
+
def to_s(need_convert=true, indent=calc_indent)
rv = tag(indent) do |next_indent|
[
@@ -618,6 +629,14 @@ module RSS
install_model(name, nil)
end
+ def initialize(title=nil, description=nil, name=nil, link=nil)
+ super()
+ @title = title
+ @description = description
+ @name = name
+ @link = link
+ end
+
def to_s(need_convert=true, indent=calc_indent)
rv = tag(indent) do |next_indent|
[
diff --git a/test/rss/rss-assertions.rb b/test/rss/rss-assertions.rb
index 435f893e8d..cb757a9ae4 100644
--- a/test/rss/rss-assertions.rb
+++ b/test/rss/rss-assertions.rb
@@ -139,16 +139,16 @@ module RSS
end
end
- def assert_xml_stylesheet_pis(attrs_ary)
+ def assert_xml_stylesheet_pis(attrs_ary, rss=nil)
_wrap_assertion do
- rdf = ::RSS::RDF.new()
+ rss ||= ::RSS::RDF.new()
xss_strs = []
attrs_ary.each do |attrs|
xss = ::RSS::XMLStyleSheet.new(*attrs)
xss_strs.push(xss.to_s)
- rdf.xml_stylesheets.push(xss)
+ rss.xml_stylesheets.push(xss)
end
- pi_str = rdf.to_s.gsub(/<\?xml .*\n/, "").gsub(/\s*<rdf:RDF.*\z/m, "")
+ pi_str = rss.to_s.gsub(/<\?xml .*\n/, "").gsub(/\s*<[^\?].*\z/m, "")
assert_equal(xss_strs.join("\n"), pi_str)
end
end
diff --git a/test/rss/test_1.0.rb b/test/rss/test_1.0.rb
index 5a01e9f5c3..b905ba6e94 100644
--- a/test/rss/test_1.0.rb
+++ b/test/rss/test_1.0.rb
@@ -5,18 +5,15 @@ require "rss-testcase"
require "rss/1.0"
module RSS
- class TestCore < TestCase
+ class TestRSS10Core < TestCase
def setup
-
@rdf_prefix = "rdf"
@rdf_uri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@uri = "http://purl.org/rss/1.0/"
-
end
def test_RDF
-
version = "1.0"
encoding = "UTF-8"
standalone = false
@@ -33,7 +30,6 @@ module RSS
assert_equal(standalone, !xmldecl.standalone.nil?)
assert_equal(@rdf_uri, doc.root.namespace)
-
end
def test_not_displayed_xml_stylesheets
@@ -93,11 +89,9 @@ module RSS
end
assert_equal(@uri, c.elements["items"].namespace)
assert_equal("items", c.elements["items"].name)
-
end
def test_channel_image
-
resource = "http://hoge.com/hoge.png"
image = RDF::Channel::Image.new(resource)
@@ -111,11 +105,9 @@ module RSS
assert_equal(@rdf_uri, res.namespace)
assert_equal(resource, res.value)
-
end
def test_channel_textinput
-
resource = "http://hoge.com/hoge.png"
textinput = RDF::Channel::Textinput.new(resource)
@@ -129,11 +121,9 @@ module RSS
assert_equal(@rdf_uri, res.namespace)
assert_equal(resource, res.value)
-
end
def test_items
-
items = RDF::Channel::Items.new
doc = REXML::Document.new(make_RDF(items.to_s))
@@ -145,11 +135,9 @@ module RSS
assert_equal(1, i.elements.size)
assert_equal("Seq", i.elements[1].name)
assert_equal(@rdf_uri, i.elements[1].namespace)
-
end
def test_seq
-
seq = RDF::Seq.new
doc = REXML::Document.new(make_RDF(seq.to_s))
@@ -157,11 +145,9 @@ module RSS
assert_equal("Seq", s.name)
assert_equal(@rdf_uri, s.namespace)
-
end
def test_li
-
resource = "http://hoge.com/"
li = RDF::Li.new(resource)
@@ -175,11 +161,9 @@ module RSS
assert_equal('', res.instance_eval("@prefix"))
assert_equal(resource, res.value)
-
end
def test_image
-
about = "http://hoge.com"
title = "fugafuga"
url = "http://hoge.com/hoge"
@@ -200,11 +184,9 @@ module RSS
assert_equal(@uri, elem.namespace)
assert_equal(instance_eval(x), elem.text)
end
-
end
def test_item
-
about = "http://hoge.com"
title = "fugafuga"
link = "http://hoge.com/fuga"
@@ -225,11 +207,9 @@ module RSS
assert_equal(@uri, elem.namespace)
assert_equal(instance_eval(x), elem.text)
end
-
end
def test_textinput
-
about = "http://hoge.com"
title = "fugafuga"
link = "http://hoge.com/fuga"
@@ -251,7 +231,6 @@ module RSS
assert_equal(@uri, elem.namespace)
assert_equal(instance_eval(x), elem.text)
end
-
end
def test_indent_size
@@ -264,6 +243,5 @@ module RSS
assert_equal(1, RDF::Item.indent_size)
assert_equal(1, RDF::Textinput.indent_size)
end
-
end
end
diff --git a/test/rss/test_2.0.rb b/test/rss/test_2.0.rb
index 2027e5344a..238d3efaa9 100644
--- a/test/rss/test_2.0.rb
+++ b/test/rss/test_2.0.rb
@@ -75,9 +75,9 @@ module RSS
generator = "MightyInHouse Content System v2.3"
docs = "http://blogs.law.harvard.edu/tech/rss"
- ttl = "60"
+ ttl = 60
- rating = '(PICS-1.1 "http://www.rsac.org/ratingsv01.html" l gen true comment "RSACi North America Server" for "http://www.rsac.org" on "1996.04.16T08:15-0500" r (n 0 s 0 v 0 l 0))'
+ rating = 6
channel = Rss::Channel.new
@@ -85,9 +85,7 @@ module RSS
managingEditor webMaster pubDate lastBuildDate
generator docs ttl rating)
elems.each do |x|
- value = instance_eval(x)
- value = value.rfc822 if %w(pubDate lastBuildDate).include?(x)
- channel.__send__("#{x}=", value)
+ channel.__send__("#{x}=", instance_eval(x))
end
categories.each do |cat|
channel.categories << Rss::Channel::Category.new(cat[:domain],
@@ -105,8 +103,7 @@ module RSS
case x
when "pubDate", "lastBuildDate"
assert_equal(expected, Time.parse(elem.text))
- when "ttl"
- expected = channel.__send__(x)
+ when "ttl", "rating"
assert_equal(expected, elem.text.to_i)
else
assert_equal(expected, elem.text)
@@ -127,7 +124,7 @@ module RSS
def test_channel_cloud
cloud_params = {
:domain => "rpc.sys.com",
- :port => "80",
+ :port => 80,
:path => "/RPC2",
:registerProcedure => "myCloud.rssPleaseNotify",
:protocol => "xml-rpc",
@@ -137,15 +134,14 @@ module RSS
cloud_params[:path],
cloud_params[:registerProcedure],
cloud_params[:protocol])
- cloud_params[:port] = cloud.port
-
+
doc = REXML::Document.new(cloud.to_s)
cloud_elem = doc.root
actual = {}
cloud_elem.attributes.each do |name, value|
value = value.to_i if name == "port"
- actual[name.intern] = value
+ actual[name.to_sym] = value
end
assert_equal(cloud_params, actual)
end
@@ -155,8 +151,8 @@ module RSS
:url => "http://hoge.com/hoge.png",
:title => "fugafuga",
:link => "http://hoge.com",
- :width => "144",
- :height => "400",
+ :width => 144,
+ :height => 400,
:description => "an image",
}
image = Rss::Channel::Image.new(image_params[:url],
@@ -170,7 +166,6 @@ module RSS
image_elem = doc.root
image_params.each do |name, value|
- value = image.__send__(name)
actual = image_elem.elements[name.to_s].text
actual = actual.to_i if [:width, :height].include?(name)
assert_equal(value, actual)
@@ -218,8 +213,8 @@ module RSS
def test_channel_skip_hours
skipHours_values = [
- "0",
- "13",
+ 0,
+ 13,
]
skipHours = Rss::Channel::SkipHours.new
skipHours_values.each do |value|
@@ -230,8 +225,7 @@ module RSS
hours_elem = doc.root
skipHours_values.each_with_index do |value, i|
- expected = skipHours.hours[i].content
- assert_equal(expected, hours_elem.elements[i + 1].text.to_i)
+ assert_equal(value, hours_elem.elements[i + 1].text.to_i)
end
end
@@ -258,9 +252,7 @@ module RSS
elems = %w(title link description author comments pubDate)
elems.each do |x|
- value = instance_eval(x)
- value = value.rfc822 if x == "pubDate"
- item.__send__("#{x}=", value)
+ item.__send__("#{x}=", instance_eval(x))
end
categories.each do |cat|
item.categories << Rss::Channel::Category.new(cat[:domain],
@@ -298,22 +290,24 @@ module RSS
def test_item_enclosure
enclosure_params = {
:url => "http://www.scripting.com/mp3s/weatherReportSuite.mp3",
- :length => "12216320",
+ :length => 12216320,
:type => "audio/mpeg",
}
enclosure = Rss::Channel::Item::Enclosure.new(enclosure_params[:url],
enclosure_params[:length],
enclosure_params[:type])
- enclosure_params[:length] = enclosure.length
-
+
doc = REXML::Document.new(enclosure.to_s)
enclosure_elem = doc.root
actual = {}
enclosure_elem.attributes.each do |name, value|
- value = value.to_i if name == "length"
- actual[name.intern] = value
+ if name == "length"
+ enclosure_params[name.to_sym] = value.to_i
+ value = value.to_i
+ end
+ actual[name.to_sym] = value
end
assert_equal(enclosure_params, actual)
end
@@ -332,23 +326,14 @@ module RSS
test_params.each do |guid_params|
guid = Rss::Channel::Item::Guid.new(guid_params[:isPermaLink],
guid_params[:content])
- if guid_params.has_key?(:isPermaLink)
- guid_params[:isPermaLink] = guid.isPermaLink
- end
- if guid.isPermaLink.nil?
- assert_equal(true, guid.PermaLink?)
- else
- assert_equal(guid.isPermaLink, guid.PermaLink?)
- end
-
+
doc = REXML::Document.new(guid.to_s)
guid_elem = doc.root
actual = {}
actual[:content] = guid_elem.text if guid_elem.text
guid_elem.attributes.each do |name, value|
- value = value == "true" if name == "isPermaLink"
- actual[name.intern] = value
+ actual[name.to_sym] = value
end
assert_equal(guid_params, actual)
end
@@ -369,7 +354,7 @@ module RSS
actual = {}
actual[:content] = source_elem.text
source_elem.attributes.each do |name, value|
- actual[name.intern] = value
+ actual[name.to_sym] = value
end
assert_equal(source_params, actual)
end