user_steps.rb revision 662658d7a0cb0756c9fa24eaa64ac7bada84e142
02c335c23bf5fa225a467c19f2c063fb0dc7b8c3Timo SirainenGiven(/^I visit the landing page\.$/) do
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen visit root_path
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainenend
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen
315ce5be539bfe8bc7777ab0654499c49583cea2Timo SirainenWhen(/^I fill in the registration form\.$/) do
dd3ccdbb29dad006f7781ea138a5ba39727963c4Timo Sirainen within "#new_user" do
a338794c56fc9674121e262fcb67c3dc1da31436Timo Sirainen fill_in 'user_email', :with => 'foobar@example.com'
419be6cd72f6e11705576bbba683b29c32eaa762Timo Sirainen fill_in 'user_name', :with => 'Foo Bar'
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen fill_in 'user_password', :with => 'simple-password'
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen end
dd3ccdbb29dad006f7781ea138a5ba39727963c4Timo Sirainenend
c4390dad33b03dd51ba2a475f550347c86ebdb9aTimo Sirainen
dd3ccdbb29dad006f7781ea138a5ba39727963c4Timo SirainenWhen(/^click on the singup button\.$/) do
38f624b427aa8b6fad3765e6efd97c85a7f97a09Timo Sirainen within "#new_user" do
6b6011c2242e470b41316f92512b282b5e306dacTimo Sirainen click_on 'Sign Up'
18458233e89c8467e30d8b93b1823128f26bc174Timo Sirainen end
ffaa309c211897ab875bbe0b093bc7e709bb1e5dTimo Sirainenend
a566d9f8797dd66b4d5432a20ab2b9f7c8f76102Timo Sirainen
42abccd9b2a5a4190bd3c14ec2dcc10d51c0f491Timo SirainenThen(/^I should be on the after signup page$/) do
c2ebc8f28b5504f280cd5d4adfe57ed70f9a7d83Timo Sirainen page.should have_content("Need Help?")
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen page.should have_content("Welcome Foo Bar")
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen current_path.should eq("/after_signup")
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainenend
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen
c2ebc8f28b5504f280cd5d4adfe57ed70f9a7d83Timo SirainenThen(/^a new User with the given values is registered\.$/) do
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen @user = User.find_by_email("foobar@example.com")
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen @user.should_not be_nil
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainenend
458acd7b39c84bae0d18c36ff9ddff9a49b4ae4aTimo Sirainen
78a5b3e697af5db96fe0dffed600b0d6370bb8e5Timo SirainenThen(/^he is not confirmed\.$/) do
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen @user.confirmed_at.should be_nil
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen @user.confirmation_token.should_not be_nil
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainenend
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen
c2ebc8f28b5504f280cd5d4adfe57ed70f9a7d83Timo SirainenGiven(/^I am a registered and confirmed user\.$/) do
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen @password = SecureRandom.hex(10)
c2ebc8f28b5504f280cd5d4adfe57ed70f9a7d83Timo Sirainen
3b22894b8805b186c73d8b754001e8d7e944be85Timo Sirainen @user = FactoryGirl.create :user, :password => @password
3b22894b8805b186c73d8b754001e8d7e944be85Timo Sirainen @user.confirmed_at = Time.now
3b22894b8805b186c73d8b754001e8d7e944be85Timo Sirainen @user.save!
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainenend
a50f8b9c6196b0f0bb0a7aac3ae9c12b1c42b93bTimo Sirainen
eed0a07ecb946ec9d021f5b413fb33eb36e135fdTimo SirainenWhen(/^I fill in the login form\.$/) do
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen within '#sign_in' do
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen fill_in 'user_email', :with => @user.email
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen fill_in 'user_password', :with => @password
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen end
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainenend
89502bb187e8285b2a155559894ca80374ac3ae7Timo Sirainen
eed03830015b7138b9d4522e72bef650aa24b45fTimo SirainenWhen(/^click on the sign in button\.$/) do
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen within '#sign_in' do
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen click_on 'Sign In'
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen end
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainenend
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen
eed03830015b7138b9d4522e72bef650aa24b45fTimo SirainenThen(/^I should be logged in\.$/) do
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen page.should have_content(@user.name)
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen page.should have_content("Signed in successfully")
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainenend
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen
eed03830015b7138b9d4522e72bef650aa24b45fTimo SirainenGiven(/^that I am really logged in$/) do
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen steps %Q{
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen Given I am a registered and confirmed user.
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen And I visit the landing page.
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen When I fill in the login form.
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen And click on the sign in button.
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen Then I should be logged in.
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen }
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainenend
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen
eed03830015b7138b9d4522e72bef650aa24b45fTimo SirainenGiven(/^I visit the Account page$/) do
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen visit root_path
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen click_on 'Account'
d65cc3312d3126d34b51ae8eccd6b48215d50029Timo Sirainenend
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo SirainenGiven(/^there is no existing API\-Key$/) do
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen expect { find('form#new_api_key input#api_key_key') }.
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen to raise_error(Capybara::ElementNotFound)
b015d3d3af5b1c0fd526f31d78229bf9f633db56Timo Sirainenend
a566d9f8797dd66b4d5432a20ab2b9f7c8f76102Timo Sirainen
315ce5be539bfe8bc7777ab0654499c49583cea2Timo SirainenWhen(/^i click on the generate button$/) do
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen find('form#new_api_key input[name=commit]').click
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainenend
eed03830015b7138b9d4522e72bef650aa24b45fTimo Sirainen
fcd443a32b01c4da131f36649d5a5fa5f8452dcfTimo SirainenThen(/^i should see an API\-Key$/) do
fcd443a32b01c4da131f36649d5a5fa5f8452dcfTimo Sirainen expect(find('form#new_api_key input#api_key_key').value).
d65cc3312d3126d34b51ae8eccd6b48215d50029Timo Sirainen to eq(@user.api_keys.valid.first.key)
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainenend
315ce5be539bfe8bc7777ab0654499c49583cea2Timo Sirainen
315ce5be539bfe8bc7777ab0654499c49583cea2Timo SirainenGiven(/^I have an API-Key$/) do
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen @api_key = ApiKey.create_new_key!(@user)
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainenend
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo SirainenThen(/^i should see the existing API\-Key$/) do
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen expect(find('form#new_api_key input#api_key_key').value).
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen to eq(@api_key.key)
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainenend
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo SirainenThen(/^i should see the new API\-Key$/) do
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen key = find('form#new_api_key input#api_key_key').value
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen expect(key).to eq(@user.api_keys.valid.first.key)
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen expect(key).to_not eq(@api_key.key)
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainenend
4fbf59562594dbbbe037f8d4c480dbf88f3fc708Timo Sirainen