##// END OF EJS Templates
Speeds up rendering of the project list for users who belong to hundreds of projects....
Speeds up rendering of the project list for users who belong to hundreds of projects. git-svn-id: http://svn.redmine.org/redmine/trunk@16123 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r15554:18073c971e69
r15741:f8df935dcada
Show More
versions_controller_test.rb
257 lines | 8.5 KiB | text/x-ruby | RubyLexer
/ test / functional / versions_controller_test.rb
Jean-Philippe Lang
Adds an option to view issues count by status on the version page (#7921)....
r5059 # Redmine - project management software
Jean-Philippe Lang
Updates copyright for 2016....
r14856 # Copyright (C) 2006-2016 Jean-Philippe Lang
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507 #
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507 #
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../test_helper', __FILE__)
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942
Jean-Philippe Lang
Adds our own class for controller tests....
r15279 class VersionsControllerTest < Redmine::ControllerTest
Toshi MARUYAMA
code layout clean up test/functional/versions_controller_test.rb...
r11544 fixtures :projects, :versions, :issues, :users, :roles, :members,
:member_roles, :enabled_modules, :issue_statuses,
Jean-Philippe Lang
Adds a link to spent time on version details (#13558)....
r15266 :issue_categories, :enumerations
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 def setup
User.current = nil
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 def test_index
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :params => {:project_id => 1}
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 assert_response :success
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 # Version with no date set appears
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 assert_select 'h3', :text => Version.find(3).name
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 # Completed version doesn't appear
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 assert_select 'h3', :text => Version.find(1).name, :count => 0
Jean-Baptiste Barth
Fixed broken context_menu on roadmap. #6351...
r3968 # Context menu on issues
Jean-Philippe Lang
Don't use a global variable for storing context menu URL....
r15554 assert_select "form[data-cm-url=?]", '/issues/context_menu'
Toshi MARUYAMA
use assert_select instead of assert_tag at versions index sidebar...
r11554 assert_select "div#sidebar" do
# Links to versions anchors
assert_select 'a[href=?]', '#2.0'
# Links to completed versions in the sidebar
assert_select 'a[href=?]', '/versions/1'
end
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 def test_index_with_completed_versions
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :params => {:project_id => 1, :completed => 1}
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 assert_response :success
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 # Version with no date set appears
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 assert_select 'h3', :text => Version.find(3).name
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 # Completed version appears
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 assert_select 'h3', :text => Version.find(1).name
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 end
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 def test_index_with_tracker_ids
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 (1..3).each do |tracker_id|
Issue.generate! :project_id => 1, :fixed_version_id => 3, :tracker_id => tracker_id
end
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :params => {:project_id => 1, :tracker_ids => [1, 3]}
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 assert_response :success
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 assert_select 'a.issue.tracker-1'
assert_select 'a.issue.tracker-2', 0
assert_select 'a.issue.tracker-3'
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 end
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 def test_index_showing_subprojects_versions
Jean-Philippe Lang
Removed some generate! calls....
r8959 @subproject_version = Version.create!(:project => Project.find(3), :name => "Subproject version")
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :params => {:project_id => 1, :with_subprojects => 1}
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 assert_response :success
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 # Shared version
assert_select 'h3', :text => Version.find(4).name
# Subproject version
assert_select 'h3', :text => /Subproject version/
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936 end
Jean-Philippe Lang
Fixed that roadmap anchor links can be ambigous (#11540)....
r10017 def test_index_should_prepend_shared_versions
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :index, :params => {:project_id => 1}
Jean-Philippe Lang
Fixed that roadmap anchor links can be ambigous (#11540)....
r10017 assert_response :success
assert_select '#sidebar' do
assert_select 'a[href=?]', '#2.0', :text => '2.0'
assert_select 'a[href=?]', '#subproject1-2.0', :text => 'eCookbook Subproject 1 - 2.0'
end
assert_select '#content' do
assert_select 'a[name=?]', '2.0', :text => '2.0'
assert_select 'a[name=?]', 'subproject1-2.0', :text => 'eCookbook Subproject 1 - 2.0'
end
end
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 def test_show
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :show, :params => {:id => 2}
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 assert_response :success
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Jean-Philippe Lang
Replaced remaining #assert_tag with #assert_select....
r13242 assert_select 'h2', :text => /1.0/
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Jean-Philippe Lang
Adds a link to spent time on version details (#13558)....
r15266 def test_show_should_link_to_spent_time_on_version
version = Version.generate!
issue = Issue.generate(:fixed_version => version)
TimeEntry.generate!(:issue => issue, :hours => 7.2)
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :show, :params => {:id => version.id}
Jean-Philippe Lang
Adds a link to spent time on version details (#13558)....
r15266 assert_response :success
assert_select '.total-hours', :text => '7.20 hours'
assert_select '.total-hours a[href=?]', "/projects/ecookbook/time_entries?issue.fixed_version_id=#{version.id}&set_filter=1"
end
Jean-Philippe Lang
Issues by Category should show tasks without category (#8106)....
r10549 def test_show_should_display_nil_counts
with_settings :default_language => 'en' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :show, :params => {:id => 2, :status_by => 'category'}
Jean-Philippe Lang
Issues by Category should show tasks without category (#8106)....
r10549 assert_response :success
assert_select 'div#status_by' do
assert_select 'select[name=status_by]' do
assert_select 'option[value=category][selected=selected]'
end
assert_select 'a', :text => 'none'
end
end
end
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 def test_new
@request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :new, :params => {:project_id => '1'}
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 assert_response :success
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 assert_select 'input[name=?]', 'version[name]'
Jean-Philippe Lang
Don't show "status" field when creating a new version (#23377)....
r15402 assert_select 'select[name=?]', 'version[status]', false
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 end
Jean-Philippe Lang
Displays the full form when creating a version from the issue form so that required custom fields can be filled (#7398)....
r8725 def test_new_from_issue_form
@request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :new, :params => {:project_id => '1'}
Jean-Philippe Lang
Displays the full form when creating a version from the issue form so that required custom fields can be filled (#7398)....
r8725 assert_response :success
Jean-Philippe Lang
Start removing the RJS stuff....
r9860 assert_equal 'text/javascript', response.content_type
Jean-Philippe Lang
Displays the full form when creating a version from the issue form so that required custom fields can be filled (#7398)....
r8725 end
Eric Davis
Refactor: split VersionsController#new into #new and #create...
r3976 def test_create
Jean-Philippe Lang
Moves ProjectsController#add_version to VersionsController#new....
r3434 @request.session[:user_id] = 2 # manager
assert_difference 'Version.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 post :create, :params => {:project_id => '1', :version => {:name => 'test_add_version'}}
Jean-Philippe Lang
Moves ProjectsController#add_version to VersionsController#new....
r3434 end
assert_redirected_to '/projects/ecookbook/settings/versions'
version = Version.find_by_name('test_add_version')
assert_not_nil version
assert_equal 1, version.project_id
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Eric Davis
Refactor: split VersionsController#new into #new and #create...
r3976 def test_create_from_issue_form
Jean-Philippe Lang
Displays the full form when creating a version from the issue form so that required custom fields can be filled (#7398)....
r8725 @request.session[:user_id] = 2
Jean-Philippe Lang
Moves ProjectsController#add_version to VersionsController#new....
r3434 assert_difference 'Version.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :create, :params => {:project_id => '1', :version => {:name => 'test_add_version_from_issue_form'}}
Jean-Philippe Lang
Moves ProjectsController#add_version to VersionsController#new....
r3434 end
version = Version.find_by_name('test_add_version_from_issue_form')
assert_not_nil version
assert_equal 1, version.project_id
Jean-Philippe Lang
Displays the full form when creating a version from the issue form so that required custom fields can be filled (#7398)....
r8725
assert_response :success
Jean-Philippe Lang
Start removing the RJS stuff....
r9860 assert_equal 'text/javascript', response.content_type
Jean-Philippe Lang
Do not propose non-assignable version (#11506)....
r9904 assert_include 'test_add_version_from_issue_form', response.body
Jean-Philippe Lang
Displays the full form when creating a version from the issue form so that required custom fields can be filled (#7398)....
r8725 end
def test_create_from_issue_form_with_failure
@request.session[:user_id] = 2
assert_no_difference 'Version.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :create, :params => {:project_id => '1', :version => {:name => ''}}
Jean-Philippe Lang
Displays the full form when creating a version from the issue form so that required custom fields can be filled (#7398)....
r8725 end
assert_response :success
Jean-Philippe Lang
Start removing the RJS stuff....
r9860 assert_equal 'text/javascript', response.content_type
Jean-Philippe Lang
Moves ProjectsController#add_version to VersionsController#new....
r3434 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 def test_get_edit
@request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :edit, :params => {:id => 2}
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 assert_response :success
Jean-Philippe Lang
Don't show "status" field when creating a new version (#23377)....
r15402 version = Version.find(2)
assert_select 'select[name=?]', 'version[status]' do
assert_select 'option[value=?][selected="selected"]', version.status
end
assert_select 'input[name=?][value=?]', 'version[name]', version.name
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Jean-Philippe Lang
Adds a link to automatically close completed versions in project settings (#1245)....
r2909 def test_close_completed
Version.update_all("status = 'open'")
@request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 put :close_completed, :params => {:project_id => 'ecookbook'}
Toshi MARUYAMA
code layout clean up test/functional/versions_controller_test.rb...
r11544 assert_redirected_to :controller => 'projects', :action => 'settings',
:tab => 'versions', :id => 'ecookbook'
Jean-Philippe Lang
Adds a link to automatically close completed versions in project settings (#1245)....
r2909 assert_not_nil Version.find_by_status('closed')
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Eric Davis
Refactor: Split VersionsController#edit into #edit and #update...
r3974 def test_post_update
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 @request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 put :update, :params => {
Jean-Philippe Lang
Don't show "status" field when creating a new version (#23377)....
r15402 :id => 2,
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 :version => {
:name => 'New version name',
:effective_date => Date.today.strftime("%Y-%m-%d")
}
}
Toshi MARUYAMA
code layout clean up test/functional/versions_controller_test.rb...
r11544 assert_redirected_to :controller => 'projects', :action => 'settings',
:tab => 'versions', :id => 'ecookbook'
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 version = Version.find(2)
assert_equal 'New version name', version.name
assert_equal Date.today, version.effective_date
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Jean-Philippe Lang
Fixed: "Template is missing" error when validation fails on version edit (#6766)....
r4240 def test_post_update_with_validation_failure
@request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 put :update, :params => {
:id => 2,
:version => {
:name => '',
:effective_date => Date.today.strftime("%Y-%m-%d")
}
}
Jean-Philippe Lang
Fixed: "Template is missing" error when validation fails on version edit (#6766)....
r4240 assert_response :success
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 assert_select_error /Name cannot be blank/
Jean-Philippe Lang
Fixed: "Template is missing" error when validation fails on version edit (#6766)....
r4240 end
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974
def test_destroy
@request.session[:user_id] = 2
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 assert_difference 'Version.count', -1 do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 delete :destroy, :params => {:id => 3}
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 end
Toshi MARUYAMA
code layout clean up test/functional/versions_controller_test.rb...
r11544 assert_redirected_to :controller => 'projects', :action => 'settings',
:tab => 'versions', :id => 'ecookbook'
Jean-Philippe Lang
Gantt chart: display issues that don't have a due date if they are assigned to a version with a date (#184)....
r1441 assert_nil Version.find_by_id(3)
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 def test_destroy_version_in_use_should_fail
@request.session[:user_id] = 2
assert_no_difference 'Version.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 delete :destroy, :params => {:id => 2}
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 end
Toshi MARUYAMA
code layout clean up test/functional/versions_controller_test.rb...
r11544 assert_redirected_to :controller => 'projects', :action => 'settings',
:tab => 'versions', :id => 'ecookbook'
Jean-Philippe Lang
Tests/cleanup VersionsController....
r7918 assert flash[:error].match(/Unable to delete version/)
assert Version.find_by_id(2)
end
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 def test_issue_status_by
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :status_by, :params => {:id => 2}
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 assert_response :success
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/versions_controller_test.rb....
r6507
Jean-Philippe Lang
Adds an option to view issues count by status on the version page (#7921)....
r5059 def test_issue_status_by_status
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :status_by, :params => {:id => 2, :status_by => 'status'}
Jean-Philippe Lang
Adds an option to view issues count by status on the version page (#7921)....
r5059 assert_response :success
Jean-Philippe Lang
Removes RJS from VersionsController....
r9869 assert_include 'Assigned', response.body
assert_include 'Closed', response.body
Jean-Philippe Lang
Adds an option to view issues count by status on the version page (#7921)....
r5059 end
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 end