1require "rss-testcase"
2
3require "rss/maker"
4
5module RSS
6  class TestMakerImage < TestCase
7
8    def setup
9      @uri = "http://web.resource.org/rss/1.0/modules/image/"
10
11      @favicon_infos = {
12        "about" => "http://www.kuro5hin.org/favicon.ico",
13        "image_size" => "small",
14        "dc_title" => "example",
15      }
16      @item_infos = {
17        "about" => "http://www.example.org/item.png",
18        "resource" => "http://www.example.org/item",
19        "dc_title" => "Example Image",
20        "image_width" => "100",
21        "image_height" => "65",
22      }
23    end
24
25    def test_rss10
26      rss = RSS::Maker.make("1.0") do |maker|
27        setup_dummy_channel(maker)
28        @favicon_infos.each do |name, value|
29          maker.channel.image_favicon.__send__("#{name}=", value)
30        end
31
32        setup_dummy_image(maker)
33
34        setup_dummy_item(maker)
35        item = maker.items.last
36        @item_infos.each do |name, value|
37          item.image_item.__send__("#{name}=", value)
38        end
39
40        setup_dummy_textinput(maker)
41      end
42
43      setup_rss = RSS::Maker.make("1.0") do |maker|
44        rss.setup_maker(maker)
45      end
46
47      [rss, setup_rss].each_with_index do |target, i|
48        favicon = target.channel.image_favicon
49        assert_equal(@favicon_infos["about"], favicon.about)
50        assert_equal(@favicon_infos["image_size"], favicon.image_size)
51        assert_equal(@favicon_infos["dc_title"], favicon.dc_title)
52
53        item = target.items.last.image_item
54        assert_equal(@item_infos["about"], item.about)
55        assert_equal(@item_infos["resource"], item.resource)
56        assert_equal(@item_infos["image_width"].to_i, item.image_width)
57        assert_equal(@item_infos["image_height"].to_i, item.image_height)
58        assert_equal(@item_infos["dc_title"], item.dc_title)
59      end
60    end
61  end
62end
63