capybara-screenshot-diff 0.4.0 → 0.5.0
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 +4 -4
- data/.rubocop.yml +10 -8
- data/.rubocop_todo.yml +35 -8
- data/.travis.yml +4 -5
- data/Rakefile +4 -0
- data/lib/capybara/screenshot/diff/capybara_setup.rb +36 -5
- data/lib/capybara/screenshot/diff/version.rb +1 -1
- data/matrix_test.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2c578a6c17c416b415a2b9962acd2143475c1f6
|
4
|
+
data.tar.gz: cdf95fc4a8478c7034b6c42da6b2c0243c449b12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93d2c8284049415f00e368b50089e6a406047aa178f7ba9c979962d15cb8a6b3d005170cd2ba162ec8c572eee56521e4f33710f4d2c2a1bf6231a3579f174cbe
|
7
|
+
data.tar.gz: 0c5a82e828f86294d1d77cbcbf41710b922fd10918e6dd2d37fde681ead14e07cf28ffc392c9adfcd048ed04572462227016273520d161e8a671cd2a81045b6d
|
data/.rubocop.yml
CHANGED
@@ -4,6 +4,16 @@ AllCops:
|
|
4
4
|
DisplayCopNames: true
|
5
5
|
DisplayStyleGuide: true
|
6
6
|
|
7
|
+
Layout/AlignParameters:
|
8
|
+
EnforcedStyle: with_fixed_indentation
|
9
|
+
IndentationWidth: 4
|
10
|
+
|
11
|
+
Layout/MultilineMethodCallIndentation:
|
12
|
+
EnforcedStyle: indented
|
13
|
+
|
14
|
+
Layout/MultilineOperationIndentation:
|
15
|
+
EnforcedStyle: indented
|
16
|
+
|
7
17
|
Lint/Debugger:
|
8
18
|
Enabled: false
|
9
19
|
|
@@ -16,16 +26,8 @@ Metrics/LineLength:
|
|
16
26
|
Style/Documentation:
|
17
27
|
Enabled: false
|
18
28
|
|
19
|
-
Style/MultilineMethodCallIndentation:
|
20
|
-
EnforcedStyle: indented
|
21
|
-
IndentationWidth: 4
|
22
|
-
|
23
29
|
Style/NumericPredicate:
|
24
30
|
Enabled: false
|
25
31
|
|
26
32
|
Style/SignalException:
|
27
33
|
EnforcedStyle: semantic
|
28
|
-
|
29
|
-
Style/AlignParameters:
|
30
|
-
EnforcedStyle: with_fixed_indentation
|
31
|
-
IndentationWidth: 4
|
data/.rubocop_todo.yml
CHANGED
@@ -1,23 +1,38 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2017-06-08 11:42:01 +0200 using RuboCop version 0.49.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
# Offense count:
|
10
|
-
|
11
|
-
|
9
|
+
# Offense count: 2
|
10
|
+
# Cop supports --auto-correct.
|
11
|
+
Layout/EmptyLineAfterMagicComment:
|
12
|
+
Exclude:
|
13
|
+
- 'capybara-screenshot-diff.gemspec'
|
14
|
+
- 'lib/capybara/screenshot/diff/version.rb'
|
12
15
|
|
13
16
|
# Offense count: 1
|
14
|
-
|
15
|
-
|
17
|
+
# Cop supports --auto-correct.
|
18
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
19
|
+
# SupportedStyles: auto_detection, squiggly, active_support, powerpack, unindent
|
20
|
+
Layout/IndentHeredoc:
|
21
|
+
Exclude:
|
22
|
+
- 'lib/capybara/screenshot/diff/capybara_setup.rb'
|
16
23
|
|
17
24
|
# Offense count: 4
|
25
|
+
Metrics/AbcSize:
|
26
|
+
Max: 31
|
27
|
+
|
28
|
+
# Offense count: 2
|
29
|
+
Metrics/CyclomaticComplexity:
|
30
|
+
Max: 8
|
31
|
+
|
32
|
+
# Offense count: 7
|
18
33
|
# Configuration parameters: CountComments.
|
19
34
|
Metrics/MethodLength:
|
20
|
-
Max:
|
35
|
+
Max: 25
|
21
36
|
|
22
37
|
# Offense count: 1
|
23
38
|
# Configuration parameters: CountKeywordArgs.
|
@@ -26,9 +41,21 @@ Metrics/ParameterLists:
|
|
26
41
|
|
27
42
|
# Offense count: 1
|
28
43
|
Metrics/PerceivedComplexity:
|
29
|
-
Max:
|
44
|
+
Max: 8
|
45
|
+
|
46
|
+
# Offense count: 1
|
47
|
+
Performance/Caller:
|
48
|
+
Exclude:
|
49
|
+
- 'lib/capybara/screenshot/diff/capybara_setup.rb'
|
50
|
+
|
51
|
+
# Offense count: 1
|
52
|
+
# Cop supports --auto-correct.
|
53
|
+
Security/YAMLLoad:
|
54
|
+
Exclude:
|
55
|
+
- 'matrix_test.rb'
|
30
56
|
|
31
57
|
# Offense count: 1
|
58
|
+
# Cop supports --auto-correct.
|
32
59
|
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
33
60
|
# SupportedStyles: format, sprintf, percent
|
34
61
|
Style/FormatString:
|
data/.travis.yml
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- ruby-2.
|
4
|
-
- jruby-9.1.
|
5
|
-
- ruby-2.
|
3
|
+
- ruby-2.4.1
|
4
|
+
- jruby-9.1.8.0
|
5
|
+
- ruby-2.3.4
|
6
|
+
- ruby-2.2.7
|
6
7
|
- ruby-2.1.9
|
7
8
|
- ruby-head
|
8
9
|
- jruby-head
|
@@ -19,8 +20,6 @@ jdk:
|
|
19
20
|
|
20
21
|
matrix:
|
21
22
|
exclude:
|
22
|
-
- rvm: ruby-head # Cannot build json 1.x
|
23
|
-
gemfile: gemfiles/rails42.gemfile
|
24
23
|
- rvm: ruby-2.1.9 # Not supported by Rails 5
|
25
24
|
gemfile: gemfiles/rails50.gemfile
|
26
25
|
allow_failures:
|
data/Rakefile
CHANGED
@@ -25,6 +25,10 @@ module ActionDispatch
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
def self.macos?
|
29
|
+
os_name == 'macos'
|
30
|
+
end
|
31
|
+
|
28
32
|
def self.screenshot_root
|
29
33
|
Capybara::Screenshot.screenshot_root ||
|
30
34
|
(defined?(Rails.root) && Rails.root) || File.expand_path('.')
|
@@ -65,11 +69,24 @@ module ActionDispatch
|
|
65
69
|
File.join [self.class.screenshot_area] + group_parts
|
66
70
|
end
|
67
71
|
|
72
|
+
private def current_capybara_driver_class
|
73
|
+
Capybara.drivers[Capybara.current_driver].call({}).class
|
74
|
+
end
|
75
|
+
|
76
|
+
private def selenium?
|
77
|
+
current_capybara_driver_class <= Capybara::Selenium::Driver
|
78
|
+
end
|
79
|
+
|
80
|
+
private def poltergeist?
|
81
|
+
return false unless defined?(Capybara::Poltergeist::Driver)
|
82
|
+
current_capybara_driver_class <= Capybara::Poltergeist::Driver
|
83
|
+
end
|
84
|
+
|
68
85
|
setup do
|
69
86
|
if Capybara::Screenshot.window_size
|
70
|
-
if
|
87
|
+
if selenium?
|
71
88
|
page.driver.browser.manage.window.resize_to(*Capybara::Screenshot.window_size)
|
72
|
-
elsif
|
89
|
+
elsif poltergeist?
|
73
90
|
page.driver.resize(*Capybara::Screenshot.window_size)
|
74
91
|
end
|
75
92
|
end
|
@@ -95,9 +112,9 @@ module ActionDispatch
|
|
95
112
|
|
96
113
|
def screenshot(name)
|
97
114
|
return unless Capybara::Screenshot.active?
|
98
|
-
if
|
99
|
-
return unless page.driver.browser.manage.window
|
100
|
-
|
115
|
+
if selenium? && Capybara::Screenshot.window_size
|
116
|
+
return unless page.driver.browser.manage.window.size ==
|
117
|
+
Selenium::WebDriver::Dimension.new(*Capybara::Screenshot.window_size)
|
101
118
|
end
|
102
119
|
if @screenshot_counter
|
103
120
|
name = "#{'%02i' % @screenshot_counter}_#{name}"
|
@@ -168,6 +185,20 @@ EOF
|
|
168
185
|
old_file_size = nil
|
169
186
|
loop do
|
170
187
|
save_screenshot(file_name)
|
188
|
+
|
189
|
+
# FIXME(uwe): Remove when chromedriver take right size screenshots
|
190
|
+
# Reduce Retina image size
|
191
|
+
if self.class.macos? && selenium? && Capybara::Screenshot.window_size
|
192
|
+
saved_image = ChunkyPNG::Image.from_file(file_name)
|
193
|
+
width = Capybara::Screenshot.window_size[0]
|
194
|
+
if saved_image.width >= width * 2
|
195
|
+
height = (width * saved_image.height) / saved_image.width
|
196
|
+
resized_image = saved_image.resample_bilinear(width, height)
|
197
|
+
resized_image.save(file_name)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
# EMXIF
|
201
|
+
|
171
202
|
break unless Capybara::Screenshot.stability_time_limit
|
172
203
|
new_file_size = File.size(file_name)
|
173
204
|
break if new_file_size == old_file_size
|
data/matrix_test.rb
CHANGED
@@ -43,7 +43,7 @@ travis['rvm'].each do |ruby|
|
|
43
43
|
system "#{bundler_gem_check_cmd} || chruby-exec #{ruby} -- gem install bundler" || exit(1)
|
44
44
|
travis['gemfile'].each do |gemfile|
|
45
45
|
if (travis['matrix']['exclude'].to_a + travis['matrix']['allowed_failures'].to_a)
|
46
|
-
|
46
|
+
.any? { |f| f['rvm'] == ruby && f['gemfile'] == gemfile }
|
47
47
|
puts 'Skipping known failure.'
|
48
48
|
next
|
49
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-screenshot-diff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Uwe Kubosch
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|