rautomation 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +3 -3
  4. data/History.rdoc +17 -0
  5. data/README.rdoc +2 -1
  6. data/Rakefile +23 -6
  7. data/VERSION +1 -1
  8. data/ext/IAccessibleDLL/Release/IAccessibleDLL.dll +0 -0
  9. data/ext/UiaDll/Release/UiaDll.dll +0 -0
  10. data/ext/UiaDll/UiaDll/{AutomatedComboBox.cpp → AutomatedSelectList.cpp} +22 -11
  11. data/ext/UiaDll/UiaDll/{AutomatedComboBox.h → AutomatedSelectList.h} +17 -4
  12. data/ext/UiaDll/UiaDll/AutomatedTable.cpp +55 -13
  13. data/ext/UiaDll/UiaDll/AutomatedTable.h +16 -3
  14. data/ext/UiaDll/UiaDll/AutomationControl.cpp +28 -0
  15. data/ext/UiaDll/UiaDll/AutomationControl.h +56 -0
  16. data/ext/UiaDll/UiaDll/AutomationFinder.cpp +57 -0
  17. data/ext/UiaDll/UiaDll/AutomationFinder.h +48 -0
  18. data/ext/UiaDll/UiaDll/ControlMethods.cpp +15 -0
  19. data/ext/UiaDll/UiaDll/MenuItemSelector.h +2 -0
  20. data/ext/UiaDll/UiaDll/MenuMethods.cpp +58 -0
  21. data/ext/UiaDll/UiaDll/SelectListMethods.cpp +37 -0
  22. data/ext/UiaDll/UiaDll/SelectionItem.cpp +10 -0
  23. data/ext/UiaDll/UiaDll/SelectionItem.h +21 -0
  24. data/ext/UiaDll/UiaDll/StringHelper.cpp +33 -2
  25. data/ext/UiaDll/UiaDll/StringHelper.h +6 -0
  26. data/ext/UiaDll/UiaDll/StringMethods.cpp +8 -0
  27. data/ext/UiaDll/UiaDll/TableMethods.cpp +76 -0
  28. data/ext/UiaDll/UiaDll/Toggle.cpp +2 -0
  29. data/ext/UiaDll/UiaDll/Toggle.h +22 -0
  30. data/ext/UiaDll/UiaDll/UiaDll.cpp +96 -327
  31. data/ext/UiaDll/UiaDll/UiaDll.vcxproj +15 -4
  32. data/ext/UiaDll/UiaDll/UiaDll.vcxproj.filters +91 -22
  33. data/ext/UiaDll/UiaDll/dllmain.cpp +1 -1
  34. data/ext/UiaDll/UiaDll/stdafx.h +38 -21
  35. data/ext/WindowsForms/Release/WindowsForms.exe +0 -0
  36. data/ext/WindowsForms/WindowsForms.sln +10 -0
  37. data/ext/WindowsForms/WindowsForms/AutomatableMonthCalendar.cs +59 -0
  38. data/ext/WindowsForms/WindowsForms/AutomationHelpers/AutomationProvider.cs +91 -0
  39. data/ext/WindowsForms/WindowsForms/MainFormWindow.Designer.cs +32 -10
  40. data/ext/WindowsForms/WindowsForms/MainFormWindow.cs +10 -0
  41. data/ext/WindowsForms/WindowsForms/WindowsForms.csproj +15 -6
  42. data/lib/rautomation/adapter/ms_uia.rb +1 -0
  43. data/lib/rautomation/adapter/ms_uia/checkbox.rb +2 -10
  44. data/lib/rautomation/adapter/ms_uia/constants.rb +1 -0
  45. data/lib/rautomation/adapter/ms_uia/control.rb +14 -67
  46. data/lib/rautomation/adapter/ms_uia/functions.rb +2 -18
  47. data/lib/rautomation/adapter/ms_uia/list_box.rb +5 -27
  48. data/lib/rautomation/adapter/ms_uia/list_item.rb +2 -29
  49. data/lib/rautomation/adapter/ms_uia/radio.rb +1 -1
  50. data/lib/rautomation/adapter/ms_uia/select_list.rb +5 -6
  51. data/lib/rautomation/adapter/ms_uia/table.rb +15 -50
  52. data/lib/rautomation/adapter/ms_uia/text_field.rb +1 -1
  53. data/lib/rautomation/adapter/ms_uia/uia_dll.rb +226 -58
  54. data/lib/rautomation/adapter/ms_uia/value_control.rb +21 -0
  55. data/lib/rautomation/adapter/ms_uia/window.rb +6 -104
  56. data/lib/rautomation/adapter/win_32/functions.rb +0 -23
  57. data/lib/rautomation/adapter/win_32/keys.rb +64 -61
  58. data/rautomation.gemspec +6 -1
  59. data/spec/adapter/autoit/mouse_spec.rb +1 -1
  60. data/spec/adapter/ms_uia/select_list_spec.rb +0 -21
  61. data/spec/adapter/ms_uia/table_spec.rb +13 -11
  62. data/spec/adapter/ms_uia/text_field_spec.rb +15 -8
  63. data/spec/adapter/ms_uia/value_control_spec.rb +11 -0
  64. data/spec/adapter/ms_uia/window_spec.rb +7 -1
  65. data/spec/adapter/win_32/mouse_spec.rb +1 -1
  66. data/spec/adapter/win_32/text_field_spec.rb +5 -5
  67. data/spec/adapter/win_32/window_spec.rb +1 -1
  68. data/spec/text_field_spec.rb +18 -23
  69. data/spec/window_spec.rb +1 -3
  70. metadata +45 -34
  71. data/ext/UiaDll/UiaDll/ToggleStateHelper.cpp +0 -33
@@ -1,24 +1,31 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "MsUia::TextField", :if => SpecHelper.adapter == :ms_uia do
4
+ let(:main_form) { RAutomation::Window.new(:title => "MainFormWindow") }
4
5
 
5
6
  it "check for text field class" do
6
- RAutomation::Window.new(:title => "MainFormWindow").text_field(:id => "checkBox").should_not exist
7
- RAutomation::Window.new(:title => "MainFormWindow").text_field(:id => "textField").should exist
7
+ main_form.text_field(:id => "checkBox").should_not exist
8
+ main_form.text_field(:id => "textField").should exist
8
9
  end
9
10
 
10
11
  it "enabled/disabled" do
11
- RAutomation::Window.new(:title => "MainFormWindow").text_field(:id => "textField").should be_enabled
12
- RAutomation::Window.new(:title => "MainFormWindow").text_field(:id => "textField").should_not be_disabled
12
+ main_form.text_field(:id => "textField").should be_enabled
13
+ main_form.text_field(:id => "textField").should_not be_disabled
13
14
 
14
- RAutomation::Window.new(:title => "MainFormWindow").text_field(:id => "textBoxDisabled").should_not be_enabled
15
- RAutomation::Window.new(:title => "MainFormWindow").text_field(:id => "textBoxDisabled").should be_disabled
15
+ main_form.text_field(:id => "textBoxDisabled").should_not be_enabled
16
+ main_form.text_field(:id => "textBoxDisabled").should be_disabled
16
17
  end
17
18
 
18
19
  it "cannot set a value to a disabled text field" do
19
- lambda { RAutomation::Window.new(:title => "MainFormWindow").text_field(:id => "textBoxDisabled").set "abc" }.should raise_error
20
+ lambda { main_form.text_field(:id => "textBoxDisabled").set "abc" }.should raise_error
20
21
 
21
- lambda { RAutomation::Window.new(:title => "MainFormWindow").text_field(:id => "textBoxDisabled").clear }.should raise_error
22
+ lambda { main_form.text_field(:id => "textBoxDisabled").clear }.should raise_error
23
+ end
24
+
25
+ it "considers a document control type a text field as well" do
26
+ # cause the .NET framework to be loaded into the process (required to make this fail)
27
+ main_form.select_list(:id => "treeView").expand 0
28
+ main_form.text_field(:id => "multiLineTextField").should exist
22
29
  end
23
30
 
24
31
  end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe "MsUia::ValueControl", :if => SpecHelper.adapter == :ms_uia do
4
+ let(:window) { RAutomation::Window.new(:title => /MainFormWindow/) }
5
+ let(:value_control) { window.value_control(:id => "automatableMonthCalendar1") }
6
+
7
+ it "can set and get values" do
8
+ value_control.set "12/25/2012"
9
+ value_control.value.should eq("12/25/2012 12:00:00 AM")
10
+ end
11
+ end
@@ -27,7 +27,7 @@ describe "MsUia::Window", :if => SpecHelper.adapter == :ms_uia do
27
27
  end
28
28
 
29
29
  it "send arbitrary characters and control keys" do
30
- text_field = window.text_field(:index => 1)
30
+ text_field = window.text_field(:index => 2)
31
31
  text_field.focus
32
32
  window.send_keys "abc123ABChiHI!"
33
33
  text_field.value.should == "abc123ABChiHI!"
@@ -40,6 +40,12 @@ describe "MsUia::Window", :if => SpecHelper.adapter == :ms_uia do
40
40
  end
41
41
  end
42
42
 
43
+ context "#control" do
44
+ it "by name" do
45
+ window.control(:name => "checkBox").should exist
46
+ end
47
+ end
48
+
43
49
  context "menu items" do
44
50
  let(:about_box) { RAutomation::Window.new :title => "About" }
45
51
 
@@ -28,7 +28,7 @@ describe "Win32::Mouse", :if => SpecHelper.adapter == :win_32 do
28
28
  window = RAutomation::Window.new(:title => "MainFormWindow")
29
29
  window.maximize
30
30
 
31
- text_field = window.text_field(:index => 1)
31
+ text_field = window.text_field(:index => 2)
32
32
  text_field.set("start string")
33
33
  text_field.value.should == "start string"
34
34
 
@@ -3,17 +3,17 @@ require 'spec_helper'
3
3
  describe "Win32::TextField", :if => SpecHelper.adapter == :win_32 do
4
4
 
5
5
  it "enabled/disabled" do
6
- RAutomation::Window.new(:title => "MainFormWindow").text_field(:index => 1).should be_enabled
7
- RAutomation::Window.new(:title => "MainFormWindow").text_field(:index => 1).should_not be_disabled
6
+ RAutomation::Window.new(:title => "MainFormWindow").text_field(:index => 2).should be_enabled
7
+ RAutomation::Window.new(:title => "MainFormWindow").text_field(:index => 2).should_not be_disabled
8
8
  end
9
9
 
10
10
  it "cannot set a value to a disabled text field" do
11
- lambda { RAutomation::Window.new(:title => "MainFormWindow").text_field.set "abc" }.should raise_error
12
- lambda { RAutomation::Window.new(:title => "MainFormWindow").text_field.clear }.should raise_error
11
+ lambda { RAutomation::Window.new(:title => "MainFormWindow").text_field(:index => 1).set "abc" }.should raise_error
12
+ lambda { RAutomation::Window.new(:title => "MainFormWindow").text_field(:index => 1).clear }.should raise_error
13
13
  end
14
14
 
15
15
  it "#send_keys" do
16
- text_field = RAutomation::Window.new(:title => "MainFormWindow").text_field(:index => 1)
16
+ text_field = RAutomation::Window.new(:title => "MainFormWindow").text_field(:index => 2)
17
17
  text_field.send_keys "abc"
18
18
  text_field.value.should == "abc"
19
19
 
@@ -15,7 +15,7 @@ describe "Win32::Window", :if => SpecHelper.adapter == :win_32 do
15
15
  end
16
16
 
17
17
  it "send arbitrary characters and control keys" do
18
- text_field = window.text_field(:index => 1)
18
+ text_field = window.text_field(:index => 2)
19
19
  text_field.focus
20
20
  window.send_keys "abc123ABChiHI!"
21
21
  text_field.value.should == "abc123ABChiHI!"
@@ -1,9 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe RAutomation::TextField do
4
+ let(:main_form) { RAutomation::Window.new(:title => "MainFormWindow") }
5
+ let(:text_field) { main_form.text_field(:class => /Edit/i, :index => 2) }
6
+
4
7
  it "#text_field" do
5
- RAutomation::Window.new(:title => "MainFormWindow").
6
- text_field(:class => /Edit/i, :index => 1).should exist
8
+ main_form.text_field(:class => /Edit/i, :index => 1).should exist
7
9
 
8
10
  RAutomation::Window.wait_timeout = 0.1
9
11
  expect { RAutomation::Window.new(:title => "non-existent-window").
@@ -12,53 +14,46 @@ describe RAutomation::TextField do
12
14
  end
13
15
 
14
16
  it "#set" do
15
- window = RAutomation::Window.new(:title => "MainFormWindow")
16
- window.text_field(:class => /Edit/i, :index => 1).set "hello!"
17
+ text_field.set "hello!"
17
18
 
18
19
  RAutomation::Window.wait_timeout = 0.1
19
- expect { window.text_field(:class => "non-existing-field").set "hello!" }.
20
+ expect { main_form.text_field(:class => "non-existing-field").set "hello!" }.
20
21
  to raise_exception(RAutomation::UnknownTextFieldException)
21
22
  end
22
23
 
23
24
  it "#clear" do
24
- window = RAutomation::Window.new(:title => "MainFormWindow")
25
- field = window.text_field(:class => /Edit/i, :index => 1)
26
- field.set "hello!"
27
- field.value.should == "hello!"
28
- field.clear
29
- field.value.should be_empty
25
+ text_field.set "hello!"
26
+ text_field.value.should == "hello!"
27
+ text_field.clear
28
+ text_field.value.should be_empty
30
29
 
31
30
  RAutomation::Window.wait_timeout = 0.1
32
- expect { window.text_field(:class => "non-existent-field").clear }.
31
+ expect { main_form.text_field(:class => "non-existent-field").clear }.
33
32
  to raise_exception(RAutomation::UnknownTextFieldException)
34
33
  end
35
34
 
36
35
  it "#value" do
37
- window = RAutomation::Window.new(:title => "MainFormWindow")
38
- field = window.text_field(:class => /Edit/i, :index => 1)
39
- field.set "hello!"
40
- field.value.should == "hello!"
36
+ text_field.set "hello!"
37
+ text_field.value.should == "hello!"
41
38
 
42
39
  RAutomation::Window.wait_timeout = 0.1
43
- expect { window.text_field(:class => "non-existent-field").value }.
40
+ expect { main_form.text_field(:class => "non-existent-field").value }.
44
41
  to raise_exception(RAutomation::UnknownTextFieldException)
45
42
  end
46
43
 
47
44
  it "#exists?" do
48
- window = RAutomation::Window.new(:title => "MainFormWindow")
49
- field = window.text_field(:class => /Edit/i, :index => 1)
45
+ field = main_form.text_field(:class => /Edit/i, :index => 1)
50
46
  field.should exist
51
- window.text_field(:class => "non-existent-field").should_not exist
47
+ main_form.text_field(:class => "non-existent-field").should_not exist
52
48
  end
53
49
 
54
50
 
55
51
  it "#hwnd" do
56
- window = RAutomation::Window.new(:title => "MainFormWindow")
57
- field = window.text_field(:class => /Edit/i, :index => 1)
52
+ field = main_form.text_field(:class => /Edit/i, :index => 1)
58
53
  field.hwnd.should be_a(Fixnum)
59
54
 
60
55
  RAutomation::Window.wait_timeout = 0.1
61
- expect { window.text_field(:class => "non-existing-window").hwnd }.
56
+ expect { main_form.text_field(:class => "non-existing-window").hwnd }.
62
57
  to raise_exception(RAutomation::UnknownTextFieldException)
63
58
  end
64
59
  end
data/spec/window_spec.rb CHANGED
@@ -54,9 +54,7 @@ describe RAutomation::Window do
54
54
  it "#class_names" do
55
55
  window = RAutomation::Window.new(:title => SpecHelper::DATA[:window1_title])
56
56
 
57
- fail "Expected class name not found." unless window.class_names.include?("WindowsForms10.Window.8.app.0.2bf8098_r15_ad1") or
58
- window.class_names.include?("WindowsForms10.Window.8.app.0.2bf8098_r16_ad1") or
59
- window.class_names.include?("WindowsForms10.Window.8.app.0.2bf8098_r11_ad1")
57
+ fail "Expected class name not found." unless window.class_names.any? {|clazz| clazz.match(/WindowsForms10\.Window\.8\.app\.0\.2bf8098_r\d{2}_ad1/)}
60
58
 
61
59
  RAutomation::Window.wait_timeout = 0.1
62
60
  expect {RAutomation::Window.new(:title => "non-existing-window").class_names}.
metadata CHANGED
@@ -1,36 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rautomation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
5
- prerelease:
4
+ version: 0.9.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jarmo Pertman
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-12-26 00:00:00.000000000 Z
11
+ date: 2013-04-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: ffi
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,40 +41,40 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: yard
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
- description: ! "RAutomation is a small and easy to use library for helping out to
79
- automate windows and their controls\nfor automated testing.\n\nRAutomation provides:\n*
80
- Easy to use and user-friendly API (inspired by Watir http://www.watir.com)\n* Cross-platform
81
- compatibility\n* Easy extensibility - with small scripting effort it's possible
82
- to add support for not yet\n supported platforms or technologies"
69
+ description: |-
70
+ RAutomation is a small and easy to use library for helping out to automate windows and their controls
71
+ for automated testing.
72
+
73
+ RAutomation provides:
74
+ * Easy to use and user-friendly API (inspired by Watir http://www.watir.com)
75
+ * Cross-platform compatibility
76
+ * Easy extensibility - with small scripting effort it's possible to add support for not yet
77
+ supported platforms or technologies
83
78
  email: jarmo.p@gmail.com
84
79
  executables: []
85
80
  extensions: []
@@ -110,24 +105,34 @@ files:
110
105
  - ext/IAccessibleDLL/IAccessibleDLL/stdafx.h
111
106
  - ext/IAccessibleDLL/IAccessibleDLL/table_support.cpp
112
107
  - ext/IAccessibleDLL/IAccessibleDLL/targetver.h
113
- - ext/IAccessibleDLL/Release/IAccessibleDLL.dll
114
- - ext/UiaDll/Release/UiaDll.dll
115
108
  - ext/UiaDll/UiaDll.sln
116
109
  - ext/UiaDll/UiaDll/AssemblyInfo.cpp
117
- - ext/UiaDll/UiaDll/AutomatedComboBox.cpp
118
- - ext/UiaDll/UiaDll/AutomatedComboBox.h
110
+ - ext/UiaDll/UiaDll/AutomatedSelectList.cpp
111
+ - ext/UiaDll/UiaDll/AutomatedSelectList.h
119
112
  - ext/UiaDll/UiaDll/AutomatedTable.cpp
120
113
  - ext/UiaDll/UiaDll/AutomatedTable.h
121
114
  - ext/UiaDll/UiaDll/AutomationClicker.cpp
122
115
  - ext/UiaDll/UiaDll/AutomationClicker.h
116
+ - ext/UiaDll/UiaDll/AutomationControl.cpp
117
+ - ext/UiaDll/UiaDll/AutomationControl.h
118
+ - ext/UiaDll/UiaDll/AutomationFinder.cpp
119
+ - ext/UiaDll/UiaDll/AutomationFinder.h
120
+ - ext/UiaDll/UiaDll/ControlMethods.cpp
123
121
  - ext/UiaDll/UiaDll/ExpandCollapseHelper.cpp
124
122
  - ext/UiaDll/UiaDll/ExpandCollapseHelper.h
125
123
  - ext/UiaDll/UiaDll/MenuItemSelector.cpp
126
124
  - ext/UiaDll/UiaDll/MenuItemSelector.h
125
+ - ext/UiaDll/UiaDll/MenuMethods.cpp
127
126
  - ext/UiaDll/UiaDll/ReadMe.txt
127
+ - ext/UiaDll/UiaDll/SelectListMethods.cpp
128
+ - ext/UiaDll/UiaDll/SelectionItem.cpp
129
+ - ext/UiaDll/UiaDll/SelectionItem.h
128
130
  - ext/UiaDll/UiaDll/StringHelper.cpp
129
131
  - ext/UiaDll/UiaDll/StringHelper.h
130
- - ext/UiaDll/UiaDll/ToggleStateHelper.cpp
132
+ - ext/UiaDll/UiaDll/StringMethods.cpp
133
+ - ext/UiaDll/UiaDll/TableMethods.cpp
134
+ - ext/UiaDll/UiaDll/Toggle.cpp
135
+ - ext/UiaDll/UiaDll/Toggle.h
131
136
  - ext/UiaDll/UiaDll/ToggleStateHelper.h
132
137
  - ext/UiaDll/UiaDll/UiaDll.cpp
133
138
  - ext/UiaDll/UiaDll/UiaDll.h
@@ -141,11 +146,12 @@ files:
141
146
  - ext/UiaDll/UiaDll/stdafx.cpp
142
147
  - ext/UiaDll/UiaDll/stdafx.h
143
148
  - ext/UiaDll/UiaDll/targetver.h
144
- - ext/WindowsForms/Release/WindowsForms.exe
145
149
  - ext/WindowsForms/WindowsForms.sln
146
150
  - ext/WindowsForms/WindowsForms/AboutBox.Designer.cs
147
151
  - ext/WindowsForms/WindowsForms/AboutBox.cs
148
152
  - ext/WindowsForms/WindowsForms/AboutBox.resx
153
+ - ext/WindowsForms/WindowsForms/AutomatableMonthCalendar.cs
154
+ - ext/WindowsForms/WindowsForms/AutomationHelpers/AutomationProvider.cs
149
155
  - ext/WindowsForms/WindowsForms/DataEntryForm.Designer.cs
150
156
  - ext/WindowsForms/WindowsForms/DataEntryForm.cs
151
157
  - ext/WindowsForms/WindowsForms/DataEntryForm.resx
@@ -192,6 +198,7 @@ files:
192
198
  - lib/rautomation/adapter/ms_uia/table.rb
193
199
  - lib/rautomation/adapter/ms_uia/text_field.rb
194
200
  - lib/rautomation/adapter/ms_uia/uia_dll.rb
201
+ - lib/rautomation/adapter/ms_uia/value_control.rb
195
202
  - lib/rautomation/adapter/ms_uia/window.rb
196
203
  - lib/rautomation/adapter/win_32.rb
197
204
  - lib/rautomation/adapter/win_32/button.rb
@@ -231,6 +238,7 @@ files:
231
238
  - spec/adapter/ms_uia/select_list_spec.rb
232
239
  - spec/adapter/ms_uia/table_spec.rb
233
240
  - spec/adapter/ms_uia/text_field_spec.rb
241
+ - spec/adapter/ms_uia/value_control_spec.rb
234
242
  - spec/adapter/ms_uia/window_spec.rb
235
243
  - spec/adapter/win_32/button_spec.rb
236
244
  - spec/adapter/win_32/checkbox_spec.rb
@@ -249,29 +257,31 @@ files:
249
257
  - spec/text_fields_spec.rb
250
258
  - spec/window_spec.rb
251
259
  - spec/windows_spec.rb
260
+ - ext/IAccessibleDLL/Release/IAccessibleDLL.dll
261
+ - ext/UiaDll/Release/UiaDll.dll
262
+ - ext/WindowsForms/Release/WindowsForms.exe
252
263
  homepage: http://github.com/jarmo/RAutomation
253
264
  licenses: []
265
+ metadata: {}
254
266
  post_install_message:
255
267
  rdoc_options: []
256
268
  require_paths:
257
269
  - lib
258
270
  required_ruby_version: !ruby/object:Gem::Requirement
259
- none: false
260
271
  requirements:
261
- - - ! '>='
272
+ - - '>='
262
273
  - !ruby/object:Gem::Version
263
274
  version: '0'
264
275
  required_rubygems_version: !ruby/object:Gem::Requirement
265
- none: false
266
276
  requirements:
267
- - - ! '>='
277
+ - - '>='
268
278
  - !ruby/object:Gem::Version
269
279
  version: '0'
270
280
  requirements: []
271
281
  rubyforge_project:
272
- rubygems_version: 1.8.24
282
+ rubygems_version: 2.0.3
273
283
  signing_key:
274
- specification_version: 3
284
+ specification_version: 4
275
285
  summary: Automate windows and their controls through user-friendly API with Ruby
276
286
  test_files:
277
287
  - spec/adapter/autoit/mouse_spec.rb
@@ -288,6 +298,7 @@ test_files:
288
298
  - spec/adapter/ms_uia/select_list_spec.rb
289
299
  - spec/adapter/ms_uia/table_spec.rb
290
300
  - spec/adapter/ms_uia/text_field_spec.rb
301
+ - spec/adapter/ms_uia/value_control_spec.rb
291
302
  - spec/adapter/ms_uia/window_spec.rb
292
303
  - spec/adapter/win_32/button_spec.rb
293
304
  - spec/adapter/win_32/checkbox_spec.rb
@@ -1,33 +0,0 @@
1
- #include "StdAfx.h"
2
- #include "ToggleStateHelper.h"
3
-
4
-
5
- ToggleStateHelper::ToggleStateHelper(void)
6
- {
7
- }
8
-
9
-
10
- ToggleStateHelper::~ToggleStateHelper(void)
11
- {
12
- }
13
-
14
- BOOL ToggleStateHelper::IsSet(IUIAutomationElement* automationElement)
15
- {
16
- IToggleProvider* togglePattern;
17
- HRESULT hr = automationElement->GetCurrentPattern(UIA_TogglePatternId, (IUnknown**)&togglePattern);
18
-
19
- if (FAILED(hr)) {
20
- printf("RA_GetIsSet: getCurrentPattern failed 0x%x\r\n");
21
- return FALSE;
22
- }
23
-
24
- ToggleState RetVal ;
25
- hr = togglePattern->get_ToggleState(&RetVal) ;
26
- togglePattern->Release();
27
- if (FAILED(hr)) {
28
- printf("RA_GetIsSet: get_ToggleState failed 0x%x\r\n", hr);
29
- return FALSE;
30
- } else {
31
- return RetVal;
32
- }
33
- }