/
reset_session_spec.rb
56 lines (48 loc) · 1.71 KB
/
reset_session_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Capybara::SpecHelper.spec '#reset_session!' do
it "removes cookies" do
@session.visit('/set_cookie')
@session.visit('/get_cookie')
@session.should have_content('test_cookie')
@session.reset_session!
@session.visit('/get_cookie')
@session.body.should_not include('test_cookie')
end
it "resets current url, host, path" do
@session.visit '/foo'
@session.current_url.should_not be_empty
@session.current_host.should_not be_empty
@session.current_path.should == '/foo'
@session.reset_session!
[nil, '', 'about:blank'].should include(@session.current_url)
['', nil].should include(@session.current_path)
@session.current_host.should be_nil
end
it "resets page body" do
@session.visit('/with_html')
@session.should have_content('This is a test')
@session.find('.//h1').text.should include('This is a test')
@session.reset_session!
@session.body.should_not include('This is a test')
@session.should have_no_selector('.//h1')
end
it "is synchronous" do
@session.visit("/with_html")
@session.reset_session!
@session.should have_no_selector :xpath, "/html/body/*", wait: false
end
it "raises any errors caught inside the server", :requires => [:server] do
quietly { @session.visit("/error") }
expect do
@session.reset_session!
end.to raise_error(TestApp::TestAppError)
@session.visit("/")
@session.current_path.should == "/"
end
it "ignores server errors when `Capybara.raise_server_errors = false`", :requires => [:server] do
Capybara.raise_server_errors = false
quietly { @session.visit("/error") }
@session.reset_session!
@session.visit("/")
@session.current_path.should == "/"
end
end