Module: Mohawk::Accessors

Defined in:
lib/mohawk/accessors.rb,
lib/mohawk/accessors/link.rb,
lib/mohawk/accessors/tabs.rb,
lib/mohawk/accessors/text.rb,
lib/mohawk/accessors/combo.rb,
lib/mohawk/accessors/label.rb,
lib/mohawk/accessors/radio.rb,
lib/mohawk/accessors/table.rb,
lib/mohawk/accessors/button.rb,
lib/mohawk/accessors/control.rb,
lib/mohawk/accessors/spinner.rb,
lib/mohawk/accessors/checkbox.rb,
lib/mohawk/accessors/menu_item.rb,
lib/mohawk/accessors/table_row.rb,
lib/mohawk/accessors/tree_view.rb

Defined Under Namespace

Classes: Button, CheckBox, Combo, Control, Label, Link, MenuItem, Radio, Spinner, Table, TableRow, Tabs, Text, TreeView

Instance Method Summary collapse

Instance Method Details

#button(name, locator) ⇒ Object

Generates methods to click on a button as well as get the value of the button text

Examples:

button(:close, :value => '&Close')
# will generate 'close' and 'close_value' methods

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the button is found



74
75
76
77
78
79
80
81
82
83
84
# File 'lib/mohawk/accessors.rb', line 74

def button(name, locator)
  define_method("#{name}") do |&block|
    adapter.button(locator).click &block
  end
  define_method("#{name}_value") do
    adapter.button(locator).value
  end
  define_method("#{name}_view") do
    adapter.button(locator).view
  end
end

#checkbox(name, locator) ⇒ Object

Generates methods to get/set the value of a checkbox as well as to get the text value of the control

Examples:

checkbox(:include, :id => 'checkBoxId')
# will generate 'include', 'include=' and 'include_value' methods

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the checkbox is found



128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/mohawk/accessors.rb', line 128

def checkbox(name, locator)
  define_method("#{name}") do
    adapter.checkbox(locator).checked?
  end
  define_method("#{name}=") do |should_check|
    adapter.checkbox(locator).set_check should_check
  end
  define_method("#{name}_value") do
    adapter.checkbox(locator).value
  end
  define_method("#{name}_view") do
    adapter.checkbox(locator).view
  end
end

#combo_box(name, locator) ⇒ Object Also known as: combobox, dropdown, drop_down, select_list

Generates methods to get the value of a combo box, set the selected item by both index and value as well as to see the available options

Aliases

  • combobox

  • dropdown / drop_down

  • select_list

Examples:

combo_box(:status, :id => 'statusComboBox')
# will generate 'status', 'status=' and 'status_options' methods

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the combo box is found



102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/mohawk/accessors.rb', line 102

def combo_box(name, locator)
  define_method("#{name}") do
    adapter.combo(locator).value
  end
  define_method("#{name}=") do |item|
    adapter.combo(locator).set item
  end
  define_method("#{name}_options") do
    adapter.combo(locator).options
  end
  define_method("#{name}_view") do
    adapter.combo(locator).view
  end
end

#control(name, locator) ⇒ Object



345
346
347
348
349
350
351
352
353
354
355
356
357
358
# File 'lib/mohawk/accessors.rb', line 345

def control(name, locator)
  define_method("#{name}_value") do
    adapter.value_control(locator).value
  end
  define_method("#{name}=") do |value|
    adapter.value_control(locator).set value
  end
  define_method("click_#{name}") do |&block|
    adapter.value_control(locator).click &block
  end
  define_method("#{name}_view") do
    adapter.value_control(locator).view
  end
end

#label(name, locator) ⇒ Object

Generates methods to get the value of a label control

Examples:

label(:login_info, :id => 'loginInfoLabel')
# will generate a 'login_info' method

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the label is found



176
177
178
179
180
181
182
183
# File 'lib/mohawk/accessors.rb', line 176

def label(name, locator)
  define_method("#{name}") do
    adapter.label(locator).value
  end
  define_method("#{name}_view") do
    adapter.label(locator).view
  end
end

Generates methods to work with link controls

Examples:

link(:send_info_link, :id => 'sendInfoId')
# will generate 'send_info_link_text' and 'click_send_info_link' methods

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the label is found



195
196
197
198
199
200
201
202
203
204
205
# File 'lib/mohawk/accessors.rb', line 195

def link(name, locator)
  define_method("#{name}_text") do
    adapter.link(locator).value
  end
  define_method("click_#{name}") do
    adapter.link(locator).click
  end
  define_method("#{name}_view") do
    adapter.link(locator).view
  end
end

Generates methods to work with menu items

Examples:

menu_item(:some_menu_item, :path => ["Path", "To", "A", "Menu Item"])
# will generate a 'some_menu_item' method to select a menu item

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the label is found



216
217
218
219
220
# File 'lib/mohawk/accessors.rb', line 216

def menu_item(name, locator)
  define_method("#{name}") do
    adapter.menu_item(locator).select
  end
end

#parent(locator) ⇒ Object

Defines a locator indicating a child container that is a descendant of the top-level window

Examples:

parent(:id => 'someOtherContainer')

Parameters:

  • locator (Hash)

    for a more specific parent container



28
29
30
31
32
# File 'lib/mohawk/accessors.rb', line 28

def parent(locator)
  define_method(:parent_container) do
    locator
  end
end

#radio(name, locator) ⇒ Object

Generates methods to set a radio button as well as see if one is selected

Examples:

radio(:morning, :id => 'morningRadio')
# will generate 'morning' and 'morning?' methods

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the radio is found



154
155
156
157
158
159
160
161
162
163
164
# File 'lib/mohawk/accessors.rb', line 154

def radio(name, locator)
  define_method("#{name}") do
    adapter.radio(locator).set
  end
  define_method("#{name}?") do
    adapter.radio(locator).set?
  end
  define_method("#{name}_view") do
    adapter.radio(locator).view
  end
end

#spinner(name, locator) ⇒ Object

Generates methods for working with spinner controls

spinner(:age, :id => “ageId”)

# will generate 'age', 'age=' methods to get the spinner value and
# set the spinner value.

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the spinner control is found



304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'lib/mohawk/accessors.rb', line 304

def spinner(name, locator)
  define_method(name) do
    adapter.spinner(locator).value
  end
  define_method("#{name}=") do |value|
    adapter.spinner(locator).value = value
  end
  define_method("increment_#{name}") do
    adapter.spinner(locator).increment
  end
  define_method("decrement_#{name}") do
    adapter.spinner(locator).decrement
  end
  define_method("#{name}_view") do
    adapter.spinner(locator).view
  end
end

#table(name, locator) ⇒ Object Also known as: listview, list_view

Generates methods for working with table or list view controls

Aliases

  • listview

  • list_view

Examples:

table(:some_table, :id => "tableId")
# will generate 'some_table', 'some_table=', 'some_table_headers', 'select_some_table',
# find_some_table and 'some_table_view' methods to get an Enumerable of table rows,
# select a table item, return all of the headers and get the raw view

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the label is found



237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
# File 'lib/mohawk/accessors.rb', line 237

def table(name, locator)
  define_method("#{name}") do
    adapter.table(locator)
  end
  define_method("#{name}=") do |which_item|
    adapter.table(locator).select which_item
  end
  define_method("select_#{name}") do |hash_info|
    adapter.table(locator).select hash_info
  end
  define_method("find_#{name}") do |hash_info|
    adapter.table(locator).find_row_with hash_info
  end
  define_method("#{name}_headers") do
    adapter.table(locator).headers
  end
  define_method("#{name}_view") do
    adapter.table(locator).view
  end
end

#tabs(name, locator) ⇒ Object

Generates methods for working with tab controls

Examples:

tabs(:tab, :id => "tableId")
# will generate 'tab', 'tab=' and 'tab_items' methods to get the current tab,
# set the currently selected tab (Fixnum, String or RegEx) and to get the
# available tabs to be selected

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the tab control is found



333
334
335
336
337
338
339
340
341
342
343
# File 'lib/mohawk/accessors.rb', line 333

def tabs(name, locator)
  define_method(name) do
    adapter.tab_control(locator).value
  end
  define_method("#{name}=") do |which|
    adapter.tab_control(locator).selected_tab = which
  end
  define_method("#{name}_items") do
    adapter.tab_control(locator).items
  end
end

#text(name, locator) ⇒ Object

Generates methods to enter text into a text field, get its value and clear the text field

Examples:

text(:first_name, :id => 'textFieldId')
# will generate 'first_name', 'first_name=' and 'clear_first_name' methods

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the text is found



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/mohawk/accessors.rb', line 45

def text(name, locator)
  define_method("#{name}") do
    adapter.text(locator).value
  end
  define_method("#{name}=") do |text|
    adapter.text(locator).set text
  end
  define_method("clear_#{name}") do
    adapter.text(locator).clear
  end
  define_method("enter_#{name}") do |text|
    adapter.text(locator).enter text
  end
  define_method("#{name}_view") do
    adapter.text(locator).view
  end
end

#tree_view(name, locator) ⇒ Object Also known as: treeview, tree

Generates methods for working with tree view controls

Aliases

  • treeview

  • tree

Examples:

tree_view(:tree, :id => "treeId")
# will generate 'tree', 'tree=', 'tree_items', 'expand_tree_item' and 'collapse_tree_item'
# methods to get the tree value, set the tree value (index or string), get all of the
# items, expand an item (index or string) and collapse an item (index or string)

Parameters:

  • the (String)

    name used for the generated methods

  • locator (Hash)

    for how the label is found



273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
# File 'lib/mohawk/accessors.rb', line 273

def tree_view(name, locator)
  define_method("#{name}") do
    adapter.tree_view(locator).value
  end
  define_method("#{name}=") do |which_item|
    adapter.tree_view(locator).select which_item
  end
  define_method("#{name}_items") do
    adapter.tree_view(locator).items
  end
  define_method("expand_#{name}_item") do |which_item|
    adapter.tree_view(locator).expand which_item
  end
  define_method("collapse_#{name}_item") do |which_item|
    adapter.tree_view(locator).collapse which_item
  end
  define_method("#{name}_view") do
    adapter.tree_view(locator).view
  end
end

#window(locator) ⇒ Object

Defines the locator indicating the top-level window that will be used to find controls in the page

Examples:

window(:title => /Title of Some Window/)

Parameters:

  • locator (Hash)

    for the top-level window that hosts the page



13
14
15
16
17
# File 'lib/mohawk/accessors.rb', line 13

def window(locator)
  define_method(:which_window) do
    locator
  end
end