compaa 0.0.4 → 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.
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