comparison test/functional/.svn/text-base/projects_controller_test.rb.svn-base @ 117:af80e5618e9b redmine-1.1

* Update to Redmine 1.1-stable branch (Redmine SVN rev 4707)
author Chris Cannam
date Thu, 13 Jan 2011 12:53:21 +0000
parents 94944d00e43c
children cbce1fd3b1b7
comparison
equal deleted inserted replaced
39:150ceac17a8d 117:af80e5618e9b
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.dirname(__FILE__) + '/../test_helper' 18 require File.expand_path('../../test_helper', __FILE__)
19 require 'projects_controller' 19 require 'projects_controller'
20 20
21 # Re-raise errors caught by the controller. 21 # Re-raise errors caught by the controller.
22 class ProjectsController; def rescue_action(e) raise e end; end 22 class ProjectsController; def rescue_action(e) raise e end; end
23 23
142 setup do 142 setup do
143 @request.session[:user_id] = 1 143 @request.session[:user_id] = 1
144 end 144 end
145 145
146 should "create a new project" do 146 should "create a new project" do
147 post :create, :project => { :name => "blog", 147 post :create,
148 :description => "weblog", 148 :project => {
149 :identifier => "blog", 149 :name => "blog",
150 :is_public => 1, 150 :description => "weblog",
151 :custom_field_values => { '3' => 'Beta' } 151 :homepage => 'http://weblog',
152 } 152 :identifier => "blog",
153 :is_public => 1,
154 :custom_field_values => { '3' => 'Beta' },
155 :tracker_ids => ['1', '3'],
156 # an issue custom field that is not for all project
157 :issue_custom_field_ids => ['9'],
158 :enabled_module_names => ['issue_tracking', 'news', 'repository']
159 }
153 assert_redirected_to '/projects/blog/settings' 160 assert_redirected_to '/projects/blog/settings'
154 161
155 project = Project.find_by_name('blog') 162 project = Project.find_by_name('blog')
156 assert_kind_of Project, project 163 assert_kind_of Project, project
164 assert project.active?
157 assert_equal 'weblog', project.description 165 assert_equal 'weblog', project.description
166 assert_equal 'http://weblog', project.homepage
158 assert_equal true, project.is_public? 167 assert_equal true, project.is_public?
159 assert_nil project.parent 168 assert_nil project.parent
169 assert_equal 'Beta', project.custom_value_for(3).value
170 assert_equal [1, 3], project.trackers.map(&:id).sort
171 assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
172 assert project.issue_custom_fields.include?(IssueCustomField.find(9))
160 end 173 end
161 174
162 should "create a new subproject" do 175 should "create a new subproject" do
163 post :create, :project => { :name => "blog", 176 post :create, :project => { :name => "blog",
164 :description => "weblog", 177 :description => "weblog",
184 should "accept create a Project" do 197 should "accept create a Project" do
185 post :create, :project => { :name => "blog", 198 post :create, :project => { :name => "blog",
186 :description => "weblog", 199 :description => "weblog",
187 :identifier => "blog", 200 :identifier => "blog",
188 :is_public => 1, 201 :is_public => 1,
189 :custom_field_values => { '3' => 'Beta' } 202 :custom_field_values => { '3' => 'Beta' },
203 :tracker_ids => ['1', '3'],
204 :enabled_module_names => ['issue_tracking', 'news', 'repository']
190 } 205 }
191 206
192 assert_redirected_to '/projects/blog/settings' 207 assert_redirected_to '/projects/blog/settings'
193 208
194 project = Project.find_by_name('blog') 209 project = Project.find_by_name('blog')
195 assert_kind_of Project, project 210 assert_kind_of Project, project
196 assert_equal 'weblog', project.description 211 assert_equal 'weblog', project.description
197 assert_equal true, project.is_public? 212 assert_equal true, project.is_public?
213 assert_equal [1, 3], project.trackers.map(&:id).sort
214 assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
198 215
199 # User should be added as a project member 216 # User should be added as a project member
200 assert User.find(9).member_of?(project) 217 assert User.find(9).member_of?(project)
201 assert_equal 1, project.members.size 218 assert_equal 1, project.members.size
202 end 219 end
269 assert_not_nil project.errors.on(:parent_id) 286 assert_not_nil project.errors.on(:parent_id)
270 end 287 end
271 end 288 end
272 end 289 end
273 290
291 def test_create_should_not_accept_get
292 @request.session[:user_id] = 1
293 get :create
294 assert_response :method_not_allowed
295 end
296
274 def test_show_by_id 297 def test_show_by_id
275 get :show, :id => 1 298 get :show, :id => 1
276 assert_response :success 299 assert_response :success
277 assert_template 'show' 300 assert_template 'show'
278 assert_not_nil assigns(:project) 301 assert_not_nil assigns(:project)
345 post :update, :id => 1, :project => {:name => 'Test changed name', 368 post :update, :id => 1, :project => {:name => 'Test changed name',
346 :issue_custom_field_ids => ['']} 369 :issue_custom_field_ids => ['']}
347 assert_redirected_to '/projects/ecookbook/settings' 370 assert_redirected_to '/projects/ecookbook/settings'
348 project = Project.find(1) 371 project = Project.find(1)
349 assert_equal 'Test changed name', project.name 372 assert_equal 'Test changed name', project.name
373 end
374
375 def test_modules
376 @request.session[:user_id] = 2
377 Project.find(1).enabled_module_names = ['issue_tracking', 'news']
378
379 post :modules, :id => 1, :enabled_module_names => ['issue_tracking', 'repository', 'documents']
380 assert_redirected_to '/projects/ecookbook/settings/modules'
381 assert_equal ['documents', 'issue_tracking', 'repository'], Project.find(1).enabled_module_names.sort
382 end
383
384 def test_modules_should_not_allow_get
385 @request.session[:user_id] = 1
386 get :modules, :id => 1
387 assert_response :method_not_allowed
350 end 388 end
351 389
352 def test_get_destroy 390 def test_get_destroy
353 @request.session[:user_id] = 1 # admin 391 @request.session[:user_id] = 1 # admin
354 get :destroy, :id => 1 392 get :destroy, :id => 1
416 454
417 should "redirect to the project settings when successful" do 455 should "redirect to the project settings when successful" do
418 @request.session[:user_id] = 1 # admin 456 @request.session[:user_id] = 1 # admin
419 post :copy, :id => 1, :project => {:name => 'Copy', :identifier => 'unique-copy'} 457 post :copy, :id => 1, :project => {:name => 'Copy', :identifier => 'unique-copy'}
420 assert_response :redirect 458 assert_response :redirect
421 assert_redirected_to :controller => 'projects', :action => 'settings' 459 assert_redirected_to :controller => 'projects', :action => 'settings', :id => 'unique-copy'
422 end 460 end
423 end 461 end
424 462
425 def test_jump_should_redirect_to_active_tab 463 def test_jump_should_redirect_to_active_tab
426 get :show, :id => 1, :jump => 'issues' 464 get :show, :id => 1, :jump => 'issues'