mohawk 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/.gitignore +24 -17
  2. data/.travis.yml +2 -0
  3. data/Changelog +36 -20
  4. data/Gemfile +3 -3
  5. data/Guardfile +16 -0
  6. data/LICENSE.txt +21 -21
  7. data/README.md +60 -56
  8. data/Rakefile +18 -18
  9. data/features/control.feature +5 -0
  10. data/features/label.feature +4 -4
  11. data/features/link.feature +9 -0
  12. data/features/mohawk.feature +4 -1
  13. data/features/navigation.feature +9 -0
  14. data/features/step_definitions/control_steps.rb +3 -0
  15. data/features/step_definitions/label_steps.rb +3 -3
  16. data/features/step_definitions/link_steps.rb +3 -0
  17. data/features/step_definitions/mohawk_steps.rb +4 -0
  18. data/features/step_definitions/navigation_steps.rb +15 -0
  19. data/features/step_definitions/table_steps.rb +19 -3
  20. data/features/step_definitions/tree_view_steps.rb +4 -0
  21. data/features/support/WindowsForms.exe +0 -0
  22. data/features/support/app/WindowsForms/WindowsForms/AboutBox.Designer.cs +80 -0
  23. data/features/support/app/WindowsForms/WindowsForms/AboutBox.cs +103 -0
  24. data/features/support/app/WindowsForms/WindowsForms/AboutBox.resx +120 -0
  25. data/features/support/app/WindowsForms/WindowsForms/AutomatableMonthCalendar.cs +59 -0
  26. data/features/support/app/WindowsForms/WindowsForms/AutomationHelpers/AutomationProvider.cs +91 -0
  27. data/features/support/app/WindowsForms/WindowsForms/DataEntryForm.Designer.cs +187 -0
  28. data/features/support/app/WindowsForms/WindowsForms/DataEntryForm.cs +46 -0
  29. data/features/support/app/WindowsForms/WindowsForms/DataEntryForm.resx +120 -0
  30. data/features/support/app/WindowsForms/WindowsForms/MainFormWindow.Designer.cs +526 -0
  31. data/features/support/app/WindowsForms/WindowsForms/MainFormWindow.cs +93 -0
  32. data/features/support/app/WindowsForms/WindowsForms/MainFormWindow.resx +123 -0
  33. data/features/support/app/WindowsForms/WindowsForms/PersonForm.Designer.cs +119 -0
  34. data/features/support/app/WindowsForms/WindowsForms/PersonForm.cs +34 -0
  35. data/features/support/app/WindowsForms/WindowsForms/PersonForm.resx +120 -0
  36. data/features/support/app/WindowsForms/WindowsForms/Program.cs +21 -0
  37. data/features/support/app/WindowsForms/WindowsForms/Properties/AssemblyInfo.cs +36 -0
  38. data/features/support/app/WindowsForms/WindowsForms/Properties/Resources.Designer.cs +71 -0
  39. data/features/support/app/WindowsForms/WindowsForms/Properties/Resources.resx +117 -0
  40. data/features/support/app/WindowsForms/WindowsForms/Properties/Settings.Designer.cs +30 -0
  41. data/features/support/app/WindowsForms/WindowsForms/Properties/Settings.settings +7 -0
  42. data/features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.Designer.cs +93 -0
  43. data/features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.cs +19 -0
  44. data/features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.resx +120 -0
  45. data/features/support/app/WindowsForms/WindowsForms/WindowsForms.csproj +132 -0
  46. data/features/support/app/WindowsForms/WindowsForms.sln +30 -0
  47. data/features/support/env.rb +28 -17
  48. data/features/support/screens/about_screen.rb +7 -0
  49. data/features/support/screens/data_entry_form.rb +5 -0
  50. data/features/support/screens/main_screen.rb +3 -0
  51. data/features/table.feature +14 -0
  52. data/features/tree_view.feature +3 -0
  53. data/lib/mohawk/accessors/button.rb +6 -4
  54. data/lib/mohawk/accessors/checkbox.rb +7 -5
  55. data/lib/mohawk/accessors/combo.rb +7 -5
  56. data/lib/mohawk/accessors/control.rb +23 -0
  57. data/lib/mohawk/accessors/label.rb +15 -13
  58. data/lib/mohawk/accessors/link.rb +9 -0
  59. data/lib/mohawk/accessors/radio.rb +5 -3
  60. data/lib/mohawk/accessors/table.rb +12 -31
  61. data/lib/mohawk/accessors/table_row.rb +43 -0
  62. data/lib/mohawk/accessors/text.rb +7 -5
  63. data/lib/mohawk/accessors/tree_view.rb +9 -7
  64. data/lib/mohawk/accessors.rb +66 -7
  65. data/lib/mohawk/adapters/uia_adapter.rb +8 -0
  66. data/lib/mohawk/core_ext/string.rb +5 -0
  67. data/lib/mohawk/navigation.rb +6 -2
  68. data/lib/mohawk/version.rb +3 -3
  69. data/lib/mohawk.rb +76 -69
  70. data/mohawk.gemspec +32 -26
  71. data/spec/lib/mohawk/accessors/button_spec.rb +4 -0
  72. data/spec/lib/mohawk/accessors/checkbox_spec.rb +4 -1
  73. data/spec/lib/mohawk/accessors/combo_spec.rb +3 -0
  74. data/spec/lib/mohawk/accessors/control_spec.rb +38 -0
  75. data/spec/lib/mohawk/accessors/label_spec.rb +29 -25
  76. data/spec/lib/mohawk/accessors/link_spec.rb +34 -0
  77. data/spec/lib/mohawk/accessors/radio_spec.rb +4 -0
  78. data/spec/lib/mohawk/accessors/table_spec.rb +52 -7
  79. data/spec/lib/mohawk/accessors/text_spec.rb +4 -0
  80. data/spec/lib/mohawk/accessors/tree_view_spec.rb +5 -0
  81. data/spec/lib/mohawk_spec.rb +19 -0
  82. data/spec/lib/navigation_spec.rb +5 -0
  83. metadata +175 -6
@@ -0,0 +1,38 @@
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)
32
+ screen.click_control_yourself
33
+ end
34
+
35
+ it "can work with the raw view" do
36
+ screen.control_yourself_view.should be(control)
37
+ end
38
+ end
@@ -1,25 +1,29 @@
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
- end
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
@@ -0,0 +1,34 @@
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
@@ -27,5 +27,9 @@ describe Mohawk::Accessors::Radio do
27
27
  radio_control.should_receive(:set?)
28
28
  screen.radio_radio?
29
29
  end
30
+
31
+ it "can dish out the raw view" do
32
+ screen.radio_radio_view.should be(radio_control)
33
+ end
30
34
  end
31
35
  end
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'ffi'
2
3
 
3
4
  class TableScreen
4
5
  include Mohawk
@@ -20,6 +21,19 @@ class FakeTableRow
20
21
  end
21
22
  end
22
23
 
24
+ module FFI
25
+ module Library
26
+ def ffi_lib(*names)
27
+ end
28
+
29
+ def ffi_libraries
30
+ end
31
+
32
+ def attach_function(name, func, args, returns = nil, options = nil)
33
+ end
34
+ end
35
+ end
36
+
23
37
  describe Mohawk::Accessors::Table do
24
38
  let(:screen) { TableScreen.new }
25
39
  let(:window) { double("RAutomation Window") }
@@ -34,24 +48,36 @@ describe Mohawk::Accessors::Table do
34
48
  window.should_receive(:table).with(:id => "tableId").and_return(table)
35
49
  end
36
50
 
37
- it "can set a value by index" do
51
+ it "can select a row by index" do
38
52
  table.should_receive(:select).with(1)
39
53
  screen.top = 1
40
54
  end
41
55
 
56
+ it "can select a row by value" do
57
+ table.should_receive(:select).with "John Elway"
58
+ screen.top = "John Elway"
59
+ end
60
+
42
61
  it "has rows" do
43
62
  fake_rows = [FakeTableRow.new("First Row", 0), FakeTableRow.new("Second Row", 1)]
44
63
  expected_rows = fake_rows.map {|r| {:text => r.text, :row => r.row} }
45
64
  table.should_receive(:rows).and_return(fake_rows)
46
- expected_rows.should eq(screen.top_rows)
65
+ screen.top.map(&:to_hash).should eq(expected_rows)
66
+ end
67
+
68
+ it "has headers" do
69
+ expected_headers = ["first header", "second header"]
70
+ table.should_receive(:search_information).and_return(1234)
71
+ RAutomation::Adapter::MsUia::UiaDll.should_receive(:table_headers).with(1234).and_return(expected_headers)
72
+ screen.top_headers.should eq(expected_headers)
47
73
  end
48
74
 
49
75
  it "can return the raw view" do
50
76
  screen.top_view.should_not be_nil
51
77
  end
52
78
 
53
- describe Mohawk::Accessors::Table::Row do
54
- let(:table_row) { double("RAutomation Table::Row") }
79
+ describe Mohawk::Accessors::TableRow do
80
+ let(:table_row) { double("RAutomation TableRow") }
55
81
 
56
82
  before(:each) do
57
83
  table.should_receive(:row).with(:index => 0).and_return(table_row)
@@ -59,18 +85,37 @@ describe Mohawk::Accessors::Table do
59
85
  end
60
86
 
61
87
  it "can get an individual row" do
62
- screen.top_row(0).should_not be_nil
88
+ screen.top[0].should_not be_nil
63
89
  end
64
90
 
65
91
  it "knows if it is selected" do
66
92
  table.should_receive(:selected?).with(0).and_return(true)
67
- screen.top_row(0).should be_selected
93
+ screen.top[0].should be_selected
94
+ end
95
+
96
+ it "can be selected" do
97
+ table.should_receive(:select).with(0)
98
+ screen.top[0].select
68
99
  end
69
100
 
70
101
  it "has cells" do
71
102
  expected_cells = [FakeTableRow.new("Item 1", 0), FakeTableRow.new("Item 2", 1)]
72
103
  table_row.should_receive(:cells).and_return(expected_cells)
73
- screen.top_row(0).cells.should eq expected_cells.map &:text
104
+ screen.top[0].cells.should eq expected_cells.map &:text
105
+ end
106
+
107
+ it "can get cell values by header name" do
108
+ RAutomation::Adapter::MsUia::UiaDll.should_receive(:table_headers).and_return(["First Header", "Second Header"])
109
+ table.should_receive(:search_information)
110
+ expected_cells = [FakeTableRow.new("Item 1", 0), FakeTableRow.new("Item 2", 1)]
111
+ table_row.should_receive(:cells).and_return(expected_cells)
112
+ screen.top[0].second_header.should eq("Item 2")
113
+ end
114
+
115
+ it "clearly lets you know if a header is not there" do
116
+ RAutomation::Adapter::MsUia::UiaDll.should_receive(:table_headers).and_return(["First Header", "Second Header"])
117
+ table.should_receive(:search_information)
118
+ lambda { screen.top[0].does_not_exist }.should raise_error ArgumentError, "does_not_exist column does not exist in [:first_header, :second_header]"
74
119
  end
75
120
  end
76
121
  end
@@ -43,5 +43,9 @@ describe Mohawk::Accessors::Text do
43
43
  screen.enter_text_id "entered text"
44
44
  end
45
45
 
46
+ it "can dish out the text view" do
47
+ screen.text_id_view.should be(text_field)
48
+ end
49
+
46
50
  end
47
51
  end
@@ -63,6 +63,11 @@ describe Mohawk::Accessors::TreeView do
63
63
  tree_field.should_receive(:collapse).with("some item")
64
64
  screen.collapse_oak_item "some item"
65
65
  end
66
+
67
+ it "can work with the raw view" do
68
+ tree_field.should_receive(:visible?).and_return(true)
69
+ screen.oak_view.should be_visible
70
+ end
66
71
  end
67
72
 
68
73
  context "aliases for tree_view" do
@@ -16,6 +16,11 @@ describe Mohawk do
16
16
  TestScreen.new
17
17
  end
18
18
 
19
+ it "can accept additional locator information" do
20
+ RAutomation::Window.should_receive(:new).with(:title => "Some Window Title", :extra => 'test', :adapter => :ms_uia).and_return(window)
21
+ TestScreen.new :extra => 'test'
22
+ end
23
+
19
24
  context "using the UI Automation adapter" do
20
25
  before(:each) do
21
26
  RAutomation::Window.stub(:new).and_return(window)
@@ -47,6 +52,20 @@ describe Mohawk do
47
52
  screen.wait_until {screen.present?}
48
53
  end
49
54
 
55
+ it "can wait for a control" do
56
+ found_control = double("control to wait for")
57
+ found_control.should_receive(:exist?).and_return(true)
58
+ window.should_receive(:control).with(:id => "whatever", :index => 0).and_return(found_control)
59
+ screen.wait_for_control(:id => "whatever", :index => 0)
60
+ end
61
+
62
+ it "tells you what you were waiting for if it fails" do
63
+ RAutomation::WaitHelper.should_receive(:wait_until).and_raise("you should have caught me")
64
+ locator = {:id => "whatever", :index => 0}
65
+ window.should_receive(:control).with(locator)
66
+ lambda { screen.wait_for_control(:id => "whatever", :index => 0) }.should raise_error(Exception, "A control with #{locator} was not found")
67
+ end
68
+
50
69
  it "knows if a window has text" do
51
70
  window.should_receive(:text).and_return("lots of text but I wanted to find blardy blar blar")
52
71
  screen.should have_text "blardy blar"
@@ -31,4 +31,9 @@ describe Mohawk::Navigation do
31
31
  screen.was_used
32
32
  end
33
33
  end
34
+
35
+ it "can pass additional locator information to the screen" do
36
+ NavigationTestScreen.should_receive(:new).with(:extra => 'info').and_return(screen)
37
+ on(NavigationTestScreen, :extra => 'info')
38
+ end
34
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mohawk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-26 00:00:00.000000000 Z
12
+ date: 2013-04-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rautomation
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.8.0
21
+ version: 0.9.1
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,39 @@ dependencies:
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.8.0
29
+ version: 0.9.1
30
+ - !ruby/object:Gem::Dependency
31
+ name: require_all
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: page_navigation
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0.7'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0.7'
30
62
  - !ruby/object:Gem::Dependency
31
63
  name: cucumber
32
64
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +82,7 @@ dependencies:
50
82
  requirements:
51
83
  - - ! '>='
52
84
  - !ruby/object:Gem::Version
53
- version: '0'
85
+ version: 2.12.0
54
86
  type: :development
55
87
  prerelease: false
56
88
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +90,7 @@ dependencies:
58
90
  requirements:
59
91
  - - ! '>='
60
92
  - !ruby/object:Gem::Version
61
- version: '0'
93
+ version: 2.12.0
62
94
  - !ruby/object:Gem::Dependency
63
95
  name: rake
64
96
  requirement: !ruby/object:Gem::Requirement
@@ -91,6 +123,70 @@ dependencies:
91
123
  - - ! '>='
92
124
  - !ruby/object:Gem::Version
93
125
  version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rb-fsevent
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 0.9.1
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 0.9.1
142
+ - !ruby/object:Gem::Dependency
143
+ name: guard
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: guard-rspec
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: terminal-notifier-guard
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
94
190
  description: High level wrapper around windows applications
95
191
  email:
96
192
  - levi@leviwilson.com
@@ -102,6 +198,7 @@ files:
102
198
  - .travis.yml
103
199
  - Changelog
104
200
  - Gemfile
201
+ - Guardfile
105
202
  - LICENSE.txt
106
203
  - README.md
107
204
  - Rakefile
@@ -109,22 +206,54 @@ files:
109
206
  - features/button.feature
110
207
  - features/checkbox.feature
111
208
  - features/combo_box.feature
209
+ - features/control.feature
112
210
  - features/label.feature
211
+ - features/link.feature
113
212
  - features/menu.feature
114
213
  - features/mohawk.feature
214
+ - features/navigation.feature
115
215
  - features/radio.feature
116
216
  - features/step_definitions/button_steps.rb
117
217
  - features/step_definitions/checkbox_steps.rb
118
218
  - features/step_definitions/combo_box_steps.rb
219
+ - features/step_definitions/control_steps.rb
119
220
  - features/step_definitions/label_steps.rb
221
+ - features/step_definitions/link_steps.rb
120
222
  - features/step_definitions/menu_steps.rb
121
223
  - features/step_definitions/mohawk_steps.rb
224
+ - features/step_definitions/navigation_steps.rb
122
225
  - features/step_definitions/radio_steps.rb
123
226
  - features/step_definitions/table_steps.rb
124
227
  - features/step_definitions/text_steps.rb
125
228
  - features/step_definitions/tree_view_steps.rb
126
229
  - features/support/WindowsForms.exe
230
+ - features/support/app/WindowsForms/WindowsForms.sln
231
+ - features/support/app/WindowsForms/WindowsForms/AboutBox.Designer.cs
232
+ - features/support/app/WindowsForms/WindowsForms/AboutBox.cs
233
+ - features/support/app/WindowsForms/WindowsForms/AboutBox.resx
234
+ - features/support/app/WindowsForms/WindowsForms/AutomatableMonthCalendar.cs
235
+ - features/support/app/WindowsForms/WindowsForms/AutomationHelpers/AutomationProvider.cs
236
+ - features/support/app/WindowsForms/WindowsForms/DataEntryForm.Designer.cs
237
+ - features/support/app/WindowsForms/WindowsForms/DataEntryForm.cs
238
+ - features/support/app/WindowsForms/WindowsForms/DataEntryForm.resx
239
+ - features/support/app/WindowsForms/WindowsForms/MainFormWindow.Designer.cs
240
+ - features/support/app/WindowsForms/WindowsForms/MainFormWindow.cs
241
+ - features/support/app/WindowsForms/WindowsForms/MainFormWindow.resx
242
+ - features/support/app/WindowsForms/WindowsForms/PersonForm.Designer.cs
243
+ - features/support/app/WindowsForms/WindowsForms/PersonForm.cs
244
+ - features/support/app/WindowsForms/WindowsForms/PersonForm.resx
245
+ - features/support/app/WindowsForms/WindowsForms/Program.cs
246
+ - features/support/app/WindowsForms/WindowsForms/Properties/AssemblyInfo.cs
247
+ - features/support/app/WindowsForms/WindowsForms/Properties/Resources.Designer.cs
248
+ - features/support/app/WindowsForms/WindowsForms/Properties/Resources.resx
249
+ - features/support/app/WindowsForms/WindowsForms/Properties/Settings.Designer.cs
250
+ - features/support/app/WindowsForms/WindowsForms/Properties/Settings.settings
251
+ - features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.Designer.cs
252
+ - features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.cs
253
+ - features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.resx
254
+ - features/support/app/WindowsForms/WindowsForms/WindowsForms.csproj
127
255
  - features/support/env.rb
256
+ - features/support/screens/about_screen.rb
128
257
  - features/support/screens/data_entry_form.rb
129
258
  - features/support/screens/main_screen.rb
130
259
  - features/support/string.rb
@@ -136,20 +265,26 @@ files:
136
265
  - lib/mohawk/accessors/button.rb
137
266
  - lib/mohawk/accessors/checkbox.rb
138
267
  - lib/mohawk/accessors/combo.rb
268
+ - lib/mohawk/accessors/control.rb
139
269
  - lib/mohawk/accessors/label.rb
270
+ - lib/mohawk/accessors/link.rb
140
271
  - lib/mohawk/accessors/menu_item.rb
141
272
  - lib/mohawk/accessors/radio.rb
142
273
  - lib/mohawk/accessors/table.rb
274
+ - lib/mohawk/accessors/table_row.rb
143
275
  - lib/mohawk/accessors/text.rb
144
276
  - lib/mohawk/accessors/tree_view.rb
145
277
  - lib/mohawk/adapters/uia_adapter.rb
278
+ - lib/mohawk/core_ext/string.rb
146
279
  - lib/mohawk/navigation.rb
147
280
  - lib/mohawk/version.rb
148
281
  - mohawk.gemspec
149
282
  - spec/lib/mohawk/accessors/button_spec.rb
150
283
  - spec/lib/mohawk/accessors/checkbox_spec.rb
151
284
  - spec/lib/mohawk/accessors/combo_spec.rb
285
+ - spec/lib/mohawk/accessors/control_spec.rb
152
286
  - spec/lib/mohawk/accessors/label_spec.rb
287
+ - spec/lib/mohawk/accessors/link_spec.rb
153
288
  - spec/lib/mohawk/accessors/menu_spec.rb
154
289
  - spec/lib/mohawk/accessors/radio_spec.rb
155
290
  - spec/lib/mohawk/accessors/table_spec.rb
@@ -186,22 +321,54 @@ test_files:
186
321
  - features/button.feature
187
322
  - features/checkbox.feature
188
323
  - features/combo_box.feature
324
+ - features/control.feature
189
325
  - features/label.feature
326
+ - features/link.feature
190
327
  - features/menu.feature
191
328
  - features/mohawk.feature
329
+ - features/navigation.feature
192
330
  - features/radio.feature
193
331
  - features/step_definitions/button_steps.rb
194
332
  - features/step_definitions/checkbox_steps.rb
195
333
  - features/step_definitions/combo_box_steps.rb
334
+ - features/step_definitions/control_steps.rb
196
335
  - features/step_definitions/label_steps.rb
336
+ - features/step_definitions/link_steps.rb
197
337
  - features/step_definitions/menu_steps.rb
198
338
  - features/step_definitions/mohawk_steps.rb
339
+ - features/step_definitions/navigation_steps.rb
199
340
  - features/step_definitions/radio_steps.rb
200
341
  - features/step_definitions/table_steps.rb
201
342
  - features/step_definitions/text_steps.rb
202
343
  - features/step_definitions/tree_view_steps.rb
203
344
  - features/support/WindowsForms.exe
345
+ - features/support/app/WindowsForms/WindowsForms.sln
346
+ - features/support/app/WindowsForms/WindowsForms/AboutBox.Designer.cs
347
+ - features/support/app/WindowsForms/WindowsForms/AboutBox.cs
348
+ - features/support/app/WindowsForms/WindowsForms/AboutBox.resx
349
+ - features/support/app/WindowsForms/WindowsForms/AutomatableMonthCalendar.cs
350
+ - features/support/app/WindowsForms/WindowsForms/AutomationHelpers/AutomationProvider.cs
351
+ - features/support/app/WindowsForms/WindowsForms/DataEntryForm.Designer.cs
352
+ - features/support/app/WindowsForms/WindowsForms/DataEntryForm.cs
353
+ - features/support/app/WindowsForms/WindowsForms/DataEntryForm.resx
354
+ - features/support/app/WindowsForms/WindowsForms/MainFormWindow.Designer.cs
355
+ - features/support/app/WindowsForms/WindowsForms/MainFormWindow.cs
356
+ - features/support/app/WindowsForms/WindowsForms/MainFormWindow.resx
357
+ - features/support/app/WindowsForms/WindowsForms/PersonForm.Designer.cs
358
+ - features/support/app/WindowsForms/WindowsForms/PersonForm.cs
359
+ - features/support/app/WindowsForms/WindowsForms/PersonForm.resx
360
+ - features/support/app/WindowsForms/WindowsForms/Program.cs
361
+ - features/support/app/WindowsForms/WindowsForms/Properties/AssemblyInfo.cs
362
+ - features/support/app/WindowsForms/WindowsForms/Properties/Resources.Designer.cs
363
+ - features/support/app/WindowsForms/WindowsForms/Properties/Resources.resx
364
+ - features/support/app/WindowsForms/WindowsForms/Properties/Settings.Designer.cs
365
+ - features/support/app/WindowsForms/WindowsForms/Properties/Settings.settings
366
+ - features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.Designer.cs
367
+ - features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.cs
368
+ - features/support/app/WindowsForms/WindowsForms/SimpleElementsForm.resx
369
+ - features/support/app/WindowsForms/WindowsForms/WindowsForms.csproj
204
370
  - features/support/env.rb
371
+ - features/support/screens/about_screen.rb
205
372
  - features/support/screens/data_entry_form.rb
206
373
  - features/support/screens/main_screen.rb
207
374
  - features/support/string.rb
@@ -211,7 +378,9 @@ test_files:
211
378
  - spec/lib/mohawk/accessors/button_spec.rb
212
379
  - spec/lib/mohawk/accessors/checkbox_spec.rb
213
380
  - spec/lib/mohawk/accessors/combo_spec.rb
381
+ - spec/lib/mohawk/accessors/control_spec.rb
214
382
  - spec/lib/mohawk/accessors/label_spec.rb
383
+ - spec/lib/mohawk/accessors/link_spec.rb
215
384
  - spec/lib/mohawk/accessors/menu_spec.rb
216
385
  - spec/lib/mohawk/accessors/radio_spec.rb
217
386
  - spec/lib/mohawk/accessors/table_spec.rb