Mercurial > hg > soundsoftware-site
comparison test/functional/news_controller_test.rb @ 909:cbb26bc654de redmine-1.3
Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author | Chris Cannam |
---|---|
date | Fri, 24 Feb 2012 19:09:32 +0000 |
parents | 8661b858af72 |
children | 433d4f72a19b |
comparison
equal
deleted
inserted
replaced
908:c6c2cbd0afee | 909:cbb26bc654de |
---|---|
1 # redMine - project management software | 1 # Redmine - project management software |
2 # Copyright (C) 2006-2007 Jean-Philippe Lang | 2 # Copyright (C) 2006-2011 Jean-Philippe Lang |
3 # | 3 # |
4 # This program is free software; you can redistribute it and/or | 4 # This program is free software; you can redistribute it and/or |
5 # modify it under the terms of the GNU General Public License | 5 # modify it under the terms of the GNU General Public License |
6 # as published by the Free Software Foundation; either version 2 | 6 # as published by the Free Software Foundation; either version 2 |
7 # of the License, or (at your option) any later version. | 7 # of the License, or (at your option) any later version. |
8 # | 8 # |
9 # This program is distributed in the hope that it will be useful, | 9 # This program is distributed in the hope that it will be useful, |
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 # GNU General Public License for more details. | 12 # GNU General Public License for more details. |
13 # | 13 # |
14 # You should have received a copy of the GNU General Public License | 14 # You should have received a copy of the GNU General Public License |
15 # along with this program; if not, write to the Free Software | 15 # along with this program; if not, write to the Free Software |
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
17 | 17 |
18 require File.expand_path('../../test_helper', __FILE__) | 18 require File.expand_path('../../test_helper', __FILE__) |
21 # Re-raise errors caught by the controller. | 21 # Re-raise errors caught by the controller. |
22 class NewsController; def rescue_action(e) raise e end; end | 22 class NewsController; def rescue_action(e) raise e end; end |
23 | 23 |
24 class NewsControllerTest < ActionController::TestCase | 24 class NewsControllerTest < ActionController::TestCase |
25 fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news, :comments | 25 fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news, :comments |
26 | 26 |
27 def setup | 27 def setup |
28 @controller = NewsController.new | 28 @controller = NewsController.new |
29 @request = ActionController::TestRequest.new | 29 @request = ActionController::TestRequest.new |
30 @response = ActionController::TestResponse.new | 30 @response = ActionController::TestResponse.new |
31 User.current = nil | 31 User.current = nil |
32 end | 32 end |
33 | 33 |
34 def test_index | 34 def test_index |
35 get :index | 35 get :index |
36 assert_response :success | 36 assert_response :success |
37 assert_template 'index' | 37 assert_template 'index' |
38 assert_not_nil assigns(:newss) | 38 assert_not_nil assigns(:newss) |
39 assert_nil assigns(:project) | 39 assert_nil assigns(:project) |
40 end | 40 end |
41 | 41 |
42 def test_index_with_project | 42 def test_index_with_project |
43 get :index, :project_id => 1 | 43 get :index, :project_id => 1 |
44 assert_response :success | 44 assert_response :success |
45 assert_template 'index' | 45 assert_template 'index' |
46 assert_not_nil assigns(:newss) | 46 assert_not_nil assigns(:newss) |
47 end | 47 end |
48 | 48 |
49 def test_show | 49 def test_show |
50 get :show, :id => 1 | 50 get :show, :id => 1 |
51 assert_response :success | 51 assert_response :success |
52 assert_template 'show' | 52 assert_template 'show' |
53 assert_tag :tag => 'h2', :content => /eCookbook first release/ | 53 assert_tag :tag => 'h2', :content => /eCookbook first release/ |
54 end | 54 end |
55 | 55 |
56 def test_show_not_found | 56 def test_show_not_found |
57 get :show, :id => 999 | 57 get :show, :id => 999 |
58 assert_response 404 | 58 assert_response 404 |
59 end | 59 end |
60 | 60 |
61 def test_get_new | 61 def test_get_new |
62 @request.session[:user_id] = 2 | 62 @request.session[:user_id] = 2 |
63 get :new, :project_id => 1 | 63 get :new, :project_id => 1 |
64 assert_response :success | 64 assert_response :success |
65 assert_template 'new' | 65 assert_template 'new' |
66 end | 66 end |
67 | 67 |
68 def test_post_create | 68 def test_post_create |
69 ActionMailer::Base.deliveries.clear | 69 ActionMailer::Base.deliveries.clear |
70 Setting.notified_events << 'news_added' | 70 Setting.notified_events << 'news_added' |
71 | 71 |
72 @request.session[:user_id] = 2 | 72 @request.session[:user_id] = 2 |
73 post :create, :project_id => 1, :news => { :title => 'NewsControllerTest', | 73 post :create, :project_id => 1, :news => { :title => 'NewsControllerTest', |
74 :description => 'This is the description', | 74 :description => 'This is the description', |
75 :summary => '' } | 75 :summary => '' } |
76 assert_redirected_to '/projects/ecookbook/news' | 76 assert_redirected_to '/projects/ecookbook/news' |
77 | 77 |
78 news = News.find_by_title('NewsControllerTest') | 78 news = News.find_by_title('NewsControllerTest') |
79 assert_not_nil news | 79 assert_not_nil news |
80 assert_equal 'This is the description', news.description | 80 assert_equal 'This is the description', news.description |
81 assert_equal User.find(2), news.author | 81 assert_equal User.find(2), news.author |
82 assert_equal Project.find(1), news.project | 82 assert_equal Project.find(1), news.project |
83 assert_equal 1, ActionMailer::Base.deliveries.size | 83 assert_equal 1, ActionMailer::Base.deliveries.size |
84 end | 84 end |
85 | 85 |
86 def test_get_edit | 86 def test_get_edit |
87 @request.session[:user_id] = 2 | 87 @request.session[:user_id] = 2 |
88 get :edit, :id => 1 | 88 get :edit, :id => 1 |
89 assert_response :success | 89 assert_response :success |
90 assert_template 'edit' | 90 assert_template 'edit' |
91 end | 91 end |
92 | 92 |
93 def test_put_update | 93 def test_put_update |
94 @request.session[:user_id] = 2 | 94 @request.session[:user_id] = 2 |
95 put :update, :id => 1, :news => { :description => 'Description changed by test_post_edit' } | 95 put :update, :id => 1, :news => { :description => 'Description changed by test_post_edit' } |
96 assert_redirected_to '/news/1' | 96 assert_redirected_to '/news/1' |
97 news = News.find(1) | 97 news = News.find(1) |
108 assert_not_nil assigns(:news) | 108 assert_not_nil assigns(:news) |
109 assert assigns(:news).new_record? | 109 assert assigns(:news).new_record? |
110 assert_tag :tag => 'div', :attributes => { :id => 'errorExplanation' }, | 110 assert_tag :tag => 'div', :attributes => { :id => 'errorExplanation' }, |
111 :content => /1 error/ | 111 :content => /1 error/ |
112 end | 112 end |
113 | 113 |
114 def test_destroy | 114 def test_destroy |
115 @request.session[:user_id] = 2 | 115 @request.session[:user_id] = 2 |
116 delete :destroy, :id => 1 | 116 delete :destroy, :id => 1 |
117 assert_redirected_to '/projects/ecookbook/news' | 117 assert_redirected_to '/projects/ecookbook/news' |
118 assert_nil News.find_by_id(1) | 118 assert_nil News.find_by_id(1) |