1# frozen_string_literal: false 2require "cgi" 3require "rexml/document" 4 5require_relative "rss-testcase" 6 7require "rss/1.0" 8require "rss/slash" 9 10module RSS 11 class TestSlash < TestCase 12 def setup 13 @elements = { 14 "section" => "articles", 15 "department" => "not-an-ocean-unless-there-are-lobsters", 16 "comments" => 177, 17 "hit_parades" => [177, 155, 105, 33, 6, 3, 0], 18 } 19 20 slash_nodes = @elements.collect do |name, value| 21 if name == "hit_parades" 22 name = "hit_parade" 23 value = value.join(",") 24 end 25 "<slash:#{name}>#{value}</slash:#{name}>" 26 end.join("\n") 27 28 slash_ns = {"slash" => "http://purl.org/rss/1.0/modules/slash/"} 29 @source = make_RDF(<<-EOR, slash_ns) 30#{make_channel} 31#{make_image} 32#{make_item(slash_nodes)} 33#{make_textinput} 34EOR 35 end 36 37 def test_parser 38 rss = RSS::Parser.parse(@source) 39 40 assert_not_nil(rss) 41 42 item = rss.items[0] 43 assert_not_nil(item) 44 45 assert_slash_elements(item) 46 end 47 48 def test_to_s 49 rss = RSS::Parser.parse(@source) 50 rss = RSS::Parser.parse(rss.to_s) 51 52 assert_not_nil(rss) 53 54 item = rss.items[0] 55 assert_not_nil(item) 56 57 assert_slash_elements(item) 58 end 59 60 private 61 def assert_slash_elements(target) 62 super(@elements, target) 63 end 64 end 65end 66