symilaa 0.0.3 → 0.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.
- data/Guardfile +8 -0
- data/lib/symilaa/screenshot.rb +3 -3
- data/lib/symilaa/version.rb +1 -1
- data/symilaa.gemspec +4 -0
- data/test/fixtures/diagnostics/generated/active_input_ie9.png +0 -0
- data/test/fixtures/diagnostics/generated/font_size.png +0 -0
- data/test/fixtures/diagnostics/generated/gradient.png +0 -0
- data/test/fixtures/diagnostics/generated/lightbox.png +0 -0
- data/test/fixtures/diagnostics/generated/rounded_corner_ie9.png +0 -0
- data/test/fixtures/diagnostics/reference/active_input_ie9.png +0 -0
- data/test/fixtures/diagnostics/reference/font_size.png +0 -0
- data/test/fixtures/diagnostics/reference/gradient.png +0 -0
- data/test/fixtures/diagnostics/reference/lightbox.png +0 -0
- data/test/fixtures/diagnostics/reference/rounded_corner_ie9.png +0 -0
- data/test/symilaa/test_screenshot.rb +74 -25
- metadata +39 -6
data/Guardfile
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard 'minitest' do
|
5
|
+
watch(%r|^test/(.*)\/?test_(.*)\.rb|)
|
6
|
+
watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
|
7
|
+
watch(%r|^test/test_helper\.rb|) { "test" }
|
8
|
+
end
|
data/lib/symilaa/screenshot.rb
CHANGED
@@ -3,7 +3,7 @@ require 'fileutils'
|
|
3
3
|
|
4
4
|
module Symilaa
|
5
5
|
class Screenshot
|
6
|
-
SIMILARITY_THRESHOLD =
|
6
|
+
SIMILARITY_THRESHOLD = 41.4
|
7
7
|
|
8
8
|
attr_reader :path
|
9
9
|
|
@@ -19,9 +19,9 @@ module Symilaa
|
|
19
19
|
this_one = Magick::Image.read(@path).first
|
20
20
|
that_one = Magick::Image.read(other.path).first
|
21
21
|
|
22
|
-
similiarity_factor = this_one.compare_channel(that_one, Magick::
|
22
|
+
similiarity_factor = this_one.compare_channel(that_one, Magick::PeakSignalToNoiseRatioMetric)[1]
|
23
23
|
|
24
|
-
similiarity_factor
|
24
|
+
similiarity_factor >= SIMILARITY_THRESHOLD
|
25
25
|
rescue Magick::ImageMagickError; end
|
26
26
|
end
|
27
27
|
end
|
data/lib/symilaa/version.rb
CHANGED
data/symilaa.gemspec
CHANGED
@@ -21,5 +21,9 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
# specify any dependencies here; for example:
|
23
23
|
s.add_development_dependency "minitest"
|
24
|
+
s.add_development_dependency "guard-minitest"
|
25
|
+
|
26
|
+
s.add_development_dependency 'rb-inotify' if RUBY_PLATFORM =~ /linux/
|
27
|
+
|
24
28
|
s.add_runtime_dependency "rmagick"
|
25
29
|
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -4,60 +4,109 @@ require_relative '../../lib/symilaa/screenshot'
|
|
4
4
|
|
5
5
|
module Symilaa
|
6
6
|
class TestScreenshot < Minitest::Unit::TestCase
|
7
|
-
GRYLLS = File.expand_path '../fixtures/bear_grylls.png', File.dirname(__FILE__)
|
8
|
-
GRYLLS_SLIGHT_DIFF = File.expand_path '../fixtures/bear_grylls_slightly_different.png', File.dirname(__FILE__)
|
9
|
-
GRYLLS_DIFF = File.expand_path '../fixtures/bear_grylls_different.png', File.dirname(__FILE__)
|
10
|
-
QUEENY_POPS = File.expand_path '../fixtures/farewells.jpg', File.dirname(__FILE__)
|
11
|
-
|
12
7
|
def test_equality_when_images_altered
|
13
|
-
one = Screenshot.new
|
14
|
-
two = Screenshot.new
|
8
|
+
one = Screenshot.new grylls
|
9
|
+
two = Screenshot.new grylls_different
|
15
10
|
|
16
11
|
refute one == two
|
17
12
|
end
|
18
13
|
|
19
14
|
def test_equality_when_images_similar
|
20
|
-
one = Screenshot.new
|
21
|
-
two = Screenshot.new
|
15
|
+
one = Screenshot.new grylls
|
16
|
+
two = Screenshot.new grylls_slightly_different
|
22
17
|
|
23
18
|
refute one == two
|
24
19
|
end
|
25
20
|
|
26
21
|
def test_equality_when_identical
|
27
|
-
one = Screenshot.new
|
28
|
-
two = Screenshot.new
|
22
|
+
one = Screenshot.new grylls
|
23
|
+
two = Screenshot.new grylls
|
29
24
|
|
30
25
|
assert one == two
|
31
26
|
end
|
32
27
|
|
33
28
|
def test_similar_when_identical
|
34
|
-
one = Screenshot.new
|
35
|
-
two = Screenshot.new
|
29
|
+
one = Screenshot.new grylls
|
30
|
+
two = Screenshot.new grylls
|
36
31
|
|
37
32
|
assert one.similar_to? two
|
38
33
|
end
|
39
34
|
|
40
35
|
def test_similar_when_similar
|
41
|
-
one = Screenshot.new
|
42
|
-
two = Screenshot.new
|
36
|
+
one = Screenshot.new grylls
|
37
|
+
two = Screenshot.new grylls_slightly_different
|
43
38
|
|
44
39
|
assert one.similar_to? two
|
45
40
|
end
|
46
41
|
|
47
|
-
def test_similar_when_different
|
48
|
-
one = Screenshot.new GRYLLS
|
49
|
-
two = Screenshot.new GRYLLS_DIFF
|
50
|
-
|
51
|
-
refute one.similar_to? two
|
52
|
-
end
|
53
|
-
|
54
42
|
def test_different_sized_images_are_different
|
55
|
-
one = Screenshot.new
|
56
|
-
two = Screenshot.new
|
43
|
+
one = Screenshot.new grylls
|
44
|
+
two = Screenshot.new the_queen
|
57
45
|
|
58
46
|
refute one.similar_to? two
|
59
47
|
refute one == two
|
60
48
|
end
|
49
|
+
|
50
|
+
def test_css_font_size_change
|
51
|
+
ref = Screenshot.new fixture 'diagnostics/reference/font_size.png'
|
52
|
+
diff = Screenshot.new fixture 'diagnostics/generated/font_size.png'
|
53
|
+
|
54
|
+
refute ref == diff
|
55
|
+
refute ref.similar_to? diff
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_css_change_of_gradient
|
59
|
+
ref = Screenshot.new fixture 'diagnostics/reference/gradient.png'
|
60
|
+
diff = Screenshot.new fixture 'diagnostics/generated/gradient.png'
|
61
|
+
|
62
|
+
refute ref == diff, "Images with different gradients should not be the same"
|
63
|
+
refute ref.similar_to?(diff), "Images with different gradients should not be similar"
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_lightbox_difference
|
67
|
+
ref = Screenshot.new fixture 'diagnostics/reference/lightbox.png'
|
68
|
+
diff = Screenshot.new fixture 'diagnostics/generated/lightbox.png'
|
69
|
+
|
70
|
+
refute ref == diff, "Internet Explorer's rendering of a lightbox is different every time"
|
71
|
+
assert ref.similar_to?(diff), "Internet Explorer's rendering of a lightbox is similar enough each time"
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_rounded_corners_in_ie9
|
75
|
+
ref = Screenshot.new fixture 'diagnostics/reference/rounded_corner_ie9.png'
|
76
|
+
diff = Screenshot.new fixture 'diagnostics/generated/rounded_corner_ie9.png'
|
77
|
+
|
78
|
+
refute ref == diff
|
79
|
+
assert ref.similar_to?(diff)
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_active_input_state_in_ie9
|
83
|
+
ref = Screenshot.new fixture 'diagnostics/reference/active_input_ie9.png'
|
84
|
+
diff = Screenshot.new fixture 'diagnostics/generated/active_input_ie9.png'
|
85
|
+
|
86
|
+
refute ref == diff
|
87
|
+
assert ref.similar_to?(diff)
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
def fixture name
|
93
|
+
File.expand_path "../fixtures/#{name}", File.dirname(__FILE__)
|
94
|
+
end
|
95
|
+
|
96
|
+
def grylls
|
97
|
+
fixture 'bear_grylls.png'
|
98
|
+
end
|
99
|
+
|
100
|
+
def grylls_different
|
101
|
+
fixture 'bear_grylls_different.png'
|
102
|
+
end
|
103
|
+
|
104
|
+
def grylls_slightly_different
|
105
|
+
fixture 'bear_grylls_slightly_different.png'
|
106
|
+
end
|
107
|
+
|
108
|
+
def the_queen
|
109
|
+
fixture 'farewells.jpg'
|
110
|
+
end
|
61
111
|
end
|
62
112
|
end
|
63
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: symilaa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-09 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
16
|
-
requirement: &
|
16
|
+
requirement: &22820560 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,32 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *22820560
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: guard-minitest
|
27
|
+
requirement: &22819920 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *22819920
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rb-inotify
|
38
|
+
requirement: &22819220 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *22819220
|
25
47
|
- !ruby/object:Gem::Dependency
|
26
48
|
name: rmagick
|
27
|
-
requirement: &
|
49
|
+
requirement: &22818440 !ruby/object:Gem::Requirement
|
28
50
|
none: false
|
29
51
|
requirements:
|
30
52
|
- - ! '>='
|
@@ -32,7 +54,7 @@ dependencies:
|
|
32
54
|
version: '0'
|
33
55
|
type: :runtime
|
34
56
|
prerelease: false
|
35
|
-
version_requirements: *
|
57
|
+
version_requirements: *22818440
|
36
58
|
description: ! "Using the wonders of RMagick, this wonderful gem will produce a boolean
|
37
59
|
result based on the computed similarity\n of the two images passed."
|
38
60
|
email:
|
@@ -43,6 +65,7 @@ extra_rdoc_files: []
|
|
43
65
|
files:
|
44
66
|
- .gitignore
|
45
67
|
- Gemfile
|
68
|
+
- Guardfile
|
46
69
|
- README.md
|
47
70
|
- Rakefile
|
48
71
|
- lib/symilaa.rb
|
@@ -52,6 +75,16 @@ files:
|
|
52
75
|
- test/fixtures/bear_grylls.png
|
53
76
|
- test/fixtures/bear_grylls_different.png
|
54
77
|
- test/fixtures/bear_grylls_slightly_different.png
|
78
|
+
- test/fixtures/diagnostics/generated/active_input_ie9.png
|
79
|
+
- test/fixtures/diagnostics/generated/font_size.png
|
80
|
+
- test/fixtures/diagnostics/generated/gradient.png
|
81
|
+
- test/fixtures/diagnostics/generated/lightbox.png
|
82
|
+
- test/fixtures/diagnostics/generated/rounded_corner_ie9.png
|
83
|
+
- test/fixtures/diagnostics/reference/active_input_ie9.png
|
84
|
+
- test/fixtures/diagnostics/reference/font_size.png
|
85
|
+
- test/fixtures/diagnostics/reference/gradient.png
|
86
|
+
- test/fixtures/diagnostics/reference/lightbox.png
|
87
|
+
- test/fixtures/diagnostics/reference/rounded_corner_ie9.png
|
55
88
|
- test/fixtures/farewells.jpg
|
56
89
|
- test/symilaa/test_screenshot.rb
|
57
90
|
homepage: https://github.com/bskyb-commerce-helpcentre/symilaa
|