kracker 0.0.2 → 0.0.3

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.
@@ -95,4 +95,17 @@ class AnalysisTest < Kracker::KrackerTestCase
95
95
  assert analysis[:same], 'results of data analysis.same'
96
96
  end
97
97
 
98
+ def test_huge_another_list_of_similarly_named_elements
99
+ master_data = travis_local_generated_master_2
100
+ current_data = travis_generated_current_2
101
+
102
+ analysis = analyze(master_data, current_data)
103
+
104
+ ## real difference that was found on travis with the INPUT tags being different styles/sizes if not css-styled
105
+ assert_equal 0, analysis[:not_in_master].count, 'results of data analysis: not_in_master'
106
+ assert_equal 0, analysis[:not_in_current].count, 'results of data analysis: not_in_current'
107
+ assert_equal 1, analysis[:changed_element_pairs].count, 'changed element pairs'
108
+ refute analysis[:same], 'results of data analysis.same'
109
+ end
110
+
98
111
  end
@@ -0,0 +1,153 @@
1
+ require_relative '../test_helper'
2
+
3
+ class AnalyzerTest < Kracker::KrackerTestCase
4
+ require 'chunky_png'
5
+
6
+ def test_analyzer_initialization
7
+ prep_locations_for_test
8
+ filename_1 = make_zooka_filename('zooka_1')
9
+ filename_2 = make_zooka_filename('zooka_2')
10
+ img1 = ChunkyPNG::Image.new(10, 10, ChunkyPNG::Color::rgb(0, 0, 255))
11
+ img2 = img1.dup
12
+ img1.save(filename_1)
13
+ img2.save(filename_2)
14
+
15
+ analyzer = Kracker::Zooka::Analyzer.new
16
+ assert analyzer.is_a?(Kracker::Zooka::Analyzer)
17
+ assert_nil analyzer.image_1
18
+ assert_nil analyzer.image_2
19
+ analyzer.image_1 = img1
20
+ analyzer.image_2 = img2
21
+ assert analyzer.image_1.is_a?(ChunkyPNG::Image)
22
+ assert analyzer.image_2.is_a?(ChunkyPNG::Image)
23
+
24
+ analyzer = Kracker::Zooka::Analyzer.new({ :image_1 => img1, :image_2 => img2 })
25
+ assert analyzer.is_a?(Kracker::Zooka::Analyzer)
26
+ assert analyzer.image_1.is_a?(ChunkyPNG::Image)
27
+ assert analyzer.image_2.is_a?(ChunkyPNG::Image)
28
+
29
+ analyzer = Kracker::Zooka::Analyzer.new({ :filename_1 => filename_1, :filename_2 => filename_2 })
30
+ assert analyzer.is_a?(Kracker::Zooka::Analyzer)
31
+ assert analyzer.image_1.is_a?(ChunkyPNG::Image)
32
+ assert analyzer.image_2.is_a?(ChunkyPNG::Image)
33
+
34
+ analyzer = Kracker::Zooka::Analyzer.new({ :image_1 => img1, :filename_2 => filename_2 })
35
+ assert analyzer.is_a?(Kracker::Zooka::Analyzer)
36
+ assert analyzer.image_1.is_a?(ChunkyPNG::Image)
37
+ assert analyzer.image_2.is_a?(ChunkyPNG::Image)
38
+
39
+ remove_old_zooka_files
40
+ end
41
+
42
+ def test_similar_color
43
+ analyzer = Kracker::Zooka::Analyzer.new
44
+
45
+ assert analyzer.send(:color_similar?, 1, 1, 'red')
46
+ assert analyzer.send(:color_similar?, 1, 16, 'red')
47
+ refute analyzer.send(:color_similar?, 1, 17, 'red')
48
+
49
+ refute analyzer.send(:color_similar?, 1, 2, 'no_color')
50
+
51
+ analyzer.tolerance.red = 2
52
+ assert analyzer.send(:color_similar?, 1, 1, 'red')
53
+ assert analyzer.send(:color_similar?, 1, 2, 'red')
54
+ refute analyzer.send(:color_similar?, 1, 3, 'red')
55
+ end
56
+
57
+ def test_similar_brightness
58
+ analyzer = Kracker::Zooka::Analyzer.new
59
+ analyzer.tolerance.red = 2
60
+
61
+ pixel1 = Kracker::Zooka::Pixel.new(0)
62
+ pixel2 = Kracker::Zooka::Pixel.new(0)
63
+
64
+ assert analyzer.send(:brightness_similar?, pixel1, pixel2)
65
+
66
+ pixel1.alpha = 1
67
+ pixel1.red = 1
68
+
69
+ pixel2.alpha = 10
70
+ pixel2.red = 3
71
+
72
+ assert analyzer.send(:brightness_similar?, pixel1, pixel2)
73
+ refute analyzer.send(:color_similar?, pixel1.red, pixel2.red, 'red')
74
+
75
+ pixel2.red = 100
76
+ refute analyzer.send(:brightness_similar?, pixel1, pixel2)
77
+ end
78
+
79
+ def test_hue
80
+ hue_data = [
81
+ [ 9, 135, 209, 0.5616 ], #r:9 g:135 b:209 h:0.5616666666666666 - blue is greatest
82
+ [ 106, 186, 221, 0.5507 ], #r:106 g:186 b:221 h:0.5507246376811594 - blue is greatest
83
+ [ 106, 221, 186, 0.4492 ], #r:106 g:221 b:186 h:0.4492753623188406 - green is greatest
84
+ [ 225, 254, 100, 0.1980 ], #r:225 g:254 b:100 h:0.19805194805194806 - green is greatest
85
+ [ 21, 16, 13, 0.0625 ], #r:21 g:16 b:13 h:0.0625 - red is greatest
86
+ [ 17, 16, 11, 0.1388 ] #r:17 g:16 b:11 h:0.1388888888888889 - red is greatest
87
+ ]
88
+
89
+ hue_data.each do |hue_data_set|
90
+ pixel1 = Kracker::Zooka::Pixel.new(ChunkyPNG::Color.rgba(hue_data_set[0], hue_data_set[1], hue_data_set[2], 128))
91
+ assert_in_delta hue_data_set[3], pixel1.hue, 0.0001, "hue calcuation for r: #{hue_data_set[0]}, g: #{hue_data_set[1]}, b: #{hue_data_set[2]}"
92
+ end
93
+
94
+ end
95
+
96
+ def test_analyze
97
+ prep_locations_for_test
98
+
99
+ filename_1 = make_zooka_filename('zooka_1')
100
+ filename_2 = make_zooka_filename('zooka_2')
101
+ result_filename_standard = make_zooka_filename('results_standard')
102
+ result_file_ignore_colors = make_zooka_filename('result_ignore_colors')
103
+ result_file_ignore_anitaliasing = make_zooka_filename('result_ignore_antialiasing')
104
+
105
+ img1 = ChunkyPNG::Image.new(10, 10, ChunkyPNG::Color::rgb(0, 0, 255))
106
+ img2 = img1.dup
107
+ img2.width.times { |w| img2[w, w] = ChunkyPNG::Color::rgb(255 / (w+ 1), 0, 0) }
108
+ img2.width.times { |w| img2[w, img2.width - w - 1] = ChunkyPNG::Color::rgb(0, 255 / (w+ 1), 0) }
109
+ img1.save(filename_1)
110
+ img2.save(filename_2)
111
+
112
+ analyzer = Kracker::Zooka::Analyzer.new({ :image_1 => img1, :image_2 => img2 })
113
+ analyzer.analyze
114
+ result_image = analyzer.result
115
+ pixels = analyzer.noncompliant_pixels
116
+
117
+ result_image.save(result_filename_standard)
118
+
119
+ assert_equal 20, pixels.length
120
+
121
+ analyzer.ignore_colors = true
122
+ analyzer.analyze
123
+ pixels = analyzer.noncompliant_pixels
124
+ result_image = analyzer.result
125
+ result_image.save(result_file_ignore_colors)
126
+
127
+ assert_equal 8, pixels.length
128
+
129
+ analyzer.ignore_colors = false
130
+ analyzer.ignore_antialiasing = true
131
+ analyzer.analyze
132
+ pixels = analyzer.noncompliant_pixels
133
+ assert_equal 9, pixels.length
134
+ result_image = analyzer.result
135
+ result_image.save(result_file_ignore_anitaliasing)
136
+ assert result_image.is_a?(ChunkyPNG::Image)
137
+
138
+ remove_old_zooka_files
139
+ end
140
+
141
+ private
142
+
143
+ def make_zooka_filename(base_name)
144
+ Kracker.current_filename(base_name).gsub('yaml', 'png')
145
+ end
146
+
147
+ def remove_old_zooka_files
148
+ Dir[File.join(Kracker::current_file_location, '*.png')].each { |f| FileUtils.rm_rf f }
149
+ Dir[File.join(Kracker::master_file_location, '*.png')].each { |f| FileUtils.rm_rf f }
150
+ Dir[File.join(Kracker::diff_file_location, '*.png')].each { |f| FileUtils.rm_rf f }
151
+ end
152
+
153
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kracker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - geordie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-28 00:00:00.000000000 Z
11
+ date: 2014-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: chunky_png
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: DOM Mapping
70
84
  email:
71
85
  - george.speake@gmail.com
@@ -107,6 +121,11 @@ files:
107
121
  - lib/kracker/rails/engine.rb
108
122
  - lib/kracker/svg.rb
109
123
  - lib/kracker/version.rb
124
+ - lib/kracker/zooka/analyzer.rb
125
+ - lib/kracker/zooka/error_pixel_transform.rb
126
+ - lib/kracker/zooka/image.rb
127
+ - lib/kracker/zooka/pixel.rb
128
+ - lib/kracker/zooka/tolerance.rb
110
129
  - test/page_objects.rb
111
130
  - test/page_objects/kracker/about_page.rb
112
131
  - test/page_objects/kracker/artifacts_page.rb
@@ -119,6 +138,7 @@ files:
119
138
  - test/page_objects/navigation.rb
120
139
  - test/selenium/mapping_test.rb
121
140
  - test/selenium/viewer_test.rb
141
+ - test/selenium/zooka_test.rb
122
142
  - test/selenium_test_helper.rb
123
143
  - test/test_app/Gemfile
124
144
  - test/test_app/app/assets/stylesheets/local_app.css
@@ -136,6 +156,7 @@ files:
136
156
  - test/test_helpers/location_helpers.rb
137
157
  - test/test_objects/test_objects.rb
138
158
  - test/unit/analysis_test.rb
159
+ - test/unit/analyzer_test.rb
139
160
  - test/unit/element_test.rb
140
161
  - test/unit/kracker_test.rb
141
162
  - test/unit/location_test.rb
@@ -160,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
181
  version: '0'
161
182
  requirements: []
162
183
  rubyforge_project:
163
- rubygems_version: 2.1.11
184
+ rubygems_version: 2.2.2
164
185
  signing_key:
165
186
  specification_version: 4
166
187
  summary: Map the page DOM and get some stats on it compared to a known default map.
@@ -177,6 +198,7 @@ test_files:
177
198
  - test/page_objects/navigation.rb
178
199
  - test/selenium/mapping_test.rb
179
200
  - test/selenium/viewer_test.rb
201
+ - test/selenium/zooka_test.rb
180
202
  - test/selenium_test_helper.rb
181
203
  - test/test_app/Gemfile
182
204
  - test/test_app/app/assets/stylesheets/local_app.css
@@ -194,6 +216,7 @@ test_files:
194
216
  - test/test_helpers/location_helpers.rb
195
217
  - test/test_objects/test_objects.rb
196
218
  - test/unit/analysis_test.rb
219
+ - test/unit/analyzer_test.rb
197
220
  - test/unit/element_test.rb
198
221
  - test/unit/kracker_test.rb
199
222
  - test/unit/location_test.rb