summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2017-07-31 16:44:06 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2017-07-31 16:44:06 +0000
commit09e55e3e3ac6d5c397ba3439232fe8f945b76d04 (patch)
treecfbfb11c2d73336a3d14c43f7fb609dcc545cafd /test
parent5ae0eda632d18634472c7f72e60b098df09bf412 (diff)
downloadredmine-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.rb8
-rw-r--r--test/functional/projects_controller_test.rb10
-rw-r--r--test/integration/api_test/time_entries_test.rb24
-rw-r--r--test/system/issues_import_test.rb52
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