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.
@@ -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: