2011-02-26 22:02:00 +00:00
|
|
|
require 'spec_helper'
|
|
|
|
require 'capybara-webkit'
|
|
|
|
|
|
|
|
describe Capybara::Session do
|
2011-04-14 14:16:56 +00:00
|
|
|
subject { Capybara::Session.new(:reusable_webkit, @app) }
|
|
|
|
after { subject.reset! }
|
|
|
|
|
|
|
|
context "slow javascript app" do
|
|
|
|
before(:all) do
|
|
|
|
@app = lambda do |env|
|
|
|
|
body = <<-HTML
|
|
|
|
<html><body>
|
|
|
|
<form action="/next" id="submit_me"><input type="submit" value="Submit" /></form>
|
|
|
|
<p id="change_me">Hello</p>
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
var form = document.getElementById('submit_me');
|
|
|
|
form.addEventListener("submit", function (event) {
|
|
|
|
event.preventDefault();
|
|
|
|
setTimeout(function () {
|
|
|
|
document.getElementById("change_me").innerHTML = 'Good' + 'bye';
|
|
|
|
}, 500);
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
</body></html>
|
|
|
|
HTML
|
|
|
|
[200,
|
|
|
|
{ 'Content-Type' => 'text/html', 'Content-Length' => body.length.to_s },
|
|
|
|
[body]]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
before do
|
|
|
|
@default_wait_time = Capybara.default_wait_time
|
|
|
|
Capybara.default_wait_time = 1
|
|
|
|
end
|
|
|
|
|
|
|
|
after { Capybara.default_wait_time = @default_wait_time }
|
|
|
|
|
|
|
|
it "waits for a request to load" do
|
|
|
|
subject.visit("/")
|
|
|
|
subject.find_button("Submit").click
|
|
|
|
subject.should have_content("Goodbye");
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe Capybara::Session, "with TestApp" do
|
2011-02-26 22:02:00 +00:00
|
|
|
before do
|
2011-04-14 14:16:56 +00:00
|
|
|
@session = Capybara::Session.new(:reusable_webkit, TestApp)
|
2011-02-26 22:02:00 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
# it_should_behave_like "session"
|
|
|
|
# it_should_behave_like "session with javascript support"
|
|
|
|
end
|