capybara-webkit 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 96071aafa2680ebbe7213a1f0b016c35b9a09c0e
4
- data.tar.gz: 8af0313facae8400b3838c7a3267f3571161c84d
3
+ metadata.gz: d61a9d2568a46053dfe21bf58cc9263454c4b489
4
+ data.tar.gz: e9689291ccf578f1a2c79e72c3ceb6b0d545dc4c
5
5
  SHA512:
6
- metadata.gz: ce938a58c3fd9e640905092b24390d47091885d6545ed6390bba4cb75f53ada557bc1a78dff7cc26071c62adf3b13dfea430991ad659151b015e49b0687ef1fd
7
- data.tar.gz: d49e72b00a410e69e9afecaa967a00913b7741ad14ce789314aa3ccd52f88128ed350e3a1deea62b70b1dc05085d7005f893590300c11c59e73dc2582884f38b
6
+ metadata.gz: 0553617872da58e661c35a40ed83195d5ee013f0f8ca04bb2519f2bff1342b5023580fc3dc5ac6427c645a16511662133036aef648900401cbf46b2bd0ba734a
7
+ data.tar.gz: 6dfe749f35bf08f94c31467034eecc7e94e11205bce989a8643addf46d69e0f5295384e39e00ea23c0f21ae463719b8521e42564ee7b5bebbada5d56d2a1f8db
@@ -12,19 +12,19 @@ env:
12
12
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
13
13
  matrix:
14
14
  include:
15
- - rvm: 1.9.3
16
- gemfile: gemfiles/2.1.gemfile
17
- env: QMAKE=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake
18
15
  - rvm: 1.9.3
19
16
  gemfile: gemfiles/2.2.gemfile
20
17
  env: QMAKE=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake
21
18
  - rvm: 1.9.3
22
19
  gemfile: gemfiles/2.3.gemfile
23
20
  env: QMAKE=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake
21
+ - rvm: 1.9.3
22
+ gemfile: gemfiles/2.4.gemfile
23
+ env: QMAKE=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake
24
24
  gemfile:
25
- - gemfiles/2.1.gemfile
26
25
  - gemfiles/2.2.gemfile
27
26
  - gemfiles/2.3.gemfile
27
+ - gemfiles/2.4.gemfile
28
28
  before_install:
29
29
  - sudo apt-add-repository -y ppa:ubuntu-sdk-team/ppa
30
30
  - sudo apt-get update
data/Appraisals CHANGED
@@ -9,3 +9,7 @@ end
9
9
  appraise "2.3" do
10
10
  gem "capybara", "~> 2.3.0"
11
11
  end
12
+
13
+ appraise "2.4" do
14
+ gem "capybara", "~> 2.4.0"
15
+ end
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- capybara-webkit (1.2.0)
5
- capybara (>= 2.0.2, < 2.4.0)
4
+ capybara-webkit (1.3.0)
5
+ capybara (>= 2.0.2, < 2.5.0)
6
6
  json
7
7
 
8
8
  GEM
@@ -12,7 +12,7 @@ GEM
12
12
  appraisal (0.4.0)
13
13
  bundler
14
14
  rake
15
- capybara (2.3.0)
15
+ capybara (2.4.1)
16
16
  mime-types (>= 1.16)
17
17
  nokogiri (>= 1.3.3)
18
18
  rack (>= 1.0.0)
@@ -25,7 +25,6 @@ GEM
25
25
  ffi (1.9.3-java)
26
26
  ffi (1.9.3-x86-mingw32)
27
27
  json (1.8.1)
28
- json (1.8.1-java)
29
28
  launchy (2.4.2)
30
29
  addressable (~> 2.3)
31
30
  launchy (2.4.2-java)
@@ -38,9 +37,6 @@ GEM
38
37
  multi_json (1.8.4)
39
38
  nokogiri (1.6.2.1)
40
39
  mini_portile (= 0.6.0)
41
- nokogiri (1.6.2.1-java)
42
- nokogiri (1.6.2.1-x86-mingw32)
43
- mini_portile (= 0.6.0)
44
40
  rack (1.5.2)
45
41
  rack-protection (1.3.2)
46
42
  rack
data/NEWS.md CHANGED
@@ -1,3 +1,10 @@
1
+ New for 1.3.0:
2
+
3
+ * Capybara 2.4 compatibility.
4
+ * Raise better errors if server fails to start
5
+ * Offline application cache support.
6
+ * Wildcard URL blacklist support.
7
+
1
8
  New for 1.2.0:
2
9
  * Capybara 2.3 compatibility.
3
10
  * Kill webkit_server when parent process closes stdin.
data/README.md CHANGED
@@ -14,7 +14,7 @@ development toolkit. You'll need to download the Qt libraries to build and
14
14
  install the gem. You can find instructions for downloading and installing QT on
15
15
  the
16
16
  [capybara-webkit wiki](https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit).
17
- capybara-webkit requires Qt version 4.8.
17
+ capybara-webkit requires Qt version 4.8 or greater.
18
18
 
19
19
  Windows Support
20
20
  ---------------
@@ -47,7 +47,13 @@ CI
47
47
 
48
48
  If you're like us, you'll be using capybara-webkit on CI.
49
49
 
50
- On Linux platforms, capybara-webkit requires an X server to run, although it doesn't create any visible windows. Xvfb works fine for this. You can setup Xvfb yourself and set a DISPLAY variable, or try out the [headless gem](https://github.com/leonid-shevtsov/headless).
50
+ On Linux platforms, capybara-webkit requires an X server to run, although it doesn't create any visible windows. Xvfb works fine for this. You can setup Xvfb yourself and set a DISPLAY variable, try out the [headless gem](https://github.com/leonid-shevtsov/headless), or use the xvfb-run utility as follows:
51
+
52
+ ```
53
+ xvfb-run -a bundle exec spec
54
+ ```
55
+
56
+ This automatically sets up a virtual X server on a free server number.
51
57
 
52
58
  Usage
53
59
  -----
@@ -76,6 +82,13 @@ If you're using capybara-webkit with Sinatra, don't forget to set
76
82
  Capybara.app = MySinatraApp.new
77
83
  ```
78
84
 
85
+ Offline Application Cache
86
+ -------------------------
87
+
88
+ The offline application cache needs a directory to write to for the cached files. Capybara-webkit
89
+ will look at if the working directory has a tmp directory and when it exists offline application
90
+ cache will be enabled.
91
+
79
92
  Non-Standard Driver Methods
80
93
  ---------------------------
81
94
 
@@ -101,33 +114,6 @@ page.driver.error_messages
101
114
  => [{:source=>"http://example.com", :line_number=>1, :message=>"SyntaxError: Parse error"}]
102
115
  ```
103
116
 
104
- **alert_messages, confirm_messages, prompt_messages**: returns arrays of Javascript dialog messages for each dialog type
105
-
106
- ```js
107
- // In Javascript:
108
- alert("HI");
109
- confirm("Ok?");
110
- prompt("Number?", "42");
111
- ```
112
-
113
- ```ruby
114
- # In Ruby:
115
- page.driver.alert_messages
116
- => ["Hi"]
117
- page.driver.confirm_messages
118
- => ["Ok?"]
119
- page.driver.prompt_messages
120
- => ["Number?"]
121
- ```
122
-
123
- **resize_window**: change the viewport size to the given width and height
124
-
125
- ```ruby
126
- page.driver.resize_window(500, 300)
127
- page.driver.evaluate_script("window.innerWidth")
128
- => 500
129
- ```
130
-
131
117
  **cookies**: allows read-only access of cookies for the current session
132
118
 
133
119
  ```ruby
@@ -135,94 +121,6 @@ page.driver.cookies["alpha"]
135
121
  => "abc"
136
122
  ```
137
123
 
138
- **accept_js_confirms!**: accept any Javascript confirm that is triggered by the page's Javascript
139
-
140
- ```js
141
- // In Javascript:
142
- if (confirm("Ok?"))
143
- console.log("Hi");
144
- else
145
- console.log("Bye");
146
- ```
147
-
148
- ```ruby
149
- # In Ruby:
150
- page.driver.accept_js_confirms!
151
- visit "/"
152
- page.driver.console_messages.first[:message]
153
- => "Hi"
154
- ```
155
-
156
- **dismiss_js_confirms!**: dismiss any Javascript confirm that is triggered by the page's Javascript
157
-
158
- ```js
159
- // In Javascript:
160
- if (confirm("Ok?"))
161
- console.log("Hi");
162
- else
163
- console.log("Bye");
164
- ```
165
-
166
- ```ruby
167
- # In Ruby:
168
- page.driver.dismiss_js_confirms!
169
- visit "/"
170
- page.driver.console_messages.first[:message]
171
- => "Bye"
172
- ```
173
-
174
- **accept_js_prompts!**: accept any Javascript prompt that is triggered by the page's Javascript
175
-
176
- ```js
177
- // In Javascript:
178
- var a = prompt("Number?", "0")
179
- console.log(a);
180
- ```
181
-
182
- ```ruby
183
- # In Ruby:
184
- page.driver.accept_js_prompts!
185
- visit "/"
186
- page.driver.console_messages.first[:message]
187
- => "0"
188
- ```
189
-
190
- **dismiss_js_prompts!**: dismiss any Javascript prompt that is triggered by the page's Javascript
191
-
192
- ```js
193
- // In Javascript:
194
- var a = prompt("Number?", "0")
195
- if (a != null)
196
- console.log(a);
197
- else
198
- console.log("you said no"));
199
- ```
200
-
201
- ```ruby
202
- # In Ruby:
203
- page.driver.dismiss_js_prompts!
204
- visit "/"
205
- page.driver.console_messages.first[:message]
206
- => "you said no"
207
- ```
208
-
209
- **js_prompt_input=(value)**: set the text to use if a Javascript prompt is encountered and accepted
210
-
211
- ```js
212
- // In Javascript:
213
- var a = prompt("Number?", "0")
214
- console.log(a);
215
- ```
216
-
217
- ```ruby
218
- # In Ruby:
219
- page.driver.js_prompt_input = "42"
220
- page.driver.accept_js_prompts!
221
- visit "/"
222
- page.driver.console_messages.first[:message]
223
- => "42"
224
- ```
225
-
226
124
  **header**: set the given HTTP header for subsequent requests
227
125
 
228
126
  ```ruby
@@ -248,4 +146,4 @@ The names and logos for thoughtbot are trademarks of thoughtbot, inc.
248
146
  License
249
147
  -------
250
148
 
251
- capybara-webkit is Copyright (c) 2010-2013 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.
149
+ capybara-webkit is Copyright (c) 2010-2014 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.
data/Rakefile CHANGED
@@ -3,7 +3,9 @@ require 'rspec/core/rake_task'
3
3
  require_relative './lib/capybara_webkit_builder'
4
4
  require 'appraisal'
5
5
 
6
- Bundler::GemHelper.install_tasks
6
+ namespace :bundler do
7
+ Bundler::GemHelper.install_tasks
8
+ end
7
9
 
8
10
  desc "Generate a Makefile using qmake"
9
11
  file 'Makefile' do
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.required_ruby_version = ">= 1.9.0"
21
21
 
22
- s.add_runtime_dependency("capybara", ">= 2.0.2", "< 2.4.0")
22
+ s.add_runtime_dependency("capybara", ">= 2.0.2", "< 2.5.0")
23
23
  s.add_runtime_dependency("json")
24
24
 
25
25
  s.add_development_dependency("rspec", "~> 2.14.0")
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- capybara-webkit (1.2.0)
5
- capybara (>= 2.0.2, < 2.4.0)
4
+ capybara-webkit (1.3.0)
5
+ capybara (>= 2.0.2, < 2.5.0)
6
6
  json
7
7
 
8
8
  GEM
@@ -24,7 +24,6 @@ GEM
24
24
  ffi (1.9.3)
25
25
  ffi (1.9.3-java)
26
26
  json (1.8.1)
27
- json (1.8.1-java)
28
27
  launchy (2.4.2)
29
28
  addressable (~> 2.3)
30
29
  launchy (2.4.2-java)
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- capybara-webkit (1.2.0)
5
- capybara (>= 2.0.2, < 2.4.0)
4
+ capybara-webkit (1.3.0)
5
+ capybara (>= 2.0.2, < 2.5.0)
6
6
  json
7
7
 
8
8
  GEM
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- capybara-webkit (1.2.0)
5
- capybara (>= 2.0.2, < 2.4.0)
4
+ capybara-webkit (1.3.0)
5
+ capybara (>= 2.0.2, < 2.5.0)
6
6
  json
7
7
 
8
8
  GEM
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "capybara", "~> 2.4.0"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,77 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ capybara-webkit (1.3.0)
5
+ capybara (>= 2.0.2, < 2.5.0)
6
+ json
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ addressable (2.3.6)
12
+ appraisal (0.4.1)
13
+ bundler
14
+ rake
15
+ capybara (2.4.1)
16
+ mime-types (>= 1.16)
17
+ nokogiri (>= 1.3.3)
18
+ rack (>= 1.0.0)
19
+ rack-test (>= 0.5.4)
20
+ xpath (~> 2.0)
21
+ childprocess (0.5.3)
22
+ ffi (~> 1.0, >= 1.0.11)
23
+ diff-lcs (1.2.5)
24
+ ffi (1.9.3)
25
+ json (1.8.1)
26
+ launchy (2.4.2)
27
+ addressable (~> 2.3)
28
+ mime-types (2.3)
29
+ mini_magick (3.7.0)
30
+ subexec (~> 0.2.1)
31
+ mini_portile (0.6.0)
32
+ multi_json (1.10.1)
33
+ nokogiri (1.6.2.1)
34
+ mini_portile (= 0.6.0)
35
+ rack (1.5.2)
36
+ rack-protection (1.5.3)
37
+ rack
38
+ rack-test (0.6.2)
39
+ rack (>= 1.0)
40
+ rake (10.3.2)
41
+ rspec (2.14.1)
42
+ rspec-core (~> 2.14.0)
43
+ rspec-expectations (~> 2.14.0)
44
+ rspec-mocks (~> 2.14.0)
45
+ rspec-core (2.14.8)
46
+ rspec-expectations (2.14.5)
47
+ diff-lcs (>= 1.1.3, < 2.0)
48
+ rspec-mocks (2.14.6)
49
+ rubyzip (1.1.6)
50
+ selenium-webdriver (2.42.0)
51
+ childprocess (>= 0.5.0)
52
+ multi_json (~> 1.0)
53
+ rubyzip (~> 1.0)
54
+ websocket (~> 1.0.4)
55
+ sinatra (1.4.5)
56
+ rack (~> 1.4)
57
+ rack-protection (~> 1.4)
58
+ tilt (~> 1.3, >= 1.3.4)
59
+ subexec (0.2.3)
60
+ tilt (1.4.1)
61
+ websocket (1.0.7)
62
+ xpath (2.0.0)
63
+ nokogiri (~> 1.3)
64
+
65
+ PLATFORMS
66
+ ruby
67
+
68
+ DEPENDENCIES
69
+ appraisal (~> 0.4.0)
70
+ capybara (~> 2.4.0)
71
+ capybara-webkit!
72
+ launchy
73
+ mini_magick
74
+ rake
75
+ rspec (~> 2.14.0)
76
+ selenium-webdriver
77
+ sinatra
@@ -126,26 +126,54 @@ module Capybara::Webkit
126
126
  JSON.parse(command('GetWindowHandles'))
127
127
  end
128
128
 
129
- alias_method :window_handles, :get_window_handles
129
+ def window_handles
130
+ warn '[DEPRECATION] Capybara::Webkit::Browser#window_handles ' \
131
+ 'is deprecated. Please use Capybara::Session#windows instead.'
132
+ get_window_handles
133
+ end
130
134
 
131
135
  def get_window_handle
132
136
  command('GetWindowHandle')
133
137
  end
134
138
 
135
- alias_method :window_handle, :get_window_handle
139
+ def window_handle
140
+ warn '[DEPRECATION] Capybara::Webkit::Browser#window_handle ' \
141
+ 'is deprecated. Please use Capybara::Session#current_window instead.'
142
+ get_window_handle
143
+ end
144
+
145
+ def accept_confirm(options)
146
+ command("SetConfirmAction", "Yes", options[:text])
147
+ end
136
148
 
137
149
  def accept_js_confirms
138
150
  command("SetConfirmAction", "Yes")
139
151
  end
140
152
 
153
+ def reject_confirm(options)
154
+ command("SetConfirmAction", "No", options[:text])
155
+ end
156
+
141
157
  def reject_js_confirms
142
158
  command("SetConfirmAction", "No")
143
159
  end
144
160
 
161
+ def accept_prompt(options)
162
+ if options[:with]
163
+ command("SetPromptAction", "Yes", options[:text], options[:with])
164
+ else
165
+ command("SetPromptAction", "Yes", options[:text])
166
+ end
167
+ end
168
+
145
169
  def accept_js_prompts
146
170
  command("SetPromptAction", "Yes")
147
171
  end
148
172
 
173
+ def reject_prompt(options)
174
+ command("SetPromptAction", "No", options[:text])
175
+ end
176
+
149
177
  def reject_js_prompts
150
178
  command("SetPromptAction", "No")
151
179
  end
@@ -158,6 +186,14 @@ module Capybara::Webkit
158
186
  command("ClearPromptText")
159
187
  end
160
188
 
189
+ def accept_alert(options)
190
+ command("AcceptAlert", options[:text])
191
+ end
192
+
193
+ def find_modal(id)
194
+ command("FindModal", id)
195
+ end
196
+
161
197
  def url_blacklist=(black_list)
162
198
  command("SetUrlBlacklist", *Array(black_list))
163
199
  end