mohawk 0.1.4 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitmodules +3 -3
- data/Changelog +6 -1
- data/Rakefile +2 -3
- data/cucumber.yml +1 -1
- data/features/combo_box.feature +8 -0
- data/features/menu.feature +8 -0
- data/features/step_definitions/button_steps.rb +1 -1
- data/features/step_definitions/combo_box_steps.rb +13 -1
- data/features/step_definitions/control_steps.rb +1 -1
- data/features/step_definitions/menu_steps.rb +7 -2
- data/features/support/WindowsForms.exe +0 -0
- data/features/support/screens/main_screen.rb +3 -0
- data/features/table.feature +7 -7
- data/features/text.feature +4 -0
- data/lib/mohawk/accessors.rb +3 -0
- data/lib/mohawk/adapters/uia/button.rb +14 -0
- data/lib/mohawk/adapters/uia/checkbox.rb +22 -0
- data/lib/mohawk/adapters/uia/control.rb +83 -0
- data/lib/mohawk/adapters/uia/element_locator.rb +19 -0
- data/lib/mohawk/adapters/uia/menu_item.rb +48 -0
- data/lib/mohawk/adapters/uia/radio.rb +22 -0
- data/lib/mohawk/adapters/uia/select_list.rb +53 -0
- data/lib/mohawk/adapters/uia/spinner.rb +30 -0
- data/lib/mohawk/adapters/uia/tab_control.rb +26 -0
- data/lib/mohawk/adapters/uia/table.rb +62 -0
- data/lib/mohawk/adapters/uia/table_row.rb +73 -0
- data/lib/mohawk/adapters/uia/text_box.rb +47 -0
- data/lib/mohawk/adapters/uia/tree_view.rb +22 -0
- data/lib/mohawk/adapters/uia/value_control.rb +20 -0
- data/lib/mohawk/adapters/uia/window.rb +64 -0
- data/lib/mohawk/adapters/uia_adapter.rb +36 -50
- data/lib/mohawk/version.rb +1 -1
- data/lib/mohawk/waiter.rb +18 -0
- data/lib/mohawk/win_32.rb +12 -0
- data/lib/mohawk.rb +26 -14
- data/mohawk.gemspec +2 -2
- data/spec/lib/mohawk/adapters/uia/control_spec.rb +46 -0
- data/spec/lib/mohawk/adapters/uia/table_row_spec.rb +36 -0
- data/spec/lib/mohawk/waiter_spec.rb +39 -0
- data/spec/lib/mohawk_spec.rb +115 -92
- data/spec/lib/navigation_spec.rb +14 -20
- data/spec/spec_helper.rb +1 -1
- metadata +49 -67
- data/lib/mohawk/accessors/button.rb +0 -20
- data/lib/mohawk/accessors/checkbox.rb +0 -24
- data/lib/mohawk/accessors/combo.rb +0 -37
- data/lib/mohawk/accessors/control.rb +0 -24
- data/lib/mohawk/accessors/label.rb +0 -15
- data/lib/mohawk/accessors/link.rb +0 -9
- data/lib/mohawk/accessors/menu_item.rb +0 -21
- data/lib/mohawk/accessors/radio.rb +0 -19
- data/lib/mohawk/accessors/spinner.rb +0 -27
- data/lib/mohawk/accessors/table.rb +0 -69
- data/lib/mohawk/accessors/table_row.rb +0 -62
- data/lib/mohawk/accessors/tabs.rb +0 -30
- data/lib/mohawk/accessors/text.rb +0 -29
- data/lib/mohawk/accessors/tree_view.rb +0 -32
- data/spec/lib/mohawk/accessors/button_spec.rb +0 -45
- data/spec/lib/mohawk/accessors/checkbox_spec.rb +0 -46
- data/spec/lib/mohawk/accessors/combo_spec.rb +0 -119
- data/spec/lib/mohawk/accessors/control_spec.rb +0 -47
- data/spec/lib/mohawk/accessors/label_spec.rb +0 -29
- data/spec/lib/mohawk/accessors/link_spec.rb +0 -34
- data/spec/lib/mohawk/accessors/menu_spec.rb +0 -32
- data/spec/lib/mohawk/accessors/radio_spec.rb +0 -35
- data/spec/lib/mohawk/accessors/spinner_spec.rb +0 -43
- data/spec/lib/mohawk/accessors/table_row_spec.rb +0 -28
- data/spec/lib/mohawk/accessors/table_spec.rb +0 -262
- data/spec/lib/mohawk/accessors/tabs_spec.rb +0 -58
- data/spec/lib/mohawk/accessors/text_spec.rb +0 -51
- data/spec/lib/mohawk/accessors/tree_view_spec.rb +0 -98
- data/spec/lib/mohawk/adapters/uia_adapter_spec.rb +0 -55
- data/spec/table_stubber.rb +0 -55
@@ -1,21 +0,0 @@
|
|
1
|
-
module Mohawk
|
2
|
-
module Accessors
|
3
|
-
class MenuItem
|
4
|
-
def initialize(adapter, locator)
|
5
|
-
@adapter = adapter
|
6
|
-
@locator = locator
|
7
|
-
end
|
8
|
-
|
9
|
-
def select
|
10
|
-
menu_item.open
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
def menu_item
|
15
|
-
@locator[:path].reduce(@adapter.window) do |the_menu, menu_item|
|
16
|
-
the_menu.menu :text => menu_item
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Mohawk
|
2
|
-
module Accessors
|
3
|
-
class Spinner
|
4
|
-
attr_reader :view
|
5
|
-
|
6
|
-
def initialize(adapter, locator)
|
7
|
-
@view = adapter.window.spinner(locator)
|
8
|
-
end
|
9
|
-
|
10
|
-
def value
|
11
|
-
@view.value
|
12
|
-
end
|
13
|
-
|
14
|
-
def value=(value)
|
15
|
-
@view.set value
|
16
|
-
end
|
17
|
-
|
18
|
-
def increment
|
19
|
-
@view.increment
|
20
|
-
end
|
21
|
-
|
22
|
-
def decrement
|
23
|
-
@view.decrement
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
module Mohawk
|
2
|
-
module Accessors
|
3
|
-
class Table
|
4
|
-
attr_reader :view
|
5
|
-
|
6
|
-
include Enumerable
|
7
|
-
|
8
|
-
def initialize(adapter, locator)
|
9
|
-
@view = adapter.window.table(locator)
|
10
|
-
end
|
11
|
-
|
12
|
-
def select(which_item)
|
13
|
-
find_row_with(which_item).select
|
14
|
-
end
|
15
|
-
|
16
|
-
def add(which_item)
|
17
|
-
find_row_with(which_item).add_to_selection
|
18
|
-
end
|
19
|
-
|
20
|
-
def clear_all
|
21
|
-
view.selected_rows.each(&:clear)
|
22
|
-
end
|
23
|
-
|
24
|
-
def clear(which_item)
|
25
|
-
find_row_with(which_item).clear
|
26
|
-
end
|
27
|
-
|
28
|
-
def find_row_with(row_info)
|
29
|
-
found_row = case row_info
|
30
|
-
when Hash
|
31
|
-
find_by_hash(row_info)
|
32
|
-
when Fixnum
|
33
|
-
find_by_index(row_info)
|
34
|
-
when String
|
35
|
-
find_by_value(row_info)
|
36
|
-
end
|
37
|
-
raise "A row with #{row_info} was not found" unless found_row
|
38
|
-
found_row
|
39
|
-
end
|
40
|
-
|
41
|
-
def headers
|
42
|
-
RAutomation::Adapter::MsUia::UiaDll.table_headers(view.search_information)
|
43
|
-
end
|
44
|
-
|
45
|
-
def [](row)
|
46
|
-
TableRow.new(self, row)
|
47
|
-
end
|
48
|
-
|
49
|
-
def each
|
50
|
-
view.row_count.times.map do |row|
|
51
|
-
yield TableRow.new(self, row)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
private
|
56
|
-
def find_by_index(which_item)
|
57
|
-
self[which_item]
|
58
|
-
end
|
59
|
-
|
60
|
-
def find_by_value(which_item)
|
61
|
-
find { |r| r.row.value == which_item }
|
62
|
-
end
|
63
|
-
|
64
|
-
def find_by_hash(row_info)
|
65
|
-
find { |r| r.all_match? row_info }
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
module Mohawk
|
2
|
-
module Accessors
|
3
|
-
class TableRow
|
4
|
-
include RAutomation::Adapter::MsUia
|
5
|
-
|
6
|
-
attr_reader :row
|
7
|
-
|
8
|
-
def initialize(table, row_index)
|
9
|
-
@table = table
|
10
|
-
@row = Row.new(@table.view, :index => row_index)
|
11
|
-
end
|
12
|
-
|
13
|
-
def selected?
|
14
|
-
row.selected?
|
15
|
-
end
|
16
|
-
|
17
|
-
def select
|
18
|
-
UiaDll::table_single_select(@table.view.search_information, row.row)
|
19
|
-
self
|
20
|
-
end
|
21
|
-
|
22
|
-
def add_to_selection
|
23
|
-
row.select
|
24
|
-
self
|
25
|
-
end
|
26
|
-
|
27
|
-
def clear
|
28
|
-
row.clear
|
29
|
-
self
|
30
|
-
end
|
31
|
-
|
32
|
-
def cells
|
33
|
-
row.cells.map &:text
|
34
|
-
end
|
35
|
-
|
36
|
-
def all_match?(hash)
|
37
|
-
hash.all? do |key, value|
|
38
|
-
send(key) == "#{value}"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def value_from_header(name)
|
43
|
-
which_column = header_methods.index(name)
|
44
|
-
raise ArgumentError, "#{name} column does not exist in #{header_methods}" if which_column.nil?
|
45
|
-
Cell.new(row, :index => which_column).text
|
46
|
-
end
|
47
|
-
|
48
|
-
def method_missing(name, *args)
|
49
|
-
value_from_header name
|
50
|
-
end
|
51
|
-
|
52
|
-
def to_hash
|
53
|
-
{:text => row.text, :row => row.row }
|
54
|
-
end
|
55
|
-
|
56
|
-
private
|
57
|
-
def header_methods
|
58
|
-
@headers ||= @table.headers.map(&:to_method)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module Mohawk
|
2
|
-
module Accessors
|
3
|
-
class Tabs
|
4
|
-
attr_reader :view
|
5
|
-
|
6
|
-
def initialize(adapter, locator)
|
7
|
-
@view = adapter.window.tab_control(locator)
|
8
|
-
end
|
9
|
-
|
10
|
-
def value
|
11
|
-
view.value
|
12
|
-
end
|
13
|
-
|
14
|
-
def selected_tab=(which)
|
15
|
-
case which
|
16
|
-
when String
|
17
|
-
view.set(which)
|
18
|
-
when Regexp
|
19
|
-
view.set items.find {|t| t.match which }
|
20
|
-
else
|
21
|
-
view.select(which)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def items
|
26
|
-
@view.items.map(&:text)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Mohawk
|
2
|
-
module Accessors
|
3
|
-
class Text
|
4
|
-
attr_reader :view
|
5
|
-
|
6
|
-
def initialize(adapter, locator)
|
7
|
-
@adapter = adapter
|
8
|
-
@view = adapter.window.text_field(locator)
|
9
|
-
end
|
10
|
-
|
11
|
-
def value
|
12
|
-
@view.value
|
13
|
-
end
|
14
|
-
|
15
|
-
def set(text)
|
16
|
-
@view.set text
|
17
|
-
end
|
18
|
-
|
19
|
-
def clear
|
20
|
-
@view.clear
|
21
|
-
end
|
22
|
-
|
23
|
-
def enter(text)
|
24
|
-
text_window = @adapter.window.child(:hwnd => @view.hwnd)
|
25
|
-
text_window.send_keys text.split(//)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
module Mohawk
|
2
|
-
module Accessors
|
3
|
-
class TreeView
|
4
|
-
attr_reader :view
|
5
|
-
|
6
|
-
def initialize(adapter, locator)
|
7
|
-
@view = adapter.window.select_list(locator)
|
8
|
-
end
|
9
|
-
|
10
|
-
def value
|
11
|
-
@view.value
|
12
|
-
end
|
13
|
-
|
14
|
-
def items
|
15
|
-
@view.options.map &:text
|
16
|
-
end
|
17
|
-
|
18
|
-
def expand(which_item)
|
19
|
-
@view.expand which_item
|
20
|
-
end
|
21
|
-
|
22
|
-
def collapse(which_item)
|
23
|
-
@view.collapse which_item
|
24
|
-
end
|
25
|
-
|
26
|
-
def select(which_item)
|
27
|
-
@view.options[which_item].select if which_item.is_a? Integer
|
28
|
-
@view.option(text: which_item).select if which_item.is_a? String
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
class ButtonScreen
|
4
|
-
include Mohawk
|
5
|
-
window(:id => nil)
|
6
|
-
|
7
|
-
button(:easy, :id => "easyButton")
|
8
|
-
end
|
9
|
-
|
10
|
-
describe Mohawk::Accessors::Button do
|
11
|
-
let(:screen) { ButtonScreen.new }
|
12
|
-
let(:window) { double("RAutomation Window") }
|
13
|
-
let(:button_field) { double("Button Field") }
|
14
|
-
|
15
|
-
before(:each) do
|
16
|
-
RAutomation::Window.stub(:new).and_return(window)
|
17
|
-
window.should_receive(:button).with(:id => "easyButton").and_return(button_field)
|
18
|
-
end
|
19
|
-
|
20
|
-
context "accessing buttons" do
|
21
|
-
|
22
|
-
it "clicks buttons" do
|
23
|
-
button_field.should_receive(:click).and_yield
|
24
|
-
screen.easy
|
25
|
-
end
|
26
|
-
|
27
|
-
it "clicks buttons and yields to a block" do
|
28
|
-
button_field.should_receive(:click).and_yield
|
29
|
-
result = false
|
30
|
-
screen.easy do
|
31
|
-
result = true
|
32
|
-
end
|
33
|
-
result.should be_true
|
34
|
-
end
|
35
|
-
|
36
|
-
it "knows the value of the button" do
|
37
|
-
button_field.should_receive(:value).and_return "Button Value"
|
38
|
-
screen.easy_value.should eq("Button Value")
|
39
|
-
end
|
40
|
-
|
41
|
-
it "can dish out the view" do
|
42
|
-
screen.easy_view.should be(button_field)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
class CheckboxScreen
|
4
|
-
include Mohawk
|
5
|
-
window(:id => nil)
|
6
|
-
|
7
|
-
checkbox(:check_yourself, :id => "checkboxId")
|
8
|
-
end
|
9
|
-
|
10
|
-
describe Mohawk::Accessors::CheckBox do
|
11
|
-
let(:screen) { CheckboxScreen.new }
|
12
|
-
let(:window) { double("RAutomation Window") }
|
13
|
-
let(:checkbox_field) { double("CheckBox Field") }
|
14
|
-
|
15
|
-
before(:each) do
|
16
|
-
RAutomation::Window.stub(:new).and_return(window)
|
17
|
-
window.should_receive(:checkbox).with(:id => "checkboxId").and_return(checkbox_field)
|
18
|
-
end
|
19
|
-
|
20
|
-
context "accessing checkbox controls" do
|
21
|
-
|
22
|
-
it "knows if something is checked" do
|
23
|
-
checkbox_field.should_receive(:set?).and_return(true)
|
24
|
-
screen.check_yourself.should be_true
|
25
|
-
end
|
26
|
-
|
27
|
-
it "can get the text of the checkbox" do
|
28
|
-
checkbox_field.should_receive(:value).and_return("CheckBox Text")
|
29
|
-
screen.check_yourself_value.should eq("CheckBox Text")
|
30
|
-
end
|
31
|
-
|
32
|
-
it "can check items" do
|
33
|
-
checkbox_field.should_receive(:set)
|
34
|
-
screen.check_yourself = true
|
35
|
-
end
|
36
|
-
|
37
|
-
it "can uncheck items" do
|
38
|
-
checkbox_field.should_receive(:clear)
|
39
|
-
screen.check_yourself = false
|
40
|
-
end
|
41
|
-
|
42
|
-
it "can dish out the raw control" do
|
43
|
-
screen.check_yourself_view.should be(checkbox_field)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,119 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
class ComboBoxScreen
|
4
|
-
include Mohawk
|
5
|
-
window(:id => nil)
|
6
|
-
|
7
|
-
combo_box(:nacho_combos, :id => "comboBoxId")
|
8
|
-
dropdown(:my_default, :id => "defaultAliasId")
|
9
|
-
dropdown(:my_combobox, :id => "comboboxAliasId")
|
10
|
-
dropdown(:my_dropdown, :id => "dropdownAliasId")
|
11
|
-
dropdown(:my_drop_down, :id => "drop_downAliasId")
|
12
|
-
dropdown(:my_select_list, :id => "select_listAliasId")
|
13
|
-
end
|
14
|
-
|
15
|
-
class Option
|
16
|
-
def initialize(text)
|
17
|
-
@text = text
|
18
|
-
end
|
19
|
-
|
20
|
-
def text
|
21
|
-
@text
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe Mohawk::Accessors::Combo do
|
26
|
-
let(:screen) { ComboBoxScreen.new }
|
27
|
-
let(:window) { double("RAutomation Window") }
|
28
|
-
let(:combo_box_field) { double("ComboBox Field") }
|
29
|
-
let(:options) { double("ComboBox::Options").as_null_object }
|
30
|
-
|
31
|
-
before(:each) do
|
32
|
-
RAutomation::Window.stub(:new).and_return(window)
|
33
|
-
combo_box_field.stub(:options).and_return(options)
|
34
|
-
end
|
35
|
-
|
36
|
-
context "accessing combo box controls" do
|
37
|
-
|
38
|
-
before(:each) do
|
39
|
-
window.should_receive(:select_list).with(:id => "comboBoxId").and_return(combo_box_field)
|
40
|
-
end
|
41
|
-
|
42
|
-
it "knows the current selected item" do
|
43
|
-
combo_box_field.should_receive(:value).and_return("Selected Item")
|
44
|
-
screen.nacho_combos.should eq("Selected Item")
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'knows the currently selected items' do
|
48
|
-
combo_box_field.should_receive(:values).and_return(['first', 'second'])
|
49
|
-
screen.nacho_combos_selections.should eq(['first', 'second'])
|
50
|
-
end
|
51
|
-
|
52
|
-
it "selects items by index" do
|
53
|
-
options.should_receive(:[]).with(3).and_return(double.as_null_object)
|
54
|
-
screen.nacho_combos = 3
|
55
|
-
end
|
56
|
-
|
57
|
-
it "selects items by value" do
|
58
|
-
option = double('combo option')
|
59
|
-
combo_box_field.should_receive(:option).with(text: "Desired Value").and_return(option)
|
60
|
-
option.should_receive(:select)
|
61
|
-
|
62
|
-
screen.nacho_combos = "Desired Value"
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'select is an alias for equals' do
|
66
|
-
option = double('combo option')
|
67
|
-
combo_box_field.should_receive(:option).with(text: 'Desired Value').and_return(option)
|
68
|
-
option.should_receive(:select)
|
69
|
-
|
70
|
-
screen.select_nacho_combos 'Desired Value'
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'clears items by index' do
|
74
|
-
option = double('combo option')
|
75
|
-
options.should_receive(:[]).with(3).and_return(option)
|
76
|
-
option.should_receive(:clear)
|
77
|
-
|
78
|
-
screen.clear_nacho_combos 3
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'clears items by value' do
|
82
|
-
option = double('combo option')
|
83
|
-
combo_box_field.should_receive(:option).with(text: 'Desired Value').and_return(option)
|
84
|
-
option.should_receive(:clear)
|
85
|
-
|
86
|
-
screen.clear_nacho_combos 'Desired Value'
|
87
|
-
end
|
88
|
-
|
89
|
-
it "is aware of the available options" do
|
90
|
-
options = [Option.new("first"), Option.new("second"), Option.new("third")]
|
91
|
-
combo_box_field.should_receive(:options).and_return(options)
|
92
|
-
screen.nacho_combos_options.should eq(["first", "second", "third"])
|
93
|
-
end
|
94
|
-
|
95
|
-
it "can dish out the combo view" do
|
96
|
-
screen.nacho_combos_view.should be(combo_box_field)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
context "aliases for combo_box" do
|
101
|
-
let(:null_combo) { double("Null ComboBox Field").as_null_object }
|
102
|
-
let(:combo_aliases) { ["default", "combobox", "dropdown", "drop_down", "select_list"] }
|
103
|
-
|
104
|
-
def expected_alias(id)
|
105
|
-
window.should_receive(:select_list).with(:id => "#{id}AliasId").ordered.and_return(null_combo)
|
106
|
-
end
|
107
|
-
|
108
|
-
it "has many aliases" do
|
109
|
-
combo_aliases.each do |which_alias|
|
110
|
-
expected_alias which_alias
|
111
|
-
end
|
112
|
-
|
113
|
-
combo_aliases.each do |which_alias|
|
114
|
-
screen.send "my_#{which_alias}"
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
class ControlScreen
|
4
|
-
include Mohawk
|
5
|
-
window(:id => nil)
|
6
|
-
|
7
|
-
control(:control_yourself, :id => "controlId")
|
8
|
-
end
|
9
|
-
|
10
|
-
describe Mohawk::Accessors::Control do
|
11
|
-
let(:screen) { ControlScreen.new }
|
12
|
-
let(:window) { double("RAutomation Window") }
|
13
|
-
let(:control) { double("Control Window") }
|
14
|
-
|
15
|
-
before(:each) do
|
16
|
-
RAutomation::Window.stub(:new).and_return(window)
|
17
|
-
window.should_receive(:value_control).with(:id => 'controlId').and_return(control)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "can get the value" do
|
21
|
-
control.should_receive(:value).and_return('expected value')
|
22
|
-
screen.control_yourself_value.should eq('expected value')
|
23
|
-
end
|
24
|
-
|
25
|
-
it "can set the value" do
|
26
|
-
control.should_receive(:set).with('new value')
|
27
|
-
screen.control_yourself = 'new value'
|
28
|
-
end
|
29
|
-
|
30
|
-
it "can click the control" do
|
31
|
-
control.should_receive(:click).and_yield
|
32
|
-
screen.click_control_yourself
|
33
|
-
end
|
34
|
-
|
35
|
-
it "can give a custom block to the click method" do
|
36
|
-
control.should_receive(:click).and_yield
|
37
|
-
result = false
|
38
|
-
screen.click_control_yourself do
|
39
|
-
result = true
|
40
|
-
end
|
41
|
-
result.should be_true
|
42
|
-
end
|
43
|
-
|
44
|
-
it "can work with the raw view" do
|
45
|
-
screen.control_yourself_view.should be(control)
|
46
|
-
end
|
47
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
class LabelScreen
|
4
|
-
include Mohawk
|
5
|
-
|
6
|
-
window(:title => nil)
|
7
|
-
label(:label_control, :id => "labelID")
|
8
|
-
end
|
9
|
-
|
10
|
-
describe Mohawk::Accessors::Label do
|
11
|
-
let(:screen) { LabelScreen.new }
|
12
|
-
let(:window) { double("RAutomation Window") }
|
13
|
-
let(:label_control) { double("Label Control") }
|
14
|
-
|
15
|
-
before(:each) do
|
16
|
-
RAutomation::Window.stub(:new).and_return(window)
|
17
|
-
window.should_receive(:label).with(:id => "labelID").and_return(label_control)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "can retrieve the label value" do
|
21
|
-
label_control.should_receive(:value).and_return("some string")
|
22
|
-
screen.label_control.should eq("some string")
|
23
|
-
end
|
24
|
-
|
25
|
-
it "can dish out the view" do
|
26
|
-
screen.label_control_view.should eq(label_control)
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
class LinkScreen
|
4
|
-
include Mohawk
|
5
|
-
|
6
|
-
window(:title => nil)
|
7
|
-
link(:link_control, :id => "linkID")
|
8
|
-
end
|
9
|
-
|
10
|
-
describe Mohawk::Accessors::Link do
|
11
|
-
let(:screen) { LinkScreen.new }
|
12
|
-
let(:window) { double("RAutomation Window") }
|
13
|
-
let(:link_control) { double("Link Control") }
|
14
|
-
|
15
|
-
before(:each) do
|
16
|
-
RAutomation::Window.stub(:new).and_return(window)
|
17
|
-
window.should_receive(:label).with(:id => "linkID").and_return(link_control)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "can retrieve the link text" do
|
21
|
-
link_control.should_receive(:value).and_return("some string")
|
22
|
-
screen.link_control_text.should eq("some string")
|
23
|
-
end
|
24
|
-
|
25
|
-
it "can click on the link" do
|
26
|
-
link_control.should_receive(:click)
|
27
|
-
screen.click_link_control
|
28
|
-
end
|
29
|
-
|
30
|
-
it "can dish out the view" do
|
31
|
-
screen.link_control_view.should be(link_control)
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
class MenuItemScreen
|
4
|
-
include Mohawk
|
5
|
-
window(:id => nil)
|
6
|
-
|
7
|
-
menu_item(:the_menu_item, :path => ["Path", "To", "Some Menu", "Item"])
|
8
|
-
end
|
9
|
-
|
10
|
-
describe Mohawk::Accessors::MenuItem do
|
11
|
-
let(:screen) { MenuItemScreen.new }
|
12
|
-
let(:window) { double("RAutomation Window") }
|
13
|
-
let(:menu) { double("RAutomation Menu Item") }
|
14
|
-
|
15
|
-
before(:each) do
|
16
|
-
RAutomation::Window.stub(:new).and_return(window)
|
17
|
-
end
|
18
|
-
|
19
|
-
context "selecting menu items" do
|
20
|
-
before(:each) do
|
21
|
-
window.should_receive(:menu).with(:text => "Path").and_return(menu)
|
22
|
-
end
|
23
|
-
|
24
|
-
it "can open a menu item" do
|
25
|
-
menu.should_receive(:menu).with(:text => "To").and_return(menu)
|
26
|
-
menu.should_receive(:menu).with(:text => "Some Menu").and_return(menu)
|
27
|
-
menu.should_receive(:menu).with(:text => "Item").and_return(menu)
|
28
|
-
menu.should_receive(:open)
|
29
|
-
screen.the_menu_item
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
class RadioScreen
|
4
|
-
include Mohawk
|
5
|
-
window(:id => nil)
|
6
|
-
|
7
|
-
radio(:radio_radio, :id => "radioId")
|
8
|
-
end
|
9
|
-
|
10
|
-
describe Mohawk::Accessors::Radio do
|
11
|
-
let(:screen) { RadioScreen.new }
|
12
|
-
let(:window) { double("RAutomation Window") }
|
13
|
-
let(:radio_control) { double("Elvis Costello's Radio Radio") }
|
14
|
-
|
15
|
-
before(:each) do
|
16
|
-
RAutomation::Window.stub(:new).and_return(window)
|
17
|
-
window.should_receive(:radio).with(:id => "radioId").and_return(radio_control)
|
18
|
-
end
|
19
|
-
|
20
|
-
context "working with radio controls" do
|
21
|
-
it "can set the radio control" do
|
22
|
-
radio_control.should_receive(:set)
|
23
|
-
screen.radio_radio
|
24
|
-
end
|
25
|
-
|
26
|
-
it "knows if the radio is selected" do
|
27
|
-
radio_control.should_receive(:set?)
|
28
|
-
screen.radio_radio?
|
29
|
-
end
|
30
|
-
|
31
|
-
it "can dish out the raw view" do
|
32
|
-
screen.radio_radio_view.should be(radio_control)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|