capybara-webkit 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +2 -3
- data/Gemfile.lock +25 -27
- data/NEWS.md +12 -0
- data/README.md +1 -1
- data/Rakefile +9 -5
- data/capybara-webkit.gemspec +2 -1
- data/gemfiles/2.0.gemfile.lock +7 -7
- data/gemfiles/2.1.gemfile.lock +5 -5
- data/lib/capybara/webkit/connection.rb +1 -0
- data/lib/capybara/webkit/cookie_jar.rb +1 -1
- data/lib/capybara/webkit/node.rb +1 -5
- data/lib/capybara/webkit/version.rb +1 -1
- data/lib/capybara_webkit_builder.rb +2 -2
- data/spec/browser_spec.rb +18 -18
- data/spec/connection_spec.rb +4 -4
- data/spec/cookie_jar_spec.rb +9 -9
- data/spec/driver_rendering_spec.rb +9 -9
- data/spec/driver_spec.rb +242 -181
- data/spec/integration/session_spec.rb +86 -15
- data/spec/support/app_runner.rb +6 -0
- data/src/FindCss.cpp +1 -1
- data/src/FindXpath.cpp +1 -1
- data/src/IgnoreDebugOutput.cpp +36 -0
- data/src/IgnoreDebugOutput.h +1 -0
- data/src/InvocationResult.cpp +2 -0
- data/src/JavascriptInvocation.cpp +25 -18
- data/src/JavascriptInvocation.h +5 -2
- data/src/NetworkAccessManager.cpp +10 -0
- data/src/NetworkAccessManager.h +2 -0
- data/src/Node.cpp +2 -1
- data/src/Visit.cpp +1 -1
- data/src/WebPage.cpp +22 -4
- data/src/WebPage.h +5 -2
- data/src/WebPageManager.cpp +4 -3
- data/src/capybara.js +107 -52
- data/src/main.cpp +2 -1
- data/src/pointer.png +0 -0
- data/src/webkit_server.pro +9 -2
- data/src/webkit_server.qrc +1 -0
- data/test/testignoredebugoutput.cpp +45 -0
- data/test/testwebkitserver.pro +5 -0
- data/webkit_server.pro +3 -1
- metadata +86 -42
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 218ecbf884de71199261eb9e085c2e408313cd2c
|
|
4
|
+
data.tar.gz: 56d3b795bb714e25badb726b1a54fabaa84830ea
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 5aa4667fe8e68fb68d02bed0d8bedfa7fa9bf0d24cbcbb95f8acc0aa8b468d9e7c27d1ca14b3b963bf98e62d75c6acf1dbc0d8aa991566a71303fba8f6ece68a
|
|
7
|
+
data.tar.gz: cc658b8ae059a0d9cbb3a3b2c4e047981c7eab045362dbfc1c840ac054d5ad30aba177886434b165e9fc2c11194e18b5b3d2c2ae453d7d35df249ec810e81e0b
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
|
@@ -4,8 +4,6 @@ rvm:
|
|
|
4
4
|
- 2.0.0
|
|
5
5
|
- rbx-19mode
|
|
6
6
|
matrix:
|
|
7
|
-
allow_failures:
|
|
8
|
-
- rvm: rbx-19mode
|
|
9
7
|
exclude:
|
|
10
8
|
- rvm: 1.9.3
|
|
11
9
|
gemfile: gemfiles/2.0.gemfile
|
|
@@ -28,4 +26,5 @@ gemfile:
|
|
|
28
26
|
before_install:
|
|
29
27
|
- sudo apt-add-repository -y ppa:canonical-qt5-edgers/qt5-proper
|
|
30
28
|
- sudo apt-get update
|
|
31
|
-
- sudo apt-get install libqt5webkit5-dev qtdeclarative5-dev qtlocation5-dev qtsensors5-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
|
|
29
|
+
- sudo apt-get install libqt5webkit5-dev qtdeclarative5-dev qtlocation5-dev qtsensors5-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev qt4-default
|
|
30
|
+
install: bundle
|
data/Gemfile.lock
CHANGED
|
@@ -1,64 +1,62 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
capybara-webkit (1.
|
|
4
|
+
capybara-webkit (1.1.0)
|
|
5
5
|
capybara (~> 2.0, >= 2.0.2)
|
|
6
6
|
json
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
addressable (2.3.2)
|
|
12
11
|
appraisal (0.4.0)
|
|
13
12
|
bundler
|
|
14
13
|
rake
|
|
15
|
-
capybara (2.
|
|
14
|
+
capybara (2.2.0)
|
|
16
15
|
mime-types (>= 1.16)
|
|
17
16
|
nokogiri (>= 1.3.3)
|
|
18
17
|
rack (>= 1.0.0)
|
|
19
18
|
rack-test (>= 0.5.4)
|
|
20
19
|
xpath (~> 2.0)
|
|
21
|
-
childprocess (0.3.
|
|
22
|
-
ffi (~> 1.0, >= 1.0.
|
|
23
|
-
diff-lcs (1.
|
|
24
|
-
ffi (1.
|
|
25
|
-
ffi (1.
|
|
26
|
-
json (1.8.
|
|
27
|
-
|
|
28
|
-
addressable
|
|
29
|
-
websocket
|
|
30
|
-
mime-types (1.22)
|
|
20
|
+
childprocess (0.3.9)
|
|
21
|
+
ffi (~> 1.0, >= 1.0.11)
|
|
22
|
+
diff-lcs (1.2.4)
|
|
23
|
+
ffi (1.9.0)
|
|
24
|
+
ffi (1.9.0-x86-mingw32)
|
|
25
|
+
json (1.8.1)
|
|
26
|
+
mime-types (2.0)
|
|
31
27
|
mini_magick (3.2.1)
|
|
32
28
|
subexec (~> 0.0.4)
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
mini_portile (0.5.2)
|
|
30
|
+
multi_json (1.7.8)
|
|
31
|
+
nokogiri (1.6.0)
|
|
32
|
+
mini_portile (~> 0.5.0)
|
|
35
33
|
rack (1.5.2)
|
|
36
34
|
rack-protection (1.3.2)
|
|
37
35
|
rack
|
|
38
36
|
rack-test (0.6.2)
|
|
39
37
|
rack (>= 1.0)
|
|
40
38
|
rake (0.9.2)
|
|
41
|
-
rspec (2.
|
|
42
|
-
rspec-core (~> 2.
|
|
43
|
-
rspec-expectations (~> 2.
|
|
44
|
-
rspec-mocks (~> 2.
|
|
45
|
-
rspec-core (2.
|
|
46
|
-
rspec-expectations (2.
|
|
47
|
-
diff-lcs (
|
|
48
|
-
rspec-mocks (2.
|
|
39
|
+
rspec (2.14.1)
|
|
40
|
+
rspec-core (~> 2.14.0)
|
|
41
|
+
rspec-expectations (~> 2.14.0)
|
|
42
|
+
rspec-mocks (~> 2.14.0)
|
|
43
|
+
rspec-core (2.14.4)
|
|
44
|
+
rspec-expectations (2.14.1)
|
|
45
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
|
46
|
+
rspec-mocks (2.14.3)
|
|
49
47
|
rubyzip (0.9.9)
|
|
50
|
-
selenium-webdriver (2.
|
|
48
|
+
selenium-webdriver (2.33.0)
|
|
51
49
|
childprocess (>= 0.2.5)
|
|
52
|
-
libwebsocket (~> 0.1.3)
|
|
53
50
|
multi_json (~> 1.0)
|
|
54
51
|
rubyzip
|
|
52
|
+
websocket (~> 1.0.4)
|
|
55
53
|
sinatra (1.3.5)
|
|
56
54
|
rack (~> 1.4)
|
|
57
55
|
rack-protection (~> 1.3)
|
|
58
56
|
tilt (~> 1.3, >= 1.3.3)
|
|
59
57
|
subexec (0.0.4)
|
|
60
58
|
tilt (1.3.3)
|
|
61
|
-
websocket (1.0.
|
|
59
|
+
websocket (1.0.7)
|
|
62
60
|
xpath (2.0.0)
|
|
63
61
|
nokogiri (~> 1.3)
|
|
64
62
|
|
|
@@ -71,6 +69,6 @@ DEPENDENCIES
|
|
|
71
69
|
capybara-webkit!
|
|
72
70
|
mini_magick
|
|
73
71
|
rake
|
|
74
|
-
rspec (~> 2.
|
|
72
|
+
rspec (~> 2.14.0)
|
|
75
73
|
selenium-webdriver
|
|
76
74
|
sinatra
|
data/NEWS.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
New for 1.1.0:
|
|
2
|
+
|
|
3
|
+
* Improve messages for ClickFailed errors to aid debugging.
|
|
4
|
+
* Fix long load times on Ruby 2.0.0-p195.
|
|
5
|
+
* Automatically save screenshots on ClickFailed errors.
|
|
6
|
+
* Render a mouse pointer in screenshots for the current mouse location.
|
|
7
|
+
* Silent debug messages from Qt.
|
|
8
|
+
* Fix OS X keychain bug in Qt 5 related to basic authentication.
|
|
9
|
+
* Fix issues visiting URLs with square brackets.
|
|
10
|
+
* Fail immediately when trying to install with unsupported versions of Qt.
|
|
11
|
+
* Fix race condition leading to InvalidResponseErrors.
|
|
12
|
+
|
|
1
13
|
New for 1.0.0:
|
|
2
14
|
|
|
3
15
|
* Fix a memory leak in the logger.
|
data/README.md
CHANGED
|
@@ -4,7 +4,7 @@ capybara-webkit
|
|
|
4
4
|
[](https://travis-ci.org/thoughtbot/capybara-webkit)
|
|
5
5
|
[](https://codeclimate.com/github/thoughtbot/capybara-webkit)
|
|
6
6
|
|
|
7
|
-
A [capybara](https://github.com/jnicklas/capybara) driver that uses [WebKit](http://webkit.org) via [QtWebKit](http://
|
|
7
|
+
A [capybara](https://github.com/jnicklas/capybara) driver that uses [WebKit](http://webkit.org) via [QtWebKit](http://trac.webkit.org/wiki/QtWebKit).
|
|
8
8
|
|
|
9
9
|
Qt Dependency and Installation Issues
|
|
10
10
|
-------------------------------------
|
data/Rakefile
CHANGED
|
@@ -7,7 +7,7 @@ Bundler::GemHelper.install_tasks
|
|
|
7
7
|
|
|
8
8
|
desc "Generate a Makefile using qmake"
|
|
9
9
|
file 'Makefile' do
|
|
10
|
-
CapybaraWebkitBuilder.makefile or exit(1)
|
|
10
|
+
CapybaraWebkitBuilder.makefile('CONFIG+=test') or exit(1)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
desc "Regenerate dependencies using qmake"
|
|
@@ -20,6 +20,11 @@ task :build => :qmake do
|
|
|
20
20
|
CapybaraWebkitBuilder.build or exit(1)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
+
desc "Run QtTest unit tests for webkit server"
|
|
24
|
+
task :check => :build do
|
|
25
|
+
sh("make check") or exit(1)
|
|
26
|
+
end
|
|
27
|
+
|
|
23
28
|
file 'bin/webkit_server' => :build
|
|
24
29
|
|
|
25
30
|
RSpec::Core::RakeTask.new do |t|
|
|
@@ -27,16 +32,15 @@ RSpec::Core::RakeTask.new do |t|
|
|
|
27
32
|
t.rspec_opts = "--format progress"
|
|
28
33
|
end
|
|
29
34
|
|
|
35
|
+
task :spec => :build
|
|
36
|
+
|
|
30
37
|
desc "Default: build and run all specs"
|
|
31
|
-
task :default => [:
|
|
38
|
+
task :default => [:check, :spec]
|
|
32
39
|
|
|
33
40
|
desc "Generate a new command called NAME"
|
|
34
41
|
task :generate_command do
|
|
35
42
|
name = ENV['NAME'] or raise "Provide a name with NAME="
|
|
36
43
|
|
|
37
|
-
header = "src/#{name}.h"
|
|
38
|
-
source = "src/#{name}.cpp"
|
|
39
|
-
|
|
40
44
|
%w(h cpp).each do |extension|
|
|
41
45
|
File.open("templates/Command.#{extension}", "r") do |source_file|
|
|
42
46
|
contents = source_file.read
|
data/capybara-webkit.gemspec
CHANGED
|
@@ -9,6 +9,7 @@ Gem::Specification.new do |s|
|
|
|
9
9
|
s.email = "support@thoughtbot.com"
|
|
10
10
|
s.homepage = "http://github.com/thoughtbot/capybara-webkit"
|
|
11
11
|
s.summary = "Headless Webkit driver for Capybara"
|
|
12
|
+
s.license = 'MIT'
|
|
12
13
|
|
|
13
14
|
s.files = `git ls-files`.split("\n")
|
|
14
15
|
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
|
|
@@ -21,7 +22,7 @@ Gem::Specification.new do |s|
|
|
|
21
22
|
s.add_runtime_dependency("capybara", "~> 2.0", ">= 2.0.2")
|
|
22
23
|
s.add_runtime_dependency("json")
|
|
23
24
|
|
|
24
|
-
s.add_development_dependency("rspec", "~> 2.
|
|
25
|
+
s.add_development_dependency("rspec", "~> 2.14.0")
|
|
25
26
|
# Sinatra is used by Capybara's TestApp
|
|
26
27
|
s.add_development_dependency("sinatra")
|
|
27
28
|
s.add_development_dependency("mini_magick")
|
data/gemfiles/2.0.gemfile.lock
CHANGED
|
@@ -11,23 +11,23 @@ GEM
|
|
|
11
11
|
appraisal (0.4.1)
|
|
12
12
|
bundler
|
|
13
13
|
rake
|
|
14
|
-
capybara (2.0.
|
|
14
|
+
capybara (2.0.3)
|
|
15
15
|
mime-types (>= 1.16)
|
|
16
16
|
nokogiri (>= 1.3.3)
|
|
17
17
|
rack (>= 1.0.0)
|
|
18
18
|
rack-test (>= 0.5.4)
|
|
19
19
|
selenium-webdriver (~> 2.0)
|
|
20
20
|
xpath (~> 1.0.0)
|
|
21
|
-
childprocess (0.3.
|
|
21
|
+
childprocess (0.3.9)
|
|
22
22
|
ffi (~> 1.0, >= 1.0.11)
|
|
23
23
|
diff-lcs (1.1.3)
|
|
24
|
-
ffi (1.
|
|
24
|
+
ffi (1.9.0)
|
|
25
25
|
json (1.8.0)
|
|
26
|
-
mime-types (1.
|
|
26
|
+
mime-types (1.23)
|
|
27
27
|
mini_magick (3.5.0)
|
|
28
28
|
subexec (~> 0.2.1)
|
|
29
|
-
multi_json (1.
|
|
30
|
-
nokogiri (1.5.
|
|
29
|
+
multi_json (1.7.8)
|
|
30
|
+
nokogiri (1.5.9)
|
|
31
31
|
rack (1.5.2)
|
|
32
32
|
rack-protection (1.3.2)
|
|
33
33
|
rack
|
|
@@ -43,7 +43,7 @@ GEM
|
|
|
43
43
|
diff-lcs (~> 1.1.2)
|
|
44
44
|
rspec-mocks (2.6.0)
|
|
45
45
|
rubyzip (0.9.9)
|
|
46
|
-
selenium-webdriver (2.
|
|
46
|
+
selenium-webdriver (2.33.0)
|
|
47
47
|
childprocess (>= 0.2.5)
|
|
48
48
|
multi_json (~> 1.0)
|
|
49
49
|
rubyzip
|
data/gemfiles/2.1.gemfile.lock
CHANGED
|
@@ -17,15 +17,15 @@ GEM
|
|
|
17
17
|
rack (>= 1.0.0)
|
|
18
18
|
rack-test (>= 0.5.4)
|
|
19
19
|
xpath (~> 2.0)
|
|
20
|
-
childprocess (0.3.
|
|
20
|
+
childprocess (0.3.9)
|
|
21
21
|
ffi (~> 1.0, >= 1.0.11)
|
|
22
22
|
diff-lcs (1.1.3)
|
|
23
|
-
ffi (1.
|
|
23
|
+
ffi (1.9.0)
|
|
24
24
|
json (1.8.0)
|
|
25
|
-
mime-types (1.
|
|
25
|
+
mime-types (1.23)
|
|
26
26
|
mini_magick (3.5.0)
|
|
27
27
|
subexec (~> 0.2.1)
|
|
28
|
-
multi_json (1.
|
|
28
|
+
multi_json (1.7.8)
|
|
29
29
|
nokogiri (1.5.9)
|
|
30
30
|
rack (1.5.2)
|
|
31
31
|
rack-protection (1.3.2)
|
|
@@ -42,7 +42,7 @@ GEM
|
|
|
42
42
|
diff-lcs (~> 1.1.2)
|
|
43
43
|
rspec-mocks (2.6.0)
|
|
44
44
|
rubyzip (0.9.9)
|
|
45
|
-
selenium-webdriver (2.
|
|
45
|
+
selenium-webdriver (2.33.0)
|
|
46
46
|
childprocess (>= 0.2.5)
|
|
47
47
|
multi_json (~> 1.0)
|
|
48
48
|
rubyzip
|
data/lib/capybara/webkit/node.rb
CHANGED
|
@@ -126,11 +126,7 @@ module Capybara::Webkit
|
|
|
126
126
|
end
|
|
127
127
|
|
|
128
128
|
def invoke(name, *args)
|
|
129
|
-
|
|
130
|
-
browser.command "Node", name, native, *args
|
|
131
|
-
else
|
|
132
|
-
raise Capybara::Webkit::NodeNotAttachedError
|
|
133
|
-
end
|
|
129
|
+
browser.command "Node", name, allow_unattached_nodes?, native, *args
|
|
134
130
|
end
|
|
135
131
|
|
|
136
132
|
def allow_unattached_nodes?
|
data/spec/browser_spec.rb
CHANGED
|
@@ -86,10 +86,10 @@ describe Capybara::Webkit::Browser do
|
|
|
86
86
|
|
|
87
87
|
@server_thread = Thread.new do
|
|
88
88
|
while conn = @server.accept
|
|
89
|
-
Thread.new(conn) do |
|
|
89
|
+
Thread.new(conn) do |thread_conn|
|
|
90
90
|
# read request
|
|
91
91
|
request = []
|
|
92
|
-
until (line =
|
|
92
|
+
until (line = thread_conn.readline.strip).empty?
|
|
93
93
|
request << line
|
|
94
94
|
end
|
|
95
95
|
|
|
@@ -110,13 +110,13 @@ describe Capybara::Webkit::Browser do
|
|
|
110
110
|
</body>
|
|
111
111
|
</html>
|
|
112
112
|
HTML
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
113
|
+
thread_conn.write "HTTP/1.1 200 OK\r\n"
|
|
114
|
+
thread_conn.write "Content-Type:text/html\r\n"
|
|
115
|
+
thread_conn.write "Content-Length: %i\r\n" % html.size
|
|
116
|
+
thread_conn.write "\r\n"
|
|
117
|
+
thread_conn.write html
|
|
118
|
+
thread_conn.write("\r\n\r\n")
|
|
119
|
+
thread_conn.close
|
|
120
120
|
end
|
|
121
121
|
end
|
|
122
122
|
end
|
|
@@ -202,7 +202,7 @@ describe Capybara::Webkit::Browser do
|
|
|
202
202
|
:user => @user,
|
|
203
203
|
:pass => @pass)
|
|
204
204
|
browser.visit @url
|
|
205
|
-
@proxy_requests.size.should
|
|
205
|
+
@proxy_requests.size.should eq 2
|
|
206
206
|
@request = @proxy_requests[-1]
|
|
207
207
|
end
|
|
208
208
|
|
|
@@ -212,7 +212,7 @@ describe Capybara::Webkit::Browser do
|
|
|
212
212
|
end
|
|
213
213
|
|
|
214
214
|
it 'uses the HTTP proxy correctly' do
|
|
215
|
-
@request[0].should match
|
|
215
|
+
@request[0].should match(/^GET\s+http:\/\/example.org\/\s+HTTP/i)
|
|
216
216
|
@request.find { |header|
|
|
217
217
|
header =~ /^Host:\s+example.org$/i }.should_not be nil
|
|
218
218
|
end
|
|
@@ -223,8 +223,8 @@ describe Capybara::Webkit::Browser do
|
|
|
223
223
|
auth_header.should_not be nil
|
|
224
224
|
|
|
225
225
|
user, pass = Base64.decode64(auth_header.split(/\s+/)[-1]).split(":")
|
|
226
|
-
user.should
|
|
227
|
-
pass.should
|
|
226
|
+
user.should eq @user
|
|
227
|
+
pass.should eq @pass
|
|
228
228
|
end
|
|
229
229
|
|
|
230
230
|
it "uses the proxies' response" do
|
|
@@ -232,24 +232,24 @@ describe Capybara::Webkit::Browser do
|
|
|
232
232
|
end
|
|
233
233
|
|
|
234
234
|
it 'uses original URL' do
|
|
235
|
-
browser.current_url.should
|
|
235
|
+
browser.current_url.should eq @url
|
|
236
236
|
end
|
|
237
237
|
|
|
238
238
|
it 'uses URLs changed by javascript' do
|
|
239
239
|
browser.execute_script "window.history.pushState('', '', '/blah')"
|
|
240
|
-
browser.current_url.should
|
|
240
|
+
browser.current_url.should eq 'http://example.org/blah'
|
|
241
241
|
end
|
|
242
242
|
|
|
243
243
|
it 'is possible to disable proxy again' do
|
|
244
244
|
@proxy_requests.clear
|
|
245
245
|
browser.clear_proxy
|
|
246
246
|
browser.visit "http://#{@host}:#{@port}/"
|
|
247
|
-
@proxy_requests.size.should
|
|
247
|
+
@proxy_requests.size.should eq 0
|
|
248
248
|
end
|
|
249
249
|
end
|
|
250
250
|
|
|
251
251
|
it "doesn't try to read an empty response" do
|
|
252
|
-
connection =
|
|
252
|
+
connection = double("connection")
|
|
253
253
|
connection.stub(:puts)
|
|
254
254
|
connection.stub(:print)
|
|
255
255
|
connection.stub(:gets).and_return("ok\n", "0\n")
|
|
@@ -257,7 +257,7 @@ describe Capybara::Webkit::Browser do
|
|
|
257
257
|
|
|
258
258
|
browser = Capybara::Webkit::Browser.new(connection)
|
|
259
259
|
|
|
260
|
-
expect { browser.visit("/") }.not_to raise_error
|
|
260
|
+
expect { browser.visit("/") }.not_to raise_error
|
|
261
261
|
end
|
|
262
262
|
|
|
263
263
|
describe '#command' do
|
data/spec/connection_spec.rb
CHANGED
|
@@ -8,11 +8,11 @@ describe Capybara::Webkit::Connection do
|
|
|
8
8
|
connection.puts 1
|
|
9
9
|
connection.puts url.to_s.bytesize
|
|
10
10
|
connection.print url
|
|
11
|
-
connection.gets.should
|
|
12
|
-
connection.gets.should
|
|
11
|
+
connection.gets.should eq "ok\n"
|
|
12
|
+
connection.gets.should eq "0\n"
|
|
13
13
|
connection.puts "Body"
|
|
14
14
|
connection.puts 0
|
|
15
|
-
connection.gets.should
|
|
15
|
+
connection.gets.should eq "ok\n"
|
|
16
16
|
response_length = connection.gets.to_i
|
|
17
17
|
response = connection.read(response_length)
|
|
18
18
|
response.should include("Hey there")
|
|
@@ -53,7 +53,7 @@ describe Capybara::Webkit::Connection do
|
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
it 'sets appropriate options on its socket' do
|
|
56
|
-
socket =
|
|
56
|
+
socket = double('socket')
|
|
57
57
|
TCPSocket.stub(:open).and_return(socket)
|
|
58
58
|
if defined?(Socket::TCP_NODELAY)
|
|
59
59
|
socket.should_receive(:setsockopt).with(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, true)
|