profile.rb 6.6 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
6
    page.should have_content "This information will appear on your profile"
7 8
  end

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

J
Jerome Dalbert 已提交
20
  step 'I should see new profile info' do
21 22 23 24 25 26
    expect(@user.skype).to eq 'testskype'
    expect(@user.linkedin).to eq 'testlinkedin'
    expect(@user.twitter).to eq 'testtwitter'
    expect(@user.website_url).to eq 'testurl'
    expect(@user.bio).to eq 'I <3 GitLab'
    find('#user_location').value.should == 'Ukraine'
27 28
  end

S
Steven Thonus 已提交
29 30 31 32 33 34 35
  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 已提交
36
    @user.avatar.should be_instance_of AvatarUploader
S
Steven Thonus 已提交
37 38 39
    @user.avatar.url.should == "/uploads/user/avatar/#{ @user.id }/gitlab_logo.png"
  end

40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
  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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

170
  step 'I click on my profile picture' do
171
    find(:css, '.sidebar-user').click
172 173 174 175 176 177 178 179 180
  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
181 182 183 184 185 186

  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)
187

188 189 190 191 192 193
    @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 已提交
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 242 243

  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
244
end