compaa 0.0.1.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.
@@ -0,0 +1,56 @@
1
+ require 'spec_helper'
2
+
3
+ describe Compaa::DifferenceImage do
4
+ attr_reader :path, :subject
5
+
6
+ before do
7
+ @path = File.join %w[artifacts differences_in_screenshots_this_run dir file.png_difference.gif]
8
+ @subject = Compaa::DifferenceImage.new @path
9
+ end
10
+
11
+ describe :all do
12
+ it "returns an array of all difference images in the artifacts directory" do
13
+ file_list = [
14
+ File.join(%w[artifacts differences_in_screenshots_this_run file.png_difference.gif]),
15
+ File.join(%w[artifacts differences_in_screenshots_this_run dir file.png_difference.gif]),
16
+ File.join(%w[artifacts differences_in_screenshots_this_run dir file.png_difference_2.gif]),
17
+ File.join(%w[artifacts differences_in_screenshots_this_run dir sub_dir file.png_difference.gif])
18
+ ]
19
+
20
+ Dir.stub :glob, file_list do
21
+ Compaa::DifferenceImage.all.map(&:path).must_equal file_list
22
+ end
23
+ end
24
+ end
25
+
26
+ it "creates a reference image" do
27
+ mock_file_manager = MiniTest::Mock.new
28
+ subject.file_manager = mock_file_manager
29
+
30
+ mock_file_manager.expect :mkdir_p, true, [File.join(%w{artifacts reference_screenshots dir})]
31
+
32
+ mock_file_manager.expect :cp, true,
33
+ [ File.join(%w[artifacts screenshots_generated_this_run dir file.png]),
34
+ File.join(%w[artifacts reference_screenshots dir file.png]) ]
35
+
36
+ mock_file_manager.expect :rm, true, [path]
37
+
38
+ subject.create_reference_image
39
+
40
+ mock_file_manager.verify
41
+ end
42
+
43
+ it "provides its corresponding reference image path" do
44
+ reference_path =
45
+ File.join %w[artifacts reference_screenshots dir file.png]
46
+
47
+ subject.reference_path.must_equal reference_path
48
+ end
49
+
50
+ it "provides its corresponding generated image path" do
51
+ generated_path =
52
+ File.join %w[artifacts screenshots_generated_this_run dir file.png]
53
+
54
+ subject.generated_path.must_equal generated_path
55
+ end
56
+ end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ describe Compaa::GeneratedImage do
4
+ attr_reader :mock_file_manager, :path, :ref_image, :subject
5
+
6
+ before do
7
+ @mock_file_manager = MiniTest::Mock.new
8
+ @path = File.join %w[artifacts screenshots_generated_this_run dir file.png]
9
+ @ref_image = File.join %w[artifacts reference_screenshots dir file.png]
10
+ @subject = Compaa::GeneratedImage.new @path
11
+ end
12
+
13
+ describe :all do
14
+ it "returns an array of all difference images in the artifacts directory" do
15
+ file_list = [
16
+ File.join(%w[artifacts screenshots_generated_this_run dir file.png]),
17
+ File.join(%w[artifacts screenshots_generated_this_run dir new_file.png])
18
+ ]
19
+
20
+ Dir.stub :glob, file_list do
21
+ Compaa::GeneratedImage.all.map(&:path).must_equal file_list
22
+ end
23
+ end
24
+ end
25
+
26
+ describe :has_reference_image? do
27
+ it "is true when a corresponding reference image exists" do
28
+ subject.file_manager = mock_file_manager
29
+
30
+ File.stub :exists?, true do
31
+ assert subject.has_reference_image?
32
+ end
33
+
34
+ mock_file_manager.verify
35
+ end
36
+
37
+ it "is false when a corresponding reference image does not exist" do
38
+ subject.file_manager = mock_file_manager
39
+
40
+ File.stub :exists?, false do
41
+ refute subject.has_reference_image?
42
+ end
43
+
44
+ mock_file_manager.verify
45
+ end
46
+ end
47
+
48
+ it "creates a reference image" do
49
+ subject.file_manager = mock_file_manager
50
+
51
+ mock_file_manager.expect :mkdir_p, true, [File.join(%w{artifacts reference_screenshots dir})]
52
+
53
+ mock_file_manager.expect :cp, true,
54
+ [ File.join(%w[artifacts screenshots_generated_this_run dir file.png]),
55
+ File.join(%w[artifacts reference_screenshots dir file.png]) ]
56
+
57
+ subject.create_reference_image
58
+
59
+ mock_file_manager.verify
60
+ end
61
+
62
+ it "provides its corresponding reference image path" do
63
+ reference_path =
64
+ File.join %w[artifacts reference_screenshots dir file.png]
65
+
66
+ subject.reference_path.must_equal reference_path
67
+ end
68
+ end
@@ -0,0 +1,6 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
4
+ gem 'minitest'
5
+ require 'minitest/autorun'
6
+ require 'compaa'
@@ -0,0 +1,86 @@
1
+ !!!
2
+ %head
3
+ %script{src: "https://raw.github.com/Phrogz/context-blender/master/context_blender.js", type: "text/javascript"}
4
+ %body
5
+ %canvas#offScreenCanvas{style: 'position: absolute; left: -9999999px;'}
6
+ %canvas#difference
7
+ %img#animation{src: params[:filepath], style: 'display: none'}
8
+ %img#oldImage{style: 'display: none'}
9
+ %img#newImage{style: 'display: none'}
10
+ #buttonBar{style: 'width: 400px; margin: 0px auto'}
11
+ %button#differenceButton
12
+ Difference
13
+ %button#animationButton
14
+ Animation
15
+ %button#oldImageButton
16
+ Old Image
17
+ %button#newImageButton
18
+ New Image
19
+ :javascript
20
+ var compaa = {
21
+ differenceGifPath: '#{params[:filepath]}',
22
+ oldImagePath: '#{params[:filepath].gsub('gif','png').gsub('_difference.png','').gsub('differences_in_screenshots_this_run','reference_screenshots')}',
23
+ newImagePath: '#{params[:filepath].gsub('gif','png').gsub('_difference.png','').gsub('differences_in_screenshots_this_run','screenshots_generated_this_run')}',
24
+
25
+
26
+ init: function() {
27
+ var oldImg=document.createElement('img');
28
+ oldImg.src = compaa.oldImagePath
29
+
30
+ var newImg=document.createElement('img');
31
+ newImg.src = compaa.newImagePath
32
+
33
+ document.getElementById('difference').width = oldImg.width;
34
+ document.getElementById('difference').height = oldImg.height;
35
+
36
+ document.getElementById('offScreenCanvas').width = newImg.width;
37
+ document.getElementById('offScreenCanvas').height = newImg.height;
38
+
39
+ var over = document.getElementById('offScreenCanvas').getContext('2d');
40
+ over.drawImage(oldImg, 0, 0);
41
+
42
+ var under = document.getElementById('difference').getContext('2d');
43
+ under.drawImage(newImg, 0, 0);
44
+
45
+ over.blendOnto(under,'difference');
46
+
47
+ document.getElementById('oldImage').src = compaa.oldImagePath;
48
+ document.getElementById('newImage').src = compaa.newImagePath;
49
+
50
+ compaa.show('difference');
51
+
52
+ document.getElementById('differenceButton').onclick = function(){compaa.show('difference')};
53
+ document.getElementById('animationButton').onclick = function(){compaa.show('animation')};
54
+ document.getElementById('oldImageButton').onclick = function(){compaa.show('oldImage')};
55
+ document.getElementById('newImageButton').onclick = function(){compaa.show('newImage')};
56
+ },
57
+ show: function(mode) {
58
+
59
+ document.getElementById('difference').style.display = 'none';
60
+ document.getElementById('animation').style.display = 'none';
61
+ document.getElementById('oldImage').style.display = 'none';
62
+ document.getElementById('newImage').style.display = 'none';
63
+
64
+ switch(mode){
65
+ case 'difference':
66
+ document.getElementById('difference').style.display = 'block';
67
+ break;
68
+ case 'animation':
69
+ document.getElementById('animation').style.display = 'block';
70
+ break;
71
+ case 'oldImage':
72
+ document.getElementById('oldImage').style.display = 'block';
73
+ break;
74
+ case 'newImage':
75
+ document.getElementById('newImage').style.display = 'block';
76
+ break;
77
+ }
78
+ }
79
+ }
80
+
81
+ document.onreadystatechange = function () {
82
+ if (document.readyState == "complete" || document.readyState == "interactive"){
83
+ compaa.init();
84
+ }
85
+ }
86
+
metadata ADDED
@@ -0,0 +1,232 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: compaa
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - BSkyB Helpcentre
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-17 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &26285060 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *26285060
25
+ - !ruby/object:Gem::Dependency
26
+ name: aruba
27
+ requirement: &26283980 !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: *26283980
36
+ - !ruby/object:Gem::Dependency
37
+ name: simplecov
38
+ requirement: &26282980 !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: *26282980
47
+ - !ruby/object:Gem::Dependency
48
+ name: wrong
49
+ requirement: &26282420 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *26282420
58
+ - !ruby/object:Gem::Dependency
59
+ name: minitest
60
+ requirement: &26281840 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *26281840
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-minitest
71
+ requirement: &26281200 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *26281200
80
+ - !ruby/object:Gem::Dependency
81
+ name: guard-cucumber
82
+ requirement: &26280380 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *26280380
91
+ - !ruby/object:Gem::Dependency
92
+ name: rb-inotify
93
+ requirement: &26279020 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *26279020
102
+ - !ruby/object:Gem::Dependency
103
+ name: methadone
104
+ requirement: &26278060 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.2.2
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: *26278060
113
+ - !ruby/object:Gem::Dependency
114
+ name: sinatra
115
+ requirement: &26259380 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: *26259380
124
+ - !ruby/object:Gem::Dependency
125
+ name: thin
126
+ requirement: &26258580 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: *26258580
135
+ - !ruby/object:Gem::Dependency
136
+ name: haml
137
+ requirement: &26257600 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :runtime
144
+ prerelease: false
145
+ version_requirements: *26257600
146
+ - !ruby/object:Gem::Dependency
147
+ name: watir-webdriver
148
+ requirement: &26256680 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :runtime
155
+ prerelease: false
156
+ version_requirements: *26256680
157
+ description:
158
+ email:
159
+ - skyhelpcentre@gmail.com
160
+ executables:
161
+ - compaa
162
+ extensions: []
163
+ extra_rdoc_files: []
164
+ files:
165
+ - .gitignore
166
+ - .travis.yml
167
+ - Gemfile
168
+ - Guardfile
169
+ - LICENSE.txt
170
+ - README.md
171
+ - Rakefile
172
+ - app.rb
173
+ - bin/compaa
174
+ - compaa.gemspec
175
+ - config.ru
176
+ - features/compaa.feature
177
+ - features/step_definitions/compaa_steps.rb
178
+ - features/support/env.rb
179
+ - features/support/file_helpers.rb
180
+ - features/support/matchers.rb
181
+ - fixtures/sample_generated.png
182
+ - fixtures/sample_generated.png_difference.gif
183
+ - fixtures/sample_reference.png
184
+ - lib/compaa.rb
185
+ - lib/compaa/difference_image.rb
186
+ - lib/compaa/generated_image.rb
187
+ - lib/compaa/version.rb
188
+ - log/newrelic_agent.log
189
+ - spec/difference_image_spec.rb
190
+ - spec/generated_image_spec.rb
191
+ - spec/spec_helper.rb
192
+ - views/index.haml
193
+ homepage: https://github.com/bskyb-commerce-helpcentre/compaa
194
+ licenses: []
195
+ post_install_message:
196
+ rdoc_options: []
197
+ require_paths:
198
+ - lib
199
+ required_ruby_version: !ruby/object:Gem::Requirement
200
+ none: false
201
+ requirements:
202
+ - - ! '>='
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ segments:
206
+ - 0
207
+ hash: 834143269025721647
208
+ required_rubygems_version: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ! '>='
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ segments:
215
+ - 0
216
+ hash: 834143269025721647
217
+ requirements: []
218
+ rubyforge_project:
219
+ rubygems_version: 1.8.10
220
+ signing_key:
221
+ specification_version: 3
222
+ summary: Command line tool to compare screenshots outputted from our screenshot_comparison
223
+ gem
224
+ test_files:
225
+ - features/compaa.feature
226
+ - features/step_definitions/compaa_steps.rb
227
+ - features/support/env.rb
228
+ - features/support/file_helpers.rb
229
+ - features/support/matchers.rb
230
+ - spec/difference_image_spec.rb
231
+ - spec/generated_image_spec.rb
232
+ - spec/spec_helper.rb