Skip to content

Instantly share code, notes, and snippets.

@jonstorer
Created January 5, 2012 19:44
Show Gist options
  • Save jonstorer/1566853 to your computer and use it in GitHub Desktop.
Save jonstorer/1566853 to your computer and use it in GitHub Desktop.
Cucumber path helpers and fetch
# Step
When I go the the service page for "Netflix"
# Step Definition:
When /^I go to (.*)$/ |path|
visit path_to(path)
end
# Paths:
module NavigationHelpers
def path_to(page_name)
case page_name
when /the service page for "(.+)"/
services_path(fetch_service($1))
end
end
end
World(NavigationHelpers)
# Fetch:
module FetchHelpers
def fetch_service(name)
fetch Service, name: name
end
private
def fetch(klass, options)
klass.where(options).first or
raise "No #{klass} found for #{options.inspect}"
end
end
World(FetchHelpers)
# Session:
require "cgi"
module SessionHelpers
DRIVERS = Set.new [:webkit, :webkit_debug]
def current_user
remember_token = begin
if DRIVERS.include? Capybara.current_driver
if found_cookie = cookies.detect {|c| c.include?("remember_token=") }
CGI::Cookie.parse(found_cookie)["remember_token"].first
end
else
cookies["remember_token"]
end
end
User.where(:remember_token => remember_token).first
end
end
World(SessionHelpers)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment