Unfortunately, I could not get the solutions presented or related to @DylanMarkow's answer, so here's how I tested that the “persistent” cookie was set when the “Remember me” checkbox was checked (tests are affected / openly copied from Test: : Unit of tests that DHH did in the commit added by cookies.permanent in Rails ).
Tests use RSpec and FactoryGirl .
<strong> specifications / requests / authentication_requests_spec.rb
require 'spec_helper' describe "Authentication Requests" do # ... describe "authorization" do # ... describe "cookies" do let(:user) { FactoryGirl.create(:user) } subject { response.headers["Set-Cookie"] } context "when remember me is set" do before { sign_in_request(user) } it { should =~ %r(.+expires.+#{20.years.from_now.year}) } end context "when remember me is not set" do before { sign_in_request(user, remember_me: false) } it { should_not =~ %r(expires) } end end end end
specifications /utilities.rb
def sign_in_request(user, remember_me: "true") post session_path( session: { email: user.email, password: user.password, remember_me: remember_me } ) end
The following are snippets of i18n , Haml , Bootstrap, and Simple form application code
app / views / sessions / new.html.haml
= simple_form_for :session, url: session_path, html: {class: 'form-vertical' } do |f| = f.input :email = f.input :password .checkbox = f.input :remember_me, as: :boolean, label: false do = check_box_tag :remember_me, 1, true = label_tag :remember_me = f.submit t('.signin'), class: "btn btn-large btn-primary"
application / controllers / sessions_controller.rb
class SessionsController < ApplicationController
application / models / user.rb
class User < ActiveRecord::Base has_secure_password
application / controllers / application_controller.rb
class ApplicationController < ActionController::Base