gatling 0.9.9 → 1.0.0

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/lib/gatling.rb CHANGED
@@ -5,20 +5,23 @@ module Gatling
5
5
 
6
6
  #TODO: Training mode
7
7
  #TODO: Diff with reports
8
- #TODO: Canidate in spec
9
8
  #TODO: Fuzz matches
10
9
  #TODO: Helpers for cucumber
11
10
 
12
11
  def initialize expected, actual
13
12
  @expected = expected
14
13
  @actual = actual
14
+
15
+ @reference_image_path = Gatling::Configuration.reference_image_path
16
+ @expected_image = "#{@reference_image_path}/#{@expected}"
17
+ @expected_filename = "#{@expected}".sub(/\.[a-z]*/,'')
15
18
  end
16
19
 
17
-
20
+
18
21
  def capture
19
22
  temp_dir = "#{@reference_image_path}/temp"
20
23
 
21
- FileUtils::mkdir_p(temp_dir) unless File.exists?(temp_dir)
24
+ FileUtils::mkdir_p(temp_dir)
22
25
 
23
26
  #captures the uncropped full screen
24
27
  page.driver.browser.save_screenshot("#{temp_dir}/temp.png")
@@ -34,27 +37,42 @@ module Gatling
34
37
 
35
38
  def save_crop_as_reference(cropped_element)
36
39
  candidate_path = "#{@reference_image_path}/candidate"
37
-
38
- FileUtils::mkdir_p(candidate_path) unless File.exists?(candidate_path)
39
-
40
- filename = "#{@expected}".sub(/\.[a-z]*/,'')
41
- cropped_element.write("#{candidate_path}/#{filename}_candidate.png")
42
- candidate = "#{candidate_path}/#{filename}_candidate.png"
43
- end
40
+
41
+ FileUtils::mkdir_p(candidate_path)
42
+
43
+ cropped_element.write("#{candidate_path}/#{@expected_filename}.png")
44
+ candidate = "#{candidate_path}/#{@expected_filename}.png"
45
+ end
46
+
47
+ def create_diff
48
+ diff_path = "#{@reference_image_path}/diff"
49
+
50
+ FileUtils::mkdir_p(diff_path)
51
+
52
+ @diff_metric.first.write("#{diff_path}/#{@expected_filename}_diff.png")
53
+
54
+ candidate = save_crop_as_reference(@cropped_element)
55
+ raise "element did not match #{@expected}. A diff image: #{@expected_filename}_diff.png was created in #{diff_path}. A new reference #{candidate} can be used to fix the test"
56
+ end
44
57
 
45
58
 
46
59
  def matches?
47
- @reference_image_path = Gatling::Configuration.reference_image_path
48
- cropped_element = crop_element
49
- if File.exists?(@expected)
50
- expected_img = Magick::Image.read(@expected).first
51
- diff_metric = cropped_element.compare_channel(expected_img, Magick::MeanAbsoluteErrorMetric)
52
- matches = diff_metric[1] == 0.0
53
- diff_metric.first.write('diff.png') unless matches
60
+
61
+ @cropped_element = crop_element
62
+ if File.exists?(@expected_image)
63
+
64
+ expected_img = Magick::Image.read(@expected_image).first
65
+
66
+ @diff_metric = @cropped_element.compare_channel(expected_img, Magick::MeanAbsoluteErrorMetric)
67
+
68
+ matches = @diff_metric[1] == 0.0
69
+
70
+ create_diff unless matches
71
+
54
72
  matches
55
73
  else
56
- candidate = save_crop_as_reference(cropped_element)
57
- raise "The design reference #{@expected} does not exist, #{candidate} is now available to be used as a reference"
74
+ candidate = save_crop_as_reference(@cropped_element)
75
+ raise "The design reference #{@expected} does not exist, #{candidate} is now available to be used as a reference. Copy candidate to root reference_image_path to use as reference"
58
76
  end
59
77
  end
60
78
  end
@@ -66,11 +84,14 @@ module Gatling
66
84
  attr_accessor 'reference_image_path'
67
85
 
68
86
  def reference_image_path
87
+ #if defined?(Rails) or @reference_image_path.nil?
88
+ # @reference_image_path ||= File.join(Rails.root, 'spec/reference_images')
89
+ #end
69
90
  begin
70
- @reference_image_path ||= File.join(Rails.root, 'spec/reference_images')
71
- rescue NameError
72
- puts "Not using Rails? Please set the reference_image_path"
73
- end
91
+ @reference_image_path ||= File.join(Rails.root, 'spec/reference_images')
92
+ rescue
93
+ raise "Not using Rails? Please set the reference_image_path"
94
+ end
74
95
  end
75
96
 
76
97
  end
@@ -1,3 +1,3 @@
1
1
  module Gatling
2
- VERSION = "0.9.9"
2
+ VERSION = "1.0.0"
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'capybara'
2
2
  require 'capybara/dsl'
3
3
  require 'gatling'
4
- require 'matchers/look_like_matcher.rb'
4
+ require 'matchers/look_like_matcher'
5
5
 
6
6
  Capybara.default_driver = :selenium
7
7
  Capybara.app_host = 'http://www.google.com'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gatling
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.9
4
+ version: 1.0.0
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: 2011-12-06 00:00:00.000000000Z
12
+ date: 2011-12-07 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rmagick
16
- requirement: &70344792244780 !ruby/object:Gem::Requirement
16
+ requirement: &70169406514200 !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: :runtime
23
23
  prerelease: false
24
- version_requirements: *70344792244780
24
+ version_requirements: *70169406514200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec-core
27
- requirement: &70344792244340 !ruby/object:Gem::Requirement
27
+ requirement: &70169406513780 !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: :runtime
34
34
  prerelease: false
35
- version_requirements: *70344792244340
35
+ version_requirements: *70169406513780
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70344792243880 !ruby/object:Gem::Requirement
38
+ requirement: &70169406513260 !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: :runtime
45
45
  prerelease: false
46
- version_requirements: *70344792243880
46
+ version_requirements: *70169406513260
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: capybara
49
- requirement: &70344792243340 !ruby/object:Gem::Requirement
49
+ requirement: &70169406512760 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70344792243340
57
+ version_requirements: *70169406512760
58
58
  description: Add visual comparison matchers for rspec
59
59
  email:
60
60
  - grotbart@gmail.com