mohawk 0.0.2 → 0.0.3

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.
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