parent
28ff6e0fc9
commit
6702853a28
@ -1,51 +0,0 @@ |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# Copyright (C) 2012-2018 the OpenProject Foundation (OPF) |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: |
||||
# Copyright (C) 2006-2017 Jean-Philippe Lang |
||||
# Copyright (C) 2010-2013 the ChiliProject Team |
||||
# |
||||
# 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. |
||||
# |
||||
# See docs/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
Feature: Password Complexity Checks |
||||
Scenario: A user changing the password including attempts to set not complex enough passwords |
||||
Given passwords must contain 2 of lowercase, uppercase, and numeric characters |
||||
And passwords have a minimum length of 4 characters |
||||
And I am logged in |
||||
And I try to set my new password to "password" |
||||
Then there should be an error message |
||||
When I try to set my new password to "Password" |
||||
Then the password change should succeed |
||||
And I should be able to login using the new password |
||||
|
||||
Scenario: An admin can change the password complexity requirements and they are effective |
||||
Given I am already admin |
||||
When I go to the authentication tab of the settings page |
||||
And I activate the lowercase, uppercase, and special password rules |
||||
And I fill in "Minimum number of required classes" with "3" |
||||
And I save the settings |
||||
And I try to set my new password to "adminADMIN" |
||||
Then there should be an error message |
||||
And I try to set my new password to "adminADMIN123" |
||||
Then there should be an error message |
||||
And I try to set my new password to "adminADMIN!" |
||||
Then the password change should succeed |
@ -0,0 +1,50 @@ |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# Copyright (C) 2012-2018 the OpenProject Foundation (OPF) |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: |
||||
# Copyright (C) 2006-2017 Jean-Philippe Lang |
||||
# Copyright (C) 2010-2013 the ChiliProject Team |
||||
# |
||||
# 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. |
||||
# |
||||
# See docs/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
require 'support/pages/page' |
||||
|
||||
module Pages |
||||
module My |
||||
class PasswordPage < ::Pages::Page |
||||
|
||||
def path |
||||
'/my/password' |
||||
end |
||||
|
||||
def change_password(old_password, new_password, confirmation = new_password) |
||||
# use find and set with id to prevent ambiguous match I get with fill_in |
||||
page.find('#password').set(old_password) |
||||
|
||||
page.fill_in('new_password', with: new_password) |
||||
page.fill_in('new_password_confirmation', with: confirmation) |
||||
|
||||
page.click_link_or_button 'Save' |
||||
end |
||||
end |
||||
end |
||||
end |
Loading…
Reference in new issue