capybara-screenshot 1.0.12 → 1.0.13

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: 0fb2ac718fb87183d57ce6b852dcd9a7f21d908d
4
- data.tar.gz: 71177ec4576776a6ed0368cecfbb335e52e78457
3
+ metadata.gz: a2c4277a621182718153bba9b9bae60234ddfd17
4
+ data.tar.gz: 6af401d8ae56c2849916c0145f0f0ce928cc92ac
5
5
  SHA512:
6
- metadata.gz: 78fcfead269c5570bfa3309d2263ca664359aa8ede1ce21e3a61af8bcb2ca9ca4f3b488b0bbc02cfc4da75ae6b35d0132977cf1e069ef120d3e6b651476b2a6c
7
- data.tar.gz: 883369b31dc3b1e0ae3e1aa477892638f5adb745e9a53ff4ea0a49f8dc2b5a1782bbe59373afbe79063ed003e452dcd5eae61119ff5a7a94b97bf84614035b1c
6
+ metadata.gz: 0696563bcf86da3827f2d8392f2555c56e2f830b0ff6c76bad72d5ac2c1b8ddb37730fee26c51924dbd0f4edc4cf8054949adac7506bf01b45cd955fc200c676
7
+ data.tar.gz: 55ebe3341f404a7c57d5265ca6478127e3b3b4f277a0f2d130f87d5724b0d38d6d441fed4488ab13d0194826432ad0491f6a52b754dc19e578f6f33f61be1a83
@@ -1,3 +1,8 @@
1
+ 23 May 2016 - 1.0.12 -> 1.0.13
2
+
3
+ * Fixes [mkmf bug 162](https://github.com/mattheworiordan/capybara-screenshot/issues/162) and [mkmf bug 174](https://github.com/mattheworiordan/capybara-screenshot/issues/174)
4
+ * Fix for `Capybara.save_path` method existence assumption
5
+
1
6
  29 March 2016 - 1.0.11 -> 1.0.12
2
7
 
3
8
  * [Aruba upgrade - passing CI](https://github.com/mattheworiordan/capybara-screenshot/pull/156)
data/README.md CHANGED
@@ -174,6 +174,31 @@ Capybara.save_and_open_page_path = "/file/path"
174
174
  ```
175
175
 
176
176
 
177
+ Uploading screenshots to S3
178
+ --------------------------
179
+ You can configure capybara-screenshot to automatically save your screenshots to an AWS S3 bucket.
180
+
181
+ First, install the `aws-sdk` gem or add it to your Gemfile
182
+
183
+ ```ruby
184
+ gem 'capybara-screenshot', :group => :test
185
+ gem 'aws-sdk', :group => :test
186
+ ```
187
+
188
+ Next, configure capybara-screenshot with your S3 credentials, the bucket to save to, and an optional region (default: `us-east-1`).
189
+
190
+ ```ruby
191
+ Capybara::Screenshot.s3_configuration = {
192
+ s3_client_credentials: {
193
+ access_key_id: "my_access_key_id",
194
+ secret_access_key: "my_secret_access_key",
195
+ region: "eu-central-1"
196
+ },
197
+ bucket_name: "my_screenshots"
198
+ }
199
+ ```
200
+
201
+
177
202
  Pruning old screenshots automatically
178
203
  --------------------------
179
204
  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:
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.add_development_dependency 'test-unit'
31
31
  s.add_development_dependency 'spinach'
32
32
  s.add_development_dependency 'minitest'
33
+ s.add_development_dependency 'aws-sdk'
33
34
 
34
35
  s.files = `git ls-files`.split("\n")
35
36
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -9,6 +9,7 @@ module Capybara
9
9
  attr_accessor :webkit_options
10
10
  attr_writer :final_session_name
11
11
  attr_accessor :prune_strategy
12
+ attr_accessor :s3_configuration
12
13
  end
13
14
 
14
15
  self.autosave_on_failure = true
@@ -18,6 +19,7 @@ module Capybara
18
19
  self.append_random = false
19
20
  self.webkit_options = {}
20
21
  self.prune_strategy = :keep_all
22
+ self.s3_configuration = {}
21
23
 
22
24
  def self.append_screenshot_path=(value)
23
25
  $stderr.puts "WARNING: Capybara::Screenshot.append_screenshot_path is deprecated. " +
@@ -26,7 +28,7 @@ module Capybara
26
28
  end
27
29
 
28
30
  def self.screenshot_and_save_page
29
- saver = Saver.new(Capybara, Capybara.page)
31
+ saver = new_saver(Capybara, Capybara.page)
30
32
  if saver.save
31
33
  {:html => saver.html_path, :image => saver.screenshot_path}
32
34
  end
@@ -35,7 +37,7 @@ module Capybara
35
37
  def self.screenshot_and_open_image
36
38
  require "launchy"
37
39
 
38
- saver = Saver.new(Capybara, Capybara.page, false)
40
+ saver = new_saver(Capybara, Capybara.page, false)
39
41
  if saver.save
40
42
  Launchy.open saver.screenshot_path
41
43
  {:html => nil, :image => saver.screenshot_path}
@@ -54,7 +56,7 @@ module Capybara
54
56
  end
55
57
 
56
58
  def self.capybara_root
57
- @capybara_root ||= if defined?(::Rails) && Rails.root.present?
59
+ @capybara_root ||= if defined?(::Rails) && ::Rails.root.present?
58
60
  ::Rails.root.join capybara_tmp_path
59
61
  elsif defined?(Padrino)
60
62
  File.expand_path(capybara_tmp_path, Padrino.root)
@@ -90,11 +92,28 @@ module Capybara
90
92
  @pruned_previous_screenshots = nil
91
93
  end
92
94
 
95
+ def self.new_saver(*args)
96
+ saver = Saver.new(*args)
97
+
98
+ unless s3_configuration.empty?
99
+ require 'capybara-screenshot/s3_saver'
100
+ saver = S3Saver.new_with_configuration(saver, s3_configuration)
101
+ end
102
+
103
+ return saver
104
+ end
105
+
93
106
  private
94
107
 
95
108
  # If the path isn't set, default to the current directory
96
109
  def self.capybara_tmp_path
97
- Capybara.save_and_open_page_path || '.'
110
+ # `#save_and_open_page_path` is deprecated
111
+ # https://github.com/jnicklas/capybara/blob/48ab1ede946dec2250a2d1d8cbb3313f25096456/History.md#L37
112
+ if Capybara.respond_to?(:save_path)
113
+ Capybara.save_path
114
+ else
115
+ Capybara.save_and_open_page_path
116
+ end || '.'
98
117
  end
99
118
  end
100
119
  end
@@ -1,5 +1,4 @@
1
1
  require "capybara-screenshot"
2
- require 'mkmf'
3
2
 
4
3
  Before do |scenario|
5
4
  Capybara::Screenshot.final_session_name = nil
@@ -10,7 +9,7 @@ After do |scenario|
10
9
  Capybara.using_session(Capybara::Screenshot.final_session_name) do
11
10
  filename_prefix = Capybara::Screenshot.filename_prefix_for(:cucumber, scenario)
12
11
 
13
- saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
12
+ saver = Capybara::Screenshot.new_saver(Capybara, Capybara.page, true, filename_prefix)
14
13
  saver.save
15
14
  saver.output_screenshot_path
16
15
 
@@ -6,14 +6,14 @@ module Capybara::Screenshot::MiniTestPlugin
6
6
  Capybara::Screenshot.final_session_name = nil
7
7
  end
8
8
 
9
- def after_teardown
9
+ def before_teardown
10
10
  super
11
- if self.class.ancestors.map(&:to_s).include?('ActionDispatch::IntegrationTest')
11
+ if self.class.ancestors.map(&:to_s).include?('Capybara::DSL')
12
12
  if Capybara::Screenshot.autosave_on_failure && !passed? && !skipped?
13
13
  Capybara.using_session(Capybara::Screenshot.final_session_name) do
14
14
  filename_prefix = Capybara::Screenshot.filename_prefix_for(:minitest, self)
15
15
 
16
- saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
16
+ saver = Capybara::Screenshot.new_saver(Capybara, Capybara.page, true, filename_prefix)
17
17
  saver.save
18
18
  saver.output_screenshot_path
19
19
  end
@@ -3,6 +3,7 @@ require "capybara-screenshot"
3
3
  require "capybara-screenshot/rspec/text_reporter"
4
4
  require "capybara-screenshot/rspec/html_link_reporter"
5
5
  require "capybara-screenshot/rspec/html_embed_reporter"
6
+ require "capybara-screenshot/rspec/json_reporter"
6
7
  require "capybara-screenshot/rspec/textmate_link_reporter"
7
8
 
8
9
  module Capybara
@@ -39,6 +40,7 @@ module Capybara
39
40
  "RSpec::Core::Formatters::ProgressFormatter" => Capybara::Screenshot::RSpec::TextReporter,
40
41
  "RSpec::Core::Formatters::DocumentationFormatter" => Capybara::Screenshot::RSpec::TextReporter,
41
42
  "RSpec::Core::Formatters::HtmlFormatter" => Capybara::Screenshot::RSpec::HtmlLinkReporter,
43
+ "RSpec::Core::Formatters::JsonFormatter" => Capybara::Screenshot::RSpec::JsonReporter,
42
44
  "RSpec::Core::Formatters::TextMateFormatter" => Capybara::Screenshot::RSpec::TextMateLinkReporter, # RSpec 2
43
45
  "RSpec::Mate::Formatters::TextMateFormatter" => Capybara::Screenshot::RSpec::TextMateLinkReporter, # RSpec 3
44
46
  "Fuubar" => Capybara::Screenshot::RSpec::TextReporter
@@ -53,7 +55,7 @@ module Capybara
53
55
  if Capybara.page.current_url != '' && Capybara::Screenshot.autosave_on_failure && example.exception
54
56
  filename_prefix = Capybara::Screenshot.filename_prefix_for(:rspec, example)
55
57
 
56
- saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
58
+ saver = Capybara::Screenshot.new_saver(Capybara, Capybara.page, true, filename_prefix)
57
59
  saver.save
58
60
 
59
61
  example.metadata[:screenshot] = {}
@@ -0,0 +1,19 @@
1
+ require 'capybara-screenshot/rspec/base_reporter'
2
+
3
+ module Capybara
4
+ module Screenshot
5
+ module RSpec
6
+ module JsonReporter
7
+ extend BaseReporter
8
+
9
+ enhance_with_screenshot :format_example
10
+
11
+ def format_example_with_screenshot(example)
12
+ format_example_without_screenshot(example).merge({
13
+ screenshot: example.metadata[:screenshot]
14
+ })
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,64 @@
1
+ require 'aws-sdk'
2
+
3
+ module Capybara
4
+ module Screenshot
5
+ class S3Saver
6
+ DEFAULT_REGION = 'us-east-1'
7
+
8
+ def initialize(saver, s3_client, bucket_name)
9
+ @saver = saver
10
+ @s3_client = s3_client
11
+ @bucket_name = bucket_name
12
+ end
13
+
14
+ def self.new_with_configuration(saver, configuration)
15
+ default_s3_client_credentials = {
16
+ region: DEFAULT_REGION
17
+ }
18
+
19
+ s3_client_credentials = default_s3_client_credentials.merge(
20
+ configuration.fetch(:s3_client_credentials)
21
+ )
22
+
23
+ s3_client = Aws::S3::Client.new(s3_client_credentials)
24
+ bucket_name = configuration.fetch(:bucket_name)
25
+
26
+ new(saver, s3_client, bucket_name)
27
+ rescue KeyError
28
+ raise "Invalid S3 Configuration #{configuration}. Please refer to the documentation for the necessary configurations."
29
+ end
30
+
31
+ def save_and_upload_screenshot
32
+ save_and do |local_file_path|
33
+ File.open(local_file_path) do |file|
34
+ s3_client.put_object(
35
+ bucket: bucket_name,
36
+ key: File.basename(local_file_path),
37
+ body: file
38
+ )
39
+ end
40
+ end
41
+ end
42
+ alias_method :save, :save_and_upload_screenshot
43
+
44
+ def method_missing(method, *args)
45
+ # Need to use @saver instead of S3Saver#saver attr_reader method because
46
+ # using the method goes into infinite loop. Maybe attr_reader implements
47
+ # its methods via method_missing?
48
+ @saver.send(method, *args)
49
+ end
50
+
51
+ private
52
+ attr_reader :saver,
53
+ :s3_client,
54
+ :bucket_name
55
+
56
+ def save_and
57
+ saver.save
58
+
59
+ yield(saver.html_path) if block_given? && saver.html_saved?
60
+ yield(saver.screenshot_path) if block_given? && saver.screenshot_saved?
61
+ end
62
+ end
63
+ end
64
+ end
@@ -9,7 +9,7 @@ module Capybara::Screenshot::Spinach
9
9
  if Capybara::Screenshot.autosave_on_failure
10
10
  Capybara.using_session(Capybara::Screenshot.final_session_name) do
11
11
  filename_prefix = Capybara::Screenshot.filename_prefix_for(:spinach, step_data)
12
- saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
12
+ saver = Capybara::Screenshot.new_saver(Capybara, Capybara.page, true, filename_prefix)
13
13
  saver.save
14
14
  saver.output_screenshot_path
15
15
  end
@@ -27,7 +27,7 @@ Test::Unit::TestResult.class_eval do
27
27
  Capybara.using_session(Capybara::Screenshot.final_session_name) do
28
28
  filename_prefix = Capybara::Screenshot.filename_prefix_for(:testunit, fault)
29
29
 
30
- saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
30
+ saver = Capybara::Screenshot.new_saver(Capybara, Capybara.page, true, filename_prefix)
31
31
  saver.save
32
32
  saver.output_screenshot_path
33
33
  end
@@ -1,5 +1,5 @@
1
1
  module Capybara
2
2
  module Screenshot
3
- VERSION = '1.0.12'
3
+ VERSION = '1.0.13'
4
4
  end
5
5
  end
@@ -31,25 +31,6 @@ describe "Using Capybara::Screenshot with MiniTest" do
31
31
  end
32
32
 
33
33
  it 'saves a screenshot on failure' do
34
- run_failing_case <<-RUBY
35
- module ActionDispatch
36
- class IntegrationTest < Minitest::Unit::TestCase; end
37
- end
38
-
39
- class TestFailure < ActionDispatch::IntegrationTest
40
- include Capybara::DSL
41
-
42
- def test_failure
43
- visit '/'
44
- assert(page.body.include?('This is the root page'))
45
- click_on "you'll never find me"
46
- end
47
- end
48
- RUBY
49
- expect('tmp/my_screenshot.html').to have_file_content('This is the root page')
50
- end
51
-
52
- it "does not save a screenshot for tests that don't inherit from ActionDispatch::IntegrationTest" do
53
34
  run_failing_case <<-RUBY
54
35
  class TestFailure < MiniTest::Unit::TestCase
55
36
  include Capybara::DSL
@@ -61,16 +42,12 @@ describe "Using Capybara::Screenshot with MiniTest" do
61
42
  end
62
43
  end
63
44
  RUBY
64
- expect('tmp/my_screenshot.html').to_not be_an_existing_file
45
+ expect('tmp/my_screenshot.html').to have_file_content('This is the root page')
65
46
  end
66
47
 
67
48
  it 'saves a screenshot for the correct session for failures using_session' do
68
49
  run_failing_case <<-RUBY
69
- module ActionDispatch
70
- class IntegrationTest < Minitest::Unit::TestCase; end
71
- end
72
-
73
- class TestFailure < ActionDispatch::IntegrationTest
50
+ class TestFailure < Minitest::Unit::TestCase
74
51
  include Capybara::DSL
75
52
 
76
53
  def test_failure
@@ -91,11 +68,7 @@ describe "Using Capybara::Screenshot with MiniTest" do
91
68
  create_screenshot_for_pruning
92
69
  configure_prune_strategy :last_run
93
70
  run_failing_case <<-RUBY
94
- module ActionDispatch
95
- class IntegrationTest < Minitest::Unit::TestCase; end
96
- end
97
-
98
- class TestFailure < ActionDispatch::IntegrationTest
71
+ class TestFailure < Minitest::Unit::TestCase
99
72
  include Capybara::DSL
100
73
 
101
74
  def test_failure
@@ -57,7 +57,8 @@ describe Capybara::Screenshot::RSpec, :type => :aruba do
57
57
  formatters = {
58
58
  progress: 'HTML screenshot:',
59
59
  documentation: 'HTML screenshot:',
60
- html: %r{<a href="file://\./tmp/screenshot\.html"[^>]*>HTML page</a>}
60
+ html: %r{<a href="file://\./tmp/screenshot\.html"[^>]*>HTML page</a>},
61
+ json: '"screenshot":{"'
61
62
  }
62
63
 
63
64
  # Textmate formatter is only included in RSpec 2
@@ -65,6 +65,32 @@ describe Capybara::Screenshot do
65
65
  end
66
66
  end
67
67
 
68
+ describe '.new_saver' do
69
+ it 'passes through to get a new Saver if the user has not configured s3' do
70
+ saver_double = double('saver')
71
+ args = double('args')
72
+ expect(Capybara::Screenshot::Saver).to receive(:new).with(args).and_return(saver_double)
73
+
74
+ expect(Capybara::Screenshot.new_saver(args)).to eq(saver_double)
75
+ end
76
+
77
+ it 'wraps the returned saver in an S3 saver if it has been configured' do
78
+ require 'capybara-screenshot/s3_saver'
79
+
80
+ saver_double = double('saver')
81
+ args = double('args')
82
+ s3_saver_double = double('s3_saver')
83
+ s3_configuration = { hello: 'world' }
84
+
85
+ Capybara::Screenshot.s3_configuration = s3_configuration
86
+
87
+ expect(Capybara::Screenshot::Saver).to receive(:new).with(args).and_return(saver_double)
88
+ expect(Capybara::Screenshot::S3Saver).to receive(:new_with_configuration).with(saver_double, s3_configuration).and_return(s3_saver_double)
89
+
90
+ expect(Capybara::Screenshot.new_saver(args)).to eq(s3_saver_double)
91
+ end
92
+ end
93
+
68
94
  describe '#prune' do
69
95
  before do
70
96
  Capybara::Screenshot.reset_prune_history
@@ -0,0 +1,132 @@
1
+ require 'spec_helper'
2
+ require 'capybara-screenshot/s3_saver'
3
+
4
+ describe Capybara::Screenshot::S3Saver do
5
+ let(:saver) { double('saver') }
6
+ let(:bucket_name) { double('bucket_name') }
7
+ let(:s3_client) { double('s3_client') }
8
+
9
+ let(:s3_saver) { Capybara::Screenshot::S3Saver.new(saver, s3_client, bucket_name) }
10
+
11
+ describe '.new_with_configuration' do
12
+ let(:access_key_id) { double('access_key_id') }
13
+ let(:secret_access_key) { double('secret_access_key') }
14
+ let(:s3_client_credentials_using_defaults) {
15
+ {
16
+ access_key_id: access_key_id,
17
+ secret_access_key: secret_access_key
18
+ }
19
+ }
20
+
21
+ let(:region) { double('region') }
22
+ let(:s3_client_credentials) {
23
+ s3_client_credentials_using_defaults.merge(region: region)
24
+ }
25
+
26
+ it 'destructures the configuration into its components' do
27
+ allow(Aws::S3::Client).to receive(:new).and_return(s3_client)
28
+ allow(Capybara::Screenshot::S3Saver).to receive(:new)
29
+
30
+ Capybara::Screenshot::S3Saver.new_with_configuration(saver, {
31
+ s3_client_credentials: s3_client_credentials,
32
+ bucket_name: bucket_name
33
+ })
34
+
35
+ expect(Aws::S3::Client).to have_received(:new).with(s3_client_credentials)
36
+ expect(Capybara::Screenshot::S3Saver).to have_received(:new).with(saver, s3_client, bucket_name)
37
+ end
38
+
39
+ it 'defaults the region to us-east-1' do
40
+ default_region = 'us-east-1'
41
+
42
+ allow(Aws::S3::Client).to receive(:new).and_return(s3_client)
43
+ allow(Capybara::Screenshot::S3Saver).to receive(:new)
44
+
45
+ Capybara::Screenshot::S3Saver.new_with_configuration(saver, {
46
+ s3_client_credentials: s3_client_credentials_using_defaults,
47
+ bucket_name: bucket_name
48
+ })
49
+
50
+ expect(Aws::S3::Client).to have_received(:new).with(
51
+ s3_client_credentials.merge(region: default_region)
52
+ )
53
+
54
+ expect(Capybara::Screenshot::S3Saver).to have_received(:new).with(saver, s3_client, bucket_name)
55
+ end
56
+ end
57
+
58
+ describe '#save' do
59
+ before do
60
+ allow(saver).to receive(:html_saved?).and_return(false)
61
+ allow(saver).to receive(:screenshot_saved?).and_return(false)
62
+ allow(saver).to receive(:save)
63
+ end
64
+
65
+ it 'calls save on the underlying saver' do
66
+ expect(saver).to receive(:save)
67
+
68
+ s3_saver.save
69
+ end
70
+
71
+ it 'uploads the html' do
72
+ html_path = '/foo/bar.html'
73
+ expect(saver).to receive(:html_path).and_return(html_path)
74
+ expect(saver).to receive(:html_saved?).and_return(true)
75
+
76
+ html_file = double('html_file')
77
+
78
+ expect(File).to receive(:open).with(html_path).and_yield(html_file)
79
+
80
+ expect(s3_client).to receive(:put_object).with(
81
+ bucket: bucket_name,
82
+ key: 'bar.html',
83
+ body: html_file
84
+ )
85
+
86
+ s3_saver.save
87
+ end
88
+
89
+ it 'uploads the screenshot' do
90
+ screenshot_path = '/baz/bim.jpg'
91
+ expect(saver).to receive(:screenshot_path).and_return(screenshot_path)
92
+ expect(saver).to receive(:screenshot_saved?).and_return(true)
93
+
94
+ screenshot_file = double('screenshot_file')
95
+
96
+ expect(File).to receive(:open).with(screenshot_path).and_yield(screenshot_file)
97
+
98
+ expect(s3_client).to receive(:put_object).with(
99
+ bucket: bucket_name,
100
+ key: 'bim.jpg',
101
+ body: screenshot_file
102
+ )
103
+
104
+ s3_saver.save
105
+ end
106
+ end
107
+
108
+ # Needed because we cannot depend on Verifying Doubles
109
+ # in older RSpec versions
110
+ describe 'an actual saver' do
111
+ it 'implements the methods needed by the s3 saver' do
112
+ instance_methods = Capybara::Screenshot::Saver.instance_methods
113
+
114
+ expect(instance_methods).to include(:save)
115
+ expect(instance_methods).to include(:html_saved?)
116
+ expect(instance_methods).to include(:html_path)
117
+ expect(instance_methods).to include(:screenshot_saved?)
118
+ expect(instance_methods).to include(:screenshot_path)
119
+ end
120
+ end
121
+
122
+ describe 'any other method' do
123
+ it 'transparently passes through to the saver' do
124
+ allow(saver).to receive(:foo_bar)
125
+
126
+ args = double('args')
127
+ s3_saver.foo_bar(*args)
128
+
129
+ expect(saver).to have_received(:foo_bar).with(*args)
130
+ end
131
+ end
132
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara-screenshot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.12
4
+ version: 1.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew O'Riordan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-29 00:00:00.000000000 Z
11
+ date: 2016-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -156,6 +156,20 @@ dependencies:
156
156
  - - ">="
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: aws-sdk
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
159
173
  description: When a Cucumber step fails, it is useful to create a screenshot image
160
174
  and HTML file of the current page
161
175
  email:
@@ -192,8 +206,10 @@ files:
192
206
  - lib/capybara-screenshot/rspec/base_reporter.rb
193
207
  - lib/capybara-screenshot/rspec/html_embed_reporter.rb
194
208
  - lib/capybara-screenshot/rspec/html_link_reporter.rb
209
+ - lib/capybara-screenshot/rspec/json_reporter.rb
195
210
  - lib/capybara-screenshot/rspec/text_reporter.rb
196
211
  - lib/capybara-screenshot/rspec/textmate_link_reporter.rb
212
+ - lib/capybara-screenshot/s3_saver.rb
197
213
  - lib/capybara-screenshot/saver.rb
198
214
  - lib/capybara-screenshot/spinach.rb
199
215
  - lib/capybara-screenshot/testunit.rb
@@ -220,6 +236,7 @@ files:
220
236
  - spec/unit/rspec_reporters/html_link_reporter_spec.rb
221
237
  - spec/unit/rspec_reporters/text_reporter_spec.rb
222
238
  - spec/unit/rspec_reporters/textmate_link_reporter_spec.rb
239
+ - spec/unit/s3_saver_spec.rb
223
240
  - spec/unit/saver_spec.rb
224
241
  homepage: http://github.com/mattheworiordan/capybara-screenshot
225
242
  licenses:
@@ -269,4 +286,5 @@ test_files:
269
286
  - spec/unit/rspec_reporters/html_link_reporter_spec.rb
270
287
  - spec/unit/rspec_reporters/text_reporter_spec.rb
271
288
  - spec/unit/rspec_reporters/textmate_link_reporter_spec.rb
289
+ - spec/unit/s3_saver_spec.rb
272
290
  - spec/unit/saver_spec.rb