summaryrefslogtreecommitdiffstats
path: root/test/system/sudo_mode_test.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2017-07-23 12:35:32 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2017-07-23 12:35:32 +0000
commit530eef96033bf1474157bbc9c7739ff8dc7e2ae4 (patch)
treeeb4df8a4644addb29bcb34a9de4ad58ff702e42a /test/system/sudo_mode_test.rb
parentb25b4762046adf99809ce609529d16dd22e2a1b4 (diff)
downloadredmine-530eef96033bf1474157bbc9c7739ff8dc7e2ae4.tar.gz
redmine-530eef96033bf1474157bbc9c7739ff8dc7e2ae4.zip
Converts UI tests to system tests (#23630).
git-svn-id: http://svn.redmine.org/redmine/trunk@16864 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/system/sudo_mode_test.rb')
-rw-r--r--test/system/sudo_mode_test.rb68
1 files changed, 68 insertions, 0 deletions
diff --git a/test/system/sudo_mode_test.rb b/test/system/sudo_mode_test.rb
new file mode 100644
index 000000000..4d7e11bce
--- /dev/null
+++ b/test/system/sudo_mode_test.rb
@@ -0,0 +1,68 @@
+# 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 SudoModeTest < ApplicationSystemTestCase
+ fixtures :users, :email_addresses
+
+ def setup
+ Redmine::SudoMode.stubs(:enabled?).returns(true)
+ super
+ end
+
+ def teardown
+ travel_back
+ super
+ end
+
+ def test_add_user
+ log_user('admin', 'admin')
+ expire_sudo_mode!
+
+ visit '/users/new'
+
+ assert_difference 'User.count' do
+ within('form#new_user') do
+ fill_in 'Login', :with => 'johnpaul'
+ fill_in 'First name', :with => 'John'
+ fill_in 'Last name', :with => 'Paul'
+ fill_in 'Email', :with => 'john@example.net'
+ fill_in 'Password', :with => 'password'
+ fill_in 'Confirmation', :with => 'password'
+ # click_button 'Create' would match both 'Create' and 'Create and continue' buttons
+ find('input[name=commit]').click
+ end
+
+ assert_equal '/users', current_path
+ assert page.has_content?("Confirm your password to continue")
+ assert page.has_css?('form#sudo-form')
+
+ within('form#sudo-form') do
+ fill_in 'Password', :with => 'admin'
+ click_button 'Submit'
+ end
+ end
+ end
+
+ private
+
+ # sudo mode is active after sign, let it expire by advancing the time
+ def expire_sudo_mode!
+ travel_to 20.minutes.from_now
+ end
+end