From 6c0fd9f29ad92b0f4b1cdea82a33d485622d0fd5 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 26 Jun 2013 21:34:20 +0300 Subject: [PATCH] Add scenario for expired password --- features/profile/profile.feature | 7 +++++ features/steps/profile/profile.rb | 48 +++++++++++++++++++++---------- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/features/profile/profile.feature b/features/profile/profile.feature index 95b85a9f911..6d3dd7841fd 100644 --- a/features/profile/profile.feature +++ b/features/profile/profile.feature @@ -16,6 +16,13 @@ Feature: Profile Then I change my password And I should be redirected to sign in page + Scenario: My password is expired + Given my password is expired + And I visit profile account page + Then I redirected to expired password page + And I submit new password + And I redirected to sign in page + Scenario: I unsuccessfully change my password Given I visit profile account page When I unsuccessfully change my password diff --git a/features/steps/profile/profile.rb b/features/steps/profile/profile.rb index c1fe00c8e65..4c33fb7f9fc 100644 --- a/features/steps/profile/profile.rb +++ b/features/steps/profile/profile.rb @@ -2,13 +2,13 @@ class Profile < Spinach::FeatureSteps include SharedAuthentication include SharedPaths - Then 'I should see my profile info' do + step 'I should see my profile info' do page.should have_content "Profile" page.should have_content @user.name page.should have_content @user.email end - Then 'I change my contact info' do + step 'I change my contact info' do fill_in "user_skype", with: "testskype" fill_in "user_linkedin", with: "testlinkedin" fill_in "user_twitter", with: "testtwitter" @@ -16,13 +16,13 @@ class Profile < Spinach::FeatureSteps @user.reload end - And 'I should see new contact info' do + step 'I should see new contact info' do @user.skype.should == 'testskype' @user.linkedin.should == 'testlinkedin' @user.twitter.should == 'testtwitter' end - Then 'I change my password' do + step 'I change my password' do within '.update-password' do fill_in "user_password", with: "222333" fill_in "user_password_confirmation", with: "222333" @@ -30,7 +30,7 @@ class Profile < Spinach::FeatureSteps end end - When 'I unsuccessfully change my password' do + step 'I unsuccessfully change my password' do within '.update-password' do fill_in "user_password", with: "password" fill_in "user_password_confirmation", with: "confirmation" @@ -38,52 +38,70 @@ class Profile < Spinach::FeatureSteps end end - Then "I should see a password error message" do + step "I should see a password error message" do page.should have_content "Password doesn't match confirmation" end - And 'I should be redirected to sign in page' do + step 'I should be redirected to sign in page' do current_path.should == new_user_session_path end - Then 'I reset my token' do + step 'I reset my token' do within '.update-token' do @old_token = @user.private_token click_button "Reset" end end - And 'I should see new token' do + step 'I should see new token' do find("#token").value.should_not == @old_token find("#token").value.should == @user.reload.private_token end - Given 'I have activity' do + step 'I have activity' do create(:closed_issue_event, author: current_user) end - Then 'I should see my activity' do + step 'I should see my activity' do page.should have_content "#{current_user.name} closed issue" end - When "I change my application theme" do + step "I change my application theme" do within '.application-theme' do choose "Violet" end end - When "I change my code preview theme" do + step "I change my code preview theme" do within '.code-preview-theme' do choose "Solarized dark" end end - Then "I should see the theme change immediately" do + step "I should see the theme change immediately" do page.should have_selector('body.ui_color') page.should_not have_selector('body.ui_basic') end - Then "I should receive feedback that the changes were saved" do + step "I should receive feedback that the changes were saved" do page.should have_content("Saved") end + + step 'my password is expired' do + current_user.update_attributes(password_expires_at: Time.now - 1.hour) + end + + step 'I redirected to expired password page' do + current_path.should == new_profile_password_path + end + + step 'I submit new password' do + fill_in :user_password, with: '12345678' + fill_in :user_password_confirmation, with: '12345678' + click_button "Set new password" + end + + step 'I redirected to sign in page' do + current_path.should == new_user_session_path + end end