watirsplash 2.4.2 → 2.4.3

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/Gemfile CHANGED
@@ -1,18 +1,22 @@
1
- source :rubygems
2
-
1
+ source :rubygems
3
2
  # load WatirSplash and it's dependencies
4
3
  gemspec
5
4
 
6
5
  platforms :mingw, :mswin do
7
- gem "watir", WatirSplash::Version::WATIR
8
- gem "win32screenshot", WatirSplash::Version::WIN32SCREENSHOT, :require => "win32/screenshot"
6
+ gem "watir", WatirSplash::Version::WATIR
7
+ gem "win32screenshot", WatirSplash::Version::WIN32SCREENSHOT
9
8
  end
10
9
 
11
10
  gem "watir-webdriver", WatirSplash::Version::WATIR_WEBDRIVER
12
- gem "firewatir", ">= 1.9.4"
13
- gem "rspec", "~>2.6.0"
14
- gem "spork", "~>0.9.0.rc9"
15
- gem "spork-local_process"
11
+ gem "rspec", "~>2.9.0"
12
+ gem "spork", "~>0.9.0"
13
+ gem "spork-local_process", "~> 0.0.7"
16
14
 
17
15
  # add your project specific dependencies here:
18
- # gem "ruby-debug", "0.10.3"
16
+ platforms :mri_18, :ruby_18, :mingw_18 do
17
+ # gem "ruby-debug", "0.10.3"
18
+ end
19
+
20
+ platforms :mri_19, :ruby_19, :mingw_19 do
21
+ # gem "ruby-debug19"
22
+ end
data/Gemfile.lock CHANGED
@@ -1,93 +1,94 @@
1
- PATH
2
- remote: .
3
- specs:
4
- watirsplash (2.4.2)
5
- bundler (~> 1.0)
6
- rake (= 0.8.7)
7
- require_all
8
- syntax
9
- thor (~> 0)
10
-
11
- GEM
12
- remote: http://rubygems.org/
13
- specs:
14
- builder (3.0.0)
15
- childprocess (0.2.2)
16
- ffi (~> 1.0.6)
17
- commonwatir (2.0.2)
18
- user-choices
19
- diff-lcs (1.1.3)
20
- ffi (1.0.9-x86-mingw32)
21
- firewatir (1.9.4)
22
- commonwatir (>= 1.9.2)
23
- hoe (2.12.3)
24
- rake (~> 0.8)
25
- json_pure (1.6.1)
26
- mini_magick (3.2.1)
27
- subexec (~> 0.0.4)
28
- nokogiri (1.5.0-x86-mingw32)
29
- rake (0.8.7)
30
- rautomation (0.6.3)
31
- require_all (1.2.0)
32
- rspec (2.6.0)
33
- rspec-core (~> 2.6.0)
34
- rspec-expectations (~> 2.6.0)
35
- rspec-mocks (~> 2.6.0)
36
- rspec-core (2.6.4)
37
- rspec-expectations (2.6.0)
38
- diff-lcs (~> 1.1.2)
39
- rspec-mocks (2.6.0)
40
- rubyzip (0.9.4)
41
- s4t-utils (1.0.4)
42
- hoe (>= 1.3.0)
43
- selenium-webdriver (2.8.0)
44
- childprocess (>= 0.2.1)
45
- ffi (>= 1.0.7)
46
- json_pure
47
- rubyzip
48
- spork (0.9.0.rc9-x86-mingw32)
49
- win32-process
50
- spork-local_process (0.0.6)
51
- spork (~> 0.9.0.rc9)
52
- subexec (0.0.4)
53
- syntax (1.0.0)
54
- thor (0.14.6)
55
- user-choices (1.1.6.1)
56
- builder (>= 2.1.2)
57
- s4t-utils (>= 1.0.3)
58
- xml-simple (>= 1.0.11)
59
- watir (2.0.2)
60
- commonwatir (= 2.0.2)
61
- ffi (~> 1.0)
62
- nokogiri
63
- rautomation (~> 0.6.3)
64
- win32-process (>= 0.5.5)
65
- windows-pr (>= 0.6.6)
66
- watir-webdriver (0.3.5)
67
- selenium-webdriver (>= 0.2.2)
68
- win32-api (1.4.8-x86-mingw32)
69
- win32-process (0.6.5)
70
- windows-pr (>= 1.1.2)
71
- win32screenshot (1.0.5)
72
- ffi (~> 1.0)
73
- mini_magick (~> 3.2.0)
74
- rautomation (~> 0.6.3)
75
- windows-api (0.4.0)
76
- win32-api (>= 1.4.5)
77
- windows-pr (1.2.1)
78
- win32-api (>= 1.4.5)
79
- windows-api (>= 0.3.0)
80
- xml-simple (1.1.0)
81
-
82
- PLATFORMS
83
- x86-mingw32
84
-
85
- DEPENDENCIES
86
- firewatir (>= 1.9.4)
87
- rspec (~> 2.6.0)
88
- spork (~> 0.9.0.rc9)
89
- spork-local_process
90
- watir (= 2.0.2)
91
- watir-webdriver (~> 0.3.5)
92
- watirsplash!
93
- win32screenshot (~> 1.0.5)
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ watirsplash (2.4.3)
5
+ require_all
6
+ syntax
7
+ thor (~> 0)
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ addressable (2.2.7)
13
+ builder (3.0.0)
14
+ childprocess (0.3.2)
15
+ ffi (~> 1.0.6)
16
+ commonwatir (3.0.0)
17
+ diff-lcs (1.1.3)
18
+ ffi (1.0.11)
19
+ hoe (3.0.3)
20
+ rake (~> 0.8)
21
+ libwebsocket (0.1.3)
22
+ addressable
23
+ mini_magick (3.2.1)
24
+ subexec (~> 0.0.4)
25
+ multi_json (1.3.2)
26
+ nokogiri (1.5.2-x86-mingw32)
27
+ rake (0.9.2.2)
28
+ rautomation (0.7.2)
29
+ require_all (1.2.1)
30
+ rspec (2.9.0)
31
+ rspec-core (~> 2.9.0)
32
+ rspec-expectations (~> 2.9.0)
33
+ rspec-mocks (~> 2.9.0)
34
+ rspec-core (2.9.0)
35
+ rspec-expectations (2.9.0)
36
+ diff-lcs (~> 1.1.3)
37
+ rspec-mocks (2.9.0)
38
+ rubyzip (0.9.7)
39
+ s4t-utils (1.0.4)
40
+ hoe (>= 1.3.0)
41
+ selenium-webdriver (2.21.2)
42
+ childprocess (>= 0.2.5)
43
+ ffi (~> 1.0)
44
+ libwebsocket (~> 0.1.3)
45
+ multi_json (~> 1.0)
46
+ rubyzip
47
+ spork (0.9.0-x86-mingw32)
48
+ win32-process
49
+ spork-local_process (0.0.7)
50
+ spork (~> 0.9.0)
51
+ subexec (0.0.4)
52
+ syntax (1.0.0)
53
+ thor (0.14.6)
54
+ user-choices (1.1.6.1)
55
+ builder (>= 2.1.2)
56
+ s4t-utils (>= 1.0.3)
57
+ xml-simple (>= 1.0.11)
58
+ watir (3.0.0)
59
+ commonwatir (= 3.0.0)
60
+ watir-classic (~> 3)
61
+ watir-classic (3.0.0)
62
+ ffi (~> 1.0)
63
+ nokogiri
64
+ rautomation (~> 0.7.2)
65
+ user-choices
66
+ win32-process (>= 0.5.5)
67
+ windows-pr (>= 0.6.6)
68
+ watir-webdriver (0.5.5)
69
+ selenium-webdriver (>= 2.18.0)
70
+ win32-api (1.4.8-x86-mingw32)
71
+ win32-process (0.6.5)
72
+ windows-pr (>= 1.1.2)
73
+ win32screenshot (1.0.7)
74
+ ffi (~> 1.0)
75
+ mini_magick (~> 3.2.1)
76
+ rautomation (~> 0.7.0)
77
+ windows-api (0.4.1)
78
+ win32-api (>= 1.4.5)
79
+ windows-pr (1.2.1)
80
+ win32-api (>= 1.4.5)
81
+ windows-api (>= 0.3.0)
82
+ xml-simple (1.1.1)
83
+
84
+ PLATFORMS
85
+ x86-mingw32
86
+
87
+ DEPENDENCIES
88
+ rspec (~> 2.9.0)
89
+ spork (~> 0.9.0)
90
+ spork-local_process (~> 0.0.7)
91
+ watir (~> 3.0.0)
92
+ watir-webdriver (~> 0.5.5)
93
+ watirsplash!
94
+ win32screenshot (~> 1.0.7)
data/History.rdoc CHANGED
@@ -1,3 +1,12 @@
1
+ === 2.4.3 / 2012-04-23
2
+
3
+ * Add support for Watir 3
4
+ * Add support for file downloads in IE9 with Watir 3
5
+ * Add support for RSpec 2.9
6
+ * Remove rake and bundler as gem dependencies
7
+ * Remove Firewatir support
8
+ * Remove RSpec #match_array matcher
9
+
1
10
  === 2.4.2 / 2011-10-17
2
11
 
3
12
  * Fix Page::Base.url to use instance variable instead of class variable
data/License.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2010-2011 Jarmo Pertman
3
+ Copyright (c) 2010-2012 Jarmo Pertman
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person
6
6
  obtaining a copy of this software and associated documentation
data/README.rdoc CHANGED
@@ -3,7 +3,7 @@
3
3
  * Web: http://github.com/jarmo/WatirSplash
4
4
  * Author: Jarmo Pertman (mailto:jarmo.p[at]gmail.com)
5
5
 
6
- == DESCRIPTION
6
+ {<img alt="Click here to lend your support to: WatirSplash and make a donation at www.pledgie.com !" src="https://www.pledgie.com/campaigns/16193.png?skin_name=chrome" />}[https://www.pledgie.com/campaigns/16193]
7
7
 
8
8
  WatirSplash makes browser-based web page testing in Ruby splashin' easy.
9
9
  It combines Watir, FireWatir or Watir-WebDriver for controlling the browser,
@@ -17,7 +17,7 @@ testing right away!
17
17
 
18
18
  == GETTING STARTED
19
19
 
20
- 1) Install Ruby (version 1.8.7 is recommended)
20
+ 1) Install Ruby (version 1.9.3 is recommended)
21
21
 
22
22
  2) Install WatirSplash
23
23
  C:\my_project>gem install watirsplash
@@ -119,13 +119,12 @@ testing right away!
119
119
  == SUPPORTED PLATFORMS & BROWSERS
120
120
 
121
121
  WatirSplash supports different frameworks/browsers on different operating systems:
122
- * Linux & OS X - watir-webdriver/firefox, watir-webdriver/chrome and firewatir
123
- * Windows - watir, watir-webdriver/firefox, watir-webdriver/chrome, watir-webdriver/ie and firewatir
122
+ * Linux & OS X - watir-webdriver/firefox and watir-webdriver/chrome
123
+ * Windows - watir, watir-webdriver/firefox, watir-webdriver/chrome and watir-webdriver/ie
124
124
 
125
125
  Each framework drives a specific browser:
126
126
  * Watir - IE
127
127
  * Watir-WebDriver - Chrome, IE and Firefox
128
- * FireWatir - Firefox
129
128
 
130
129
  It is possible to specify what framework to use in spec_helper.rb file:
131
130
  WatirSplash::Util.framework = "watir-webdriver/firefox"
@@ -143,4 +142,4 @@ You can read more information about the usage and features from the wiki at http
143
142
 
144
143
  == COPYRIGHT
145
144
 
146
- Copyright © 2010-2011 Jarmo Pertman. See LICENSE for details.
145
+ Copyright © Jarmo Pertman. See LICENSE for details.
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ end
11
11
 
12
12
  task :default => :spec
13
13
 
14
- require 'rake/rdoctask'
14
+ require 'rdoc/task'
15
15
  Rake::RDocTask.new do |rdoc|
16
16
  rdoc.rdoc_dir = 'rdoc'
17
17
  rdoc.title = "WatirSplash #{WatirSplash::Version::WATIRSPLASH}"
@@ -4,12 +4,13 @@ module WatirSplash
4
4
  class Browser
5
5
  # raises an error if any JavaScript errors were found
6
6
  JAVASCRIPT_ERRORS_CHECKER = lambda do |browser|
7
- error_message = browser.execute_script "#{browser.respond_to?(:driver) ? "return ": nil}window.__browserErrorMessage"
7
+ error_message = browser.execute_script %q[
8
+ var msg = window.__browserErrorMessage;
9
+ window.__browserErrorMessage = undefined;
10
+ return msg;
11
+ ]
8
12
 
9
- if error_message && !error_message.empty? && error_message != "undefined"
10
- browser.execute_script "window.__browserErrorMessage = undefined"
11
- raise JavaScriptError, "JavaScript error: #{error_message}"
12
- end
13
+ raise JavaScriptError, "JavaScript error: #{error_message}" if error_message
13
14
 
14
15
  browser.execute_script %q[
15
16
  if (!window.onErrorFn) {
@@ -1,6 +1,6 @@
1
- WatirSplash::Frameworks::Helper.load_gems "watir", "win32/screenshot"
1
+ WatirSplash::Frameworks::Helper.load_gems "watir-classic", "win32/screenshot"
2
2
  require "watirsplash/mini_magick_patch"
3
- require "watir/ie"
3
+ require "watir-classic/ie"
4
4
 
5
5
  # patches for Watir
6
6
  module Watir
@@ -24,7 +24,7 @@ module Watir
24
24
  # saves a file with the browser
25
25
  #
26
26
  # clicking the button opens a browser's save as dialog and saves the file document.pdf
27
- # button(:id => "something").download("c:/document.pdf") # => c:/document.pdf
27
+ # button(:id => "something").save_as("c:/document.pdf") # => c:/document.pdf
28
28
  #
29
29
  # * raises an exception if saving the file is unsuccessful
30
30
  # * returns saved file path
@@ -32,9 +32,16 @@ module Watir
32
32
  path = Pathname.new(file_path)
33
33
  raise "path to #{file_path} has to be absolute!" unless path.absolute?
34
34
  self.click_no_wait
35
- RAutomation::Window.new(:title => "File Download").button(:value => "&Save").click
36
35
 
37
- save_as_window = RAutomation::Window.new(:title => "Save As")
36
+ browser_window = page_container.rautomation
37
+
38
+ if page_container.class.version.to_i >= 9
39
+ browser_window.child(:title => "Windows Internet Explorer").button(:value => "Save &as").click
40
+ else
41
+ browser_window.child(:title => "File Download").button(:value => "&Save").click
42
+ end
43
+
44
+ save_as_window = browser_window.child(:title => "Save As")
38
45
  save_as_window.text_field(:class => "Edit", :index => 0).set(WatirSplash::Util.file_native_path(file_path))
39
46
  save_as_window.button(:value => "&Save").click
40
47
 
@@ -43,15 +50,4 @@ module Watir
43
50
  end
44
51
  end
45
52
 
46
- class FileField < InputElement
47
- def set(file_path)
48
- raise "#{file_path} has to exist to set!" unless File.exists?(file_path)
49
- assert_exists
50
- self.click_no_wait
51
- window = RAutomation::Window.new(:title => /choose file( to upload)?/i)
52
- window.text_field(:class => "Edit", :index => 0).set(WatirSplash::Util.file_native_path(file_path))
53
- window.button(:value => "&Open").click
54
- end
55
- end
56
-
57
53
  end
@@ -2,7 +2,7 @@ module WatirSplash
2
2
  module Generators
3
3
  module Helper
4
4
  def supported_frameworks
5
- %w[default watir firewatir watir-webdriver/ie watir-webdriver/firefox watir-webdriver/chrome]
5
+ %w[default watir watir-webdriver/ie watir-webdriver/firefox watir-webdriver/chrome]
6
6
  end
7
7
 
8
8
  def frameworks_banner
@@ -4,16 +4,13 @@ module WatirSplash
4
4
  include SpecHelper
5
5
 
6
6
  class << self
7
- @url = "about:blank"
8
-
9
7
  def url url
10
8
  @url = url
11
9
  end
12
10
 
13
11
  def _url
14
- @url
12
+ @url || "about:blank"
15
13
  end
16
-
17
14
  end
18
15
 
19
16
  def initialize(browser=nil)
@@ -1,179 +1,132 @@
1
- require 'rspec/core/formatters/html_formatter'
2
- require 'rspec/core/formatters/snippet_extractor'
3
-
4
- # patch for https://github.com/rspec/rspec-core/issues/#issue/214
5
- module RSpec
6
- module Core
7
- module Formatters
8
- class HtmlFormatter < BaseTextFormatter
9
- def extra_failure_content(exception)
10
- require 'rspec/core/formatters/snippet_extractor'
11
- backtrace = exception.backtrace.map {|line| backtrace_line(line)}
12
- backtrace.compact!
13
- @snippet_extractor ||= SnippetExtractor.new
14
- " <pre class=\"ruby\"><code>#{@snippet_extractor.snippet(backtrace)}</code></pre>"
15
- end
16
- end
17
-
18
- class SnippetExtractor
19
- def snippet(backtrace)
20
- raw_code, line = snippet_for(backtrace[0])
21
- highlighted = @@converter.convert(raw_code, false)
22
- highlighted << "\n<span class=\"comment\"># gem install syntax to get syntax highlighting</span>" if @@converter.is_a?(NullConverter)
23
- post_process(highlighted, line)
24
- end
25
- end
26
- end
27
- end
28
- end
29
-
30
- RSpec.configure do |config| #:nodoc:
31
- config.include(WatirSplash::SpecHelper)
32
- end
33
-
34
- module RSpec #:nodoc:all
35
- module Core
36
- class ExampleGroup
37
- subject {self}
38
- end
39
- end
40
- end
41
-
42
- # match_array is useful for matching arrays where some elements are regular expressions.
43
- # expected_array = ["1", "2", /\d+/, "3"]
44
- #
45
- # ["1", "2", "66", "3"].should match_array(expected_array)
46
- # table(:id => "table_id").to_a.should match_array(expected_array)
47
- RSpec::Matchers.define :match_array do |array2|
48
- match do |array1|
49
- raise "match_array works only with Array objects!" unless array1.is_a?(Array) && array2.is_a?(Array)
50
- match?(array1, array2)
51
- end
52
-
53
- def match?(array1, array2)
54
- array2.each_with_index do |element, i|
55
- if element.is_a?(Array)
56
- return false unless match?(array1[i], element)
57
- elsif element.is_a?(Regexp)
58
- return false unless array1[i] =~ element
59
- else
60
- return false unless array1[i] == element
61
- end
62
- end
63
-
64
- true
65
- end
66
- end
67
-
68
- # patch for #in(timeout) method
69
- module RSpec::Matchers
70
- class Change
71
- def matches?(event_proc)
72
- raise_block_syntax_error if block_given?
73
-
74
- # to make #change work with #in(timeout) method
75
- unless defined? @actual_before
76
- @actual_before = evaluate_value_proc
77
- event_proc.call
78
- end
79
- @actual_after = evaluate_value_proc
80
-
81
- (!change_expected? || changed?) && matches_before? && matches_after? && matches_expected_delta? && matches_min? && matches_max?
82
- end
83
- end
84
-
85
- alias_method :make, :change
86
- end
87
-
88
- # add #in(timeout) method for every matcher for allowing to wait until some condition.
1
+ # add #within(timeout) and #during(timeout) methods for every matcher for allowing to wait until some condition.
89
2
  # div.click
90
- # another_div.should be_present.in(5)
3
+ # another_div.should be_present.within(5)
91
4
  #
92
5
  # expect {
93
6
  # div.click
94
- # }.to change {another_div.text}.from("before").to("after").in(5)
7
+ # }.to change {another_div.text}.from("before").to("after").within(5)
95
8
  #
96
9
  # expect {
97
10
  # div.click
98
- # }.to make {another_div.present?}.in(5)
11
+ # }.to make {another_div.present?}.within(5)
99
12
  #
100
13
  # expect {
101
14
  # div.click
102
15
  # }.to change {another_div.text}.soon
103
16
  #
104
- # use with ActiveSupport to use descriptive methods for numbers:
105
- # require "active_support"
106
- # another_div.should exist.in(5.minutes)
107
- RSpec::Matchers.constants.each do |const|
108
- RSpec::Matchers.const_get(const).class_eval do
109
17
 
110
- inst_methods = instance_methods.map {|m| m.to_sym}
18
+ module WatirSplash
19
+ module RSpecPatches
111
20
 
112
- if !(inst_methods.include?(:__matches?) || inst_methods.include?(:__does_not_match?)) &&
113
- (inst_methods.include?(:matches?) || inst_methods.include?(:does_not_match?))
21
+ ::RSpec.configure do |config| #:nodoc:
22
+ config.include(WatirSplash::SpecHelper)
23
+ end
114
24
 
115
- def within(timeout)
116
- @within_timeout = timeout
117
- self
118
- end
25
+ class ::RSpec::Core::ExampleGroup
26
+ subject {self}
27
+ end
119
28
 
120
- def during(timeout)
121
- @during_timeout = timeout
122
- self
123
- end
29
+ def self.bootstrap const
30
+ const.class_eval do
124
31
 
125
- def soon
126
- within(30)
127
- end
32
+ inst_methods = instance_methods.map &:to_sym
128
33
 
129
- def seconds
130
- # for syntactic sugar
131
- self
132
- end
34
+ if !(inst_methods.include?(:__matches?) || inst_methods.include?(:__does_not_match?)) &&
35
+ (inst_methods.include?(:matches?) || inst_methods.include?(:does_not_match?))
133
36
 
134
- alias_method :second, :seconds
37
+ def within(timeout)
38
+ @within_timeout = timeout
39
+ self
40
+ end
135
41
 
136
- def minutes
137
- @within_timeout *= 60 if @within_timeout
138
- @during_timeout *= 60 if @during_timeout
139
- self
140
- end
42
+ def during(timeout)
43
+ @during_timeout = timeout
44
+ self
45
+ end
141
46
 
142
- alias_method :minute, :minutes
143
- end
47
+ def soon
48
+ within(30)
49
+ end
50
+
51
+ def seconds
52
+ # for syntactic sugar
53
+ self
54
+ end
144
55
 
145
- if inst_methods.include? :matches?
146
- alias_method :__matches?, :matches?
56
+ alias_method :second, :seconds
57
+
58
+ def minutes
59
+ @within_timeout *= 60 if @within_timeout
60
+ @during_timeout *= 60 if @during_timeout
61
+ self
62
+ end
63
+
64
+ alias_method :minute, :minutes
65
+ end
147
66
 
148
- def matches?(actual)
149
- match_with_wait {__matches?(actual)}
67
+ if inst_methods.include? :matches?
68
+ alias_method :__matches?, :matches?
69
+
70
+ def matches?(actual)
71
+ match_with_wait {__matches?(actual)}
72
+ end
73
+ end
74
+
75
+ if inst_methods.include? :does_not_match?
76
+ alias_method :__does_not_match?, :does_not_match?
77
+
78
+ def does_not_match?(actual)
79
+ match_with_wait {__does_not_match?(actual)}
80
+ end
81
+ elsif inst_methods.include? :matches?
82
+ def does_not_match?(actual)
83
+ match_with_wait {!__matches?(actual)}
84
+ end
85
+ end
86
+
87
+ private
88
+
89
+ def match_with_wait
90
+ if @within_timeout
91
+ timeout = @within_timeout; @within_timeout = nil
92
+ Watir::Wait.until(timeout) {yield} rescue false
93
+ elsif @during_timeout
94
+ timeout = @during_timeout; @during_timeout = nil
95
+ Watir::Wait.while(timeout) {yield} rescue true
96
+ else
97
+ yield
98
+ end
99
+ end
150
100
  end
151
101
  end
152
102
 
153
- if inst_methods.include? :does_not_match?
154
- alias_method :__does_not_match?, :does_not_match?
103
+ # patch for #within(timeout) method
104
+ module ::RSpec::Matchers
105
+ class BuiltIn::Change
106
+ def matches?(event_proc)
107
+ raise_block_syntax_error if block_given?
155
108
 
156
- def does_not_match?(actual)
157
- match_with_wait {__does_not_match?(actual)}
158
- end
159
- elsif inst_methods.include? :matches?
160
- def does_not_match?(actual)
161
- match_with_wait {!__matches?(actual)}
109
+ # to make #change work with #in(timeout) method
110
+ unless defined? @actual_before
111
+ @actual_before = evaluate_value_proc
112
+ event_proc.call
113
+ end
114
+ @actual_after = evaluate_value_proc
115
+
116
+ (!change_expected? || changed?) && matches_before? && matches_after? && matches_expected_delta? && matches_min? && matches_max?
117
+ end
162
118
  end
119
+
120
+ alias_method :make, :change
163
121
  end
164
122
 
165
- private
166
-
167
- def match_with_wait
168
- if @within_timeout
169
- timeout = @within_timeout; @within_timeout = nil
170
- Watir::Wait.until(timeout) {yield} rescue false
171
- elsif @during_timeout
172
- timeout = @during_timeout; @during_timeout = nil
173
- Watir::Wait.while(timeout) {yield} rescue true
174
- else
175
- yield
176
- end
123
+ matchers = ::RSpec::Matchers::BuiltIn.constants
124
+ matchers.delete :BaseMatcher
125
+ matchers.each do |const|
126
+ bootstrap ::RSpec::Matchers::BuiltIn.const_get const
177
127
  end
128
+
129
+ bootstrap ::RSpec::Matchers::DSL::Matcher
178
130
  end
179
131
  end
132
+
@@ -1,10 +1,10 @@
1
1
  module WatirSplash
2
2
  module Version
3
- WATIRSPLASH = "2.4.2"
3
+ WATIRSPLASH = "2.4.3"
4
4
 
5
5
  # possible runtime dependencies
6
- WATIR = "2.0.2"
7
- WIN32SCREENSHOT = "~>1.0.5"
8
- WATIR_WEBDRIVER = "~>0.3.5"
6
+ WATIR = "~>3.0.0"
7
+ WIN32SCREENSHOT = "~>1.0.7"
8
+ WATIR_WEBDRIVER = "~>0.5.5"
9
9
  end
10
10
  end
data/spec/browser_spec.rb CHANGED
@@ -19,12 +19,12 @@ describe WatirSplash::Browser do
19
19
  it "detects JavaScript errors" do
20
20
  browser = WatirSplash::Browser.new
21
21
  browser.goto "http://dl.dropbox.com/u/2731643/WatirSplash/test.html"
22
- browser.execute_script("window.originalOnErrorExecuted").should_not be_true
22
+ browser.execute_script("return window.originalOnErrorExecuted").should be_nil
23
23
 
24
24
  expect {
25
25
  browser.link(:id => "errorLink").click
26
26
  }.to raise_error(WatirSplash::JavaScriptError, /JavaScript error:.*unexistingVar/)
27
- browser.execute_script("window.originalOnErrorExecuted").should be_true
27
+ browser.execute_script("return window.originalOnErrorExecuted").should be_true
28
28
 
29
29
  expect {
30
30
  browser.link(:id => "toggle").click
@@ -5,23 +5,6 @@ describe "RSpec patches" do
5
5
  end
6
6
 
7
7
  context "RSpec::Matchers" do
8
- context "Array#match_array" do
9
- it "matches other arrays with regexps" do
10
- expected_ary = ["1", "2", "3", /\d/]
11
- ["1", "2", "3", "5"].should match_array(expected_ary)
12
-
13
- expected_ary = ["1", ["2", /\d+/], /3/]
14
- ["1", [], "4"].should_not match_array(expected_ary)
15
- ["1", ["2", "55"], "3"].should match_array(expected_ary)
16
- end
17
-
18
- it "doesn't work with other objects except Array" do
19
- lambda {"".should match_array("")}.should raise_exception
20
- lambda {[].should match_array("")}.should raise_exception
21
- lambda {"".should match_array([])}.should raise_exception
22
- end
23
- end
24
-
25
8
  context "#within" do
26
9
  it "can be used with #change" do
27
10
  div(:id => "div2").text.should == "Div is shown"
@@ -172,7 +155,7 @@ describe "RSpec patches" do
172
155
 
173
156
  context "#soon" do
174
157
  it "is an alias for #within(30)" do
175
- RSpec::Matchers::Matcher.new(nil) {}.soon.instance_variable_get(:@within_timeout).should == 30
158
+ RSpec::Matchers::DSL::Matcher.new(nil) {}.soon.instance_variable_get(:@within_timeout).should == 30
176
159
  end
177
160
  end
178
161
 
@@ -186,25 +169,25 @@ describe "RSpec patches" do
186
169
 
187
170
  context "#seconds" do
188
171
  it "is for syntactic sugar" do
189
- RSpec::Matchers::Matcher.new(nil) {}.within(2).seconds.instance_variable_get(:@within_timeout).should == 2
190
- RSpec::Matchers::Matcher.new(nil) {}.during(3).seconds.instance_variable_get(:@during_timeout).should == 3
172
+ RSpec::Matchers::DSL::Matcher.new(nil) {}.within(2).seconds.instance_variable_get(:@within_timeout).should == 2
173
+ RSpec::Matchers::DSL::Matcher.new(nil) {}.during(3).seconds.instance_variable_get(:@during_timeout).should == 3
191
174
  end
192
175
 
193
176
  it "has #second as an alias" do
194
- RSpec::Matchers::Matcher.new(nil) {}.within(1).second.instance_variable_get(:@within_timeout).should == 1
195
- RSpec::Matchers::Matcher.new(nil) {}.during(2).second.instance_variable_get(:@during_timeout).should == 2
177
+ RSpec::Matchers::DSL::Matcher.new(nil) {}.within(1).second.instance_variable_get(:@within_timeout).should == 1
178
+ RSpec::Matchers::DSL::Matcher.new(nil) {}.during(2).second.instance_variable_get(:@during_timeout).should == 2
196
179
  end
197
180
  end
198
181
 
199
182
  context "#minutes" do
200
183
  it "converts timeout into minutes" do
201
- RSpec::Matchers::Matcher.new(nil) {}.within(2).minutes.instance_variable_get(:@within_timeout).should == 2*60
202
- RSpec::Matchers::Matcher.new(nil) {}.during(3).minutes.instance_variable_get(:@during_timeout).should == 3*60
184
+ RSpec::Matchers::DSL::Matcher.new(nil) {}.within(2).minutes.instance_variable_get(:@within_timeout).should == 2*60
185
+ RSpec::Matchers::DSL::Matcher.new(nil) {}.during(3).minutes.instance_variable_get(:@during_timeout).should == 3*60
203
186
  end
204
187
 
205
188
  it "has #minute as an alias" do
206
- RSpec::Matchers::Matcher.new(nil) {}.within(1).minute.instance_variable_get(:@within_timeout).should == 1*60
207
- RSpec::Matchers::Matcher.new(nil) {}.during(2).minute.instance_variable_get(:@during_timeout).should == 2*60
189
+ RSpec::Matchers::DSL::Matcher.new(nil) {}.within(1).minute.instance_variable_get(:@within_timeout).should == 1*60
190
+ RSpec::Matchers::DSL::Matcher.new(nil) {}.during(2).minute.instance_variable_get(:@during_timeout).should == 2*60
208
191
  end
209
192
  end
210
193
 
data/watirsplash.gemspec CHANGED
@@ -16,8 +16,6 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = ["lib"]
18
18
 
19
- s.add_dependency("rake", "0.8.7")
20
- s.add_dependency("bundler", "~>1.0")
21
19
  s.add_dependency("thor", "~>0")
22
20
  s.add_dependency("require_all")
23
21
  s.add_dependency("syntax")
metadata CHANGED
@@ -1,104 +1,72 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: watirsplash
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.4.3
5
5
  prerelease:
6
- segments:
7
- - 2
8
- - 4
9
- - 2
10
- version: 2.4.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jarmo Pertman
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-17 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rake
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - "="
27
- - !ruby/object:Gem::Version
28
- hash: 49
29
- segments:
30
- - 0
31
- - 8
32
- - 7
33
- version: 0.8.7
34
- type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: bundler
38
- prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
12
+ date: 2012-04-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: thor
16
+ requirement: !ruby/object:Gem::Requirement
40
17
  none: false
41
- requirements:
18
+ requirements:
42
19
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 15
45
- segments:
46
- - 1
47
- - 0
48
- version: "1.0"
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
49
22
  type: :runtime
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: thor
53
23
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
55
25
  none: false
56
- requirements:
26
+ requirements:
57
27
  - - ~>
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
63
- type: :runtime
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
66
31
  name: require_all
67
- prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
69
33
  none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
77
38
  type: :runtime
78
- version_requirements: *id004
79
- - !ruby/object:Gem::Dependency
80
- name: syntax
81
39
  prerelease: false
82
- requirement: &id005 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: syntax
48
+ requirement: !ruby/object:Gem::Requirement
83
49
  none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
91
54
  type: :runtime
92
- version_requirements: *id005
93
- description: WatirSplash makes testing of web applications splashin' easy by combining best features of Watir, RSpec and Ruby!
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: WatirSplash makes testing of web applications splashin' easy by combining
63
+ best features of Watir, RSpec and Ruby!
94
64
  email: jarmo.p@gmail.com
95
- executables:
65
+ executables:
96
66
  - watirsplash
97
67
  extensions: []
98
-
99
68
  extra_rdoc_files: []
100
-
101
- files:
69
+ files:
102
70
  - .gitignore
103
71
  - .rspec
104
72
  - Gemfile
@@ -111,7 +79,6 @@ files:
111
79
  - lib/watirsplash.rb
112
80
  - lib/watirsplash/browser.rb
113
81
  - lib/watirsplash/cli.rb
114
- - lib/watirsplash/frameworks/firewatir.rb
115
82
  - lib/watirsplash/frameworks/helper.rb
116
83
  - lib/watirsplash/frameworks/watir-webdriver.rb
117
84
  - lib/watirsplash/frameworks/watir-webdriver/chrome.rb
@@ -143,38 +110,29 @@ files:
143
110
  - watirsplash.gemspec
144
111
  homepage: http://github.com/jarmo/WatirSplash
145
112
  licenses: []
146
-
147
113
  post_install_message:
148
114
  rdoc_options: []
149
-
150
- require_paths:
115
+ require_paths:
151
116
  - lib
152
- required_ruby_version: !ruby/object:Gem::Requirement
117
+ required_ruby_version: !ruby/object:Gem::Requirement
153
118
  none: false
154
- requirements:
155
- - - ">="
156
- - !ruby/object:Gem::Version
157
- hash: 3
158
- segments:
159
- - 0
160
- version: "0"
161
- required_rubygems_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ required_rubygems_version: !ruby/object:Gem::Requirement
162
124
  none: false
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- hash: 3
167
- segments:
168
- - 0
169
- version: "0"
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
170
129
  requirements: []
171
-
172
130
  rubyforge_project:
173
- rubygems_version: 1.8.4
131
+ rubygems_version: 1.8.21
174
132
  signing_key:
175
133
  specification_version: 3
176
- summary: watirsplash 2.4.2
177
- test_files:
134
+ summary: watirsplash 2.4.3
135
+ test_files:
178
136
  - spec/browser_spec.rb
179
137
  - spec/page_spec.rb
180
138
  - spec/rspec_patches_spec.rb
@@ -1,9 +0,0 @@
1
- WatirSplash::Frameworks::Helper.load_gem "firewatir"
2
-
3
- module FireWatir #:nodoc:all
4
- class Firefox
5
- def save_screenshot(params)
6
- # currently not yet supported
7
- end
8
- end
9
- end