capybara-screenshot 0.3 → 0.3.1
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.
data/capybara-screenshot.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
|
15
15
|
s.rubyforge_project = "capybara-screenshot"
|
16
16
|
|
17
|
-
s.add_dependency 'capybara', '>= 1.0'
|
17
|
+
s.add_dependency 'capybara', ['>= 1.0', '< 3']
|
18
18
|
s.add_development_dependency 'rspec', '~> 2.7'
|
19
19
|
s.add_development_dependency 'timecop'
|
20
20
|
|
data/lib/capybara-screenshot.rb
CHANGED
@@ -98,5 +98,9 @@ Capybara::Screenshot.class_eval do
|
|
98
98
|
end
|
99
99
|
|
100
100
|
require 'capybara/dsl'
|
101
|
+
require 'capybara/util/save_and_open_page' if Capybara::VERSION.match(/^\d+/)[0] == '1' # no longer needed in Capybara version 2
|
102
|
+
|
101
103
|
require 'capybara-screenshot/saver'
|
102
|
-
require 'capybara-screenshot/capybara'
|
104
|
+
require 'capybara-screenshot/capybara'
|
105
|
+
|
106
|
+
|
@@ -1,13 +1,15 @@
|
|
1
1
|
RSpec.configure do |config|
|
2
2
|
# use the before hook to add an after hook that runs last
|
3
|
-
config.after
|
4
|
-
if Capybara
|
5
|
-
|
3
|
+
config.after do
|
4
|
+
if Capybara.page.respond_to?(:save_page) # Capybara DSL method has been included for a feature we can snapshot
|
5
|
+
if Capybara::Screenshot.autosave_on_failure && example.exception
|
6
|
+
filename_prefix = Capybara::Screenshot.filename_prefix_for(:rspec, example)
|
6
7
|
|
7
|
-
|
8
|
-
|
8
|
+
saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
|
9
|
+
saver.save
|
9
10
|
|
10
|
-
|
11
|
+
example.metadata[:full_description] += "\n Screenshot: #{saver.screenshot_path}"
|
12
|
+
end
|
11
13
|
end
|
12
14
|
end
|
13
15
|
end
|
@@ -5,7 +5,7 @@ module Capybara
|
|
5
5
|
|
6
6
|
def initialize(capybara, page, html_save=true, filename_prefix='screenshot')
|
7
7
|
@capybara, @page, @html_save = capybara, page, html_save
|
8
|
-
@file_base_name = "#{filename_prefix}
|
8
|
+
@file_base_name = "#{filename_prefix}_#{Time.now.strftime('%Y-%m-%d-%H-%M-%S.%L')}"
|
9
9
|
end
|
10
10
|
|
11
11
|
def save
|
@@ -17,8 +17,12 @@ module Capybara
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def save_html
|
20
|
-
|
21
|
-
|
20
|
+
if Capybara::VERSION.match(/^\d+/)[0] == '1'
|
21
|
+
capybara.save_page(page.body, "#{file_base_name}.html")
|
22
|
+
else
|
23
|
+
capybara.save_page("#{file_base_name}.html")
|
24
|
+
end
|
25
|
+
warn "Saved file #{file_base_name}"
|
22
26
|
end
|
23
27
|
|
24
28
|
def save_screenshot
|
@@ -12,12 +12,12 @@ describe Capybara::Screenshot::Saver do
|
|
12
12
|
|
13
13
|
before do
|
14
14
|
Capybara::Screenshot.stub(:capybara_root).and_return(capybara_root)
|
15
|
-
Timecop.freeze(Time.local(2012, 6, 7, 8, 9, 10))
|
15
|
+
Timecop.freeze(Time.local(2012, 6, 7, 8, 9, 10, 0))
|
16
16
|
end
|
17
17
|
|
18
18
|
let(:capybara_root) { '/tmp' }
|
19
|
-
let(:timestamp) { '2012-06-07-08-09-10' }
|
20
|
-
let(:file_basename) { "
|
19
|
+
let(:timestamp) { '2012-06-07-08-09-10.000' }
|
20
|
+
let(:file_basename) { "screenshot_#{timestamp}" }
|
21
21
|
let(:screenshot_path) { "#{capybara_root}/#{file_basename}.png" }
|
22
22
|
|
23
23
|
let(:driver_mock) { mock('Capybara driver').as_null_object }
|
@@ -31,8 +31,12 @@ describe Capybara::Screenshot::Saver do
|
|
31
31
|
|
32
32
|
let(:saver) { Capybara::Screenshot::Saver.new(capybara_mock, page_mock) }
|
33
33
|
|
34
|
-
context 'html filename' do
|
35
|
-
|
34
|
+
context 'html filename with Capybara Version 1' do
|
35
|
+
before do
|
36
|
+
stub_const("Capybara::VERSION", '1')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should have default format of "screenshot_Y-M-D-H-M-S.ms.html"' do
|
36
40
|
capybara_mock.should_receive(:save_page).with('body', "#{file_basename}.html")
|
37
41
|
|
38
42
|
saver.save
|
@@ -41,7 +45,27 @@ describe Capybara::Screenshot::Saver do
|
|
41
45
|
it 'should use name argument as prefix' do
|
42
46
|
saver = Capybara::Screenshot::Saver.new(capybara_mock, page_mock, true, 'custom-prefix')
|
43
47
|
|
44
|
-
capybara_mock.should_receive(:save_page).with('body', "custom-
|
48
|
+
capybara_mock.should_receive(:save_page).with('body', "custom-prefix_#{timestamp}.html")
|
49
|
+
|
50
|
+
saver.save
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'html filename with Capybara Version 2' do
|
55
|
+
before do
|
56
|
+
stub_const("Capybara::VERSION", '2')
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should have default format of "screenshot_Y-M-D-H-M-S.ms.html"' do
|
60
|
+
capybara_mock.should_receive(:save_page).with("#{file_basename}.html")
|
61
|
+
|
62
|
+
saver.save
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'should use name argument as prefix' do
|
66
|
+
saver = Capybara::Screenshot::Saver.new(capybara_mock, page_mock, true, 'custom-prefix')
|
67
|
+
|
68
|
+
capybara_mock.should_receive(:save_page).with("custom-prefix_#{timestamp}.html")
|
45
69
|
|
46
70
|
saver.save
|
47
71
|
end
|
@@ -54,7 +78,7 @@ describe Capybara::Screenshot::Saver do
|
|
54
78
|
saver.save
|
55
79
|
end
|
56
80
|
|
57
|
-
it 'should have default filename format of "
|
81
|
+
it 'should have default filename format of "screenshot_Y-M-D-H-M-S.ms.png"' do
|
58
82
|
driver_mock.should_receive(:render).with(/#{file_basename}\.png$/)
|
59
83
|
|
60
84
|
saver.save
|
@@ -62,7 +86,7 @@ describe Capybara::Screenshot::Saver do
|
|
62
86
|
|
63
87
|
it 'should use filename prefix argument as basename prefix' do
|
64
88
|
saver = Capybara::Screenshot::Saver.new(capybara_mock, page_mock, true, 'custom-prefix')
|
65
|
-
driver_mock.should_receive(:render).with(
|
89
|
+
driver_mock.should_receive(:render).with(/#{capybara_root}\/custom-prefix_#{timestamp}\.png$/)
|
66
90
|
|
67
91
|
saver.save
|
68
92
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-screenshot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capybara
|
@@ -19,6 +19,9 @@ dependencies:
|
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '1.0'
|
22
|
+
- - <
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '3'
|
22
25
|
type: :runtime
|
23
26
|
prerelease: false
|
24
27
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,6 +30,9 @@ dependencies:
|
|
27
30
|
- - ! '>='
|
28
31
|
- !ruby/object:Gem::Version
|
29
32
|
version: '1.0'
|
33
|
+
- - <
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '3'
|
30
36
|
- !ruby/object:Gem::Dependency
|
31
37
|
name: rspec
|
32
38
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
106
|
version: '0'
|
101
107
|
segments:
|
102
108
|
- 0
|
103
|
-
hash:
|
109
|
+
hash: -502489258301273906
|
104
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
111
|
none: false
|
106
112
|
requirements:
|
@@ -109,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
115
|
version: '0'
|
110
116
|
segments:
|
111
117
|
- 0
|
112
|
-
hash:
|
118
|
+
hash: -502489258301273906
|
113
119
|
requirements: []
|
114
120
|
rubyforge_project: capybara-screenshot
|
115
121
|
rubygems_version: 1.8.24
|