rautomation 0.17.0 → 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.
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.