capybara-screenshot 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +8 -0
- data/README.md +6 -4
- data/lib/capybara-screenshot.rb +4 -0
- data/lib/capybara-screenshot/cucumber.rb +1 -1
- data/lib/capybara-screenshot/rspec.rb +1 -1
- data/lib/capybara-screenshot/version.rb +1 -1
- data/spec/unit/capybara-screenshot_rspec_spec.rb +2 -2
- data/spec/unit/rspec_reporters/text_reporter_spec.rb +2 -1
- data/spec/unit/saver_spec.rb +13 -0
- metadata +34 -64
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 598042a28e4b32d5e96493d6995cf17a57941b45
|
4
|
+
data.tar.gz: fe2a90457b3963e841ce8dfe3ce393718c497931
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 186f3770e7d01874d4e6e6dfdfcd322414245f59dae9d692084ad374cf4944f215ef1bfaba6d32cf23e98896f44d81c223b0da317649c917f8f21be12de88d6d
|
7
|
+
data.tar.gz: d4685dc01dda84f6c46b5f7fd065d9b242e39b8d4eddbb2774f04b65352c235b67c453427bd13566e78164dfd39fc14d9787a6dae9f2dcf99a9919515499d501
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
5 January 2014 - 1.0.3 -> 1.0.4
|
2
|
+
-----------
|
3
|
+
|
4
|
+
* Added support for Poltergeist Billy
|
5
|
+
* Don't initialize a new Capybara::Session in after hook
|
6
|
+
|
7
|
+
Thanks to [Neodude](https://github.com/neodude) and [Dominik Masur](https://github.com/dmasur)
|
8
|
+
|
1
9
|
1 October 2014 - 1.0.2 -> 1.0.3
|
2
10
|
-----------
|
3
11
|
|
data/README.md
CHANGED
@@ -133,6 +133,8 @@ Capybara::Screenshot.register_driver(:exotic_browser_driver) do |driver, path|
|
|
133
133
|
end
|
134
134
|
```
|
135
135
|
|
136
|
+
If your driver is based on existing browser driver, like Firefox, instead of `.super_dooper_render` do `driver.browser.save_screenshot path`.
|
137
|
+
|
136
138
|
|
137
139
|
Custom screenshot filename
|
138
140
|
--------------------------
|
@@ -155,7 +157,7 @@ Capybara::Screenshot.append_timestamp = false
|
|
155
157
|
|
156
158
|
Custom screenshot directory
|
157
159
|
--------------------------
|
158
|
-
By default screenshots are saved
|
160
|
+
By default screenshots are saved into `$APPLICATION_ROOT/tmp/capybara`. If you want to customize the location, override the file path as:
|
159
161
|
|
160
162
|
```ruby
|
161
163
|
Capybara.save_and_open_page_path = "/file/path"
|
@@ -164,14 +166,14 @@ Capybara.save_and_open_page_path = "/file/path"
|
|
164
166
|
|
165
167
|
Pruning old screenshots automatically
|
166
168
|
--------------------------
|
167
|
-
By default screenshots are saved indefinitely
|
169
|
+
By default screenshots are saved indefinitely, if you want them to be automatically pruned on a new failure, then you can specify one of the following prune strategies as follows:
|
168
170
|
|
169
171
|
```ruby
|
170
172
|
# Keep only the screenshots generated from the last failing test suite
|
171
|
-
Capybara::
|
173
|
+
Capybara::Screenshot.prune_strategy = :keep_last_run
|
172
174
|
|
173
175
|
# Keep up to the number of screenshots specified in the hash
|
174
|
-
Capybara::
|
176
|
+
Capybara::Screenshot.prune_strategy = { keep: 20 }
|
175
177
|
```
|
176
178
|
|
177
179
|
|
data/lib/capybara-screenshot.rb
CHANGED
@@ -115,6 +115,10 @@ Capybara::Screenshot.class_eval do
|
|
115
115
|
driver.render(path, :full => true)
|
116
116
|
end
|
117
117
|
|
118
|
+
register_driver(:poltergeist_billy) do |driver, path|
|
119
|
+
driver.render(path, :full => true)
|
120
|
+
end
|
121
|
+
|
118
122
|
register_driver(:webkit) do |driver, path|
|
119
123
|
if driver.respond_to?(:save_screenshot)
|
120
124
|
driver.save_screenshot(path, webkit_options)
|
@@ -20,7 +20,7 @@ After do |scenario|
|
|
20
20
|
image = open(saver.screenshot_path, 'rb') {|io|io.read}
|
21
21
|
encoded_img = Base64.encode64(image)
|
22
22
|
#this will embed the image in the HTML report, embed() is defined in cucumber
|
23
|
-
embed(
|
23
|
+
embed(encoded_img, 'image/png;base64', "Screenshot of the error")
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -47,7 +47,7 @@ module Capybara
|
|
47
47
|
attr_accessor :add_link_to_screenshot_for_failed_examples
|
48
48
|
|
49
49
|
def after_failed_example(example)
|
50
|
-
if
|
50
|
+
if example.example_group.include?(Capybara::DSL) # Capybara DSL method has been included for a feature we can snapshot
|
51
51
|
Capybara.using_session(Capybara::Screenshot.final_session_name) do
|
52
52
|
if Capybara.page.current_url != '' && Capybara::Screenshot.autosave_on_failure && example.exception
|
53
53
|
filename_prefix = Capybara::Screenshot.filename_prefix_for(:rspec, example)
|
@@ -4,11 +4,11 @@ describe Capybara::Screenshot::RSpec do
|
|
4
4
|
describe '.after_failed_example' do
|
5
5
|
context 'for a failed example in a feature that can be snapshotted' do
|
6
6
|
before do
|
7
|
-
allow(Capybara.page).to receive(:save_page)
|
8
7
|
allow(Capybara.page).to receive(:current_url).and_return("http://test.local")
|
9
8
|
allow(Capybara::Screenshot::Saver).to receive(:new).and_return(mock_saver)
|
10
9
|
end
|
11
|
-
let(:
|
10
|
+
let(:example_group) { Module.new.include(Capybara::DSL) }
|
11
|
+
let(:example) { double("example", exception: Exception.new, example_group: example_group, metadata: {}) }
|
12
12
|
let(:mock_saver) do
|
13
13
|
Capybara::Screenshot::Saver.new(Capybara, Capybara.page).tap do |saver|
|
14
14
|
allow(saver).to receive(:save)
|
@@ -42,7 +42,8 @@ describe Capybara::Screenshot::RSpec::TextReporter do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def example_failed_method_argument_double(metadata = {})
|
45
|
-
|
45
|
+
example_group = Module.new.include(Capybara::DSL)
|
46
|
+
example = double("example", metadata: metadata, example_group: example_group)
|
46
47
|
if ::RSpec::Core::Version::STRING.to_i <= 2
|
47
48
|
example
|
48
49
|
else
|
data/spec/unit/saver_spec.rb
CHANGED
@@ -168,6 +168,19 @@ describe Capybara::Screenshot::Saver do
|
|
168
168
|
end
|
169
169
|
end
|
170
170
|
|
171
|
+
describe "with poltergeist_billy driver" do
|
172
|
+
before do
|
173
|
+
allow(capybara_mock).to receive(:current_driver).and_return(:poltergeist_billy)
|
174
|
+
end
|
175
|
+
|
176
|
+
it 'saves driver render with :full => true' do
|
177
|
+
expect(driver_mock).to receive(:render).with(screenshot_path, {:full => true})
|
178
|
+
|
179
|
+
saver.save
|
180
|
+
expect(saver).to be_screenshot_saved
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
171
184
|
describe "with webkit driver" do
|
172
185
|
before do
|
173
186
|
allow(capybara_mock).to receive(:current_driver).and_return(:webkit)
|
metadata
CHANGED
@@ -1,196 +1,173 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-screenshot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Matthew O'Riordan
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-01-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: capybara
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '1.0'
|
22
|
-
- - <
|
20
|
+
- - "<"
|
23
21
|
- !ruby/object:Gem::Version
|
24
22
|
version: '3'
|
25
23
|
type: :runtime
|
26
24
|
prerelease: false
|
27
25
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
26
|
requirements:
|
30
|
-
- -
|
27
|
+
- - ">="
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: '1.0'
|
33
|
-
- - <
|
30
|
+
- - "<"
|
34
31
|
- !ruby/object:Gem::Version
|
35
32
|
version: '3'
|
36
33
|
- !ruby/object:Gem::Dependency
|
37
34
|
name: launchy
|
38
35
|
requirement: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
36
|
requirements:
|
41
|
-
- -
|
37
|
+
- - ">="
|
42
38
|
- !ruby/object:Gem::Version
|
43
39
|
version: '0'
|
44
40
|
type: :runtime
|
45
41
|
prerelease: false
|
46
42
|
version_requirements: !ruby/object:Gem::Requirement
|
47
|
-
none: false
|
48
43
|
requirements:
|
49
|
-
- -
|
44
|
+
- - ">="
|
50
45
|
- !ruby/object:Gem::Version
|
51
46
|
version: '0'
|
52
47
|
- !ruby/object:Gem::Dependency
|
53
48
|
name: colored
|
54
49
|
requirement: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
50
|
requirements:
|
57
|
-
- -
|
51
|
+
- - ">="
|
58
52
|
- !ruby/object:Gem::Version
|
59
53
|
version: '0'
|
60
54
|
type: :runtime
|
61
55
|
prerelease: false
|
62
56
|
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
57
|
requirements:
|
65
|
-
- -
|
58
|
+
- - ">="
|
66
59
|
- !ruby/object:Gem::Version
|
67
60
|
version: '0'
|
68
61
|
- !ruby/object:Gem::Dependency
|
69
62
|
name: rspec
|
70
63
|
requirement: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
64
|
requirements:
|
73
|
-
- -
|
65
|
+
- - ">="
|
74
66
|
- !ruby/object:Gem::Version
|
75
67
|
version: '0'
|
76
68
|
type: :development
|
77
69
|
prerelease: false
|
78
70
|
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
71
|
requirements:
|
81
|
-
- -
|
72
|
+
- - ">="
|
82
73
|
- !ruby/object:Gem::Version
|
83
74
|
version: '0'
|
84
75
|
- !ruby/object:Gem::Dependency
|
85
76
|
name: timecop
|
86
77
|
requirement: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
78
|
requirements:
|
89
|
-
- -
|
79
|
+
- - ">="
|
90
80
|
- !ruby/object:Gem::Version
|
91
81
|
version: '0'
|
92
82
|
type: :development
|
93
83
|
prerelease: false
|
94
84
|
version_requirements: !ruby/object:Gem::Requirement
|
95
|
-
none: false
|
96
85
|
requirements:
|
97
|
-
- -
|
86
|
+
- - ">="
|
98
87
|
- !ruby/object:Gem::Version
|
99
88
|
version: '0'
|
100
89
|
- !ruby/object:Gem::Dependency
|
101
90
|
name: cucumber
|
102
91
|
requirement: !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
104
92
|
requirements:
|
105
|
-
- -
|
93
|
+
- - ">="
|
106
94
|
- !ruby/object:Gem::Version
|
107
95
|
version: '0'
|
108
96
|
type: :development
|
109
97
|
prerelease: false
|
110
98
|
version_requirements: !ruby/object:Gem::Requirement
|
111
|
-
none: false
|
112
99
|
requirements:
|
113
|
-
- -
|
100
|
+
- - ">="
|
114
101
|
- !ruby/object:Gem::Version
|
115
102
|
version: '0'
|
116
103
|
- !ruby/object:Gem::Dependency
|
117
104
|
name: aruba
|
118
105
|
requirement: !ruby/object:Gem::Requirement
|
119
|
-
none: false
|
120
106
|
requirements:
|
121
|
-
- -
|
107
|
+
- - ">="
|
122
108
|
- !ruby/object:Gem::Version
|
123
109
|
version: '0'
|
124
110
|
type: :development
|
125
111
|
prerelease: false
|
126
112
|
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
none: false
|
128
113
|
requirements:
|
129
|
-
- -
|
114
|
+
- - ">="
|
130
115
|
- !ruby/object:Gem::Version
|
131
116
|
version: '0'
|
132
117
|
- !ruby/object:Gem::Dependency
|
133
118
|
name: sinatra
|
134
119
|
requirement: !ruby/object:Gem::Requirement
|
135
|
-
none: false
|
136
120
|
requirements:
|
137
|
-
- -
|
121
|
+
- - ">="
|
138
122
|
- !ruby/object:Gem::Version
|
139
123
|
version: '0'
|
140
124
|
type: :development
|
141
125
|
prerelease: false
|
142
126
|
version_requirements: !ruby/object:Gem::Requirement
|
143
|
-
none: false
|
144
127
|
requirements:
|
145
|
-
- -
|
128
|
+
- - ">="
|
146
129
|
- !ruby/object:Gem::Version
|
147
130
|
version: '0'
|
148
131
|
- !ruby/object:Gem::Dependency
|
149
132
|
name: test-unit
|
150
133
|
requirement: !ruby/object:Gem::Requirement
|
151
|
-
none: false
|
152
134
|
requirements:
|
153
|
-
- -
|
135
|
+
- - ">="
|
154
136
|
- !ruby/object:Gem::Version
|
155
137
|
version: '0'
|
156
138
|
type: :development
|
157
139
|
prerelease: false
|
158
140
|
version_requirements: !ruby/object:Gem::Requirement
|
159
|
-
none: false
|
160
141
|
requirements:
|
161
|
-
- -
|
142
|
+
- - ">="
|
162
143
|
- !ruby/object:Gem::Version
|
163
144
|
version: '0'
|
164
145
|
- !ruby/object:Gem::Dependency
|
165
146
|
name: spinach
|
166
147
|
requirement: !ruby/object:Gem::Requirement
|
167
|
-
none: false
|
168
148
|
requirements:
|
169
|
-
- -
|
149
|
+
- - ">="
|
170
150
|
- !ruby/object:Gem::Version
|
171
151
|
version: '0'
|
172
152
|
type: :development
|
173
153
|
prerelease: false
|
174
154
|
version_requirements: !ruby/object:Gem::Requirement
|
175
|
-
none: false
|
176
155
|
requirements:
|
177
|
-
- -
|
156
|
+
- - ">="
|
178
157
|
- !ruby/object:Gem::Version
|
179
158
|
version: '0'
|
180
159
|
- !ruby/object:Gem::Dependency
|
181
160
|
name: minitest
|
182
161
|
requirement: !ruby/object:Gem::Requirement
|
183
|
-
none: false
|
184
162
|
requirements:
|
185
|
-
- -
|
163
|
+
- - ">="
|
186
164
|
- !ruby/object:Gem::Version
|
187
165
|
version: '0'
|
188
166
|
type: :development
|
189
167
|
prerelease: false
|
190
168
|
version_requirements: !ruby/object:Gem::Requirement
|
191
|
-
none: false
|
192
169
|
requirements:
|
193
|
-
- -
|
170
|
+
- - ">="
|
194
171
|
- !ruby/object:Gem::Version
|
195
172
|
version: '0'
|
196
173
|
description: When a Cucumber step fails, it is useful to create a screenshot image
|
@@ -201,9 +178,9 @@ executables: []
|
|
201
178
|
extensions: []
|
202
179
|
extra_rdoc_files: []
|
203
180
|
files:
|
204
|
-
- .gitignore
|
205
|
-
- .rspec
|
206
|
-
- .travis.yml
|
181
|
+
- ".gitignore"
|
182
|
+
- ".rspec"
|
183
|
+
- ".travis.yml"
|
207
184
|
- Appraisals
|
208
185
|
- CHANGELOG.md
|
209
186
|
- Gemfile
|
@@ -259,33 +236,26 @@ files:
|
|
259
236
|
homepage: http://github.com/mattheworiordan/capybara-screenshot
|
260
237
|
licenses:
|
261
238
|
- MIT
|
239
|
+
metadata: {}
|
262
240
|
post_install_message:
|
263
241
|
rdoc_options: []
|
264
242
|
require_paths:
|
265
243
|
- lib
|
266
244
|
required_ruby_version: !ruby/object:Gem::Requirement
|
267
|
-
none: false
|
268
245
|
requirements:
|
269
|
-
- -
|
246
|
+
- - ">="
|
270
247
|
- !ruby/object:Gem::Version
|
271
248
|
version: '0'
|
272
|
-
segments:
|
273
|
-
- 0
|
274
|
-
hash: 696952700666398309
|
275
249
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
276
|
-
none: false
|
277
250
|
requirements:
|
278
|
-
- -
|
251
|
+
- - ">="
|
279
252
|
- !ruby/object:Gem::Version
|
280
253
|
version: '0'
|
281
|
-
segments:
|
282
|
-
- 0
|
283
|
-
hash: 696952700666398309
|
284
254
|
requirements: []
|
285
255
|
rubyforge_project: capybara-screenshot
|
286
|
-
rubygems_version:
|
256
|
+
rubygems_version: 2.2.2
|
287
257
|
signing_key:
|
288
|
-
specification_version:
|
258
|
+
specification_version: 4
|
289
259
|
summary: Automatically create snapshots when Cucumber steps fail with Capybara and
|
290
260
|
Rails
|
291
261
|
test_files:
|