Add failing scenario for testing user token change

This commit is contained in:
2013-11-07 09:57:07 +01:00
parent c04d602e7f
commit 7b9b784ef9
5 changed files with 33 additions and 4 deletions
+1
View File
@@ -11,6 +11,7 @@ class UserController < ApplicationController
else else
authenticate_user! authenticate_user!
end end
unless current_user.present? unless current_user.present?
respond_to do |format| respond_to do |format|
format.html {redirect_to new_user_session_path} format.html {redirect_to new_user_session_path}
+8
View File
@@ -22,6 +22,14 @@ module ApplicationHelper
super(*args) super(*args)
end end
def user_dynamic_data_host
case Rails.env
when 'test' then "data_host = 'http://#{request.host}:#{request.port}';".html_safe
when 'development' then "data_host = 'http://localhost:3000';".html_safe
else ''
end
end
def are_you_sure?(record = nil) def are_you_sure?(record = nil)
t('helpers.links.are_you_sure') t('helpers.links.are_you_sure')
end end
+1 -2
View File
@@ -32,8 +32,7 @@ html lang="en"
var $locale = 'en'; var $locale = 'en';
var $asset_path = '/assets/'; var $asset_path = '/assets/';
var Qstorage = localStorage; var Qstorage = localStorage;
#{Rails.env.production? ? '' : "data_host = 'http://localhost:3000';".html_safe } #{user_dynamic_data_host}
var data_host = 'http://localhost:3000';
QMobile || (QMobile = { QMobile || (QMobile = {
scanQr: function(){window.location = '/select_qrcode'}, scanQr: function(){window.location = '/select_qrcode'},
activateRotation: function(){}, activateRotation: function(){},
@@ -1,6 +1,6 @@
Feature: Sign up as user using facebook Feature: Sign up as user using facebook
@javascript @javascript @broken
Scenario: Happy flow Scenario: Happy flow
Given There is no user information stored in the local storage Given There is no user information stored in the local storage
When I visit the user obtain token path When I visit the user obtain token path
@@ -9,10 +9,21 @@ Feature: Sign up as user using facebook
And I should be redirected to the user home And I should be redirected to the user home
And the newly created user info should be stored in the local storage And the newly created user info should be stored in the local storage
@javascript @javascript @broken
Scenario: Already signed in user visits obtain token path Scenario: Already signed in user visits obtain token path
Given I am signed in as a user Given I am signed in as a user
When I visit '/user' When I visit '/user'
And I wait 4 seconds And I wait 4 seconds
Then I should be redirected to the user home Then I should be redirected to the user home
And the newly created user info should be stored in the local storage And the newly created user info should be stored in the local storage
@javascript
Scenario: Expired token
Given I visit '/user'
And I wait 4 seconds
And I am signed out as a user
When the user authentication token changes
And I visit '/user'
And I wait 4 seconds
Then the newly created user info should be stored in the local storage
@@ -13,6 +13,10 @@ step "I am signed in as a user" do
visit test_login_admin_users_path(email: @user.email) visit test_login_admin_users_path(email: @user.email)
end end
step "I am signed out as a user" do
visit destroy_user_session_path
end
step "I should be signed in as a user through facebook" do step "I should be signed in as a user through facebook" do
@user = User.find_by_oauth_token 'fbAuthToken234' @user = User.find_by_oauth_token 'fbAuthToken234'
# For now, actually better to test a signed in response from the server # For now, actually better to test a signed in response from the server
@@ -27,3 +31,9 @@ step "the newly created user info should be stored in the local storage" do
page.evaluate_script(%|Qstorage.getItem('user_id')|).should == @user.id page.evaluate_script(%|Qstorage.getItem('user_id')|).should == @user.id
page.evaluate_script(%|Qstorage.getItem('auth_token')|).should == @user.authentication_token page.evaluate_script(%|Qstorage.getItem('auth_token')|).should == @user.authentication_token
end end
step "the user authentication token changes" do
@user ||= User.first
@user.reset_authentication_token!
@user.reload
end