mirror of
https://github.com/teamcapybara/capybara.git
synced 2022-11-09 12:08:07 -05:00
Some more info in README
This commit is contained in:
parent
b59c749c5c
commit
e06e04ee77
1 changed files with 67 additions and 14 deletions
81
README.rdoc
81
README.rdoc
|
@ -4,25 +4,78 @@
|
||||||
|
|
||||||
== Description:
|
== Description:
|
||||||
|
|
||||||
Webcat is a fledgeling replacement for webrat which aims to work with all
|
Webcat is a unified API for writing web application integration tests for Rack
|
||||||
browser simulators as well as rack-test.
|
applications. It works with any rack application and currently has support for
|
||||||
|
Culerity, Selenium and rack-test.
|
||||||
== Features/Problems:
|
|
||||||
|
|
||||||
* FIX (list of features or problems)
|
|
||||||
|
|
||||||
== Synopsis:
|
|
||||||
|
|
||||||
FIX (code sample of usage)
|
|
||||||
|
|
||||||
== Requirements:
|
|
||||||
|
|
||||||
* FIX (list of requirements)
|
|
||||||
|
|
||||||
== Install:
|
== Install:
|
||||||
|
|
||||||
Clone and install from github for now
|
Clone and install from github for now
|
||||||
|
|
||||||
|
== Getting Started:
|
||||||
|
|
||||||
|
You can initialize a session and start issuing commands:
|
||||||
|
|
||||||
|
require 'webcat'
|
||||||
|
|
||||||
|
session = Webcat::Session.new(:culerity, my_rack_app)
|
||||||
|
session.within("//form[@id='session']") do
|
||||||
|
session.fill_in 'Login', :with => 'user@example.com'
|
||||||
|
session.fill_in 'Password', :with => 'password'
|
||||||
|
end
|
||||||
|
session.click_link 'Sign in'
|
||||||
|
|
||||||
|
Webcat provides a terser DSL:
|
||||||
|
|
||||||
|
require 'webcat'
|
||||||
|
require 'webcat/dsl'
|
||||||
|
|
||||||
|
include Webcat
|
||||||
|
Webcat.default_driver = :culerity
|
||||||
|
|
||||||
|
within("//form[@id='session']") do
|
||||||
|
fill_in 'Login', :with => 'user@example.com'
|
||||||
|
fill_in 'Password', :with => 'password'
|
||||||
|
end
|
||||||
|
click_link 'Sign in'
|
||||||
|
|
||||||
|
If you want to use it with Cucumber, just require:
|
||||||
|
|
||||||
|
require 'webcat/cucumber'
|
||||||
|
Webcat.app = my_rack_app
|
||||||
|
|
||||||
|
Then write your steps like this:
|
||||||
|
|
||||||
|
When /I sign in/ do
|
||||||
|
within("//form[@id='session']") do
|
||||||
|
fill_in 'Login', :with => 'user@example.com'
|
||||||
|
fill_in 'Password', :with => 'password'
|
||||||
|
end
|
||||||
|
click_link 'Sign in'
|
||||||
|
end
|
||||||
|
|
||||||
|
If you're using Rails, webcan can set up the rack app for you. Just do:
|
||||||
|
|
||||||
|
require 'webcat/cucumber'
|
||||||
|
require 'webcat/rails'
|
||||||
|
|
||||||
|
== Gotchas:
|
||||||
|
|
||||||
|
* Everything is *case sensitive*. Webcat heavily relies on XPath, which doesn't
|
||||||
|
support case insensitive searches.
|
||||||
|
* Unchecking checkboxes and filling in password fields is currently broken
|
||||||
|
under Culerity.
|
||||||
|
* Domain names (including subdomains) don't work under rack-test. Since it's a
|
||||||
|
pain to set up subdomains for the other drivers anyway, you should consider
|
||||||
|
an alternate solution. See for example [GIST here].
|
||||||
|
* The set_hidden_field method from Webrat is not implemented, since it doesn't
|
||||||
|
work in any of the browser based drivers (Culerity, Selenium)
|
||||||
|
* Access to session, request and response from the test is not possible. Maybe
|
||||||
|
we'll do response headers at some point in the future, but the others really
|
||||||
|
shouldn't be touched in an integration test anyway.
|
||||||
|
* Access to Rails specific stuff (such as +controller+) is unavailable, since
|
||||||
|
we're not using Rails' integration testing.
|
||||||
|
|
||||||
== License:
|
== License:
|
||||||
|
|
||||||
(The MIT License)
|
(The MIT License)
|
||||||
|
|
Loading…
Reference in a new issue