compaa 0.0.4 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +2 -3
  3. data/Gemfile +1 -1
  4. data/Rakefile +32 -8
  5. data/bin/compaa +1 -86
  6. data/compaa.gemspec +11 -14
  7. data/fixtures/homemove/artifacts/differences_in_screenshots_this_run/homemove/step_2_your_new_home/firefox_Darwin_sky_helpcentre_home_move_your_new_home1.png_difference.gif +0 -0
  8. data/fixtures/homemove/artifacts/differences_in_screenshots_this_run/homemove/step_4_contact_details/firefox_Darwin_sky_helpcentre_home_move_contact_details1.png_difference.gif +0 -0
  9. data/fixtures/homemove/artifacts/differences_in_screenshots_this_run/homemove/validation_failures_on_your_new_home/firefox_Darwin_sky_helpcentre_home_move_your_new_home1.png_difference.gif +0 -0
  10. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_doesn_t_select_any_service/chrome_Mac_sky_helpcentre_home_move_getting_started1.png +0 -0
  11. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_doesn_t_select_any_service/firefox_Darwin_sky_helpcentre_home_move_getting_started1.png +0 -0
  12. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_doesn_t_select_any_service/firefox_Mac_sky_helpcentre_home_move_getting_started1.png +0 -0
  13. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_doesn_t_select_any_service/internet-explorer_8_Windows_sky_helpcentre_home_move_getting_started1.png +0 -0
  14. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_doesn_t_select_any_service/internet-explorer_9_Windows_sky_helpcentre_home_move_getting_started1.png +0 -0
  15. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_doesn_t_select_any_service/safari_Mac_sky_helpcentre_home_move_getting_started1.png +0 -0
  16. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_moving_to_a_new_home_in_ireland/chrome_Mac_sky_helpcentre_home_move_getting_started1.png +0 -0
  17. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_moving_to_a_new_home_in_ireland/firefox_Darwin_sky_helpcentre_home_move_getting_started1.png +0 -0
  18. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_moving_to_a_new_home_in_ireland/firefox_Mac_sky_helpcentre_home_move_getting_started1.png +0 -0
  19. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_moving_to_a_new_home_in_ireland/internet-explorer_7_Windows_sky_helpcentre_home_move_getting_started1.png +0 -0
  20. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_moving_to_a_new_home_in_ireland/internet-explorer_8_Windows_sky_helpcentre_home_move_getting_started1.png +0 -0
  21. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_moving_to_a_new_home_in_ireland/internet-explorer_9_Windows_sky_helpcentre_home_move_getting_started1.png +0 -0
  22. data/fixtures/homemove/artifacts/reference_screenshots/homemove/customer_moving_to_a_new_home_in_ireland/safari_Mac_sky_helpcentre_home_move_getting_started1.png +0 -0
  23. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_0_moving_home/chrome_Mac_sky_helpcentre_home_move_getting_started1.png +0 -0
  24. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_0_moving_home/firefox_Mac_sky_helpcentre_home_move_getting_started1.png +0 -0
  25. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_0_moving_home/internet-explorer_7_Windows_sky_helpcentre_home_move_getting_started1.png +0 -0
  26. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_0_moving_home/internet-explorer_8_Windows_sky_helpcentre_home_move_getting_started1.png +0 -0
  27. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_0_moving_home/internet-explorer_9_Windows_sky_helpcentre_home_move_getting_started1.png +0 -0
  28. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_0_moving_home/safari_Mac_sky_helpcentre_home_move_getting_started1.png +0 -0
  29. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_1_moving_dates/chrome_Mac_sky_helpcentre_home_move_moving_dates1.png +0 -0
  30. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_1_moving_dates/firefox_Mac_sky_helpcentre_home_move_moving_dates1.png +0 -0
  31. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_1_moving_dates/internet-explorer_8_Windows_sky_helpcentre_home_move_moving_dates1.png +0 -0
  32. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_1_moving_dates/internet-explorer_9_Windows_sky_helpcentre_home_move_moving_dates1.png +0 -0
  33. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_2_your_new_home/chrome_Mac_sky_helpcentre_home_move_your_new_home1.png +0 -0
  34. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_2_your_new_home/firefox_Darwin_sky_helpcentre_home_move_your_new_home1.png +0 -0
  35. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_2_your_new_home/firefox_Mac_sky_helpcentre_home_move_your_new_home1.png +0 -0
  36. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_2_your_new_home/internet-explorer_8_Windows_sky_helpcentre_home_move_your_new_home1.png +0 -0
  37. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_2_your_new_home/internet-explorer_9_Windows_sky_helpcentre_home_move_your_new_home1.png +0 -0
  38. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_2_your_new_home/safari_Mac_sky_helpcentre_home_move_your_new_home1.png +0 -0
  39. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_3_tv_setup/chrome_Mac_sky_helpcentre_home_move_tv_setup1.png +0 -0
  40. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_3_tv_setup/firefox_Darwin_sky_helpcentre_home_move_tv_setup1.png +0 -0
  41. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_3_tv_setup/firefox_Mac_sky_helpcentre_home_move_tv_setup1.png +0 -0
  42. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_3_tv_setup/internet-explorer_8_Windows_sky_helpcentre_home_move_tv_setup1.png +0 -0
  43. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_3_tv_setup/internet-explorer_9_Windows_sky_helpcentre_home_move_tv_setup1.png +0 -0
  44. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_3_tv_setup/safari_Mac_sky_helpcentre_home_move_tv_setup1.png +0 -0
  45. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_4_contact_details/chrome_Mac_sky_helpcentre_home_move_contact_details1.png +0 -0
  46. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_4_contact_details/firefox_Darwin_sky_helpcentre_home_move_contact_details1.png +0 -0
  47. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_4_contact_details/firefox_Mac_sky_helpcentre_home_move_contact_details1.png +0 -0
  48. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_4_contact_details/internet-explorer_8_Windows_sky_helpcentre_home_move_contact_details1.png +0 -0
  49. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_4_contact_details/internet-explorer_9_Windows_sky_helpcentre_home_move_contact_details1.png +0 -0
  50. data/fixtures/homemove/artifacts/reference_screenshots/homemove/step_4_contact_details/safari_Mac_sky_helpcentre_home_move_contact_details1.png +0 -0
  51. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_tv_set_up/chrome_Mac_sky_helpcentre_home_move_tv_setup1.png +0 -0
  52. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_tv_set_up/firefox_Darwin_sky_helpcentre_home_move_tv_setup1.png +0 -0
  53. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_tv_set_up/firefox_Mac_sky_helpcentre_home_move_tv_setup1.png +0 -0
  54. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_tv_set_up/internet-explorer_8_Windows_sky_helpcentre_home_move_tv_setup1.png +0 -0
  55. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_tv_set_up/internet-explorer_9_Windows_sky_helpcentre_home_move_tv_setup1.png +0 -0
  56. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_tv_set_up/safari_Mac_sky_helpcentre_home_move_tv_setup1.png +0 -0
  57. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_your_new_home/chrome_Mac_sky_helpcentre_home_move_your_new_home1.png +0 -0
  58. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_your_new_home/firefox_Darwin_sky_helpcentre_home_move_your_new_home1.png +0 -0
  59. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_your_new_home/firefox_Mac_sky_helpcentre_home_move_your_new_home1.png +0 -0
  60. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_your_new_home/internet-explorer_8_Windows_sky_helpcentre_home_move_your_new_home1.png +0 -0
  61. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_your_new_home/internet-explorer_9_Windows_sky_helpcentre_home_move_your_new_home1.png +0 -0
  62. data/fixtures/homemove/artifacts/reference_screenshots/homemove/validation_failures_on_your_new_home/safari_Mac_sky_helpcentre_home_move_your_new_home1.png +0 -0
  63. data/fixtures/homemove/artifacts/screenshots_generated_this_run/homemove/customer_doesn_t_select_any_service/firefox_Darwin_sky_helpcentre_home_move_getting_started1.png +0 -0
  64. data/fixtures/homemove/artifacts/screenshots_generated_this_run/homemove/customer_moving_to_a_new_home_in_ireland/firefox_Darwin_sky_helpcentre_home_move_getting_started1.png +0 -0
  65. data/fixtures/homemove/artifacts/screenshots_generated_this_run/homemove/step_0_moving_home/firefox_Darwin_sky_helpcentre_home_move_getting_started1.png +0 -0
  66. data/fixtures/homemove/artifacts/screenshots_generated_this_run/homemove/step_2_your_new_home/firefox_Darwin_sky_helpcentre_home_move_your_new_home1.png +0 -0
  67. data/fixtures/homemove/artifacts/screenshots_generated_this_run/homemove/step_3_tv_setup/firefox_Darwin_sky_helpcentre_home_move_tv_setup1.png +0 -0
  68. data/fixtures/homemove/artifacts/screenshots_generated_this_run/homemove/step_4_contact_details/firefox_Darwin_sky_helpcentre_home_move_contact_details1.png +0 -0
  69. data/fixtures/homemove/artifacts/screenshots_generated_this_run/homemove/validation_failures_on_tv_set_up/firefox_Darwin_sky_helpcentre_home_move_tv_setup1.png +0 -0
  70. data/fixtures/homemove/artifacts/screenshots_generated_this_run/homemove/validation_failures_on_your_new_home/firefox_Darwin_sky_helpcentre_home_move_your_new_home1.png +0 -0
  71. data/lib/assets/bootstrap.css +6158 -0
  72. data/lib/assets/compaa.js +153 -0
  73. data/lib/assets/index.haml +29 -0
  74. data/lib/assets/jquery-2.0.0.js +8755 -0
  75. data/lib/assets/underscore.js +1227 -0
  76. data/lib/compaa/generated_image.rb +5 -1
  77. data/lib/compaa/rack_app.rb +81 -30
  78. data/lib/compaa/version.rb +1 -1
  79. data/mock_app.rb +22 -0
  80. data/spec/integration/integration_spec.rb +66 -0
  81. data/spec/javascripts/CompaaSpec.js +81 -0
  82. data/spec/javascripts/fixtures/body.html +19 -0
  83. data/spec/javascripts/support/bind.js +23 -0
  84. data/spec/javascripts/support/jasmine-jquery.js +658 -0
  85. data/spec/javascripts/support/jasmine.yml +9 -0
  86. data/spec/javascripts/support/jasmine_helper.rb +11 -0
  87. data/spec/rack_app_spec.rb +101 -35
  88. data/spec/spec_helper.rb +2 -2
  89. metadata +196 -88
  90. data/features/compaa.feature +0 -38
  91. data/features/step_definitions/compaa_steps.rb +0 -51
  92. data/features/support/env.rb +0 -27
  93. data/features/support/file_helpers.rb +0 -23
  94. data/features/support/matchers.rb +0 -13
  95. data/lib/compaa/script.js +0 -77
  96. data/lib/compaa/template.haml +0 -20
  97. data/lib/watir-webdriver-fake.rb +0 -9
@@ -1,38 +0,0 @@
1
- Feature: Generate Rake Artifacts Tasks
2
-
3
- In order to be able to view screenshot failures and decide whether accept or reject them
4
- As a Help Centre developer
5
- I want to be able to compare screenshots
6
-
7
- Scenario: App just runs
8
- When I get help for "compaa"
9
- Then the exit status should be 0
10
- And the banner should be present
11
- And the banner should document that this app takes options
12
- And the following options should be documented:
13
- | --version |
14
- And the banner should document that this app takes no arguments
15
-
16
- Scenario: Compare screenshots and approve
17
- Given a sample reference screenshot
18
- And a sample generated screenshot
19
- And a sample difference screenshot
20
- When I run `compaa` interactively
21
- And I approve the screenshot
22
- Then the new reference screenshot should be the same as the sample generated screenshot
23
- And the difference image should have been deleted
24
-
25
- Scenario: Compare screenshots and reject
26
- Given a sample reference screenshot
27
- And a sample generated screenshot
28
- And a sample difference screenshot
29
- When I run `compaa` interactively
30
- And I reject the screenshot
31
- Then the new reference screenshot should be the same as the original reference screenshot
32
-
33
- Scenario: Generated images without corresponding reference images require approval
34
- Given a sample generated screenshot
35
- And no reference images or difference images
36
- When I run `compaa` interactively
37
- And I approve the screenshot
38
- Then the new reference screenshot should be the same as the sample generated screenshot
@@ -1,51 +0,0 @@
1
- Given /^no reference images or difference images$/ do
2
- # do nothing
3
- end
4
-
5
- Given /^a sample reference screenshot$/ do
6
- write_file 'artifacts/reference_screenshots/dir/image.png',
7
- sample_reference_image
8
- end
9
-
10
- Given /^a sample generated screenshot$/ do
11
- write_file 'artifacts/screenshots_generated_this_run/dir/image.png',
12
- sample_generated_image
13
- end
14
-
15
- Given /^a sample difference screenshot$/ do
16
- write_file 'artifacts/differences_in_screenshots_this_run/dir/image.png_difference.gif',
17
- sample_difference_image
18
- end
19
-
20
- When /^I reject the screenshot$/ do
21
- type 'No'
22
- end
23
-
24
- When /^I approve the screenshot$/ do
25
- type 'Yes'
26
- end
27
-
28
- Then /^the new reference screenshot should be the same as the sample generated screenshot$/ do
29
- sample_generated_file_path = File.join fixture_image_path, 'sample_generated.png'
30
- new_reference_file_path = File.join current_dir, *%w[artifacts reference_screenshots dir image.png]
31
-
32
- eventually :timeout => RUBY_PLATFORM == 'java' ? 20 : 10 do
33
- new_reference_file_path.should be_the_same_file_as sample_generated_file_path
34
- end
35
- end
36
-
37
- Then /^the new reference screenshot should be the same as the original reference screenshot$/ do
38
- original_reference_file_path = File.join fixture_image_path, 'sample_reference.png'
39
- new_reference_file_path = File.join current_dir, *%w[artifacts reference_screenshots dir image.png]
40
-
41
- eventually :timeout => RUBY_PLATFORM == 'java' ? 20 : 10 do
42
- new_reference_file_path.should be_the_same_file_as original_reference_file_path
43
- end
44
- end
45
-
46
- Then /^the difference image should have been deleted$/ do
47
- difference_image = File.join current_dir,
48
- *%w[artifacts differences_in_screenshots_this_run dir image.png_difference.gif]
49
-
50
- difference_image.should_not exist
51
- end
@@ -1,27 +0,0 @@
1
- require 'aruba/cucumber'
2
- require 'methadone/cucumber'
3
- require 'wrong'
4
-
5
- include Wrong
6
-
7
- bin_dir = File.expand_path File.dirname(__FILE__), '../../bin'
8
- ENV['PATH'] = bin_dir + File::PATH_SEPARATOR + ENV['PATH']
9
- LIB_DIR = File.expand_path File.dirname(__FILE__), '../../lib'
10
-
11
- Before do
12
- # Using "announce" causes massive warnings on 1.9.2
13
- @puts = true
14
- @original_rubylib = ENV['RUBYLIB']
15
- ENV['RUBYLIB'] = LIB_DIR + File::PATH_SEPARATOR + ENV['RUBYLIB'].to_s
16
- @aruba_timeout_seconds = RUBY_PLATFORM == 'java' ? 20 : 5
17
- end
18
-
19
- Aruba.configure do |config|
20
- config.before_cmd do |cmd|
21
- set_env('JRUBY_OPTS', "-X-C #{ENV['JRUBY_OPTS']}") # disable JIT since these processes are so short lived
22
- end
23
- end if RUBY_PLATFORM == 'java'
24
-
25
- After do
26
- ENV['RUBYLIB'] = @original_rubylib
27
- end
@@ -1,23 +0,0 @@
1
- module FileHelpers
2
- def sample_reference_image
3
- fixture_image('sample_reference.png').read
4
- end
5
-
6
- def sample_generated_image
7
- fixture_image('sample_generated.png').read
8
- end
9
-
10
- def sample_difference_image
11
- fixture_image('sample_generated.png_difference.gif').read
12
- end
13
-
14
- def fixture_image file_name
15
- File.new File.join(fixture_image_path, file_name)
16
- end
17
-
18
- def fixture_image_path
19
- File.expand_path "../../fixtures", File.dirname(__FILE__)
20
- end
21
- end
22
-
23
- World FileHelpers
@@ -1,13 +0,0 @@
1
- require 'fileutils'
2
-
3
- RSpec::Matchers.define :be_the_same_file_as do |expected|
4
- match do |actual|
5
- FileUtils.cmp actual, expected
6
- end
7
- end
8
-
9
- RSpec::Matchers.define :exist do
10
- match do |path|
11
- File.exists? path
12
- end
13
- end
@@ -1,77 +0,0 @@
1
- var Compaa = {
2
- filepath: function() {
3
- queryString = window.location.search.replace('?', '');
4
- return queryString.split('=')[1];
5
- },
6
-
7
- differenceGifPath: function() {
8
- return this.filepath();
9
- },
10
-
11
- oldImagePath: function() {
12
- return this.filepath().replace('gif', 'png').replace('_difference.png', '').replace('differences_in_screenshots_this_run','reference_screenshots');
13
- },
14
-
15
- newImagePath: function() {
16
- return this.filepath().replace('gif', 'png').replace('_difference.png', '').replace('differences_in_screenshots_this_run', 'screenshots_generated_this_run');
17
- },
18
-
19
- initClickHandlers: function() {
20
- document.getElementById('differenceButton').onclick = function() { Compaa.show('difference') };
21
- document.getElementById('animationButton').onclick = function() { Compaa.show('animation') };
22
- document.getElementById('oldImageButton').onclick = function() { Compaa.show('oldImage') };
23
- document.getElementById('newImageButton').onclick = function() { Compaa.show('newImage') };
24
- },
25
-
26
- hideAllImages: function() {
27
- for (var i=0; i < this.imageTypes.length, i++) {
28
- document.getElementById(this.imageTypes[i]).style.display = 'none';
29
- }
30
- },
31
-
32
- show: function(mode) {
33
- this.hideAllImages();
34
- document.getElementById(mode).style.display = 'block';
35
- },
36
-
37
- setFormFilePath: function() {
38
- document.getElementById('filepath').value = this.newImagePath;
39
- },
40
-
41
- imageTypes: ['difference', 'animation', 'oldImage', 'newImage'],
42
-
43
- init: function() {
44
- this.setFormFilePath();
45
-
46
- var oldImg = document.createElement('img');
47
- oldImg.src = this.oldImagePath();
48
-
49
- var newImg = document.createElement('img');
50
- newImg.src = this.newImagePath();
51
-
52
- document.getElementById('difference').width = oldImg.width;
53
- document.getElementById('difference').height = oldImg.height;
54
-
55
- document.getElementById('offScreenCanvas').width = newImg.width;
56
- document.getElementById('offScreenCanvas').height = newImg.height;
57
-
58
- var over = document.getElementById('offScreenCanvas').getContext('2d');
59
- over.drawImage(oldImg, 0, 0);
60
-
61
- var under = document.getElementById('difference').getContext('2d');
62
- under.drawImage(newImg, 0, 0);
63
-
64
- over.blendOnto(under,'difference');
65
-
66
- document.getElementById('oldImage').src = this.oldImagePath();
67
- document.getElementById('newImage').src = this.newImagePath();
68
-
69
- this.initClickHandlers();
70
- }
71
- }
72
-
73
- document.onreadystatechange = function() {
74
- if (document.readyState == "complete" || document.readyState == "interactive") {
75
- Compaa.init();
76
- }
77
- }
@@ -1,20 +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: 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
- %form{:class => 'artifacts', :method => 'POST', :action => '/screenshots'}
17
- %input#filepath{:name => 'filepath', :type => 'hidden', :value => ''}
18
- %input{:type => 'submit', :value => 'Accept'}
19
-
20
- %script{:src => '/script.js'}
@@ -1,9 +0,0 @@
1
- require 'compaa/null_object'
2
-
3
- module Watir
4
- class Browser
5
- def self.new
6
- Compaa::NullObject.new
7
- end
8
- end
9
- end