user_steps.rb revision f234ff491d735cd26625c054934d2f3d81b3800c
00133496214b7857c585356b36b469a0e3d94b1fSascha GraefGiven(/^I visit the landing page\.$/) do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef visit root_path
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graefend
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef
f7670322c267c298084c3b40ed196cdf9a1f2bc7Sascha GraefWhen(/^I fill in the registration form\.$/) do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef within "#new_user" do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef fill_in 'user_email', :with => 'foobar@example.com'
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef fill_in 'user_name', :with => 'Foo Bar'
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef fill_in 'user_password', :with => 'simple-password'
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef end
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graefend
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha GraefWhen(/^click on the singup button\.$/) do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef within "#new_user" do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef click_on 'Sign Up'
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef end
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graefend
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef
00133496214b7857c585356b36b469a0e3d94b1fSascha GraefThen(/^I should be on the after signup page$/) do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef page.should have_content("Need Help?")
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef page.should have_content("Welcome Foo Bar")
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef current_path.should eq("/after_signup")
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graefend
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef
f7670322c267c298084c3b40ed196cdf9a1f2bc7Sascha GraefThen(/^a new User with the given values is registered\.$/) do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef @user = User.find_by_email("foobar@example.com")
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef @user.should_not be_nil
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graefend
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef
f7670322c267c298084c3b40ed196cdf9a1f2bc7Sascha GraefThen(/^he is not confirmed\.$/) do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef @user.confirmed_at.should be_nil
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef @user.confirmation_token.should_not be_nil
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graefend
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef
f7670322c267c298084c3b40ed196cdf9a1f2bc7Sascha GraefGiven(/^I am a registered and confirmed user\.$/) do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef @password = SecureRandom.hex(10)
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef @user = FactoryGirl.create :user, :password => @password
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef @user.confirmed_at = Time.now
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef @user.save!
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graefend
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef
f7670322c267c298084c3b40ed196cdf9a1f2bc7Sascha GraefWhen(/^I fill in the login form\.$/) do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef within '#sign_in' do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef fill_in 'user_email', :with => @user.email
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef fill_in 'user_password', :with => @password
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef end
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graefend
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef
f7670322c267c298084c3b40ed196cdf9a1f2bc7Sascha GraefWhen(/^click on the sign in button\.$/) do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef within '#sign_in' do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef click_on 'Sign In'
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef end
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graefend
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef
00133496214b7857c585356b36b469a0e3d94b1fSascha GraefThen(/^I should be logged in\.$/) do
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef page.should have_content(@user.name)
b1ad052ea08cb4d92c02938aada49fd4230202c7Sascha Graef page.should have_content("Signed in successfully")
bf1c90d1ef911ed312664a23d709363d359be380Sascha Graefend
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim ReddehaseGiven(/^that I am really logged in$/) do
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase steps %Q{
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase Given I am a registered and confirmed user.
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase And I visit the landing page.
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase When I fill in the login form.
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase And click on the sign in button.
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase Then I should be logged in.
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase }
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehaseend
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim ReddehaseGiven(/^I visit the Account page$/) do
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase visit root_path
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase click_on 'Account'
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehaseend
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim ReddehaseGiven(/^there is no existing API\-Key$/) do
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase expect { find('form#new_api_key input#api_key_key') }.
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase to raise_error(Capybara::ElementNotFound)
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehaseend
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase
f234ff491d735cd26625c054934d2f3d81b3800cTim ReddehaseWhen(/^I click on the generate button$/) do
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase find('form#new_api_key input[name=commit]').click
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehaseend
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase
f234ff491d735cd26625c054934d2f3d81b3800cTim ReddehaseThen(/^I should see an API\-Key$/) do
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase expect(find('form#new_api_key input#api_key_key').value).
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase to eq(@user.api_keys.valid.first.key)
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehaseend
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim ReddehaseGiven(/^I have an API-Key$/) do
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase @api_key = ApiKey.create_new_key!(@user)
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehaseend
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase
f234ff491d735cd26625c054934d2f3d81b3800cTim ReddehaseThen(/^I should see the existing API\-Key$/) do
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase expect(find('form#new_api_key input#api_key_key').value).
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase to eq(@api_key.key)
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehaseend
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase
f234ff491d735cd26625c054934d2f3d81b3800cTim ReddehaseThen(/^I should see the new API\-Key$/) do
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase key = find('form#new_api_key input#api_key_key').value
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase expect(key).to eq(@user.api_keys.valid.first.key)
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehase expect(key).to_not eq(@api_key.key)
662658d7a0cb0756c9fa24eaa64ac7bada84e142Tim Reddehaseend