Created
July 4, 2012 09:52
-
-
Save gabriel-dehan/3046442 to your computer and use it in GitHub Desktop.
Authentication integration test with rspec/devise
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module ApplicationHelper | |
# Public: display an inline user authentication interaction | |
# | |
# Returns the generated html String. | |
def display_user_authentication | |
if user_signed_in? | |
render 'devise/menu/logout_button' | |
else | |
render 'devise/menu/login_form' | |
end | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div id="header" class="navbar navbar-fixed-top"> | |
<div class="navbar-inner"> | |
<div class="container-fluid"> | |
<a class="brand" href="#">CoHoop</a> | |
<div class="btn-group pull-right"> | |
<%= display_user_authentication %> | |
</div> | |
<div class="nav-collapse"> | |
<ul class="nav"> | |
<li class="active"><a href="">Link</a></li> | |
</ul> | |
</div> | |
</div> | |
</div> | |
</div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<%= form_for(resource, as: resource_name, url: session_path(resource_name), html: { id: 'login-mini-form' }) do |f| %> | |
<%= f.email_field :email, placeholder: 'Your email' %> | |
<%= f.password_field :password, placeholder: '******' %> | |
<%= f.submit "Log in", id: 'login-button' %> | |
<%- if devise_mapping.rememberable? -%> | |
<%= f.check_box :remember_me %> <%= f.label :remember_me %> | |
<%- end -%> | |
<% end %> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'spec_helper' | |
describe "User authentication" do | |
describe 'action' do | |
# [...] | |
describe 'log in' do | |
before { visit root_path } | |
subject { page } | |
describe 'should be able to be performed' do | |
describe 'with valid credentials' do | |
before do | |
user = FactoryGirl.create(:user) | |
fill_in :user_email, with: user.email | |
fill_in :user_password, with: user.password | |
click_on 'Log in' | |
end | |
it { should have_link 'Log out' } | |
end | |
# [...] | |
end | |
end | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Connecting to database specified by database.yml | |
[1m[36m (0.3ms)[0m [1mbegin transaction[0m | |
Started GET "/users/sign_up" for 127.0.0.1 at 2012-07-04 11:36:06 +0200 | |
Processing by Devise::RegistrationsController#new as HTML | |
Rendered devise/registrations/new.html.erb within layouts/application (149.6ms) | |
Rendered devise/menu/_login_form.html.erb (2.0ms) | |
Rendered layouts/_header.html.erb (3.1ms) | |
Rendered shared/_flash_messages.html.erb (0.4ms) | |
Completed 200 OK in 201ms (Views: 180.9ms | ActiveRecord: 1.6ms) | |
Started POST "/users" for 127.0.0.1 at 2012-07-04 11:36:06 +0200 | |
Processing by Devise::RegistrationsController#create as HTML | |
Parameters: {"utf8"=>"✓", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"} | |
[1m[35m (0.1ms)[0m SAVEPOINT active_record_1 | |
[1m[36mUser Exists (0.1ms)[0m [1mSELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('') LIMIT 1[0m | |
[1m[35m (0.0ms)[0m ROLLBACK TO SAVEPOINT active_record_1 | |
Rendered devise/registrations/new.html.erb within layouts/application (7.0ms) | |
Rendered devise/menu/_login_form.html.erb (1.1ms) | |
Rendered layouts/_header.html.erb (1.5ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 67ms (Views: 10.5ms | ActiveRecord: 0.0ms) | |
[1m[36m (0.1ms)[0m [1mrollback transaction[0m | |
[1m[35m (0.0ms)[0m begin transaction | |
Started GET "/users/sign_up" for 127.0.0.1 at 2012-07-04 11:36:06 +0200 | |
Processing by Devise::RegistrationsController#new as HTML | |
Rendered devise/menu/_login_form.html.erb (1.0ms) | |
Rendered layouts/_header.html.erb (1.4ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 6ms (Views: 5.8ms | ActiveRecord: 0.0ms) | |
Started POST "/users" for 127.0.0.1 at 2012-07-04 11:36:06 +0200 | |
Processing by Devise::RegistrationsController#create as HTML | |
Parameters: {"utf8"=>"✓", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"} | |
[1m[36m (0.1ms)[0m [1mSAVEPOINT active_record_1[0m | |
[1m[35mUser Exists (0.1ms)[0m SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('') LIMIT 1 | |
[1m[36m (0.0ms)[0m [1mROLLBACK TO SAVEPOINT active_record_1[0m | |
Rendered devise/menu/_login_form.html.erb (1.2ms) | |
Rendered layouts/_header.html.erb (1.5ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 16ms (Views: 9.7ms | ActiveRecord: 0.0ms) | |
[1m[35m (0.0ms)[0m rollback transaction | |
[1m[36m (0.0ms)[0m [1mbegin transaction[0m | |
Started GET "/users/sign_up" for 127.0.0.1 at 2012-07-04 11:36:06 +0200 | |
Processing by Devise::RegistrationsController#new as HTML | |
Rendered devise/menu/_login_form.html.erb (1.1ms) | |
Rendered layouts/_header.html.erb (1.4ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 6ms (Views: 5.9ms | ActiveRecord: 0.0ms) | |
Started POST "/users" for 127.0.0.1 at 2012-07-04 11:36:06 +0200 | |
Processing by Devise::RegistrationsController#create as HTML | |
Parameters: {"utf8"=>"✓", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"} | |
[1m[35m (0.1ms)[0m SAVEPOINT active_record_1 | |
[1m[36mUser Exists (0.1ms)[0m [1mSELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('') LIMIT 1[0m | |
[1m[35m (0.0ms)[0m ROLLBACK TO SAVEPOINT active_record_1 | |
Rendered devise/menu/_login_form.html.erb (1.0ms) | |
Rendered layouts/_header.html.erb (1.4ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 16ms (Views: 9.7ms | ActiveRecord: 0.0ms) | |
[1m[36m (0.0ms)[0m [1mrollback transaction[0m | |
[1m[35m (0.0ms)[0m begin transaction | |
Started GET "/users/sign_up" for 127.0.0.1 at 2012-07-04 11:36:06 +0200 | |
Processing by Devise::RegistrationsController#new as HTML | |
Rendered devise/menu/_login_form.html.erb (1.1ms) | |
Rendered layouts/_header.html.erb (1.5ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 7ms (Views: 6.1ms | ActiveRecord: 0.0ms) | |
Started POST "/users" for 127.0.0.1 at 2012-07-04 11:36:06 +0200 | |
Processing by Devise::RegistrationsController#create as HTML | |
Parameters: {"utf8"=>"✓", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"} | |
[1m[36m (0.1ms)[0m [1mSAVEPOINT active_record_1[0m | |
[1m[35mUser Exists (0.1ms)[0m SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('') LIMIT 1 | |
[1m[36m (0.0ms)[0m [1mROLLBACK TO SAVEPOINT active_record_1[0m | |
Rendered devise/menu/_login_form.html.erb (1.1ms) | |
Rendered layouts/_header.html.erb (1.4ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 16ms (Views: 9.6ms | ActiveRecord: 0.0ms) | |
[1m[35m (0.0ms)[0m rollback transaction | |
[1m[36m (0.0ms)[0m [1mbegin transaction[0m | |
Started GET "/users/sign_up" for 127.0.0.1 at 2012-07-04 11:36:06 +0200 | |
Processing by Devise::RegistrationsController#new as HTML | |
Rendered devise/menu/_login_form.html.erb (1.1ms) | |
Rendered layouts/_header.html.erb (1.5ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 7ms (Views: 6.1ms | ActiveRecord: 0.0ms) | |
[1m[35m (0.6ms)[0m SELECT COUNT(*) FROM "users" | |
Started POST "/users" for 127.0.0.1 at 2012-07-04 11:36:06 +0200 | |
Processing by Devise::RegistrationsController#create as HTML | |
Parameters: {"utf8"=>"✓", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"} | |
[1m[36m (0.0ms)[0m [1mSAVEPOINT active_record_1[0m | |
[1m[35mUser Exists (0.1ms)[0m SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('') LIMIT 1 | |
[1m[36m (0.0ms)[0m [1mROLLBACK TO SAVEPOINT active_record_1[0m | |
Rendered devise/menu/_login_form.html.erb (1.2ms) | |
Rendered layouts/_header.html.erb (1.6ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 16ms (Views: 9.9ms | ActiveRecord: 0.0ms) | |
[1m[35m (0.1ms)[0m SELECT COUNT(*) FROM "users" | |
[1m[36m (0.0ms)[0m [1mrollback transaction[0m | |
[1m[35m (0.0ms)[0m begin transaction | |
Started GET "/" for 127.0.0.1 at 2012-07-04 11:36:07 +0200 | |
Processing by PagesController#home as HTML | |
Rendered devise/menu/_login_form.html.erb (1.4ms) | |
Rendered layouts/_header.html.erb (1.8ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 6ms (Views: 5.3ms | ActiveRecord: 0.0ms) | |
[1m[36m (0.0ms)[0m [1mSAVEPOINT active_record_1[0m | |
[1m[35mUser Exists (0.5ms)[0m SELECT 1 AS one FROM "users" WHERE "users"."email" = '[email protected]' LIMIT 1 | |
[1m[36mUser Exists (0.1ms)[0m [1mSELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('[email protected]') LIMIT 1[0m | |
Binary data inserted for `string` type on column `encrypted_password` | |
[1m[35mSQL (12.3ms)[0m INSERT INTO "users" ("avatar_id", "biography", "birth_date", "created_at", "email", "encrypted_password", "first_name", "job", "last_name", "password", "remember_created_at", "reset_password_sent_at", "reset_password_token", "university", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["avatar_id", nil], ["biography", nil], ["birth_date", nil], ["created_at", Wed, 04 Jul 2012 09:36:05 UTC +00:00], ["email", "[email protected]"], ["encrypted_password", "$2a$04$KJUJDfAFlsuZR8MlmmxiuOqV2ii6CwyOb6qNsYODBL5TwidoVpMDK"], ["first_name", "FirstName2"], ["job", nil], ["last_name", "LastName2"], ["password", nil], ["remember_created_at", nil], ["reset_password_sent_at", nil], ["reset_password_token", nil], ["university", nil], ["updated_at", Wed, 04 Jul 2012 09:36:05 UTC +00:00]] | |
[1m[36m (0.1ms)[0m [1mRELEASE SAVEPOINT active_record_1[0m | |
Started POST "/users/sign_in" for 127.0.0.1 at 2012-07-04 11:36:07 +0200 | |
Processing by Devise::SessionsController#create as HTML | |
Parameters: {"utf8"=>"✓", "user"=>{"email"=>"", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"} | |
Completed 401 Unauthorized in 1ms | |
Processing by Devise::SessionsController#new as HTML | |
Parameters: {"utf8"=>"✓", "user"=>{"email"=>"", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"} | |
Rendered devise/shared/_links.erb (26.4ms) | |
Rendered devise/menu/_login_form.html.erb (1.6ms) | |
Rendered layouts/_header.html.erb (2.0ms) | |
Rendered shared/_flash_messages.html.erb (0.1ms) | |
Completed 200 OK in 36ms (Views: 35.1ms | ActiveRecord: 0.0ms) | |
[1m[35m (1.0ms)[0m rollback transaction |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FactoryGirl.define do | |
factory :user do | |
sequence( :first_name ) { |n| "FirstName#{n}" } | |
sequence( :last_name ) { |n| "LastName#{n}" } | |
sequence( :email ) { |n| "foo#{n}@example.com" } | |
password 'foobar' | |
password_confirmation 'foobar' | |
created_at Time.now | |
updated_at Time.now | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment