capybara-screenshot 1.0.3 → 1.0.4
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/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:
|