uia 0.4 → 0.4.1
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.
- data/ChangeLog +4 -0
- data/ext/UiaDll/Release/UIA.Helper.dll +0 -0
- data/ext/UiaDll/Release/UiaDll.dll +0 -0
- data/ext/UiaDll/UIA.Helper/Element.cs +5 -0
- data/ext/UiaDll/UiaDll/ElementStructures.h +7 -4
- data/ext/UiaDll/UiaDll.Test/ElementInformationTest.cpp +7 -0
- data/ext/UiaDll/UiaDll.Test/ElementStub.h +7 -0
- data/lib/uia/element.rb +1 -1
- data/lib/uia/library/element_structs.rb +2 -1
- data/lib/uia/version.rb +1 -1
- data/spec/app/WindowsForms.exe +0 -0
- data/spec/uia/element_spec.rb +3 -0
- data/test.rb +5 -0
- metadata +4 -3
data/ChangeLog
CHANGED
Binary file
|
Binary file
|
@@ -7,6 +7,7 @@ typedef struct _ElementInformation {
|
|
7
7
|
int* runtimeId;
|
8
8
|
int runtimeIdLength;
|
9
9
|
char* name;
|
10
|
+
char* helpText;
|
10
11
|
char* className;
|
11
12
|
int controlTypeId;
|
12
13
|
int* patterns;
|
@@ -18,9 +19,9 @@ typedef struct _ElementInformation {
|
|
18
19
|
bool hasKeyboardFocus;
|
19
20
|
long boundingRectangle[4];
|
20
21
|
|
21
|
-
_ElementInformation() : name(NULL), nativeWindowHandle(0), runtimeId(NULL), patterns(NULL), id(NULL), className(NULL) {}
|
22
|
+
_ElementInformation() : name(NULL), nativeWindowHandle(0), runtimeId(NULL), patterns(NULL), id(NULL), className(NULL), helpText(NULL) {}
|
22
23
|
|
23
|
-
_ElementInformation(Element^ element) : name(NULL), nativeWindowHandle(0), runtimeId(NULL), patterns(NULL), id(NULL), className(NULL) {
|
24
|
+
_ElementInformation(Element^ element) : name(NULL), nativeWindowHandle(0), runtimeId(NULL), patterns(NULL), id(NULL), className(NULL), helpText(NULL) {
|
24
25
|
Refresh(element);
|
25
26
|
}
|
26
27
|
|
@@ -56,6 +57,8 @@ typedef struct _ElementInformation {
|
|
56
57
|
isVisible = element->IsVisible;
|
57
58
|
hasKeyboardFocus = element->HasKeyboardFocus;
|
58
59
|
|
60
|
+
helpText = StringHelper::ToUnmanaged(element->HelpText);
|
61
|
+
|
59
62
|
auto r = element->BoundingRectangle;
|
60
63
|
for(auto coord = 0; coord < 4; coord++) {
|
61
64
|
boundingRectangle[coord] = r[coord];
|
@@ -68,8 +71,8 @@ typedef struct _ElementInformation {
|
|
68
71
|
|
69
72
|
private:
|
70
73
|
void Reset() {
|
71
|
-
delete[] name; delete[] runtimeId; delete[] patterns; delete[] id; delete[] className;
|
72
|
-
name = NULL; runtimeId = NULL; patterns = NULL; id = NULL; className = NULL;
|
74
|
+
delete[] name; delete[] runtimeId; delete[] patterns; delete[] id; delete[] className; delete[] helpText;
|
75
|
+
name = NULL; runtimeId = NULL; patterns = NULL; id = NULL; className = NULL; helpText = NULL;
|
73
76
|
}
|
74
77
|
|
75
78
|
} ElementInformation, *ElementInformationPtr;
|
@@ -37,6 +37,13 @@ TEST_F(ElementInformationTest, ItHasTheName)
|
|
37
37
|
ASSERT_STREQ("Expected Name", ElementInformation(gcnew ElementStub("Expected Name")).name);
|
38
38
|
}
|
39
39
|
|
40
|
+
TEST_F(ElementInformationTest, ItHasTheHelpText) {
|
41
|
+
auto element = gcnew ElementStub("");
|
42
|
+
element->HelpText = gcnew String("Expected help text");
|
43
|
+
|
44
|
+
ASSERT_STREQ("Expected help text", ElementInformation(element).helpText);
|
45
|
+
}
|
46
|
+
|
40
47
|
TEST_F(ElementInformationTest, ItKnowsAboutTheRuntimeId)
|
41
48
|
{
|
42
49
|
auto elementInformation = ElementInformation(gcnew ElementStub("", 0, 1, 2));
|
@@ -16,6 +16,12 @@ public:
|
|
16
16
|
void set(String^ name) { _name = name; }
|
17
17
|
}
|
18
18
|
|
19
|
+
virtual property String^ HelpText
|
20
|
+
{
|
21
|
+
String^ get() override { return _helpText; }
|
22
|
+
void set(String^ helpText) { _helpText = helpText; }
|
23
|
+
}
|
24
|
+
|
19
25
|
virtual property String^ ClassName
|
20
26
|
{
|
21
27
|
String^ get() override { return _className; }
|
@@ -80,6 +86,7 @@ public:
|
|
80
86
|
|
81
87
|
private:
|
82
88
|
String^ _name;
|
89
|
+
String^ _helpText;
|
83
90
|
String^ _className;
|
84
91
|
String^ _id;
|
85
92
|
array<int>^ _runtimeIds;
|
data/lib/uia/element.rb
CHANGED
@@ -18,7 +18,7 @@ module Uia
|
|
18
18
|
@default = lambda { [:unknown] }
|
19
19
|
end
|
20
20
|
|
21
|
-
element_attr :id, :name, :handle, :runtime_id,
|
21
|
+
element_attr :id, :name, :handle, :runtime_id, :help_text,
|
22
22
|
:class_name, :children, :descendants
|
23
23
|
refreshed_element_attr :enabled?, :visible?, :focused?, :bounding_rectangle
|
24
24
|
|
@@ -13,6 +13,7 @@ module Uia
|
|
13
13
|
:runtime_id, :pointer,
|
14
14
|
:number_of_ids, :int,
|
15
15
|
:name, :string,
|
16
|
+
:help_text, :string,
|
16
17
|
:class_name, :string,
|
17
18
|
:control_type_id, :int,
|
18
19
|
:patterns, :pointer,
|
@@ -23,7 +24,7 @@ module Uia
|
|
23
24
|
:has_focus, :bool,
|
24
25
|
:bounding_rectangle, [:long, 4]
|
25
26
|
|
26
|
-
struct_attr :id, :name, :handle, :control_type_id, :class_name,
|
27
|
+
struct_attr :id, :name, :handle, :control_type_id, :class_name, :help_text,
|
27
28
|
[:enabled?, :is_enabled], [:visible?, :is_visible], [:focused?, :has_focus]
|
28
29
|
|
29
30
|
def runtime_id
|
data/lib/uia/version.rb
CHANGED
data/spec/app/WindowsForms.exe
CHANGED
Binary file
|
data/spec/uia/element_spec.rb
CHANGED
@@ -26,9 +26,12 @@ describe Uia::Element do
|
|
26
26
|
|
27
27
|
context 'properties' do
|
28
28
|
let(:raw_element) { element.instance_variable_get(:@element) }
|
29
|
+
Given(:about_button) { element.find name: 'About', control_type: :button }
|
30
|
+
|
29
31
|
Then { element.handle != 0 }
|
30
32
|
Then { element.name == 'MainFormWindow' }
|
31
33
|
Then { element.id == 'MainFormWindow' }
|
34
|
+
Then { about_button.help_text =~ /click about to find out/i }
|
32
35
|
Then { element.class_name =~ /Forms.*app/i }
|
33
36
|
Then { expect(element.find(id: 'textField')).to be_enabled }
|
34
37
|
Then do
|
data/test.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -243,6 +243,7 @@ files:
|
|
243
243
|
- spec/uia/patterns/value_spec.rb
|
244
244
|
- spec/uia/patterns/window_spec.rb
|
245
245
|
- spec/uia_spec.rb
|
246
|
+
- test.rb
|
246
247
|
- uia.gemspec
|
247
248
|
- ext/UiaDll/Release/UiaDll.dll
|
248
249
|
- ext/UiaDll/Release/UIA.Helper.dll
|
@@ -261,7 +262,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
261
262
|
version: '0'
|
262
263
|
segments:
|
263
264
|
- 0
|
264
|
-
hash: -
|
265
|
+
hash: -1027979665
|
265
266
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
266
267
|
none: false
|
267
268
|
requirements:
|
@@ -270,7 +271,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
270
271
|
version: '0'
|
271
272
|
segments:
|
272
273
|
- 0
|
273
|
-
hash: -
|
274
|
+
hash: -1027979665
|
274
275
|
requirements: []
|
275
276
|
rubyforge_project:
|
276
277
|
rubygems_version: 1.8.28
|