win32-autogui 0.3.0 → 0.4.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/.gemfiles +78 -0
- data/.yardopts +0 -1
- data/Gemfile.lock +17 -20
- data/HISTORY.markdown +9 -1
- data/README.markdown +27 -6
- data/Rakefile +16 -2
- data/TODO.markdown +3 -1
- data/VERSION +1 -1
- data/examples/quicknote/lib/quicknote.rb +19 -19
- data/examples/quicknote/spec/quicknote/form_main_spec.rb +4 -4
- data/examples/quicknote/spec/spec_helper.rb +12 -5
- data/examples/skeleton/HISTORY.markdown +11 -0
- data/examples/skeleton/features/step_definitions/application_steps.rb +24 -10
- data/examples/skeleton/lib/myapp.rb +21 -14
- data/examples/skeleton/spec/myapp/form_about_spec.rb +3 -2
- data/examples/skeleton/spec/myapp/form_main_spec.rb +6 -8
- data/examples/skeleton/spec/spec_helper.rb +12 -5
- data/lib/win32/autogui.rb +1 -1
- data/lib/win32/autogui/application.rb +4 -4
- data/lib/win32/autogui/logging.rb +31 -7
- data/lib/win32/autogui/window.rb +35 -2
- data/lib/win32/autogui/windows/window.rb +0 -1
- data/spec/applications/calculator.rb +5 -4
- data/spec/auto_gui/application_spec.rb +3 -2
- data/spec/auto_gui/logging_spec.rb +35 -18
- data/spec/auto_gui/window_spec.rb +63 -0
- data/spec/basic_gem/aruba_helper_spec.rb +33 -0
- data/spec/basic_gem/gemspec_spec.rb +68 -0
- data/spec/spec_helper.rb +12 -5
- data/spec/watchr.rb +43 -22
- data/win32-autogui.gemspec +41 -11
- metadata +37 -42
data/.gemfiles
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
.gemfiles
|
|
2
|
+
.gitattributes
|
|
3
|
+
.gitignore
|
|
4
|
+
.yardopts
|
|
5
|
+
Gemfile
|
|
6
|
+
Gemfile.lock
|
|
7
|
+
HISTORY.markdown
|
|
8
|
+
LICENSE
|
|
9
|
+
README.markdown
|
|
10
|
+
Rakefile
|
|
11
|
+
TODO.markdown
|
|
12
|
+
VERSION
|
|
13
|
+
config/cucumber.yml
|
|
14
|
+
examples/quicknote/.gitignore
|
|
15
|
+
examples/quicknote/FormAboutU.dfm
|
|
16
|
+
examples/quicknote/FormAboutU.pas
|
|
17
|
+
examples/quicknote/FormMainU.dfm
|
|
18
|
+
examples/quicknote/FormMainU.pas
|
|
19
|
+
examples/quicknote/FormSplashU.dfm
|
|
20
|
+
examples/quicknote/FormSplashU.pas
|
|
21
|
+
examples/quicknote/LICENSE
|
|
22
|
+
examples/quicknote/README.markdown
|
|
23
|
+
examples/quicknote/Rakefile
|
|
24
|
+
examples/quicknote/TODO.markdown
|
|
25
|
+
examples/quicknote/dcu/.gitignore
|
|
26
|
+
examples/quicknote/exe/.gitignore
|
|
27
|
+
examples/quicknote/exe/quicknote.exe
|
|
28
|
+
examples/quicknote/lib/quicknote.rb
|
|
29
|
+
examples/quicknote/quicknote.cfg
|
|
30
|
+
examples/quicknote/quicknote.dof
|
|
31
|
+
examples/quicknote/quicknote.dpr
|
|
32
|
+
examples/quicknote/quicknote.res
|
|
33
|
+
examples/quicknote/spec/quicknote/form_about_spec.rb
|
|
34
|
+
examples/quicknote/spec/quicknote/form_main_spec.rb
|
|
35
|
+
examples/quicknote/spec/quicknote/form_splash_spec.rb
|
|
36
|
+
examples/quicknote/spec/spec.opts
|
|
37
|
+
examples/quicknote/spec/spec_helper.rb
|
|
38
|
+
examples/quicknote/spec/watchr.rb
|
|
39
|
+
examples/skeleton/.gitignore
|
|
40
|
+
examples/skeleton/HISTORY.markdown
|
|
41
|
+
examples/skeleton/LICENSE
|
|
42
|
+
examples/skeleton/README.markdown
|
|
43
|
+
examples/skeleton/Rakefile
|
|
44
|
+
examples/skeleton/TODO.markdown
|
|
45
|
+
examples/skeleton/config/cucumber.yml
|
|
46
|
+
examples/skeleton/dcu/.gitignore
|
|
47
|
+
examples/skeleton/exe/.gitignore
|
|
48
|
+
examples/skeleton/features/basic.feature
|
|
49
|
+
examples/skeleton/features/step_definitions/.gitignore
|
|
50
|
+
examples/skeleton/features/step_definitions/application_steps.rb
|
|
51
|
+
examples/skeleton/features/support/env.rb
|
|
52
|
+
examples/skeleton/lib/myapp.rb
|
|
53
|
+
examples/skeleton/spec/myapp/form_about_spec.rb
|
|
54
|
+
examples/skeleton/spec/myapp/form_main_spec.rb
|
|
55
|
+
examples/skeleton/spec/spec.opts
|
|
56
|
+
examples/skeleton/spec/spec_helper.rb
|
|
57
|
+
examples/skeleton/spec/watchr.rb
|
|
58
|
+
features/automating_an_application.feature
|
|
59
|
+
features/step_definitions/.gitignore
|
|
60
|
+
features/step_definitions/calculator_steps.rb
|
|
61
|
+
features/support/env.rb
|
|
62
|
+
lib/win32/autogui.rb
|
|
63
|
+
lib/win32/autogui/application.rb
|
|
64
|
+
lib/win32/autogui/input.rb
|
|
65
|
+
lib/win32/autogui/logging.rb
|
|
66
|
+
lib/win32/autogui/window.rb
|
|
67
|
+
lib/win32/autogui/windows/window.rb
|
|
68
|
+
spec/applications/calculator.rb
|
|
69
|
+
spec/auto_gui/application_spec.rb
|
|
70
|
+
spec/auto_gui/logging_spec.rb
|
|
71
|
+
spec/auto_gui/window_spec.rb
|
|
72
|
+
spec/basic_gem/aruba_helper_spec.rb
|
|
73
|
+
spec/basic_gem/basic_gem_spec.rb
|
|
74
|
+
spec/basic_gem/gemspec_spec.rb
|
|
75
|
+
spec/spec.opts
|
|
76
|
+
spec/spec_helper.rb
|
|
77
|
+
spec/watchr.rb
|
|
78
|
+
win32-autogui.gemspec
|
data/.yardopts
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
win32-autogui (0.
|
|
4
|
+
win32-autogui (0.4.0)
|
|
5
5
|
log4r (>= 1.1.9)
|
|
6
6
|
win32-clipboard (>= 0.5.2)
|
|
7
|
-
win32-process (>= 0.6.
|
|
7
|
+
win32-process (>= 0.6.4)
|
|
8
8
|
windows-api (>= 0.4.0)
|
|
9
|
-
windows-pr (>= 1.
|
|
9
|
+
windows-pr (>= 1.1.2)
|
|
10
10
|
|
|
11
11
|
GEM
|
|
12
12
|
remote: http://rubygems.org/
|
|
13
13
|
specs:
|
|
14
|
-
aruba (0.2.
|
|
15
|
-
background_process
|
|
16
|
-
cucumber (~> 0.9.0)
|
|
17
|
-
background_process (1.2)
|
|
14
|
+
aruba (0.2.2)
|
|
18
15
|
builder (2.1.2)
|
|
19
|
-
cucumber (0.9.
|
|
16
|
+
cucumber (0.9.4)
|
|
20
17
|
builder (~> 2.1.2)
|
|
21
18
|
diff-lcs (~> 1.1.2)
|
|
22
19
|
gherkin (~> 2.2.9)
|
|
@@ -27,37 +24,37 @@ GEM
|
|
|
27
24
|
json (~> 1.4.6)
|
|
28
25
|
term-ansicolor (~> 1.0.5)
|
|
29
26
|
json (1.4.6)
|
|
27
|
+
kramdown (0.12.0)
|
|
30
28
|
log4r (1.1.9)
|
|
31
29
|
rake (0.8.7)
|
|
32
|
-
rdiscount (1.6.5)
|
|
33
30
|
rspec (1.3.1)
|
|
34
31
|
term-ansicolor (1.0.5)
|
|
35
32
|
win32-api (1.4.6)
|
|
36
33
|
win32-clipboard (0.5.2)
|
|
37
34
|
windows-pr (>= 1.0.3)
|
|
38
|
-
win32-process (0.6.
|
|
39
|
-
windows-pr (>= 1.0
|
|
35
|
+
win32-process (0.6.4)
|
|
36
|
+
windows-pr (>= 1.1.0)
|
|
40
37
|
windows-api (0.4.0)
|
|
41
38
|
win32-api (>= 1.4.5)
|
|
42
|
-
windows-pr (1.
|
|
39
|
+
windows-pr (1.1.2)
|
|
43
40
|
win32-api (>= 1.4.5)
|
|
44
41
|
windows-api (>= 0.3.0)
|
|
45
|
-
yard (0.6.
|
|
42
|
+
yard (0.6.2)
|
|
46
43
|
|
|
47
44
|
PLATFORMS
|
|
48
45
|
ruby
|
|
49
46
|
|
|
50
47
|
DEPENDENCIES
|
|
51
|
-
aruba (
|
|
52
|
-
bundler (>= 1.0.
|
|
53
|
-
cucumber (>= 0.9.
|
|
48
|
+
aruba (= 0.2.2)
|
|
49
|
+
bundler (>= 1.0.7)
|
|
50
|
+
cucumber (>= 0.9.4)
|
|
51
|
+
kramdown (>= 0.12.0)
|
|
54
52
|
log4r (>= 1.1.9)
|
|
55
53
|
rake (>= 0.8.7)
|
|
56
|
-
rdiscount (>= 1.6.5)
|
|
57
54
|
rspec (= 1.3.1)
|
|
58
55
|
win32-autogui!
|
|
59
56
|
win32-clipboard (>= 0.5.2)
|
|
60
|
-
win32-process (>= 0.6.
|
|
57
|
+
win32-process (>= 0.6.4)
|
|
61
58
|
windows-api (>= 0.4.0)
|
|
62
|
-
windows-pr (>= 1.
|
|
63
|
-
yard (>= 0.6.
|
|
59
|
+
windows-pr (>= 1.1.2)
|
|
60
|
+
yard (>= 0.6.2)
|
data/HISTORY.markdown
CHANGED
|
@@ -6,6 +6,13 @@ Most recent changes are at the top
|
|
|
6
6
|
Changes
|
|
7
7
|
-------
|
|
8
8
|
|
|
9
|
+
### 0.4.0 - 11/22/2010 ###
|
|
10
|
+
|
|
11
|
+
* Internal specs, features and all examples should run out-of-the-box on both Cygwin and MingW installs
|
|
12
|
+
* EnumerateDesktopWindows now accepts an optional timeout allowing the "find"
|
|
13
|
+
method to continue enumerating windows until the timeout is reached
|
|
14
|
+
* Added static logging constants to Autogui::Loggting
|
|
15
|
+
|
|
9
16
|
### 0.3.0 - 11/08/2010 ###
|
|
10
17
|
|
|
11
18
|
* Added Log4R logging
|
|
@@ -14,7 +21,8 @@ Changes
|
|
|
14
21
|
### 0.2.1 - 11/05/2010 ###
|
|
15
22
|
|
|
16
23
|
* Added missing "require 'timeout'", fixes issue #1
|
|
17
|
-
* Replaced missing '@calculator' tag required to close down the calculator
|
|
24
|
+
* Replaced missing '@calculator' tag required to close down the calculator
|
|
25
|
+
after running cucumber features
|
|
18
26
|
|
|
19
27
|
### 0.2.0 - 11/04/2010 ###
|
|
20
28
|
|
data/README.markdown
CHANGED
|
@@ -13,14 +13,29 @@ and [Cucumber](http://github.com/aslakhellesoy/cucumber). Examples of
|
|
|
13
13
|
using both these tools are provided with this gem.
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
Quick Start
|
|
17
|
-
|
|
18
|
-
See [examples/skeleton/README.markdown](examples/skeleton/README.markdown)
|
|
19
|
-
a template of the file structure needed for jump-starting GUI testing
|
|
20
|
-
the Win32-autogui RubyGem.
|
|
16
|
+
Quick Start Options
|
|
17
|
+
-------------------
|
|
18
|
+
See [examples/skeleton/README.markdown](examples/skeleton/README.markdown)
|
|
19
|
+
for a template of the file structure needed for jump-starting GUI testing
|
|
20
|
+
with the Win32-autogui RubyGem.
|
|
21
21
|
|
|
22
22
|
Read our introduction blog posting here: <http://www.gearheadforhire.com/articles/ruby/win32-autogui/using-ruby-to-drive-windows-applications>
|
|
23
23
|
|
|
24
|
+
Run Win32-autogui's internal specs and example programs.
|
|
25
|
+
|
|
26
|
+
gem install win32-autogui
|
|
27
|
+
gem install rake bundler win32console cucumber
|
|
28
|
+
gem install rspec -v 1.3.1
|
|
29
|
+
|
|
30
|
+
cd C:\Ruby187\lib\ruby\gems\1.8\gems\win32-autogui-0.4.0
|
|
31
|
+
bundle install
|
|
32
|
+
|
|
33
|
+
# run the calculator specs and features
|
|
34
|
+
rake
|
|
35
|
+
|
|
36
|
+
# run the example quicknote specs
|
|
37
|
+
cd examples\quicknote
|
|
38
|
+
rake
|
|
24
39
|
|
|
25
40
|
|
|
26
41
|
Example Usage: Driving Calc.exe
|
|
@@ -184,7 +199,12 @@ focus with set_focus."
|
|
|
184
199
|
System Requirements
|
|
185
200
|
-------------------
|
|
186
201
|
|
|
187
|
-
Windows OS, version 2000 or higher
|
|
202
|
+
Windows OS, version 2000 or higher
|
|
203
|
+
|
|
204
|
+
Testing was done on the following Ruby platforms:
|
|
205
|
+
|
|
206
|
+
* ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
|
|
207
|
+
* ruby 1.8.7 (2010-08-16 patchlevel 302) [i386-mingw32]
|
|
188
208
|
|
|
189
209
|
|
|
190
210
|
Dependencies
|
|
@@ -224,6 +244,7 @@ Win32-autogui development was jump-started by cloning [BasicGem](http://github.c
|
|
|
224
244
|
* Cucumber for functional testing <http://github.com/aslakhellesoy/cucumber>
|
|
225
245
|
* Aruba for CLI testing <http://github.com/aslakhellesoy/aruba>
|
|
226
246
|
* YARD for documentation generation <http://github.com/lsegal/yard>
|
|
247
|
+
* Kramdown for documentation markup processing <https://github.com/gettalong/kramdown>
|
|
227
248
|
|
|
228
249
|
### Rake tasks ###
|
|
229
250
|
|
data/Rakefile
CHANGED
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
require 'rubygems'
|
|
7
7
|
require 'bundler/setup'
|
|
8
8
|
|
|
9
|
+
# TODO: remove this once issue corrected
|
|
10
|
+
# Bundler broken up to 1.0.7 on Windows
|
|
11
|
+
module Bundler
|
|
12
|
+
class GemHelper
|
|
13
|
+
def self.install_tasks(opts = nil)
|
|
14
|
+
dir = caller.find{|c| /Rakefile:/}[/^(.*?)\/Rakefile:/, 1]
|
|
15
|
+
self.new(dir, opts && opts[:name]).install
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
9
19
|
Bundler::GemHelper.install_tasks
|
|
10
20
|
|
|
11
21
|
def gemspec
|
|
@@ -41,8 +51,7 @@ namespace :doc do
|
|
|
41
51
|
require 'yard/rake/yardoc_task'
|
|
42
52
|
|
|
43
53
|
YARD::Rake::YardocTask.new(:generate) do |yt|
|
|
44
|
-
yt.options = ['--
|
|
45
|
-
'--output-dir', doc_destination
|
|
54
|
+
yt.options = ['--output-dir', doc_destination
|
|
46
55
|
] +
|
|
47
56
|
gemspec.rdoc_options - ['--line-numbers', '--inline-source']
|
|
48
57
|
end
|
|
@@ -51,5 +60,10 @@ namespace :doc do
|
|
|
51
60
|
task :clean do
|
|
52
61
|
rm_r doc_destination if File.exists?(doc_destination)
|
|
53
62
|
end
|
|
63
|
+
|
|
64
|
+
desc "List undocumented objects"
|
|
65
|
+
task :undocumented do
|
|
66
|
+
system('yard stats --list-undoc')
|
|
67
|
+
end
|
|
54
68
|
|
|
55
69
|
end
|
data/TODO.markdown
CHANGED
|
@@ -7,4 +7,6 @@ general
|
|
|
7
7
|
* (1.0) stop changing $LOAD_PATH in specs and features, modify ENV[] in before and afters
|
|
8
8
|
* (1.0) implement Application.find and add option to not start application automatically, allows driving already running applications
|
|
9
9
|
* (1.0) application class should be a mixin, not classical inheritance
|
|
10
|
-
* (1.0) "rake release" broken on Windows, create patch to fix Bundler. For now, 'git tag v0.3.0 && rake build && gem push
|
|
10
|
+
* (1.0) "rake release" broken on Windows, create patch to fix Bundler. For now, 'git tag v0.3.0 && rake build && gem push pkg/win32-autogui-0.3.0.gem'
|
|
11
|
+
* (1.0) add an exception dialog watcher that accepts a block and scans for exception dialogs in a separate thread
|
|
12
|
+
* unicode support for window text
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.4.0
|
|
@@ -24,28 +24,28 @@ def status_bar
|
|
|
24
24
|
main_window.children.find {|w| w.window_class == 'TStatusBar'}
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
def dialog_about
|
|
28
|
-
Autogui::EnumerateDesktopWindows.new.find do |w|
|
|
29
|
-
w.title.match(
|
|
27
|
+
def dialog_about(options={})
|
|
28
|
+
Autogui::EnumerateDesktopWindows.new(options).find do |w|
|
|
29
|
+
w.title.match(/^About QuickNote/) && (w.pid == pid)
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
def splash
|
|
34
|
-
Autogui::EnumerateDesktopWindows.new.find do |w|
|
|
35
|
-
w.title.match(
|
|
33
|
+
def splash(options={})
|
|
34
|
+
Autogui::EnumerateDesktopWindows.new(options).find do |w|
|
|
35
|
+
w.title.match(/^FormSplash/) && (w.pid == pid)
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
def message_dialog_confirm
|
|
40
|
-
Autogui::EnumerateDesktopWindows.new.find do |w|
|
|
41
|
-
w.title.match(
|
|
39
|
+
def message_dialog_confirm(options={})
|
|
40
|
+
Autogui::EnumerateDesktopWindows.new(options).find do |w|
|
|
41
|
+
w.title.match(/^Confirm/) && (w.pid == pid)
|
|
42
42
|
end
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
# Title and class are the same as dialog_overwrite_confirm
|
|
46
46
|
# Use child windows to differentiate
|
|
47
|
-
def dialog_overwrite_confirm
|
|
48
|
-
Autogui::EnumerateDesktopWindows.new.find do |w|
|
|
47
|
+
def dialog_overwrite_confirm(options={})
|
|
48
|
+
Autogui::EnumerateDesktopWindows.new(options).find do |w|
|
|
49
49
|
w.title.match(/^Text File Save$/) &&
|
|
50
50
|
(w.pid == pid) &&
|
|
51
51
|
(w.window_class == "#32770") &&
|
|
@@ -54,23 +54,23 @@ def dialog_overwrite_confirm
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
# Title and class are the same as dialog_overwrite_confirm
|
|
57
|
-
def file_save_as_dialog
|
|
58
|
-
Autogui::EnumerateDesktopWindows.new.find do |w|
|
|
59
|
-
w.title.match(
|
|
57
|
+
def file_save_as_dialog(options={})
|
|
58
|
+
Autogui::EnumerateDesktopWindows.new(options).find do |w|
|
|
59
|
+
w.title.match(/^Text File Save/) &&
|
|
60
60
|
(w.pid == pid) &&
|
|
61
61
|
(w.window_class == "#32770") &&
|
|
62
62
|
(w.combined_text.match(/Save \&in:/))
|
|
63
63
|
end
|
|
64
64
|
end
|
|
65
65
|
|
|
66
|
-
def file_open_dialog
|
|
67
|
-
Autogui::EnumerateDesktopWindows.new.find do |w|
|
|
68
|
-
w.title.match(
|
|
66
|
+
def file_open_dialog(options={})
|
|
67
|
+
Autogui::EnumerateDesktopWindows.new(options).find do |w|
|
|
68
|
+
w.title.match(/^Text File Open/) && (w.pid == pid)
|
|
69
69
|
end
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
-
def error_dialog
|
|
73
|
-
Autogui::EnumerateDesktopWindows.new.find do |w|
|
|
72
|
+
def error_dialog(options={})
|
|
73
|
+
Autogui::EnumerateDesktopWindows.new(options).find do |w|
|
|
74
74
|
w.title.match(/^QuickNote$/) && (w.pid == pid) && (w.window_class == "#32770")
|
|
75
75
|
end
|
|
76
76
|
end
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
|
|
160
160
|
it "should do nothing unless modified text" do
|
|
161
161
|
append_to_file(@filename, "sneak in extra content that shouldn't be here")
|
|
162
|
-
contents =
|
|
162
|
+
contents = get_file_contents(@filename)
|
|
163
163
|
contents.should match(/extra content/)
|
|
164
164
|
@application.file_save
|
|
165
165
|
contents.should match(/extra content/)
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
type_in("foobar")
|
|
178
178
|
@application.edit_window.text.should == "foobar" + "original content"
|
|
179
179
|
@application.file_save
|
|
180
|
-
|
|
180
|
+
get_file_contents(@filename).should == "foobar" + "original content"
|
|
181
181
|
end
|
|
182
182
|
end
|
|
183
183
|
|
|
@@ -249,9 +249,9 @@
|
|
|
249
249
|
@application.main_window.title.downcase.should == "QuickNote - #{fullpath(@saveas_filename)}".downcase
|
|
250
250
|
end
|
|
251
251
|
it "should save the text" do
|
|
252
|
-
|
|
252
|
+
get_file_contents(@saveas_filename).should == ''
|
|
253
253
|
@application.file_save_as(fullpath(@saveas_filename), :overwrite => true)
|
|
254
|
-
|
|
254
|
+
get_file_contents(@saveas_filename).should match(/original content/)
|
|
255
255
|
end
|
|
256
256
|
end
|
|
257
257
|
|
|
@@ -15,15 +15,22 @@
|
|
|
15
15
|
require 'spec/autorun'
|
|
16
16
|
require 'aruba/api'
|
|
17
17
|
|
|
18
|
-
# aruba
|
|
18
|
+
# aruba helpers
|
|
19
|
+
#
|
|
20
|
+
# @return full path to files in the aruba tmp folder
|
|
19
21
|
def fullpath(filename)
|
|
20
22
|
path = File.expand_path(File.join(current_dir, filename))
|
|
21
|
-
|
|
23
|
+
if path.match(/^\/cygdrive/)
|
|
24
|
+
# match /cygdrive/c/path/to and return c:\\path\\to
|
|
25
|
+
path = `cygpath -w #{path}`.chomp
|
|
26
|
+
elsif path.match(/.\:/)
|
|
27
|
+
# match c:/path/to and return c:\\path\\to
|
|
28
|
+
path = path.gsub(/\//, '\\')
|
|
29
|
+
end
|
|
22
30
|
path
|
|
23
31
|
end
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def get_file_content(filename)
|
|
32
|
+
# @return the contents of "filename" in the aruba tmp folder
|
|
33
|
+
def get_file_contents(filename)
|
|
27
34
|
in_current_dir do
|
|
28
35
|
IO.read(filename)
|
|
29
36
|
end
|
|
@@ -1,23 +1,37 @@
|
|
|
1
1
|
require 'myapp'
|
|
2
2
|
|
|
3
3
|
include Autogui::Input
|
|
4
|
+
include Autogui::Logging
|
|
4
5
|
|
|
5
6
|
After('@application') do
|
|
6
|
-
if @application
|
|
7
|
-
@application.close
|
|
7
|
+
if @application && @application.running?
|
|
8
|
+
@application.dialog_tips.close if @application.dialog_tips
|
|
9
|
+
@application.dialog_wizard.close if @application.dialog_wizard
|
|
10
|
+
begin
|
|
11
|
+
@application.close(:wait_for_close => true) if @application.running?
|
|
12
|
+
rescue
|
|
13
|
+
@application.kill
|
|
14
|
+
raise
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
Given /^the application is running$/ do
|
|
20
|
+
unless @application && @application.running?
|
|
21
|
+
@application = Myapp.new
|
|
8
22
|
@application.should be_running
|
|
9
23
|
end
|
|
10
24
|
end
|
|
11
25
|
|
|
12
|
-
|
|
13
|
-
@application = Myapp.new
|
|
14
|
-
@application.
|
|
26
|
+
When /^I start the application with parameters "([^"]*)"$/ do |parameters|
|
|
27
|
+
@application = Myapp.new :parameters => parameters
|
|
28
|
+
@application.should be_running
|
|
29
|
+
end
|
|
15
30
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
puts @application.combined_text
|
|
31
|
+
When /^I start the application$/ do
|
|
32
|
+
data_folder = cygpath_to_windows_path(File.expand_path(current_dir))
|
|
33
|
+
@application = Myapp.new :parameters => "--nosplash --data_folder:#{data_folder}"
|
|
34
|
+
@application.should be_running
|
|
21
35
|
end
|
|
22
36
|
|
|
23
37
|
When /^I type in "([^"]*)"$/ do |string|
|