profile.rb 6.5 KB
Newer Older
1
class Spinach::Features::Profile < Spinach::FeatureSteps
N
Nihad Abbasov 已提交
2 3
  include SharedAuthentication
  include SharedPaths
4

5
  step 'I should see my profile info' do
S
Sabba Petri 已提交
6
    page.should have_content "Profile Settings"
7 8
  end

J
Jerome Dalbert 已提交
9
  step 'I change my profile info' do
10 11 12
    fill_in "user_skype", with: "testskype"
    fill_in "user_linkedin", with: "testlinkedin"
    fill_in "user_twitter", with: "testtwitter"
J
Jerome Dalbert 已提交
13
    fill_in "user_website_url", with: "testurl"
14
    fill_in "user_location", with: "Ukraine"
15
    click_button "Save changes"
16 17 18
    @user.reload
  end

J
Jerome Dalbert 已提交
19
  step 'I should see new profile info' do
20 21 22
    @user.skype.should == 'testskype'
    @user.linkedin.should == 'testlinkedin'
    @user.twitter.should == 'testtwitter'
J
Jerome Dalbert 已提交
23
    @user.website_url.should == 'testurl'
24
    find("#user_location").value.should == "Ukraine"
25 26
  end

S
Steven Thonus 已提交
27 28 29 30 31 32 33
  step 'I change my avatar' do
    attach_file(:user_avatar, File.join(Rails.root, 'public', 'gitlab_logo.png'))
    click_button "Save changes"
    @user.reload
  end

  step 'I should see new avatar' do
D
Douwe Maan 已提交
34
    @user.avatar.should be_instance_of AvatarUploader
S
Steven Thonus 已提交
35 36 37
    @user.avatar.url.should == "/uploads/user/avatar/#{ @user.id }/gitlab_logo.png"
  end

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
  step 'I should see the "Remove avatar" button' do
    page.should have_link("Remove avatar")
  end

  step 'I have an avatar' do
    attach_file(:user_avatar, File.join(Rails.root, 'public', 'gitlab_logo.png'))
    click_button "Save changes"
    @user.reload
  end

  step 'I remove my avatar' do
    click_link "Remove avatar"
    @user.reload
  end

  step 'I should see my gravatar' do
    @user.avatar?.should be_false
  end

  step 'I should not see the "Remove avatar" button' do
    page.should_not have_link("Remove avatar")
  end

61 62
  step 'I try change my password w/o old one' do
    within '.update-password' do
63
      fill_in "user_password", with: "22233344"
64
      fill_in "user_password_confirmation", with: "22233344"
65 66 67 68
      click_button "Save"
    end
  end

69
  step 'I change my password' do
70
    within '.update-password' do
71
      fill_in "user_current_password", with: "12345678"
72
      fill_in "user_password", with: "22233344"
73
      fill_in "user_password_confirmation", with: "22233344"
74 75
      click_button "Save"
    end
76 77
  end

78
  step 'I unsuccessfully change my password' do
79
    within '.update-password' do
80
      fill_in "user_current_password", with: "12345678"
81
      fill_in "user_password", with: "password"
82 83 84
      fill_in "user_password_confirmation", with: "confirmation"
      click_button "Save"
    end
85 86
  end

87 88 89 90
  step "I should see a missing password error message" do
    page.should have_content "You must provide a valid current password"
  end

91
  step "I should see a password error message" do
D
Dmitriy Zaporozhets 已提交
92
    page.should have_content "Password confirmation doesn't match"
93 94
  end

95
  step 'I reset my token' do
96 97 98 99
    within '.update-token' do
      @old_token = @user.private_token
      click_button "Reset"
    end
100 101
  end

102
  step 'I should see new token' do
103 104 105
    find("#token").value.should_not == @old_token
    find("#token").value.should == @user.reload.private_token
  end
R
randx 已提交
106

107
  step 'I have activity' do
108
    create(:closed_issue_event, author: current_user)
R
randx 已提交
109 110
  end

111
  step 'I should see my activity' do
R
randx 已提交
112 113
    page.should have_content "#{current_user.name} closed issue"
  end
114

115
  step "I change my application theme" do
116 117 118
    within '.application-theme' do
      choose "Violet"
    end
119 120
  end

121
  step "I change my code preview theme" do
122
    within '.code-preview-theme' do
123
      choose "Solarized dark"
124
    end
125 126
  end

127
  step "I should see the theme change immediately" do
128 129 130 131
    page.should have_selector('body.ui_color')
    page.should_not have_selector('body.ui_basic')
  end

132
  step "I should receive feedback that the changes were saved" do
D
Dmitriy Zaporozhets 已提交
133
    page.should have_content("saved")
134
  end
135 136 137 138 139

  step 'my password is expired' do
    current_user.update_attributes(password_expires_at: Time.now - 1.hour)
  end

140
  step "I am not an ldap user" do
141
    current_user.identities.delete
142 143 144
    current_user.ldap_user?.should be_false
  end

145 146 147 148 149
  step 'I redirected to expired password page' do
    current_path.should == new_profile_password_path
  end

  step 'I submit new password' do
150
    fill_in :user_current_password, with: '12345678'
151
    fill_in :user_password, with: '12345678'
152 153 154 155 156 157 158
    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
159

D
Dmitriy Zaporozhets 已提交
160 161 162 163
  step 'I should be redirected to password page' do
    current_path.should == edit_profile_password_path
  end

164
  step 'I should be redirected to account page' do
D
Dmitriy Zaporozhets 已提交
165
    current_path.should == profile_account_path
166 167
  end

168 169 170 171 172 173 174 175 176 177 178
  step 'I click on my profile picture' do
    click_link 'profile-pic'
  end

  step 'I should see my user page' do
    page.should have_content "User Activity"

    within '.navbar-gitlab' do
      page.should have_content current_user.name
    end
  end
179 180 181 182 183 184

  step 'I have group with projects' do
    @group   = create(:group)
    @group.add_owner(current_user)
    @project = create(:project, namespace: @group)
    @event   = create(:closed_issue_event, project: @project)
185

186 187 188 189 190 191
    @project.team << [current_user, :master]
  end

  step 'I should see groups I belong to' do
    page.should have_css('.profile-groups-avatars', visible: true)
  end
V
Valery Sizov 已提交
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241

  step 'I click on new application button' do
    click_on 'New Application'
  end

  step 'I should see application form' do
    page.should have_content "New application"
  end

  step 'I fill application form out and submit' do
    fill_in :doorkeeper_application_name, with: 'test'
    fill_in :doorkeeper_application_redirect_uri, with: 'https://test.com'
    click_on "Submit"
  end

  step 'I see application' do
    page.should have_content "Application: test"
    page.should have_content "Application Id"
    page.should have_content "Secret"
  end

  step 'I click edit' do
    click_on "Edit"
  end

  step 'I see edit application form' do
    page.should have_content "Edit application"
  end

  step 'I change name of application and submit' do
    page.should have_content "Edit application"
    fill_in :doorkeeper_application_name, with: 'test_changed'
    click_on "Submit"
  end

  step 'I see that application was changed' do
    page.should have_content "test_changed"
    page.should have_content "Application Id"
    page.should have_content "Secret"
  end

  step 'I click to remove application' do
    within '.oauth-applications' do
      click_on "Destroy"
    end
  end

  step "I see that application is removed" do
    page.find(".oauth-applications").should_not have_content "test_changed"
  end
242
end