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.
@@ -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
@@ -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 to the current working directory. If you want to customize the location, override the file path as:
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 into `$APPLICATION_ROOT/tmp/capybara`. If you want screenshots to be automatically pruned on a new failure, then you can specify one of the following prune strategies as follows:
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::ScreenShot.prune_strategy = :keep_last_run
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::ScreenShot.prune_strategy = { keep: 20 }
176
+ Capybara::Screenshot.prune_strategy = { keep: 20 }
175
177
  ```
176
178
 
177
179
 
@@ -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("data:image/png;base64,#{encoded_img}", 'image/png', "Screenshot of the error")
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 Capybara.page.respond_to?(:save_page) # Capybara DSL method has been included for a feature we can snapshot
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)
@@ -1,5 +1,5 @@
1
1
  module Capybara
2
2
  module Screenshot
3
- VERSION = "1.0.3"
3
+ VERSION = '1.0.4'
4
4
  end
5
5
  end
@@ -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(:example) { double("example", exception: Exception.new, metadata: {}) }
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
- example = double("example", metadata: metadata)
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
@@ -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.3
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: 2014-10-01 00:00:00.000000000 Z
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: 1.8.23.2
256
+ rubygems_version: 2.2.2
287
257
  signing_key:
288
- specification_version: 3
258
+ specification_version: 4
289
259
  summary: Automatically create snapshots when Cucumber steps fail with Capybara and
290
260
  Rails
291
261
  test_files: