432b1631b9f608e47a8c739a8f82e784fb8b40e0
[feedcatcher.git] / test / functional / feed_controller_test.rb
1 require 'test_helper'
2
3 class FeedControllerTest < ActionController::TestCase
4
5 fixtures :feed_items
6
7 test "get index" do
8 get :index
9 assert_response :success
10 assert_template :index
11 assert_equal 2, assigns(:feeds).length
12 assert_select "li", 2
13 end
14
15 test "get index RSS" do
16 get :index, :format => "rss"
17 assert_response :success
18 assert_equal 2, assigns(:feeds).length
19 assert_select "item", 2
20 end
21
22 test "get feed one" do
23 get :show, :feed_name => "feed_one"
24 assert_response :success
25 assert_equal 3, assigns(:feed_items).length
26 assert_select "dl", 1
27 assert_select "dt", 3
28 assert_select "dd", 3
29 end
30
31 test "get feed one RSS" do
32 get :show, :feed_name => "feed_one", :format => "rss"
33 assert_response :success
34 assert_equal 3, assigns(:feed_items).length
35 assert_select "rss", 1
36 assert_select "rss > channel", 1
37 assert_select "rss > channel > title", 1
38 assert_select "item", 3
39 assert_select "item > title ", 3
40 assert_select "rss > channel > item", 3
41 assert_select "rss > channel > item > title ", 3
42 end
43
44 test "get feed two" do
45 get :show, :feed_name => "feed_two"
46 assert_response :success
47 assert_equal 2, assigns(:feed_items).length
48 assert_select "dl", 1
49 assert_select "dt", 2
50 assert_select "dd", 2
51 end
52
53 test "add item to feed one" do
54 post :update, :feed_name => "feed_one", :title => "extra item", :description => "some description"
55 assert_response :redirect
56
57 get :show, :feed_name => "feed_one"
58 assert_response :success
59 assert_equal 4, assigns(:feed_items).length
60 assert_select "dl", 1
61 assert_select "dt", 4
62 assert_select "dd", 4
63 assert_tag :tag => "dt", :content => "extra item",
64 :before => {:tag => "dd", :content => "some description"}
65
66 get :show, :feed_name => "feed_two"
67 assert_response :success
68 assert_equal 2, assigns(:feed_items).length
69 end
70
71 test "alter item in feed one" do
72 get :show, :feed_name => "feed_one"
73 assert_response :success
74 assert_equal 3, assigns(:feed_items).length
75 assert_select "dl", 1
76 assert_select "dt", 3
77 assert_select "dd", 3
78 assert_tag :tag => "dt", :content => "feed one item two",
79 :before => {:tag => "dd", :content => "feed one item two description"}
80
81 post :update, :feed_name => "feed_one",
82 :title => "feed one item two",
83 :description => "some description"
84 assert_response :redirect
85
86 get :show, :feed_name => "feed_one"
87 assert_response :success
88 assert_equal 3, assigns(:feed_items).length
89 assert_select "dl", 1
90 assert_select "dt", 3
91 assert_select "dd", 3
92 assert_tag :tag => "dt", :content => "feed one item two",
93 :before => {:tag => "dd", :content => "some description"}
94
95 get :show, :feed_name => "feed_two"
96 assert_response :success
97 assert_equal 2, assigns(:feed_items).length
98 end
99
100 test "delete item in feed one" do
101 get :show, :feed_name => "feed_one"
102 assert_response :success
103 assert_equal 3, assigns(:feed_items).length
104 assert_select "dl", 1
105 assert_select "dt", 3
106 assert_select "dd", 3
107 assert_tag :tag => "dt", :content => "feed one item two",
108 :before => {:tag => "dd", :content => "feed one item two description"}
109
110 post :update, :feed_name => "feed_one",
111 :title => "feed one item two",
112 :description => ""
113 assert_response :redirect
114
115 get :show, :feed_name => "feed_one"
116 assert_response :success
117 assert_equal 2, assigns(:feed_items).length
118 assert_select "dl", 1
119 assert_select "dt", 2
120 assert_select "dd", 2
121 assert_no_tag :tag => "dt", :content => "feed one item two"
122
123 get :show, :feed_name => "feed_two"
124 assert_response :success
125 assert_equal 2, assigns(:feed_items).length
126 end
127
128 test "create feed three" do
129 get :index
130 assert_response :success
131 assert_template :index
132 assert_equal 2, assigns(:feeds).length
133 assert_select "li", 2
134
135 post :update, :feed_name => "feed_three",
136 :title => "feed three item one",
137 :description => "feed three item one description"
138 assert_response :redirect
139
140 get :index
141 assert_response :success
142 assert_template :index
143 assert_equal 3, assigns(:feeds).length
144 assert_select "li", 3
145
146 get :show, :feed_name => "feed_three"
147 assert_response :success
148 assert_equal 1, assigns(:feed_items).length
149 assert_select "dl", 1
150 assert_select "dt", 1
151 assert_select "dd", 1
152 assert_tag :tag => "dt", :content => "feed three item one",
153 :before => {:tag => "dd", :content => "feed three item one description"}
154
155 get :show, :feed_name => "feed_one"
156 assert_response :success
157 assert_equal 3, assigns(:feed_items).length
158
159 get :show, :feed_name => "feed_two"
160 assert_response :success
161 assert_equal 2, assigns(:feed_items).length
162 end
163
164 end