Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Cookie manipulation for Capybara (view, delete, …)

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Gemfile
Octocat-spinner-32 README.md
Octocat-spinner-32 Rakefile
Octocat-spinner-32 show_me_the_cookies.gemspec
README.md

Show me the cookies

Some helpers for poking around at your Capybara driven browser's cookies in integration tests.

Supports Capybara's bundled drivers (rack-test, Selenium Webdriver), and adapters for other drivers may be added (at time of writing Akephalos is also available).

API

  # puts a string summary of the cookie
  show_me_the_cookie(cookie_name)

  # returns a hash of the cookie
  # form: {:name, :domain, :value, :expires, :path}
  get_me_the_cookie(cookie_name)

  # puts a string summary of all cookies
  show_me_the_cookies

  # returns an array of cookie hashes
  # form: [{:name, :domain, :value, :expires, :path}]
  get_me_the_cookies

  # deletes the named cookie
  delete_cookie(cookie_name)

  # removes session cookies and expired persistent cookies
  expire_cookies

Contributing

If you find this useful, the best way to say thanks is to take a poke around the code and send feedback upstream. Bugs / requests / suggestions should be raised in the Github issues tracker.

Code contributions should be sent by github pull request, or contact me with a link to your repository branch. Patches should be small, isolated, testable, and preferably tested.

New drivers should be accompanied by a passing API spec. Driver-specific edge cases should not be added to the shared spec unless thought to be of general interest. API spec should not be changed because something doesn't work, fix the driver or make a plugin gem.

More tests are welcome.

Installation

Add to your gemfile's test group:

gem "show_me_the_cookies"

RSpec

in step_helper or your support directory:

RSpec.configure do |config|
  config.include ShowMeTheCookies, :type => :request
end

Example usage

In a request spec, using Capybara

specify "user login is remembered across browser restarts" do
  log_in_as_user
  should_be_logged_in
  #browser restart = session cookie is lost
  expire_cookies
  should_be_logged_in
end

Cucumber

Install by loading the gem and adding the following to your stepdefs or support files

World(ShowMeTheCookies)

Features

@javascript
Scenario: remembering users so they don't have to log in again for a while
  Given I am a site member
  When I go to the dashboard
  And I log in with the Remember Me option checked
  Then I should see "Welcome back"

  When I close my browser (clearing the session)
  And I return to the dashboard url
  Then I should see "Welcome back"

@rack_test
Scenario: don't remember users across browser restarts if they don't want it
  Given I am a site member
  When I go to the dashboard
  And I log in without the Remember Me option checked
  Then I should see "Welcome back"

  When I close my browser (clearing the session)
  And I return to the dashboard url
  Then I should see the log-in screen

Stepdefs

Then /^show me the cookies!$/ do
  puts inspect_cookies
end

Given /^I close my browser \(clearing the session\)$/ do
  expire_cookies
end

History, Credits, and Acknowledgements

Contributors

Original development took place when testing Devise 0.1's "Remember me" functionality under rails 2.3.x with capybara rack-test and/or selenium. Initial release as a gist here, early development sponsored by Medify.

Contributions outside of github have been made by:

Something went wrong with that request. Please try again.