compaa 0.0.1.3 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +0 -1
- data/bin/compaa +36 -36
- data/compaa.gemspec +2 -3
- data/features/step_definitions/compaa_steps.rb +2 -2
- data/features/support/env.rb +0 -2
- data/lib/compaa.rb +2 -0
- data/lib/compaa/null_object.rb +5 -0
- data/lib/compaa/rack_app.rb +32 -0
- data/lib/compaa/template.haml +80 -0
- data/lib/compaa/version.rb +1 -1
- data/lib/watir-webdriver-fake.rb +9 -0
- data/spec/spec_helper.rb +2 -0
- metadata +43 -48
- data/app.rb +0 -9
- data/config.ru +0 -6
- data/views/index.haml +0 -86
data/.travis.yml
CHANGED
data/bin/compaa
CHANGED
@@ -3,62 +3,62 @@
|
|
3
3
|
require 'optparse'
|
4
4
|
require 'methadone'
|
5
5
|
require 'compaa'
|
6
|
-
require '
|
7
|
-
|
6
|
+
require 'rack'
|
7
|
+
if ENV['TRAVIS'] == 'true'
|
8
|
+
require 'watir-webdriver-fake'
|
9
|
+
else
|
10
|
+
require 'watir-webdriver'
|
11
|
+
end
|
8
12
|
require 'cgi'
|
9
13
|
|
10
14
|
class App
|
11
15
|
include Methadone::Main
|
12
16
|
include Methadone::CLILogging
|
13
17
|
|
14
|
-
PORT =
|
18
|
+
PORT = 7788
|
15
19
|
|
16
20
|
main do
|
17
|
-
|
18
|
-
|
19
|
-
user_project_path = Dir.pwd
|
20
|
-
|
21
|
-
Dir.chdir(File.dirname(__FILE__))
|
22
|
-
Dir.chdir("../")
|
23
|
-
puts Dir.pwd
|
24
|
-
|
25
|
-
begin
|
26
|
-
`ln -s #{user_project_path} #{Dir.pwd}/public`
|
27
|
-
rescue
|
28
|
-
puts 'Error creating symbolic link'
|
29
|
-
end
|
21
|
+
begin
|
22
|
+
start_server_in_background
|
30
23
|
|
31
|
-
|
32
|
-
|
24
|
+
browser = Watir::Browser.new
|
25
|
+
browser.window.resize_to 1368, 1200
|
33
26
|
|
34
|
-
|
35
|
-
|
27
|
+
Compaa::DifferenceImage.all.each do |difference_image|
|
28
|
+
browser.goto "http://localhost:#{PORT}/?filepath=#{CGI::escape(difference_image.path)}"
|
29
|
+
puts "Comparing: #{difference_image.path}"
|
30
|
+
puts "Would you like to make this the reference image?"
|
36
31
|
|
37
|
-
|
32
|
+
difference_image.create_reference_image if screenshot_approved?
|
33
|
+
end
|
38
34
|
|
39
|
-
|
40
|
-
|
41
|
-
puts "Comparing: #{difference_image.path}"
|
42
|
-
puts "Would you like to make this the reference image?"
|
35
|
+
Compaa::GeneratedImage.all.each do |generated_image|
|
36
|
+
next if generated_image.has_reference_image?
|
43
37
|
|
44
|
-
|
38
|
+
puts "Approving: #{generated_image.path}"
|
39
|
+
generated_image.create_reference_image if screenshot_approved?
|
40
|
+
end
|
41
|
+
ensure
|
42
|
+
shutdown_server
|
43
|
+
browser.close
|
45
44
|
end
|
45
|
+
end
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
def self.start_server_in_background
|
48
|
+
Thread.new do
|
49
|
+
Rack::Handler::WEBrick.run Compaa::RackApp.new.app,
|
50
|
+
:Port => PORT,
|
51
|
+
:Logger => Compaa::NullObject.new,
|
52
|
+
:AccessLog => [nil, nil]
|
52
53
|
end
|
54
|
+
end
|
53
55
|
|
54
|
-
|
55
|
-
|
56
|
-
browser.close
|
57
|
-
|
56
|
+
def self.shutdown_server
|
57
|
+
Rack::Handler::WEBrick.shutdown
|
58
58
|
end
|
59
59
|
|
60
60
|
def self.screenshot_approved?
|
61
|
-
|
61
|
+
STDIN.gets.chomp.downcase.start_with? 'y'
|
62
62
|
end
|
63
63
|
|
64
64
|
version Compaa::VERSION
|
data/compaa.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
19
|
gem.require_paths = ['lib']
|
20
20
|
|
21
|
-
%w[rake aruba simplecov wrong minitest guard-minitest guard-cucumber].each do |lib|
|
21
|
+
%w[rake aruba simplecov wrong minitest guard-minitest guard-cucumber rack-test].each do |lib|
|
22
22
|
gem.add_development_dependency lib
|
23
23
|
end
|
24
24
|
|
@@ -30,8 +30,7 @@ Gem::Specification.new do |gem|
|
|
30
30
|
end
|
31
31
|
|
32
32
|
gem.add_dependency 'methadone', '~> 1.2.2'
|
33
|
-
gem.add_dependency 'sinatra'
|
34
|
-
gem.add_dependency 'thin'
|
35
33
|
gem.add_dependency 'haml'
|
36
34
|
gem.add_dependency 'watir-webdriver'
|
35
|
+
gem.add_dependency 'rack'
|
37
36
|
end
|
@@ -29,7 +29,7 @@ Then /^the new reference screenshot should be the same as the sample generated s
|
|
29
29
|
sample_generated_file_path = File.join fixture_image_path, 'sample_generated.png'
|
30
30
|
new_reference_file_path = File.join current_dir, *%w[artifacts reference_screenshots dir image.png]
|
31
31
|
|
32
|
-
eventually :timeout => RUBY_PLATFORM == 'java' ? 20 :
|
32
|
+
eventually :timeout => RUBY_PLATFORM == 'java' ? 20 : 10 do
|
33
33
|
new_reference_file_path.should be_the_same_file_as sample_generated_file_path
|
34
34
|
end
|
35
35
|
end
|
@@ -38,7 +38,7 @@ Then /^the new reference screenshot should be the same as the original reference
|
|
38
38
|
original_reference_file_path = File.join fixture_image_path, 'sample_reference.png'
|
39
39
|
new_reference_file_path = File.join current_dir, *%w[artifacts reference_screenshots dir image.png]
|
40
40
|
|
41
|
-
eventually :timeout => RUBY_PLATFORM == 'java' ? 20 :
|
41
|
+
eventually :timeout => RUBY_PLATFORM == 'java' ? 20 : 10 do
|
42
42
|
new_reference_file_path.should be_the_same_file_as original_reference_file_path
|
43
43
|
end
|
44
44
|
end
|
data/features/support/env.rb
CHANGED
data/lib/compaa.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'rack'
|
2
|
+
require 'haml'
|
3
|
+
|
4
|
+
module Compaa
|
5
|
+
class RackApp
|
6
|
+
attr_writer :root_directory
|
7
|
+
|
8
|
+
DEFAULT_ROOT = Dir.pwd
|
9
|
+
|
10
|
+
def app
|
11
|
+
template = File.read File.expand_path 'template.haml', File.dirname(__FILE__)
|
12
|
+
root = @root_directory or DEFAULT_ROOT
|
13
|
+
|
14
|
+
Rack::Builder.new do
|
15
|
+
use Rack::Static, :urls => ['/artifacts'], :root => root
|
16
|
+
|
17
|
+
run lambda { |env|
|
18
|
+
request = Rack::Request.new env
|
19
|
+
|
20
|
+
if request.path == '/' and request.params.has_key? 'filepath'
|
21
|
+
locals = { :filepath => request.params['filepath'] }
|
22
|
+
body = Haml::Engine.new(template).render Object.new, locals
|
23
|
+
|
24
|
+
[ 200, { 'Content-Type' => 'text/html' }, [body] ]
|
25
|
+
else
|
26
|
+
[ 404, {}, ['Not found'] ]
|
27
|
+
end
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,80 @@
|
|
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: filepath, style: 'display: none'}
|
8
|
+
%img#oldImage{style: 'display: none'}
|
9
|
+
%img#newImage{style: 'display: none'}
|
10
|
+
|
11
|
+
#buttonBar{style: 'width: 400px; margin: 0px auto'}
|
12
|
+
%button#differenceButton Difference
|
13
|
+
%button#animationButton Animation
|
14
|
+
%button#oldImageButton Old Image
|
15
|
+
%button#newImageButton New Image
|
16
|
+
:javascript
|
17
|
+
var compaa = {
|
18
|
+
differenceGifPath: '#{filepath}',
|
19
|
+
oldImagePath: '#{filepath.gsub('gif', 'png').gsub('_difference.png', '').gsub('differences_in_screenshots_this_run','reference_screenshots')}',
|
20
|
+
newImagePath: '#{filepath.gsub('gif', 'png').gsub('_difference.png', '').gsub('differences_in_screenshots_this_run','screenshots_generated_this_run')}',
|
21
|
+
|
22
|
+
init: function() {
|
23
|
+
var oldImg=document.createElement('img');
|
24
|
+
oldImg.src = compaa.oldImagePath
|
25
|
+
|
26
|
+
var newImg=document.createElement('img');
|
27
|
+
newImg.src = compaa.newImagePath
|
28
|
+
|
29
|
+
document.getElementById('difference').width = oldImg.width;
|
30
|
+
document.getElementById('difference').height = oldImg.height;
|
31
|
+
|
32
|
+
document.getElementById('offScreenCanvas').width = newImg.width;
|
33
|
+
document.getElementById('offScreenCanvas').height = newImg.height;
|
34
|
+
|
35
|
+
var over = document.getElementById('offScreenCanvas').getContext('2d');
|
36
|
+
over.drawImage(oldImg, 0, 0);
|
37
|
+
|
38
|
+
var under = document.getElementById('difference').getContext('2d');
|
39
|
+
under.drawImage(newImg, 0, 0);
|
40
|
+
|
41
|
+
over.blendOnto(under,'difference');
|
42
|
+
|
43
|
+
document.getElementById('oldImage').src = compaa.oldImagePath;
|
44
|
+
document.getElementById('newImage').src = compaa.newImagePath;
|
45
|
+
|
46
|
+
compaa.show('difference');
|
47
|
+
|
48
|
+
document.getElementById('differenceButton').onclick = function(){compaa.show('difference')};
|
49
|
+
document.getElementById('animationButton').onclick = function(){compaa.show('animation')};
|
50
|
+
document.getElementById('oldImageButton').onclick = function(){compaa.show('oldImage')};
|
51
|
+
document.getElementById('newImageButton').onclick = function(){compaa.show('newImage')};
|
52
|
+
},
|
53
|
+
show: function(mode) {
|
54
|
+
document.getElementById('difference').style.display = 'none';
|
55
|
+
document.getElementById('animation').style.display = 'none';
|
56
|
+
document.getElementById('oldImage').style.display = 'none';
|
57
|
+
document.getElementById('newImage').style.display = 'none';
|
58
|
+
|
59
|
+
switch(mode){
|
60
|
+
case 'difference':
|
61
|
+
document.getElementById('difference').style.display = 'block';
|
62
|
+
break;
|
63
|
+
case 'animation':
|
64
|
+
document.getElementById('animation').style.display = 'block';
|
65
|
+
break;
|
66
|
+
case 'oldImage':
|
67
|
+
document.getElementById('oldImage').style.display = 'block';
|
68
|
+
break;
|
69
|
+
case 'newImage':
|
70
|
+
document.getElementById('newImage').style.display = 'block';
|
71
|
+
break;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
document.onreadystatechange = function() {
|
77
|
+
if (document.readyState == "complete" || document.readyState == "interactive") {
|
78
|
+
compaa.init();
|
79
|
+
}
|
80
|
+
}
|
data/lib/compaa/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: compaa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
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:
|
12
|
+
date: 2013-01-08 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &19861380 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *19861380
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: aruba
|
27
|
-
requirement: &
|
27
|
+
requirement: &19859900 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *19859900
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: simplecov
|
38
|
-
requirement: &
|
38
|
+
requirement: &19829160 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *19829160
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: wrong
|
49
|
-
requirement: &
|
49
|
+
requirement: &19827180 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *19827180
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: minitest
|
60
|
-
requirement: &
|
60
|
+
requirement: &19824440 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *19824440
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: guard-minitest
|
71
|
-
requirement: &
|
71
|
+
requirement: &19796120 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *19796120
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: guard-cucumber
|
82
|
-
requirement: &
|
82
|
+
requirement: &19729380 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *19729380
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
93
|
-
requirement: &
|
92
|
+
name: rack-test
|
93
|
+
requirement: &19726820 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,32 +98,32 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *19726820
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
|
-
name:
|
104
|
-
requirement: &
|
103
|
+
name: rb-inotify
|
104
|
+
requirement: &19722980 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
110
|
-
type: :
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *19722980
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
|
-
name:
|
115
|
-
requirement: &
|
114
|
+
name: methadone
|
115
|
+
requirement: &19691520 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
|
-
- -
|
118
|
+
- - ~>
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
120
|
+
version: 1.2.2
|
121
121
|
type: :runtime
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *19691520
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
|
-
name:
|
126
|
-
requirement: &
|
125
|
+
name: haml
|
126
|
+
requirement: &19689220 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ! '>='
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: '0'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *19689220
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
|
-
name:
|
137
|
-
requirement: &
|
136
|
+
name: watir-webdriver
|
137
|
+
requirement: &19688160 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ! '>='
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: '0'
|
143
143
|
type: :runtime
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *19688160
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
|
-
name:
|
148
|
-
requirement: &
|
147
|
+
name: rack
|
148
|
+
requirement: &19649800 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ! '>='
|
@@ -153,7 +153,7 @@ dependencies:
|
|
153
153
|
version: '0'
|
154
154
|
type: :runtime
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *19649800
|
157
157
|
description:
|
158
158
|
email:
|
159
159
|
- skyhelpcentre@gmail.com
|
@@ -169,10 +169,8 @@ files:
|
|
169
169
|
- LICENSE.txt
|
170
170
|
- README.md
|
171
171
|
- Rakefile
|
172
|
-
- app.rb
|
173
172
|
- bin/compaa
|
174
173
|
- compaa.gemspec
|
175
|
-
- config.ru
|
176
174
|
- features/compaa.feature
|
177
175
|
- features/step_definitions/compaa_steps.rb
|
178
176
|
- features/support/env.rb
|
@@ -184,12 +182,15 @@ files:
|
|
184
182
|
- lib/compaa.rb
|
185
183
|
- lib/compaa/difference_image.rb
|
186
184
|
- lib/compaa/generated_image.rb
|
185
|
+
- lib/compaa/null_object.rb
|
186
|
+
- lib/compaa/rack_app.rb
|
187
|
+
- lib/compaa/template.haml
|
187
188
|
- lib/compaa/version.rb
|
189
|
+
- lib/watir-webdriver-fake.rb
|
188
190
|
- log/newrelic_agent.log
|
189
191
|
- spec/difference_image_spec.rb
|
190
192
|
- spec/generated_image_spec.rb
|
191
193
|
- spec/spec_helper.rb
|
192
|
-
- views/index.haml
|
193
194
|
homepage: https://github.com/bskyb-commerce-helpcentre/compaa
|
194
195
|
licenses: []
|
195
196
|
post_install_message:
|
@@ -202,18 +203,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
202
203
|
- - ! '>='
|
203
204
|
- !ruby/object:Gem::Version
|
204
205
|
version: '0'
|
205
|
-
segments:
|
206
|
-
- 0
|
207
|
-
hash: 1838838566745531366
|
208
206
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
209
207
|
none: false
|
210
208
|
requirements:
|
211
209
|
- - ! '>='
|
212
210
|
- !ruby/object:Gem::Version
|
213
211
|
version: '0'
|
214
|
-
segments:
|
215
|
-
- 0
|
216
|
-
hash: 1838838566745531366
|
217
212
|
requirements: []
|
218
213
|
rubyforge_project:
|
219
214
|
rubygems_version: 1.8.10
|
data/app.rb
DELETED
data/config.ru
DELETED
data/views/index.haml
DELETED
@@ -1,86 +0,0 @@
|
|
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
|
-
|