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.
- data/.gitignore +8 -0
- data/.travis.yml +8 -0
- data/Gemfile +3 -0
- data/Guardfile +14 -0
- data/LICENSE.txt +22 -0
- data/README.md +32 -0
- data/Rakefile +18 -0
- data/app.rb +9 -0
- data/bin/compaa +65 -0
- data/compaa.gemspec +37 -0
- data/config.ru +6 -0
- data/features/compaa.feature +38 -0
- data/features/step_definitions/compaa_steps.rb +51 -0
- data/features/support/env.rb +29 -0
- data/features/support/file_helpers.rb +23 -0
- data/features/support/matchers.rb +13 -0
- data/fixtures/sample_generated.png +0 -0
- data/fixtures/sample_generated.png_difference.gif +0 -0
- data/fixtures/sample_reference.png +0 -0
- data/lib/compaa.rb +3 -0
- data/lib/compaa/difference_image.rb +37 -0
- data/lib/compaa/generated_image.rb +36 -0
- data/lib/compaa/version.rb +3 -0
- data/log/newrelic_agent.log +416 -0
- data/spec/difference_image_spec.rb +56 -0
- data/spec/generated_image_spec.rb +68 -0
- data/spec/spec_helper.rb +6 -0
- data/views/index.haml +86 -0
- metadata +232 -0
@@ -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
|
data/spec/spec_helper.rb
ADDED
data/views/index.haml
ADDED
@@ -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
|