mohawk 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +24 -17
- data/.travis.yml +2 -0
- data/Changelog +36 -20
- data/Gemfile +3 -3
- data/Guardfile +16 -0
- data/LICENSE.txt +21 -21
- data/README.md +60 -56
- data/Rakefile +18 -18
- data/features/control.feature +5 -0
- data/features/label.feature +4 -4
- data/features/link.feature +9 -0
- data/features/mohawk.feature +4 -1
- data/features/navigation.feature +9 -0
- data/features/step_definitions/control_steps.rb +3 -0
- data/features/step_definitions/label_steps.rb +3 -3
- data/features/step_definitions/link_steps.rb +3 -0
- data/features/step_definitions/mohawk_steps.rb +4 -0
- data/features/step_definitions/navigation_steps.rb +15 -0
- data/features/step_definitions/table_steps.rb +19 -3
- data/features/step_definitions/tree_view_steps.rb +4 -0
- data/features/support/WindowsForms.exe +0 -0
- data/features/support/app/WindowsForms/WindowsForms/AboutBox.Designer.cs +80 -0
- data/features/support/app/WindowsForms/WindowsForms/AboutBox.cs +103 -0
- data/features/support/app/WindowsForms/WindowsForms/AboutBox.resx +120 -0
- data/features/support/app/WindowsForms/WindowsForms/AutomatableMonthCalendar.cs +59 -0
- data/features/support/app/WindowsForms/WindowsForms/AutomationHelpers/AutomationProvider.cs +91 -0
- data/features/support/app/WindowsForms/WindowsForms/DataEntryForm.Designer.cs +187 -0
- data/features/support/app/WindowsForms/WindowsForms/DataEntryForm.cs +46 -0
- data/features/support/app/WindowsForms/WindowsForms/DataEntryForm.resx +120 -0
- data/features/support/app/WindowsForms/WindowsForms/MainFormWindow.Designer.cs +526 -0
- data/features/support/app/WindowsForms/WindowsForms/MainFormWindow.cs +93 -0
- data/features/support/app/WindowsForms/WindowsForms/MainFormWindow.resx +123 -0
- data/features/support/app/WindowsForms/WindowsForms/PersonForm.Designer.cs +119 -0
- data/features/support/app/WindowsForms/WindowsForms/PersonForm.cs +34 -0
- data/features/support/app/WindowsForms/WindowsForms/PersonForm.resx +120 -0
- data/features/support/app/WindowsForms/WindowsForms/Program.cs +21 -0
- data/features/support/app/WindowsForms/WindowsForms/Properties/AssemblyInfo.cs +36 -0
- data/features/support/app/WindowsForms/WindowsForms/Properties/Resources.Designer.cs +71 -0
- data/features/support/app/WindowsForms/WindowsForms/Properties/Resources.resx +117 -0
- data/features/support/app/WindowsForms/WindowsForms/Properties/Settings.Designer.cs +30 -0
- data/features/support/app/WindowsForms/WindowsForms/Properties/Settings.settings +7 -0
- data/features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.Designer.cs +93 -0
- data/features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.cs +19 -0
- data/features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.resx +120 -0
- data/features/support/app/WindowsForms/WindowsForms/WindowsForms.csproj +132 -0
- data/features/support/app/WindowsForms/WindowsForms.sln +30 -0
- data/features/support/env.rb +28 -17
- data/features/support/screens/about_screen.rb +7 -0
- data/features/support/screens/data_entry_form.rb +5 -0
- data/features/support/screens/main_screen.rb +3 -0
- data/features/table.feature +14 -0
- data/features/tree_view.feature +3 -0
- data/lib/mohawk/accessors/button.rb +6 -4
- data/lib/mohawk/accessors/checkbox.rb +7 -5
- data/lib/mohawk/accessors/combo.rb +7 -5
- data/lib/mohawk/accessors/control.rb +23 -0
- data/lib/mohawk/accessors/label.rb +15 -13
- data/lib/mohawk/accessors/link.rb +9 -0
- data/lib/mohawk/accessors/radio.rb +5 -3
- data/lib/mohawk/accessors/table.rb +12 -31
- data/lib/mohawk/accessors/table_row.rb +43 -0
- data/lib/mohawk/accessors/text.rb +7 -5
- data/lib/mohawk/accessors/tree_view.rb +9 -7
- data/lib/mohawk/accessors.rb +66 -7
- data/lib/mohawk/adapters/uia_adapter.rb +8 -0
- data/lib/mohawk/core_ext/string.rb +5 -0
- data/lib/mohawk/navigation.rb +6 -2
- data/lib/mohawk/version.rb +3 -3
- data/lib/mohawk.rb +76 -69
- data/mohawk.gemspec +32 -26
- data/spec/lib/mohawk/accessors/button_spec.rb +4 -0
- data/spec/lib/mohawk/accessors/checkbox_spec.rb +4 -1
- data/spec/lib/mohawk/accessors/combo_spec.rb +3 -0
- data/spec/lib/mohawk/accessors/control_spec.rb +38 -0
- data/spec/lib/mohawk/accessors/label_spec.rb +29 -25
- data/spec/lib/mohawk/accessors/link_spec.rb +34 -0
- data/spec/lib/mohawk/accessors/radio_spec.rb +4 -0
- data/spec/lib/mohawk/accessors/table_spec.rb +52 -7
- data/spec/lib/mohawk/accessors/text_spec.rb +4 -0
- data/spec/lib/mohawk/accessors/tree_view_spec.rb +5 -0
- data/spec/lib/mohawk_spec.rb +19 -0
- data/spec/lib/navigation_spec.rb +5 -0
- metadata +175 -6
@@ -1,13 +1,15 @@
|
|
1
|
-
module Mohawk
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
1
|
+
module Mohawk
|
2
|
+
module Accessors
|
3
|
+
class Label
|
4
|
+
attr_reader :view
|
5
|
+
|
6
|
+
def initialize(adapter, locator)
|
7
|
+
@view = adapter.window.label(locator)
|
8
|
+
end
|
9
|
+
|
10
|
+
def value
|
11
|
+
@view.value
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -1,16 +1,18 @@
|
|
1
1
|
module Mohawk
|
2
2
|
module Accessors
|
3
3
|
class Radio
|
4
|
+
attr_reader :view
|
5
|
+
|
4
6
|
def initialize(adapter, locator)
|
5
|
-
@
|
7
|
+
@view = adapter.window.radio(locator)
|
6
8
|
end
|
7
9
|
|
8
10
|
def set
|
9
|
-
@
|
11
|
+
@view.set
|
10
12
|
end
|
11
13
|
|
12
14
|
def set?
|
13
|
-
@
|
15
|
+
@view.set?
|
14
16
|
end
|
15
17
|
end
|
16
18
|
end
|
@@ -1,49 +1,30 @@
|
|
1
1
|
module Mohawk
|
2
2
|
module Accessors
|
3
3
|
class Table
|
4
|
-
|
5
|
-
attr_reader :row
|
4
|
+
attr_reader :view
|
6
5
|
|
7
|
-
|
8
|
-
@row = row
|
9
|
-
@table = table
|
10
|
-
end
|
11
|
-
|
12
|
-
def selected?
|
13
|
-
@table.selected? row.row
|
14
|
-
end
|
15
|
-
|
16
|
-
def cells
|
17
|
-
row.cells.map &:text
|
18
|
-
end
|
19
|
-
|
20
|
-
def to_hash
|
21
|
-
{:text => row.text, :row => row.row }
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
attr_reader :table
|
6
|
+
include Enumerable
|
26
7
|
|
27
8
|
def initialize(adapter, locator)
|
28
|
-
@
|
9
|
+
@view = adapter.window.table(locator)
|
29
10
|
end
|
30
11
|
|
31
12
|
def select(which_item)
|
32
|
-
|
13
|
+
view.select which_item
|
33
14
|
end
|
34
15
|
|
35
|
-
def
|
36
|
-
|
37
|
-
Row.new(table, row).to_hash
|
38
|
-
end
|
16
|
+
def headers
|
17
|
+
RAutomation::Adapter::MsUia::UiaDll.table_headers(view.search_information)
|
39
18
|
end
|
40
19
|
|
41
|
-
def row
|
42
|
-
|
20
|
+
def [](row)
|
21
|
+
TableRow.new(self, view.row(:index => row))
|
43
22
|
end
|
44
23
|
|
45
|
-
def
|
46
|
-
|
24
|
+
def each
|
25
|
+
view.rows.map do |row|
|
26
|
+
yield TableRow.new(self, row)
|
27
|
+
end
|
47
28
|
end
|
48
29
|
end
|
49
30
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Mohawk
|
2
|
+
module Accessors
|
3
|
+
class TableRow
|
4
|
+
attr_reader :row
|
5
|
+
|
6
|
+
def initialize(table, row)
|
7
|
+
@row = row
|
8
|
+
@table = table
|
9
|
+
end
|
10
|
+
|
11
|
+
def selected?
|
12
|
+
@table.view.selected? row.row
|
13
|
+
end
|
14
|
+
|
15
|
+
def select
|
16
|
+
@table.view.select row.row
|
17
|
+
end
|
18
|
+
|
19
|
+
def cells
|
20
|
+
row.cells.map &:text
|
21
|
+
end
|
22
|
+
|
23
|
+
def value_from_header(name)
|
24
|
+
which_column = header_methods.index(name)
|
25
|
+
raise ArgumentError, "#{name} column does not exist in #{header_methods}" if which_column.nil?
|
26
|
+
cells[which_column]
|
27
|
+
end
|
28
|
+
|
29
|
+
def method_missing(name, *args)
|
30
|
+
value_from_header name
|
31
|
+
end
|
32
|
+
|
33
|
+
def to_hash
|
34
|
+
{:text => row.text, :row => row.row }
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
def header_methods
|
39
|
+
@headers ||= @table.headers.map(&:to_method)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -1,25 +1,27 @@
|
|
1
1
|
module Mohawk
|
2
2
|
module Accessors
|
3
3
|
class Text
|
4
|
+
attr_reader :view
|
5
|
+
|
4
6
|
def initialize(adapter, locator)
|
5
7
|
@adapter = adapter
|
6
|
-
@
|
8
|
+
@view = adapter.window.text_field(locator)
|
7
9
|
end
|
8
10
|
|
9
11
|
def value
|
10
|
-
@
|
12
|
+
@view.value
|
11
13
|
end
|
12
14
|
|
13
15
|
def set(text)
|
14
|
-
@
|
16
|
+
@view.set text
|
15
17
|
end
|
16
18
|
|
17
19
|
def clear
|
18
|
-
@
|
20
|
+
@view.clear
|
19
21
|
end
|
20
22
|
|
21
23
|
def enter(text)
|
22
|
-
text_window = @adapter.window.child(:hwnd => @
|
24
|
+
text_window = @adapter.window.child(:hwnd => @view.hwnd)
|
23
25
|
text_window.send_keys text.split(//)
|
24
26
|
end
|
25
27
|
end
|
@@ -1,29 +1,31 @@
|
|
1
1
|
module Mohawk
|
2
2
|
module Accessors
|
3
3
|
class TreeView
|
4
|
+
attr_reader :view
|
5
|
+
|
4
6
|
def initialize(adapter, locator)
|
5
|
-
@
|
7
|
+
@view = adapter.window.select_list(locator)
|
6
8
|
end
|
7
9
|
|
8
10
|
def value
|
9
|
-
@
|
11
|
+
@view.value
|
10
12
|
end
|
11
13
|
|
12
14
|
def items
|
13
|
-
@
|
15
|
+
@view.options.map &:text
|
14
16
|
end
|
15
17
|
|
16
18
|
def expand(which_item)
|
17
|
-
@
|
19
|
+
@view.expand which_item
|
18
20
|
end
|
19
21
|
|
20
22
|
def collapse(which_item)
|
21
|
-
@
|
23
|
+
@view.collapse which_item
|
22
24
|
end
|
23
25
|
|
24
26
|
def select(which_item)
|
25
|
-
@
|
26
|
-
@
|
27
|
+
@view.select which_item if which_item.is_a? Integer
|
28
|
+
@view.set which_item if which_item.is_a? String
|
27
29
|
end
|
28
30
|
end
|
29
31
|
end
|
data/lib/mohawk/accessors.rb
CHANGED
@@ -40,6 +40,9 @@ module Mohawk
|
|
40
40
|
define_method("enter_#{name}") do |text|
|
41
41
|
adapter.text(locator).enter text
|
42
42
|
end
|
43
|
+
define_method("#{name}_view") do
|
44
|
+
adapter.text(locator).view
|
45
|
+
end
|
43
46
|
end
|
44
47
|
|
45
48
|
#
|
@@ -60,6 +63,9 @@ module Mohawk
|
|
60
63
|
define_method("#{name}_value") do
|
61
64
|
adapter.button(locator).value
|
62
65
|
end
|
66
|
+
define_method("#{name}_view") do
|
67
|
+
adapter.button(locator).view
|
68
|
+
end
|
63
69
|
end
|
64
70
|
|
65
71
|
#
|
@@ -88,6 +94,9 @@ module Mohawk
|
|
88
94
|
define_method("#{name}_options") do
|
89
95
|
adapter.combo(locator).options
|
90
96
|
end
|
97
|
+
define_method("#{name}_view") do
|
98
|
+
adapter.combo(locator).view
|
99
|
+
end
|
91
100
|
end
|
92
101
|
|
93
102
|
#
|
@@ -111,6 +120,9 @@ module Mohawk
|
|
111
120
|
define_method("#{name}_value") do
|
112
121
|
adapter.checkbox(locator).value
|
113
122
|
end
|
123
|
+
define_method("#{name}_view") do
|
124
|
+
adapter.checkbox(locator).view
|
125
|
+
end
|
114
126
|
end
|
115
127
|
|
116
128
|
#
|
@@ -131,6 +143,9 @@ module Mohawk
|
|
131
143
|
define_method("#{name}?") do
|
132
144
|
adapter.radio(locator).set?
|
133
145
|
end
|
146
|
+
define_method("#{name}_view") do
|
147
|
+
adapter.radio(locator).view
|
148
|
+
end
|
134
149
|
end
|
135
150
|
|
136
151
|
#
|
@@ -147,6 +162,31 @@ module Mohawk
|
|
147
162
|
define_method("#{name}") do
|
148
163
|
adapter.label(locator).value
|
149
164
|
end
|
165
|
+
define_method("#{name}_view") do
|
166
|
+
adapter.label(locator).view
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
#
|
171
|
+
# Generates methods to work with link controls
|
172
|
+
#
|
173
|
+
# @example
|
174
|
+
# link(:send_info_link, :id => 'sendInfoId')
|
175
|
+
# # will generate 'send_info_link_text' and 'click_send_info_link' methods
|
176
|
+
#
|
177
|
+
# @param [String] the name used for the generated methods
|
178
|
+
# @param [Hash] locator for how the label is found
|
179
|
+
#
|
180
|
+
def link(name, locator)
|
181
|
+
define_method("#{name}_text") do
|
182
|
+
adapter.link(locator).value
|
183
|
+
end
|
184
|
+
define_method("click_#{name}") do
|
185
|
+
adapter.link(locator).click
|
186
|
+
end
|
187
|
+
define_method("#{name}_view") do
|
188
|
+
adapter.link(locator).view
|
189
|
+
end
|
150
190
|
end
|
151
191
|
|
152
192
|
# Generates methods to work with menu items
|
@@ -168,8 +208,9 @@ module Mohawk
|
|
168
208
|
#
|
169
209
|
# @example
|
170
210
|
# table(:some_table, :id => "tableId")
|
171
|
-
# # will generate 'some_table
|
172
|
-
# #
|
211
|
+
# # will generate 'some_table', 'some_table=', 'some_table_headers'
|
212
|
+
# # and 'some_table_view' methods to get an Enumerable of table rows,
|
213
|
+
# # select a table item, return all of the headers and get the raw view
|
173
214
|
#
|
174
215
|
# @param [String] the name used for the generated methods
|
175
216
|
# @param [Hash] locator for how the label is found
|
@@ -179,14 +220,14 @@ module Mohawk
|
|
179
220
|
# * list_view
|
180
221
|
#
|
181
222
|
def table(name, locator)
|
223
|
+
define_method("#{name}") do
|
224
|
+
adapter.table(locator)
|
225
|
+
end
|
182
226
|
define_method("#{name}=") do |which_item|
|
183
227
|
adapter.table(locator).select which_item
|
184
228
|
end
|
185
|
-
define_method("#{name}
|
186
|
-
adapter.table(locator).
|
187
|
-
end
|
188
|
-
define_method("#{name}_row") do |which_row|
|
189
|
-
adapter.table(locator).row which_row
|
229
|
+
define_method("#{name}_headers") do
|
230
|
+
adapter.table(locator).headers
|
190
231
|
end
|
191
232
|
define_method("#{name}_view") do
|
192
233
|
adapter.table(locator).view
|
@@ -224,6 +265,24 @@ module Mohawk
|
|
224
265
|
define_method("collapse_#{name}_item") do |which_item|
|
225
266
|
adapter.tree_view(locator).collapse which_item
|
226
267
|
end
|
268
|
+
define_method("#{name}_view") do
|
269
|
+
adapter.tree_view(locator).view
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
def control(name, locator)
|
274
|
+
define_method("#{name}_value") do
|
275
|
+
adapter.value_control(locator).value
|
276
|
+
end
|
277
|
+
define_method("#{name}=") do |value|
|
278
|
+
adapter.value_control(locator).set value
|
279
|
+
end
|
280
|
+
define_method("click_#{name}") do
|
281
|
+
adapter.value_control(locator).click
|
282
|
+
end
|
283
|
+
define_method("#{name}_view") do
|
284
|
+
adapter.value_control(locator).view
|
285
|
+
end
|
227
286
|
end
|
228
287
|
|
229
288
|
# combo_box aliases
|
@@ -31,6 +31,10 @@ module Mohawk
|
|
31
31
|
Mohawk::Accessors::Label.new(self, locator)
|
32
32
|
end
|
33
33
|
|
34
|
+
def link(locator)
|
35
|
+
Mohawk::Accessors::Link.new(self, locator)
|
36
|
+
end
|
37
|
+
|
34
38
|
def menu_item(locator)
|
35
39
|
Mohawk::Accessors::MenuItem.new(self, locator)
|
36
40
|
end
|
@@ -42,6 +46,10 @@ module Mohawk
|
|
42
46
|
def tree_view(locator)
|
43
47
|
Mohawk::Accessors::TreeView.new(self, locator)
|
44
48
|
end
|
49
|
+
|
50
|
+
def value_control(locator)
|
51
|
+
Mohawk::Accessors::Control.new(self, locator)
|
52
|
+
end
|
45
53
|
end
|
46
54
|
end
|
47
55
|
end
|
data/lib/mohawk/navigation.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
+
require 'page_navigation'
|
2
|
+
|
1
3
|
module Mohawk
|
2
4
|
module Navigation
|
3
|
-
|
4
|
-
|
5
|
+
include PageNavigation
|
6
|
+
|
7
|
+
def on(cls, extra={}, &block)
|
8
|
+
screen = cls.new extra
|
5
9
|
screen.wait_until_present
|
6
10
|
block.call screen if block
|
7
11
|
screen
|
data/lib/mohawk/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
module Mohawk
|
2
|
-
VERSION = "0.0.
|
3
|
-
end
|
1
|
+
module Mohawk
|
2
|
+
VERSION = "0.0.3"
|
3
|
+
end
|
data/lib/mohawk.rb
CHANGED
@@ -1,69 +1,76 @@
|
|
1
|
-
require "rautomation"
|
2
|
-
require "mohawk/version"
|
3
|
-
require "
|
4
|
-
require "mohawk/accessors
|
5
|
-
require "mohawk/
|
6
|
-
require "mohawk/
|
7
|
-
require "mohawk/
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
#
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
#
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
#
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
#
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
def
|
67
|
-
|
68
|
-
end
|
69
|
-
|
1
|
+
require "rautomation"
|
2
|
+
require "mohawk/version"
|
3
|
+
require "require_all"
|
4
|
+
require "mohawk/accessors"
|
5
|
+
require "mohawk/navigation"
|
6
|
+
require "mohawk/adapters/uia_adapter"
|
7
|
+
require "mohawk/core_ext/string"
|
8
|
+
|
9
|
+
require_rel "mohawk/accessors"
|
10
|
+
|
11
|
+
module Mohawk
|
12
|
+
|
13
|
+
attr_reader :adapter
|
14
|
+
|
15
|
+
def self.included(cls)
|
16
|
+
cls.extend Mohawk::Accessors
|
17
|
+
end
|
18
|
+
|
19
|
+
def initialize(extra={})
|
20
|
+
@adapter = Mohawk::Adapters::UiaAdapter.new(which_window.merge(extra))
|
21
|
+
end
|
22
|
+
|
23
|
+
#
|
24
|
+
# Returns whether or not the window exists
|
25
|
+
#
|
26
|
+
def exist?
|
27
|
+
adapter.window.exist?
|
28
|
+
end
|
29
|
+
|
30
|
+
#
|
31
|
+
# Returns whether or not the window is active
|
32
|
+
#
|
33
|
+
def active?
|
34
|
+
adapter.window.active?
|
35
|
+
end
|
36
|
+
|
37
|
+
#
|
38
|
+
# Returns whether or not the window is present
|
39
|
+
#
|
40
|
+
def present?
|
41
|
+
adapter.window.present?
|
42
|
+
end
|
43
|
+
|
44
|
+
#
|
45
|
+
# Waits until the window is present
|
46
|
+
#
|
47
|
+
def wait_until_present
|
48
|
+
adapter.window.wait_until_present
|
49
|
+
end
|
50
|
+
|
51
|
+
#
|
52
|
+
# Waits until a control exists
|
53
|
+
#
|
54
|
+
def wait_for_control(locator)
|
55
|
+
control = adapter.window.control(locator)
|
56
|
+
begin
|
57
|
+
RAutomation::WaitHelper.wait_until { control.exist? }
|
58
|
+
rescue
|
59
|
+
raise "A control with #{locator} was not found"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
#
|
64
|
+
# Waits until the block returns true
|
65
|
+
#
|
66
|
+
def wait_until(timeout=RAutomation::Window.wait_timeout, &block)
|
67
|
+
RAutomation::WaitHelper.wait_until timeout, &block
|
68
|
+
end
|
69
|
+
|
70
|
+
#
|
71
|
+
# Indicates if the window has text or not
|
72
|
+
#
|
73
|
+
def has_text?(text_to_find)
|
74
|
+
adapter.window.text.include? text_to_find
|
75
|
+
end
|
76
|
+
end
|
data/mohawk.gemspec
CHANGED
@@ -1,26 +1,32 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'mohawk/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |gem|
|
7
|
-
gem.name = "mohawk"
|
8
|
-
gem.version = Mohawk::VERSION
|
9
|
-
gem.authors = ["Levi Wilson"]
|
10
|
-
gem.email = ["levi@leviwilson.com"]
|
11
|
-
gem.description = %q{High level wrapper around windows applications}
|
12
|
-
gem.summary = %q{High level wrapper around windows applications}
|
13
|
-
gem.homepage = "http://github.com/leviwilson/mohawk"
|
14
|
-
|
15
|
-
gem.files = `git ls-files`.split($/)
|
16
|
-
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
-
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
-
gem.require_paths = ["lib"]
|
19
|
-
|
20
|
-
gem.add_dependency 'rautomation', '>= 0.
|
21
|
-
|
22
|
-
gem.
|
23
|
-
|
24
|
-
gem.add_development_dependency '
|
25
|
-
gem.add_development_dependency '
|
26
|
-
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'mohawk/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "mohawk"
|
8
|
+
gem.version = Mohawk::VERSION
|
9
|
+
gem.authors = ["Levi Wilson"]
|
10
|
+
gem.email = ["levi@leviwilson.com"]
|
11
|
+
gem.description = %q{High level wrapper around windows applications}
|
12
|
+
gem.summary = %q{High level wrapper around windows applications}
|
13
|
+
gem.homepage = "http://github.com/leviwilson/mohawk"
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split($/)
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.require_paths = ["lib"]
|
19
|
+
|
20
|
+
gem.add_dependency 'rautomation', '>= 0.9.1'
|
21
|
+
gem.add_dependency 'require_all'
|
22
|
+
gem.add_dependency 'page_navigation', '>= 0.7'
|
23
|
+
|
24
|
+
gem.add_development_dependency 'cucumber'
|
25
|
+
gem.add_development_dependency 'rspec', '>= 2.12.0'
|
26
|
+
gem.add_development_dependency 'rake'
|
27
|
+
gem.add_development_dependency 'childprocess'
|
28
|
+
gem.add_development_dependency 'rb-fsevent', '~> 0.9.1'
|
29
|
+
gem.add_development_dependency 'guard'
|
30
|
+
gem.add_development_dependency 'guard-rspec'
|
31
|
+
gem.add_development_dependency 'terminal-notifier-guard'
|
32
|
+
end
|
@@ -58,6 +58,9 @@ describe Mohawk::Accessors::Combo do
|
|
58
58
|
screen.nacho_combos_options.should eq(["first", "second", "third"])
|
59
59
|
end
|
60
60
|
|
61
|
+
it "can dish out the combo view" do
|
62
|
+
screen.nacho_combos_view.should be(combo_box_field)
|
63
|
+
end
|
61
64
|
end
|
62
65
|
|
63
66
|
context "aliases for combo_box" do
|