diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2017-07-31 16:44:06 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2017-07-31 16:44:06 +0000 |
commit | 09e55e3e3ac6d5c397ba3439232fe8f945b76d04 (patch) | |
tree | cfbfb11c2d73336a3d14c43f7fb609dcc545cafd /test | |
parent | 5ae0eda632d18634472c7f72e60b098df09bf412 (diff) | |
download | redmine-09e55e3e3ac6d5c397ba3439232fe8f945b76d04.tar.gz redmine-09e55e3e3ac6d5c397ba3439232fe8f945b76d04.zip |
Adds a few tests.
git-svn-id: http://svn.redmine.org/redmine/trunk@16940 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/my_controller_test.rb | 8 | ||||
-rw-r--r-- | test/functional/projects_controller_test.rb | 10 | ||||
-rw-r--r-- | test/integration/api_test/time_entries_test.rb | 24 | ||||
-rw-r--r-- | test/system/issues_import_test.rb | 52 |
4 files changed, 94 insertions, 0 deletions
diff --git a/test/functional/my_controller_test.rb b/test/functional/my_controller_test.rb index 100a5e4a7..206bba4cf 100644 --- a/test/functional/my_controller_test.rb +++ b/test/functional/my_controller_test.rb @@ -229,6 +229,14 @@ class MyControllerTest < Redmine::ControllerTest assert_select 'select[name=?]', 'user[language]' end + def test_my_account_with_avatar_enabled_should_link_to_edit_avatar + with_settings :gravatar_enabled => '1' do + get :account + assert_response :success + assert_select 'a[href=?] img.gravatar', 'https://gravatar.com' + end + end + def test_my_account_should_not_show_language_select_with_force_default_language_for_loggedin with_settings :force_default_language_for_loggedin => '1' do get :account diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index 658efcc24..77480894a 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -64,6 +64,16 @@ class ProjectsControllerTest < Redmine::ControllerTest assert_equal 'text/javascript', response.content_type end + def test_autocomplete_js_with_blank_search_term + get :autocomplete, :params => { + :format => 'js', + :q => '' + }, + :xhr => true + assert_response :success + assert_equal 'text/javascript', response.content_type + end + test "#index by non-admin user with view_time_entries permission should show overall spent time link" do @request.session[:user_id] = 3 get :index diff --git a/test/integration/api_test/time_entries_test.rb b/test/integration/api_test/time_entries_test.rb index 70369c079..832619437 100644 --- a/test/integration/api_test/time_entries_test.rb +++ b/test/integration/api_test/time_entries_test.rb @@ -59,6 +59,11 @@ class Redmine::ApiTest::TimeEntriesTest < Redmine::ApiTest::Base assert_select 'time_entry id', :text => '2' end + test "GET /time_entries/:id.xml with invalid id should 404" do + get '/time_entries/999.xml', :headers => credentials('jsmith') + assert_response 404 + end + test "POST /time_entries.xml with issue_id should create time entry" do assert_difference 'TimeEntry.count' do post '/time_entries.xml', @@ -147,6 +152,14 @@ class Redmine::ApiTest::TimeEntriesTest < Redmine::ApiTest::Base assert_select 'errors error', :text => "Hours cannot be blank" end + test "PUT /time_entries/:id.xml without permissions should fail" do + put '/time_entries/2.xml', + :params => {:time_entry => {:hours => '2.3', :comments => 'API Update'}}, + :headers => credentials('dlopper') + + assert_response 403 + end + test "DELETE /time_entries/:id.xml should destroy time entry" do assert_difference 'TimeEntry.count', -1 do delete '/time_entries/2.xml', :headers => credentials('jsmith') @@ -155,4 +168,15 @@ class Redmine::ApiTest::TimeEntriesTest < Redmine::ApiTest::Base assert_equal '', @response.body assert_nil TimeEntry.find_by_id(2) end + + test "DELETE /time_entries/:id.xml with failure should return errors" do + TimeEntry.any_instance.stubs(:destroy).returns(false) + + assert_no_difference 'TimeEntry.count' do + delete '/time_entries/2.xml', :headers => credentials('jsmith') + end + assert_response :unprocessable_entity + assert_equal 'application/xml', @response.content_type + assert_select 'errors' + end end diff --git a/test/system/issues_import_test.rb b/test/system/issues_import_test.rb new file mode 100644 index 000000000..918282eaf --- /dev/null +++ b/test/system/issues_import_test.rb @@ -0,0 +1,52 @@ +# encoding: utf-8 +# +# Redmine - project management software +# Copyright (C) 2006-2017 Jean-Philippe Lang +# +# 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. +# +# 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. +# +# 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. + +require File.expand_path('../../application_system_test_case', __FILE__) + +class IssuesImportTest < ApplicationSystemTestCase + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, + :trackers, :projects_trackers, :enabled_modules, :issue_statuses, :issues, + :enumerations, :custom_fields, :custom_values, :custom_fields_trackers, + :watchers, :journals, :journal_details + + def test_import_issues_without_failures + log_user('jsmith', 'jsmith') + visit '/issues' + click_on 'Import' + + attach_file 'file', Rails.root.join('test/fixtures/files/import_issues.csv') + click_on 'Next »' + + select 'Semicolon', :from => 'Field separator' + select 'Double quote', :from => 'Field wrapper' + select 'ISO-8859-1', :from => 'Encoding' + select 'MM/DD/YYYY', :from => 'Date format' + click_on 'Next »' + + select 'eCookbook', :from => 'Project' + select 'tracker', :from => 'Tracker' + select 'status', :from => 'Status' + select 'subject', :from => 'Subject' + + assert_difference 'Issue.count', 3 do + click_button 'Import' + assert page.has_content?('3 items have been imported') + end + end +end |