rautomation 0.17.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 95d5dfeb95290e7944534c9a7ff4e042ae9d9b25
4
- data.tar.gz: 2f8c65032f68cd5fdb6d79a50d3887827597d7d7
2
+ SHA256:
3
+ metadata.gz: 679fa528ec456a61c7e523c9f4ca135c8470bda5e9dc7c03be47849b8a4b5201
4
+ data.tar.gz: 297761f686c7edfb418c453649ac7d162f8cc05f159cbbcdbdf34e5fbd9d763b
5
5
  SHA512:
6
- metadata.gz: 389fd8e7b1bdd288e1d5514d384d1b957c26ab3b657bcffbc519ae7136e986faac6b88ad96949d1be1fea9c61cb1263555d3067a7eb29110d03c0b9c48866784
7
- data.tar.gz: 2201aaf9897b898f2c5b474c85c1a759fd0e110808a62cc965e5029bce5707433cf9385592211d7394dc1c15a0f15f57013512ac36a0773c3b8fca8451edd1bf
6
+ metadata.gz: eb20e6ce9ec63d7ddc1165486a58a24b2f9c6ee8adce789cc15ceb82927067ccd1fd4e380bfce870d54c7eb3a1dce378e5e1ea2c0ab6c51eb148487a21eaac45
7
+ data.tar.gz: 4719e76346090b28ba6340044dbbeb0af9aa87228aae826bc5200b7c734056b13dfba8d2b4c67e3bae10f359e2e32bbdccb0730c98a5263f3abb57bd1f6daa53
data/.document CHANGED
@@ -1,4 +1,4 @@
1
- README.rdoc
1
+ README.md
2
2
  lib/**/*.rb
3
3
  bin/*
4
4
  features/**/*.feature
data/.gitignore CHANGED
@@ -1,36 +1,37 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- /coverage
18
- /rdoc
19
- /pkg
20
-
21
- ## PROJECT::SPECIFIC
22
- /.idea/*
23
-
24
- /.yardoc/
25
- /doc/
26
-
27
- ## VisualStudio
28
- Debug
29
- Release
30
- ipch
31
- *.sdf
32
- *.suo
33
- *.user
34
- *.opensdf
35
- _ReSharper*/
36
- packages/
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ /coverage
18
+ /rdoc
19
+ /pkg
20
+
21
+ ## PROJECT::SPECIFIC
22
+ /.idea/*
23
+
24
+ /.yardoc/
25
+ /doc/
26
+
27
+ ## VisualStudio
28
+ Debug
29
+ Release
30
+ ipch
31
+ *.sdf
32
+ *.suo
33
+ *.user
34
+ *.opensdf
35
+ _ReSharper*/
36
+ packages/
37
+ .vs/
data/.yardopts CHANGED
@@ -1,6 +1,8 @@
1
- --readme README.rdoc
1
+ --readme README.md
2
2
  --no-private
3
3
  --hide-void-return
4
4
  --title "RAutomation"
5
- --files History.rdoc,LICENSE
5
+ --files CHANGES.md,LICENSE
6
6
  --default-return ""
7
+ --markup-provider redcarpet
8
+ --markup markdown
@@ -0,0 +1,264 @@
1
+ ## 1.0.0 / 2019-12-11
2
+
3
+ * Update ffi dependency to ~> 1.11.0.
4
+ * Use Visual Studio 2019 Build Tools for running tests.
5
+
6
+ ## 0.17.0 / 2014-09-29
7
+
8
+ ### Win32 adapter
9
+
10
+ * Fix searching locators by hwnd. See more at issue #96.
11
+
12
+ ## 0.16.0 / 2014-09-29
13
+
14
+ * Loosen up ffi dependency due to fixed segfault problem. See more at issue #81.
15
+
16
+ ## 0.15.0 / 2014-06-01
17
+
18
+ * Fixes #send_keys with special characters. Issue #92.
19
+
20
+ ## 0.14.1 / 2014-02-05
21
+
22
+ * Set ffi 1.9.0 as a dependency for now because newer versions are broken. See more at issue #81.
23
+
24
+ ## 0.14.0 / 2014-02-05
25
+
26
+ ### MsUia adapter
27
+
28
+ * Add SelectList#select and SelectList#clear.
29
+ * Add Table#select and Table#clear.
30
+ * Add Table#selected_rows.
31
+ * Improve performance of table Row lookups.
32
+ * SelectList#options accepts :index and :text (Regexp or String).
33
+ * Window#child in ms_uia works for popup windows as well.
34
+
35
+ ## 0.13.0
36
+
37
+ ### MsUia adapter
38
+
39
+ * Added #select and #clear into SelectList::SelectListOption for multi-select support
40
+ * Removed SelectList#select and SelectList#set
41
+ * Added #select, #selected? and #clear to Table::Row for multi-select support
42
+ * Removed Table#select and Table#selected?
43
+ * Fixed an issue with selecting ListBox items that our outside of the viewable area
44
+
45
+ ## 0.12.0 / 2013-09-05
46
+
47
+ ### MsUia adapter
48
+
49
+ * Add Control#help_text to relay ToolTip information
50
+
51
+ ## 0.11.0 / 2013-08-10
52
+
53
+ ### MsUia adapter
54
+
55
+ * Add support for Window#spinner
56
+
57
+ ## 0.10.0 / 2013-07-26
58
+
59
+ ### MsUia adapter
60
+
61
+ * Fixed an issue with trying to interact with a button after it goes away
62
+ * Add support for Window#tab_control
63
+
64
+ ## 0.9.4 / 2013-07-23
65
+
66
+ * Add license part of gemspec. Closes #70.
67
+
68
+ ## 0.9.3 / 2013-07-23
69
+
70
+ ### MsUia adapter
71
+
72
+ * Added the ability to limit the scope to children only when looking for a control
73
+ * Fixed issues with ListBox controls not firing index change events
74
+
75
+ ## 0.9.2 / 2013-05-19
76
+
77
+ ### Win32 adapter
78
+
79
+ * Window#send_keys supports now :dash, :slash and :backslash. Closes #64.
80
+
81
+ ### MsUia adapter
82
+
83
+ * Ability to get and set the text of a multi-line text control that only supports the TextPattern.
84
+ * Add some caching to speed up locating controls.
85
+ * Fix issue #67 that happens when clicking on controls.
86
+
87
+ ### AutoIt adapter
88
+
89
+ * Add deprecation warning.
90
+
91
+ ## 0.9.1 / 2013-04-26
92
+
93
+ ### MsUia adapter
94
+
95
+ * Ability to interact with controls that do not have native window handles (for example WPF applications).
96
+
97
+ ## 0.9.0 / 2013-04-22
98
+
99
+ ### MsUia adapter
100
+
101
+ * Add support for :name locator.
102
+ * Add support for Window#value_control.
103
+ * Add Table#headers.
104
+ * Add Table#values.
105
+ * Control#exists? uses now uia code.
106
+ * ControlType.Document is also considered as a TextField.
107
+ * Table#select and Table#selected? use 0-based indexing.
108
+ * Table#select supports value too.
109
+
110
+ ### Win32 adapter
111
+
112
+ * Add support for "[", "]" and "'" characters when using Window#send_keys. Fixes #61.
113
+
114
+ ## 0.8.0 / 2012-12-26
115
+
116
+ ### MsUia adapter
117
+
118
+ * Add Control#collapse for collapsing values in collapsable items.
119
+ * Add Control#expand for expanding values in expandable items.
120
+ * Add Row#cell(s).
121
+ * Add Table#cell(s).
122
+ * Add Table#row(s).
123
+ * Add Window#menu for selecting menu items.
124
+ * Fire change events when SelectList selections have been changed.
125
+ * Window#child instantiates MsUia adapter Window.
126
+
127
+ ## 0.7.3 / 2012-10-31
128
+
129
+ ### Win32 adapter
130
+
131
+ * Add support for PasswordField.
132
+
133
+ ### AutoIt adapter
134
+
135
+ * Show error message when registration of AutoIt dll fails.
136
+
137
+ ## 0.7.2 / 2012-03-18
138
+
139
+ ### Win32 adapter
140
+
141
+ * add mouse API with Window#mouse method
142
+ * add Mouse#move, #position, #click, #press and #release methods
143
+
144
+ ### AutoIt adapter
145
+
146
+ * support the same mouse API as Win32 adapter
147
+
148
+ ## 0.7.1 / 2012-02-26
149
+
150
+ ### Win32 adapter
151
+
152
+ * add Window#dimensions to get coordinates of the window
153
+ * add Window#move to move/resize the window
154
+ * fix Window#child not to raise any exceptions for cases where window isn't technically a child
155
+
156
+ ## Version 0.7.0 / 2012-02-23
157
+
158
+ ### All adapters
159
+
160
+ * renamed WinFfi adapter to Win32 adapter
161
+ * added experimental MsUia adapter
162
+ * added support for JRuby
163
+ * Window.windows accepts locators too
164
+ * added Window#class_names for retrieving internal class names of the window and it's controls
165
+ * default locator is :index => 0 when nothing else specified
166
+
167
+ ### Win32 adapter
168
+
169
+ * Window#send_keys has now syntax similar to WatirSpec (https://github.com/watir/watirspec/blob/master/element_spec.rb#L206-249)
170
+ * added TextField#send_keys
171
+
172
+ ### AutoIt adapter
173
+
174
+ * added Window#mouse_move, #mouse_click, #mouse_position, #press_mouse and #release_mouse methods for AutoIt adapter
175
+
176
+ ## Version 0.6.3 / 2011-07-16
177
+
178
+ * use current window's handle (hwnd) in WinFfi::Window#child method
179
+
180
+ ## Version 0.6.2 / 2011-07-07
181
+
182
+ ### WinFFI adapter
183
+
184
+ * loading lazily oleacc.dll
185
+ * loading lazily uia_dll.rb due to problems on certain Windows XP machines
186
+
187
+ ## Version 0.6.1 / 2011-07-05
188
+
189
+ ### WinFFI adapter
190
+
191
+ * Fixed it for Ruby 1.9.2.
192
+
193
+ ## Version 0.6.0 / 2011-07-03
194
+
195
+ ### WinFFI adapter
196
+
197
+ * Window#send_keys now accepts only String argument similar to AutoIt's Send function.
198
+ * added Table#strings, #select, #selected? methods.
199
+ * added Label element support with #value method.
200
+ * added #has_focus? and #set_focus methods to controls.
201
+ * added possibility to search controls by automation id as :id.
202
+ * added #enabled? and #disabled? methods for controls.
203
+ * added Window#control and #controls methods for accessing controls generally.
204
+ * added SelectList#option method.
205
+ * added ListBox element support with #count, #items, #exist?, #selected? and #select methods.
206
+
207
+ ## Version 0.5.1 / 2011-01-30
208
+
209
+ ### All adapters
210
+
211
+ * added Window.windows, #windows, #buttons and #text_fields methods to retrieve collection of elements and use them with Enumerable/Array methods.
212
+
213
+ ### WinFFI adapter
214
+
215
+ * added Window#child method for searching child windows and popups
216
+ * added initial support for Radio, Checkbox, SelectList and Table
217
+
218
+ ### AutoIt adapter
219
+
220
+ * allow to search windows by PID
221
+
222
+ ## Version 0.4.0 / 2010-12-23
223
+
224
+ * allow to search windows without text (like empty Notepad window for example).
225
+ * added possibility to use block for #click to specify successful clicking condition.
226
+ * renamed :ffi adapter to :win_ffi because FFI may be used on other platforms too.
227
+
228
+ ## Version 0.3.0 / 2010-12-18
229
+
230
+ * added Ffi adapter specific method Window#child which searches for child windows and popups
231
+
232
+ ## Version 0.2.1 / 2010-12-17
233
+
234
+ * added yard options for documentation
235
+
236
+ ## Version 0.2.0 / 2010-12-17
237
+
238
+ * added Window#pid method
239
+
240
+ ## Version 0.1.0 / 2010-12-14
241
+
242
+ * added new default adapter for Windows: FFI
243
+ * changes for AutoIt adapter:
244
+ - added 0-based :index locator for window locators to search for windows with the same criteria.
245
+ - renamed text_field and button locator :instance to :index instead.
246
+ - :class_name locator is not allowed anymore. Use :class and :index together instead.
247
+ - use :value for button locator instead of :text
248
+
249
+ ## Version 0.0.4 / 2010-10-27
250
+
251
+ * most Window, Button and TextField methods wait until the object exists. Use RAutomation::Window.wait_timeout= to set timeout before failing. Default is 60 seconds.
252
+
253
+ ## Version 0.0.3 / 2010-10-15
254
+
255
+ * RAutomation didn't load AutoIt correctly if it wasn't installed before
256
+
257
+ ## Version 0.0.2 / 2010-10-14
258
+
259
+ * using :value locator for buttons instead of :text
260
+ * searching only visible windows with some text on them
261
+
262
+ ## Version 0.0.1 / 2010-10-13
263
+
264
+ * Initial release
@@ -1,15 +1,17 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rautomation (0.17.0)
5
- ffi (~> 1.9.0)
4
+ rautomation (1.0.0)
5
+ ffi (~> 1.11.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  diff-lcs (1.2.4)
11
- ffi (1.9.5-x86-mingw32)
11
+ ffi (1.11.3-x86-mingw32)
12
+ github-markup (3.0.4)
12
13
  rake (0.9.2.2)
14
+ redcarpet (3.5.0)
13
15
  rspec (2.14.1)
14
16
  rspec-core (~> 2.14.0)
15
17
  rspec-expectations (~> 2.14.0)
@@ -18,13 +20,19 @@ GEM
18
20
  rspec-expectations (2.14.3)
19
21
  diff-lcs (>= 1.1.3, < 2.0)
20
22
  rspec-mocks (2.14.4)
21
- yard (0.8.6.1)
23
+ yard (0.9.20)
22
24
 
23
25
  PLATFORMS
26
+ ruby
24
27
  x86-mingw32
25
28
 
26
29
  DEPENDENCIES
30
+ github-markup
27
31
  rake
28
32
  rautomation!
33
+ redcarpet
29
34
  rspec (~> 2.14)
30
35
  yard
36
+
37
+ BUNDLED WITH
38
+ 2.0.1
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2013 Jarmo Pertman
1
+ Copyright (c) Jarmo Pertman
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -0,0 +1,141 @@
1
+ # RAutomation
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/rautomation.png)](http://badge.fury.io/rb/rautomation)
4
+
5
+ * Web: http://www.github.com/jarmo/RAutomation
6
+ * Author: Jarmo Pertman [jarmo@jarmopertman.com](mailto:jarmo@jarmopertman.com)
7
+
8
+
9
+ RAutomation is a small and easy to use library for helping out to automate
10
+ windows and their controls for automated testing.
11
+
12
+ RAutomation provides:
13
+ * Easy to use and user-friendly API (inspired by [Watir](http://www.watir.com))
14
+ * Cross-platform compatibility
15
+ * Easy extensibility - with small scripting effort it's possible to add
16
+ support for not yet supported platforms or technologies
17
+
18
+
19
+ ## USAGE
20
+
21
+ require "rautomation"
22
+
23
+ window = RAutomation::Window.new(:title => /part of the title/i)
24
+ window.exists? # => true
25
+
26
+ window.title # => "blah blah part Of the title blah"
27
+ window.text # => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ultricies..."
28
+
29
+ window.text_field(:class => "Edit", :index => 0).set "hello, world!"
30
+ button = window.button(:value => "&Save")
31
+ button.exists? # => true
32
+ button.click
33
+
34
+ all_windows = RAutomation::Window.windows
35
+ all_windows.each {|window| puts window.hwnd}
36
+
37
+ window = RAutomation::Window.new(:title => /part of the title/i)
38
+ windows = window.windows
39
+ puts windows.size # => 2
40
+ windows.map &:title # => ["part of the title 1", "part of the title 2"]
41
+
42
+ window.windows(:title => /part of other title/i) # => all windows with matching specified title
43
+
44
+ window.buttons.each {|button| puts button.value}
45
+ window.buttons(:value => /some value/i).each {|button| puts button.value}
46
+
47
+ window2 = RAutomation::Window.new(:title => "Other Title", :adapter => :autoit) # use AutoIt adapter
48
+ # use adapter's (in this case AutoIt's) internal methods not part of the public API directly
49
+ window2.WinClose("[TITLE:Other Title]")
50
+
51
+ Check out [the documentation](https://rubydoc.info/github/jarmo/RAutomation) for other possible usages!
52
+
53
+ ## INSTALL
54
+
55
+ ### Windows
56
+
57
+ gem install rautomation
58
+
59
+ Available adapters:
60
+ * :win_32 - uses Windows API directly with FFI (default)
61
+ * :ms_uia - an experimental adapter
62
+ * :autoit - uses AutoIt for automation (DEPRECATED)
63
+
64
+
65
+ When using AutoIt adapter: You might need administrative privileges if running
66
+ for the first time and you haven't installed AutoIt before!
67
+
68
+ ### Linux
69
+
70
+ Feel yourself at home on Linux and know how to automate windows and their
71
+ controls? I would be happy if you'd contact me about that matter - or even
72
+ better, follow the instructions at "How to create a new adapter?"
73
+
74
+ ### OS X
75
+
76
+ Feel yourself at home on OS X and know how to automate windows and their
77
+ controls? I would be happy if you'd contact me about that matter - or even
78
+ better, follow the instructions at "How to create a new adapter?"
79
+
80
+ ### Others
81
+
82
+ Feel yourself at home on some operating system not listed in here and know how
83
+ to automate windows and their controls? Does Ruby also work on that operating
84
+ system? I would be happy if you'd contact me about that matter - or even
85
+ better, follow the instructions at "How to create a new adapter?"
86
+
87
+ ## Supported Ruby Platforms
88
+
89
+ Currently only 32bit Ruby is supported. 64bit versions **do not work** at all!
90
+
91
+ ## How to create a new adapter?
92
+
93
+ 1. Fork the project.
94
+ 2. Create entry point file to lib/rautomation/adapter which should load all
95
+ adapter specific files.
96
+ 3. Add `autoload` statement into lib/rautomation/adapter/helper.rb for that
97
+ file.
98
+ 4. Create a directory for your adapter's specific code into
99
+ lib/rautomation/adapter
100
+ 5. Copy button.rb, text_field.rb and window.rb from some of the existing
101
+ adapter's directory.
102
+ 6. Add spec data for your adapter into spec/spec_helper DATA constant.
103
+ 7. Use environment variable *RAUTOMATION_ADAPTER* to point to that adapter.
104
+ 8. Start coding and spec-ing until as much of possible of the public API is
105
+ satisfied.
106
+ 9. Make me a pull request.
107
+
108
+
109
+ Don't forget to fix the documentation for that adapter also!
110
+
111
+ In case of any problems, feel free to contact me.
112
+
113
+ ## Contributors
114
+
115
+ * Levi Wilson - https://github.com/leviwilson
116
+ * Eric Kessler - https://github.com/enkessler
117
+ * Stephan Schwab - https://github.com/snscaimito
118
+
119
+
120
+ ## Libraries Using RAutomation
121
+
122
+ * [watir-classic](https://github.com/watir/watir-classic)
123
+ * [mohawk](https://github.com/leviwilson/mohawk)
124
+
125
+
126
+ ## Note on Patches/Pull Requests
127
+
128
+ * Fork the project.
129
+ * Make your feature addition or bug fix.
130
+ * Add tests for it. This is important so I don't break it in a future
131
+ version unintentionally.
132
+ * Commit, do not mess with rakefile, version, or history.
133
+
134
+ (if you want to have your own version, that is fine but bump version in a
135
+ commit by itself I can ignore when I pull)
136
+ * Send me a pull request. Bonus points for topic branches.
137
+
138
+
139
+ ## Copyright
140
+
141
+ Copyright (c) Jarmo Pertman. See LICENSE for details.