watirsplash 0.2.8 → 0.2.9

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.
@@ -1,3 +1,9 @@
1
+ === Version 0.2.9 / 2010-10-14
2
+
3
+ * AutoItHelper is no more! Using RAutomation gem instead
4
+ * JavaScript error messages are not screenshotted anymore due to it's complexity and vagueness of the messages themselves
5
+ * deleted #wait_until? and #wait_while? methods
6
+
1
7
  === Version 0.2.8 / 2010-10-06
2
8
 
3
9
  * use Watir 1.6.6 and RSpec 1.3.0 from now on
data/Rakefile CHANGED
@@ -30,6 +30,7 @@ Execute "watirsplash generate" under your project's directory to generate defaul
30
30
  gem.add_dependency("watir", "=1.6.5")
31
31
  gem.add_dependency("rspec", "=1.3.0")
32
32
  gem.add_dependency("diff-lcs")
33
+ gem.add_dependency("rautomation")
33
34
  gem.add_dependency("require_all")
34
35
  gem.add_dependency("rmagick")
35
36
  gem.add_dependency("syntax")
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.8
1
+ 0.2.9
@@ -5,13 +5,13 @@ require "spec"
5
5
  gem "watir", "=1.6.6"
6
6
  require "watir"
7
7
  require "pathname"
8
+ require "rautomation"
8
9
  require_rel "watirsplash/wait_helper"
9
10
  require_rel "watirsplash/element_extensions"
10
11
  require_rel "watirsplash/file_helper"
11
12
  require_rel "watirsplash/spec_helper"
12
13
  require_rel "watirsplash/spec"
13
14
  require_rel "watirsplash/watir"
14
- require_rel "watirsplash/auto_it_helper"
15
15
  require_rel "watirsplash/util"
16
16
  WatirSplash::Util.load_environment
17
17
 
@@ -42,7 +42,6 @@ module WatirSplash
42
42
 
43
43
  def extra_failure_content(failure) # :nodoc:
44
44
  if @browser.exists?
45
- save_javascript_error
46
45
  save_html
47
46
  save_screenshot
48
47
  end
@@ -89,24 +88,6 @@ module WatirSplash
89
88
  file_name
90
89
  end
91
90
 
92
- def save_javascript_error # :nodoc:
93
- file_name = nil
94
- begin
95
- if @browser.is_a?(Watir::IE) && @browser.status =~ /Error on page/
96
- autoit = Watir::autoit
97
- autoit.AutoItSetOption("MouseCoordMode", 0)
98
- autoit.ControlClick("[TITLE:#{@browser.title}]", "", "[CLASS:msctls_statusbar32]", "left", 2)
99
- popup_title = "[REGEXPTITLE:^(Windows )?Internet Explorer$]"
100
- autoit.WinWait(popup_title, "", 10)
101
- file_name = save_screenshot("JS_Error", autoit.WinGetHandle(popup_title).hex)
102
- autoit.WinClose(popup_title)
103
- end
104
- rescue => e
105
- $stderr.puts "saving of javascript error failed: #{e.message}"
106
- end
107
- file_name
108
- end
109
-
110
91
  # Generates unique file name and path for each example.
111
92
  #
112
93
  # All file names generated with this method will be shown
@@ -26,13 +26,6 @@ module Watir
26
26
  raise TimeoutError, "timed out after #{timeout} seconds"
27
27
  end
28
28
 
29
- def wait_until?(timeout = 60, &block)
30
- wait_until(timeout, &block)
31
- true
32
- rescue TimeoutError
33
- false
34
- end
35
-
36
29
  #
37
30
  # Wait while the block evaluates to true or times out.
38
31
  #
@@ -47,13 +40,5 @@ module Watir
47
40
 
48
41
  raise TimeoutError, "timed out after #{timeout} seconds"
49
42
  end
50
-
51
- def wait_while?(timeout = 60, &block)
52
- wait_until(timeout, &block)
53
- true
54
- rescue TimeoutError
55
- false
56
- end
57
-
58
43
  end # WaitHelper
59
44
  end # Watir
@@ -1,7 +1,7 @@
1
1
  module Watir
2
2
  module PageCheckers
3
3
  # raises an error if javascript error was found
4
- JAVASCRIPT_ERRORS_CHECKER = lambda {|ie| raise "Got JavaScript error!" if ie.status =~ /Error on page/}
4
+ JAVASCRIPT_ERRORS_CHECKER = lambda {|ie| raise "Expected no JavaScript errors to appear on page, but having some!" if ie.status =~ /Error on page/}
5
5
  end
6
6
  end
7
7
 
@@ -25,10 +25,16 @@ module Watir
25
25
  path = Pathname.new(file_path)
26
26
  raise "path to #{file_path} has to be absolute!" unless path.absolute?
27
27
  self.click_no_wait
28
- AutoIt::Window.new("File Download").button("&Save").click
29
- save_as_window = AutoIt::Window.new("Save As")
30
- save_as_window.text_field("Edit1").set(File.native_path(file_path))
31
- save_as_window.button("&Save").click
28
+ download_window = RAutomation::Window.new(:title => "File Download",
29
+ :text => "Do you want to open or save this file?")
30
+ WaitHelper.wait_until {download_window.present?}
31
+ download_window.button(:value => "&Save").click
32
+
33
+ save_as_window = RAutomation::Window.new(:title => "Save As")
34
+ WaitHelper.wait_until {save_as_window.present?}
35
+ save_as_window.text_field(:class_name => "Edit1").set(File.native_path(file_path))
36
+ save_as_window.button(:value => "&Save").click
37
+
32
38
  WaitHelper.wait_until {File.exists?(file_path)}
33
39
  file_path
34
40
  end
@@ -39,9 +45,10 @@ module Watir
39
45
  raise "#{file_path} has to exist to set!" unless File.exists?(file_path)
40
46
  assert_exists
41
47
  self.click_no_wait
42
- window = AutoIt::Window.new(/choose file( to upload)?/i)
43
- window.text_field("Edit1").set(File.native_path(file_path))
44
- window.button("&Open").click
48
+ window = RAutomation::Window.new(:title => /choose file( to upload)?/i)
49
+ WaitHelper.wait_until {window.present?}
50
+ window.text_field(:class_name => "Edit1").set(File.native_path(file_path))
51
+ window.button(:value => "&Open").click
45
52
  end
46
53
  end
47
54
 
@@ -47,14 +47,6 @@ describe Watir::IE do
47
47
  lambda {wait_until(0.5) {sleep 0.1; false}}.should raise_exception(Watir::WaitHelper::TimeoutError)
48
48
  end
49
49
 
50
- it "has wait_until?" do
51
- result = wait_until? {sleep 0.1; true}
52
- result.should be_true
53
-
54
- result = wait_until?(0.5) {sleep 0.1; false}
55
- result.should be_false
56
- end
57
-
58
50
  it "closes the browser even when Watir::IE#run_error_checks throws an exception" do
59
51
  @browser.add_checker lambda {raise "let's fail IE#wait in IE#close"}
60
52
  @browser.should exist
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watirsplash
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
4
+ hash: 5
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 8
10
- version: 0.2.8
9
+ - 9
10
+ version: 0.2.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jarmo Pertman
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-06 00:00:00 +03:00
18
+ date: 2010-10-14 00:00:00 +03:00
19
19
  default_executable: watirsplash
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -65,7 +65,7 @@ dependencies:
65
65
  type: :runtime
66
66
  version_requirements: *id003
67
67
  - !ruby/object:Gem::Dependency
68
- name: require_all
68
+ name: rautomation
69
69
  prerelease: false
70
70
  requirement: &id004 !ruby/object:Gem::Requirement
71
71
  none: false
@@ -79,7 +79,7 @@ dependencies:
79
79
  type: :runtime
80
80
  version_requirements: *id004
81
81
  - !ruby/object:Gem::Dependency
82
- name: rmagick
82
+ name: require_all
83
83
  prerelease: false
84
84
  requirement: &id005 !ruby/object:Gem::Requirement
85
85
  none: false
@@ -93,7 +93,7 @@ dependencies:
93
93
  type: :runtime
94
94
  version_requirements: *id005
95
95
  - !ruby/object:Gem::Dependency
96
- name: syntax
96
+ name: rmagick
97
97
  prerelease: false
98
98
  requirement: &id006 !ruby/object:Gem::Requirement
99
99
  none: false
@@ -107,7 +107,7 @@ dependencies:
107
107
  type: :runtime
108
108
  version_requirements: *id006
109
109
  - !ruby/object:Gem::Dependency
110
- name: win32console
110
+ name: syntax
111
111
  prerelease: false
112
112
  requirement: &id007 !ruby/object:Gem::Requirement
113
113
  none: false
@@ -121,9 +121,23 @@ dependencies:
121
121
  type: :runtime
122
122
  version_requirements: *id007
123
123
  - !ruby/object:Gem::Dependency
124
- name: win32screenshot
124
+ name: win32console
125
125
  prerelease: false
126
126
  requirement: &id008 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ hash: 3
132
+ segments:
133
+ - 0
134
+ version: "0"
135
+ type: :runtime
136
+ version_requirements: *id008
137
+ - !ruby/object:Gem::Dependency
138
+ name: win32screenshot
139
+ prerelease: false
140
+ requirement: &id009 !ruby/object:Gem::Requirement
127
141
  none: false
128
142
  requirements:
129
143
  - - ">="
@@ -135,7 +149,7 @@ dependencies:
135
149
  - 4
136
150
  version: 0.0.4
137
151
  type: :runtime
138
- version_requirements: *id008
152
+ version_requirements: *id009
139
153
  description: WatirSplash makes testing of web applications splashin' easy by combining best features of Watir, RSpec and Ruby!
140
154
  email: jarmo.p@gmail.com
141
155
  executables:
@@ -154,7 +168,6 @@ files:
154
168
  - VERSION
155
169
  - bin/watirsplash
156
170
  - lib/watirsplash.rb
157
- - lib/watirsplash/auto_it_helper.rb
158
171
  - lib/watirsplash/element_extensions.rb
159
172
  - lib/watirsplash/file_helper.rb
160
173
  - lib/watirsplash/generator.rb
@@ -187,7 +200,7 @@ licenses: []
187
200
  post_install_message: |-
188
201
  *************************
189
202
 
190
- Thank you for installing WatirSplash 0.2.8! Don't forget to take a look at README and History files!
203
+ Thank you for installing WatirSplash 0.2.9! Don't forget to take a look at README and History files!
191
204
 
192
205
  Execute "watirsplash generate" under your project's directory to generate default project structure.
193
206
 
@@ -226,7 +239,7 @@ rubyforge_project:
226
239
  rubygems_version: 1.3.7
227
240
  signing_key:
228
241
  specification_version: 3
229
- summary: watirsplash 0.2.8
242
+ summary: watirsplash 0.2.9
230
243
  test_files:
231
244
  - spec/spec_helper_spec.rb
232
245
  - spec/spec_match_array_spec.rb
@@ -1,121 +0,0 @@
1
- module AutoIt
2
- class Window
3
- include Watir::WaitHelper
4
-
5
- class << self
6
- def autoit
7
- @@autoit
8
- end
9
- end
10
-
11
- @@autoit = Watir.autoit
12
- attr_reader :locator
13
-
14
- def initialize(window_locator)
15
- @locator =
16
- case window_locator
17
- when Regexp
18
- "[REGEXPTITLE:#{window_locator}]"
19
- when Fixnum
20
- "[HANDLE:#{window_locator.to_s(16).rjust(8, "0")}]"
21
- else
22
- window_locator
23
- end
24
- @title = window_locator
25
- end
26
-
27
- # makes window active
28
- # * returns true if activation was successful and false otherwise
29
- def activate
30
- @@autoit.WinWait(@locator, "", 1) == 1 &&
31
- @@autoit.WinActivate(@locator) != 0 &&
32
- @@autoit.WinActive(@locator) != 0
33
- end
34
-
35
- def text
36
- @@autoit.WinGetText(@locator)
37
- end
38
-
39
- def exists?
40
- @@autoit.WinExists(@locator) == 1
41
- end
42
-
43
- def close
44
- @@autoit.WinClose(@locator)
45
- @@autoit.WinKill(@locator)
46
- end
47
-
48
- def button(name)
49
- Button.new(self, name)
50
- end
51
-
52
- def text_field(name)
53
- TextField.new(self, name)
54
- end
55
-
56
- def method_missing name, *args #:nodoc:
57
- @@autoit.respond_to?(name) ? @@autoit.send(name, *args) : super
58
- end
59
- end
60
-
61
- class Button
62
- include Watir::WaitHelper
63
-
64
- def initialize(window, button_name)
65
- @window = window
66
- @name = button_name
67
- end
68
-
69
- # clicks specified button on window with specified title,
70
- # activates window automatically and makes sure that the click
71
- # was successful
72
- def click
73
- clicked = false
74
- wait_until do
75
- @window.activate &&
76
- Window.autoit.ControlFocus(@window.locator, "", @name) == 1 &&
77
- Window.autoit.ControlClick(@window.locator, "", @name) == 1 &&
78
- clicked = true # is clicked at least once
79
-
80
- clicked && !exists?
81
- end
82
- end
83
-
84
- def exists?
85
- not Window.autoit.ControlGetHandle(@window.locator, "", @name).empty?
86
- end
87
- end
88
-
89
- class TextField
90
- include Watir::WaitHelper
91
-
92
- def initialize(window, field_name)
93
- @window = window
94
- @name = field_name
95
- end
96
-
97
- # sets specified field's value on window with specified title,
98
- # activates window automatically and makes sure that the field's
99
- # value got changed
100
- def set(text)
101
- wait_until do
102
- @window.activate &&
103
- Window.autoit.ControlFocus(@window.locator, "", @name) == 1 &&
104
- Window.autoit.ControlSetText(@window.locator, "", @name, text) == 1 &&
105
- value == text
106
- end
107
- end
108
-
109
- def clear
110
- set ""
111
- end
112
-
113
- def value
114
- Window.autoit.ControlGetText(@window.locator, "", @name)
115
- end
116
-
117
- def exists?
118
- not Window.autoit.ControlGetHandle(@window.locator, "", @name).empty?
119
- end
120
- end
121
- end