AXElements 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.yardopts +4 -0
- data/History.markdown +41 -0
- data/README.markdown +59 -62
- data/Rakefile +1 -1
- data/ext/accessibility/key_coder/extconf.rb +1 -1
- data/ext/accessibility/key_coder/key_coder.c +8 -5
- data/lib/accessibility/dsl.rb +261 -87
- data/lib/accessibility/enumerators.rb +14 -11
- data/lib/accessibility/errors.rb +4 -3
- data/lib/accessibility/factory.rb +159 -108
- data/lib/accessibility/graph.rb +13 -9
- data/lib/accessibility/{pp_inspector.rb → pretty_printer.rb} +4 -5
- data/lib/accessibility/qualifier.rb +23 -13
- data/lib/accessibility/string.rb +4 -4
- data/lib/accessibility/system_info.rb +230 -0
- data/lib/accessibility/translator.rb +38 -28
- data/lib/accessibility/version.rb +24 -2
- data/lib/accessibility.rb +25 -8
- data/lib/ax/application.rb +207 -77
- data/lib/ax/element.rb +62 -65
- data/lib/ax/menu.rb +5 -1
- data/lib/ax/row.rb +1 -1
- data/lib/ax/scroll_area.rb +7 -6
- data/lib/ax/systemwide.rb +38 -5
- data/lib/ax_elements/active_support_selections.rb +10 -0
- data/lib/ax_elements/mri.rb +57 -0
- data/lib/ax_elements/nsarray_compat.rb +97 -17
- data/lib/ax_elements.rb +9 -1
- data/rakelib/gem.rake +11 -11
- data/rakelib/test.rake +0 -9
- data/test/helper.rb +10 -18
- data/test/integration/accessibility/test_dsl.rb +52 -42
- data/test/integration/accessibility/test_enumerators.rb +0 -1
- data/test/integration/accessibility/test_graph.rb +1 -0
- data/test/integration/accessibility/test_qualifier.rb +2 -2
- data/test/integration/ax/test_application.rb +9 -2
- data/test/integration/ax/test_element.rb +41 -1
- data/test/sanity/accessibility/test_factory.rb +23 -56
- data/test/sanity/accessibility/{test_pp_inspector.rb → test_pretty_printer.rb} +9 -9
- data/test/sanity/accessibility/test_translator.rb +2 -5
- data/test/sanity/accessibility/test_version.rb +15 -0
- data/test/sanity/ax/test_application.rb +17 -2
- data/test/sanity/ax/test_element.rb +2 -2
- data/test/sanity/ax_elements/test_nsobject_inspect.rb +4 -2
- data/test/sanity/test_ax_elements.rb +1 -0
- metadata +69 -39
- data/lib/accessibility/core.rb +0 -973
- data/lib/accessibility/highlighter.rb +0 -86
- data/lib/ax_elements/vendor/inflection_data.rb +0 -66
- data/lib/ax_elements/vendor/inflections.rb +0 -172
- data/lib/ax_elements/vendor/inflector.rb +0 -306
- data/lib/minitest/ax_elements.rb +0 -175
- data/lib/mouse.rb +0 -223
- data/lib/rspec/expectations/ax_elements.rb +0 -234
- data/test/integration/accessibility/test_core.rb +0 -18
- data/test/integration/minitest/test_ax_elements.rb +0 -89
- data/test/integration/rspec/expectations/test_ax_elements.rb +0 -102
- data/test/sanity/accessibility/test_core.rb +0 -561
- data/test/sanity/accessibility/test_highlighter.rb +0 -56
- data/test/sanity/minitest/test_ax_elements.rb +0 -17
- data/test/sanity/rspec/expectations/test_ax_elements.rb +0 -15
- data/test/sanity/test_mouse.rb +0 -19
@@ -10,13 +10,20 @@ class TestAXElement < MiniTest::Unit::TestCase
|
|
10
10
|
assert_equal app.window.close_button, list.first
|
11
11
|
end
|
12
12
|
|
13
|
+
def test_parameterized_attribute_normalizes_ranges
|
14
|
+
text = app.main_window.static_text
|
15
|
+
expected = text.value
|
16
|
+
actual = text.parameterized_attribute :string_for_range, 0..-1
|
17
|
+
assert_equal expected, actual
|
18
|
+
end
|
19
|
+
|
13
20
|
def test_search_singular_returns_array
|
14
21
|
result = app.search(:window)
|
15
22
|
assert_kind_of AX::Window, result
|
16
23
|
end
|
17
24
|
|
18
25
|
def test_search_plural
|
19
|
-
result = app.search(:
|
26
|
+
result = app.window.search(:buttons)
|
20
27
|
assert_kind_of NSArray, result
|
21
28
|
end
|
22
29
|
|
@@ -43,6 +50,13 @@ class TestAXElement < MiniTest::Unit::TestCase
|
|
43
50
|
box.set :value, '' if box
|
44
51
|
end
|
45
52
|
|
53
|
+
def test_parameterized_attribute_through_method_missing
|
54
|
+
field = app.window.static_text
|
55
|
+
expected = field.parameterized_attribute :string_for_range, 0..2
|
56
|
+
actual = field.string_for_range 0..2
|
57
|
+
assert_equal expected, actual
|
58
|
+
end
|
59
|
+
|
46
60
|
def test_invalid
|
47
61
|
refute app.invalid?
|
48
62
|
|
@@ -52,4 +66,30 @@ class TestAXElement < MiniTest::Unit::TestCase
|
|
52
66
|
assert bye.invalid?
|
53
67
|
end
|
54
68
|
|
69
|
+
def test_dump_works_for_nested_tab_groups
|
70
|
+
output = app.window.tab_group.inspect_subtree
|
71
|
+
|
72
|
+
expected = [
|
73
|
+
['AX::TabGroup', 0],
|
74
|
+
['AX::RadioButton', 1], ['AX::RadioButton', 1], ['AX::TabGroup', 1],
|
75
|
+
['AX::RadioButton', 2], ['AX::RadioButton', 2], ['AX::TabGroup', 2],
|
76
|
+
['AX::RadioButton', 3], ['AX::RadioButton', 3], ['AX::TabGroup', 3],
|
77
|
+
['AX::RadioButton', 4], ['AX::RadioButton', 4],
|
78
|
+
['AX::Group', 4],
|
79
|
+
['AX::TextField', 5], ['AX::StaticText', 6],
|
80
|
+
['AX::TextField' , 5], ['AX::StaticText', 6]
|
81
|
+
]
|
82
|
+
|
83
|
+
refute_empty output
|
84
|
+
output = output.split("\n")
|
85
|
+
|
86
|
+
until output.empty?
|
87
|
+
line = output.shift
|
88
|
+
klass, indents = expected.shift
|
89
|
+
assert_equal indents, line.match(/^\t*/).to_a.first.length, line
|
90
|
+
line.strip!
|
91
|
+
assert_match /^\#<#{klass}/, line
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
55
95
|
end
|
@@ -1,88 +1,55 @@
|
|
1
1
|
require 'test/helper'
|
2
2
|
require 'accessibility/factory'
|
3
|
-
require 'ax/element'
|
4
3
|
require 'ax/application'
|
5
4
|
|
6
|
-
|
7
|
-
class AX::Element
|
8
|
-
attr_reader :ref
|
9
|
-
end
|
10
|
-
|
11
|
-
class TestAccessibilityFactory < MiniTest::Unit::TestCase
|
12
|
-
include Accessibility::Factory
|
5
|
+
class TestAccessibilityElementFactory < MiniTest::Unit::TestCase
|
13
6
|
|
14
7
|
def window
|
15
|
-
REF.children.find { |x| x.role == KAXWindowRole }
|
8
|
+
@@window ||= REF.to_ruby.children.find { |x| x.role == KAXWindowRole }
|
16
9
|
end
|
17
10
|
|
18
11
|
def scroll_area
|
19
|
-
window.children.find { |x|
|
20
|
-
x.attributes.include?(
|
21
|
-
x.
|
12
|
+
@@scroll_area ||= window.children.find { |x|
|
13
|
+
x.attributes.include?(:description) &&
|
14
|
+
x.description == 'Test Web Area'
|
22
15
|
}
|
23
16
|
end
|
24
17
|
|
25
18
|
def web_area
|
26
|
-
scroll_area.children.find { |x| x.role == 'AXWebArea' }
|
19
|
+
@@web_area ||= scroll_area.children.find { |x| x.role == 'AXWebArea' }
|
27
20
|
end
|
28
21
|
|
29
22
|
def close_button
|
30
|
-
window.children.find { |x|
|
31
|
-
x.attributes.include?(
|
32
|
-
x.attribute(
|
23
|
+
@@close_button ||= window.children.find { |x|
|
24
|
+
x.attributes.include?(:subrole) &&
|
25
|
+
x.attribute(:subrole) == KAXCloseButtonSubrole
|
33
26
|
}
|
34
27
|
end
|
35
28
|
|
36
29
|
def test_processing_element_refs
|
37
|
-
assert_equal REF,
|
30
|
+
assert_equal REF, REF.to_ruby.instance_variable_get(:@ref)
|
38
31
|
|
39
|
-
o =
|
32
|
+
o = web_area
|
40
33
|
assert_instance_of AX::WebArea, o
|
41
34
|
|
42
|
-
# intentionally done
|
43
|
-
#
|
44
|
-
#
|
45
|
-
# used again when needed
|
35
|
+
# intentionally done twice to see if the created class is
|
36
|
+
# used again; this guarantees that the class can be created
|
37
|
+
# properly and then used again when needed
|
46
38
|
2.times do
|
47
|
-
o =
|
48
|
-
assert_instance_of AX::StandardWindow, o
|
49
|
-
o =
|
50
|
-
assert_instance_of AX::CloseButton, o
|
39
|
+
o = window
|
40
|
+
assert_instance_of AX::StandardWindow, o, 'class_for2 failed'
|
41
|
+
o = close_button
|
42
|
+
assert_instance_of AX::CloseButton, o, 'class_for2 failed'
|
51
43
|
end
|
52
44
|
|
53
45
|
2.times do
|
54
|
-
o =
|
55
|
-
assert_instance_of AX::Application, o
|
56
|
-
o =
|
57
|
-
assert_instance_of AX::ScrollArea, o
|
46
|
+
o = REF.to_ruby
|
47
|
+
assert_instance_of AX::Application, o, 'class_for failed'
|
48
|
+
o = scroll_area
|
49
|
+
assert_instance_of AX::ScrollArea, o, 'class_for failed'
|
58
50
|
end
|
59
51
|
end
|
60
52
|
|
61
|
-
|
62
|
-
assert_equal [], process_array([])
|
63
|
-
assert_equal [1], process_array([1])
|
64
|
-
|
65
|
-
expected = [AX::Application.new(REF)]
|
66
|
-
assert_equal expected, process_array([REF])
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_processing_arbitrary_objects
|
70
|
-
assert_equal 'test', process('test')
|
71
|
-
assert_equal 42, process(42)
|
72
|
-
|
73
|
-
now = Time.now
|
74
|
-
assert_equal now, process(now)
|
75
|
-
|
76
|
-
string = NSAttributedString.alloc.initWithString 'hi'
|
77
|
-
assert_equal string, process(string)
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_processing_nil
|
81
|
-
assert_nil process(nil)
|
82
|
-
end
|
83
|
-
|
84
|
-
def bench_process
|
85
|
-
skip 'This is important when we get to optimizing'
|
86
|
-
end
|
53
|
+
# @todo bencmark Element#to_ruby
|
87
54
|
|
88
55
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
|
-
class
|
4
|
-
include Accessibility::
|
3
|
+
class TestAccessibilityPrettyPrinter < MiniTest::Unit::TestCase
|
4
|
+
include Accessibility::PrettyPrinter
|
5
5
|
|
6
|
-
# expected API for
|
6
|
+
# expected API for PrettyPrinter module
|
7
7
|
attr_reader :attributes
|
8
8
|
def attribute attr; @attribute; end
|
9
9
|
def size_of attr; @size_of; end
|
@@ -18,10 +18,10 @@ class TestAccessibilityPPInspector < MiniTest::Unit::TestCase
|
|
18
18
|
assert_match /value=3.14/, pp_identifier
|
19
19
|
|
20
20
|
@attribute = ''
|
21
|
-
assert_match EMPTY_STRING, pp_identifier
|
21
|
+
assert_match EMPTY_STRING, pp_identifier.to_s
|
22
22
|
|
23
23
|
@attribute = nil
|
24
|
-
assert_match EMPTY_STRING, pp_identifier
|
24
|
+
assert_match EMPTY_STRING, pp_identifier.to_s
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_identifier_using_title
|
@@ -43,8 +43,8 @@ class TestAccessibilityPPInspector < MiniTest::Unit::TestCase
|
|
43
43
|
@attribute = 'roflcopter'
|
44
44
|
assert_match /roflcopter/, pp_identifier
|
45
45
|
|
46
|
-
@attribute =
|
47
|
-
assert_equal EMPTY_STRING, pp_identifier
|
46
|
+
@attribute = ''
|
47
|
+
assert_equal EMPTY_STRING, pp_identifier.to_s
|
48
48
|
|
49
49
|
@attribute = 26
|
50
50
|
assert_match /26/, pp_identifier
|
@@ -62,11 +62,11 @@ class TestAccessibilityPPInspector < MiniTest::Unit::TestCase
|
|
62
62
|
|
63
63
|
def test_identifier_empty_string_as_final_fallback
|
64
64
|
@attributes = NSArray.array
|
65
|
-
assert_equal EMPTY_STRING, pp_identifier
|
65
|
+
assert_equal EMPTY_STRING, pp_identifier.to_s
|
66
66
|
end
|
67
67
|
|
68
68
|
def test_position
|
69
|
-
@attribute =
|
69
|
+
@attribute = CGPoint.new
|
70
70
|
assert_match /\(0\.0, 0\.0\)/, pp_position
|
71
71
|
|
72
72
|
@attribute = CGPoint.new(3.14, -5)
|
@@ -33,9 +33,8 @@ class TestAccessibilityTranslator < MiniTest::Unit::TestCase
|
|
33
33
|
assert_equal KAXIsApplicationRunningAttribute, TRANSLATOR.cocoaify(:is_application_running)
|
34
34
|
assert_equal KAXIsApplicationRunningAttribute, TRANSLATOR.cocoaify(:application_running?)
|
35
35
|
assert_equal KAXIsApplicationRunningAttribute, TRANSLATOR.cocoaify(:application_running)
|
36
|
-
end
|
37
36
|
|
38
|
-
|
37
|
+
# acronyms
|
39
38
|
assert_equal KAXURLAttribute, TRANSLATOR.cocoaify(:url)
|
40
39
|
assert_equal KAXTitleUIElementAttribute, TRANSLATOR.cocoaify(:title_ui_element)
|
41
40
|
assert_equal KAXRTFForRangeParameterizedAttribute, TRANSLATOR.cocoaify(:rtf_for_range)
|
@@ -46,12 +45,10 @@ class TestAccessibilityTranslator < MiniTest::Unit::TestCase
|
|
46
45
|
assert_equal [:main_window], TRANSLATOR.rubyize([KAXMainWindowAttribute])
|
47
46
|
assert_equal [:string_for_range], TRANSLATOR.rubyize([KAXStringForRangeParameterizedAttribute])
|
48
47
|
assert_equal [:subrole, :children], TRANSLATOR.rubyize([KAXSubroleAttribute, KAXChildrenAttribute])
|
49
|
-
end
|
50
48
|
|
51
|
-
def test_rubyize_doesnt_eat_original_data
|
52
49
|
array = [KAXTitleAttribute, KAXMainWindowAttribute]
|
53
50
|
TRANSLATOR.rubyize array
|
54
|
-
assert_equal [KAXTitleAttribute, KAXMainWindowAttribute], array
|
51
|
+
assert_equal [KAXTitleAttribute, KAXMainWindowAttribute], array, 'Should not eat original data'
|
55
52
|
end
|
56
53
|
|
57
54
|
def test_classify
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'test/runner'
|
2
|
+
require 'accessibility/version'
|
3
|
+
|
4
|
+
class TestAccessibilityVersion < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
def test_version_is_ascii_only # RubyGems :(
|
7
|
+
assert_equal Accessibility::VERSION.encode(Encoding::ASCII), Accessibility::VERSION
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_version_method
|
11
|
+
assert_match Accessibility::VERSION, Accessibility.version
|
12
|
+
assert_match Accessibility::ENGINE, Accessibility.version
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -19,11 +19,22 @@ class TestAXApplication < MiniTest::Unit::TestCase
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def test_inspect
|
22
|
-
assert_match app.inspect
|
22
|
+
assert_match /children/, app.inspect
|
23
23
|
assert_match /\spid=\d+/, app.inspect
|
24
24
|
assert_match /\sfocused\[(?:✔|✘)\]/, app.inspect
|
25
25
|
end
|
26
26
|
|
27
|
+
def tset_action_methods_forward_to_perform
|
28
|
+
def app.perform name
|
29
|
+
[:cracker_jacks, name]
|
30
|
+
end
|
31
|
+
|
32
|
+
assert_equal [:cracker_jacks, :terminate], app.terminate
|
33
|
+
assert_equal [:cracker_jacks, :force_terminate], app.terminate!
|
34
|
+
assert_equal [:cracker_jacks, :hide], app.hide
|
35
|
+
assert_equal [:cracker_jacks, :unhide], app.unhide
|
36
|
+
end
|
37
|
+
|
27
38
|
def test_terminate
|
28
39
|
got_called = false
|
29
40
|
mock = Object.new
|
@@ -89,11 +100,15 @@ class TestAXApplication < MiniTest::Unit::TestCase
|
|
89
100
|
end
|
90
101
|
|
91
102
|
def test_info_plist
|
92
|
-
assert_equal '
|
103
|
+
assert_equal 'transmute', app.info_plist['CFBundleIconFile']
|
93
104
|
end
|
94
105
|
|
95
106
|
def test_version
|
96
107
|
assert_equal '1.0', app.version
|
97
108
|
end
|
98
109
|
|
110
|
+
def test_ancestor
|
111
|
+
assert_nil app.ancestor(:menu)
|
112
|
+
end
|
113
|
+
|
99
114
|
end
|
@@ -51,7 +51,7 @@ class TestAXElement < MiniTest::Unit::TestCase
|
|
51
51
|
end
|
52
52
|
|
53
53
|
# the nil case
|
54
|
-
center_test
|
54
|
+
center_test CGPoint.new, CGSize.new, CGPoint.new
|
55
55
|
# simple square with origin at zero
|
56
56
|
center_test [0,0], [2,2], [1,1]
|
57
57
|
# simple square in positive positive quadrant
|
@@ -71,7 +71,7 @@ class TestSearchResultBlankness < MiniTest::Unit::TestCase
|
|
71
71
|
|
72
72
|
def test_array_blank
|
73
73
|
[
|
74
|
-
|
74
|
+
Array.new,
|
75
75
|
[true]
|
76
76
|
].each do |ary|
|
77
77
|
assert_equal ary.empty?, ary.blank?
|
@@ -1,11 +1,13 @@
|
|
1
1
|
require 'test/runner'
|
2
2
|
|
3
|
+
if on_macruby?
|
3
4
|
class TestNSObjectExtensions < MiniTest::Unit::TestCase
|
4
5
|
# keeping this test just to make sure the version of MacRuby
|
5
6
|
# being used is new enough
|
6
7
|
def test_inspecting
|
7
|
-
|
8
|
-
|
8
|
+
url = NSURL.URLWithString('http://marketcircle.com/')
|
9
|
+
assert_equal url.description, url.inspect
|
9
10
|
end
|
10
11
|
end
|
12
|
+
end
|
11
13
|
|
metadata
CHANGED
@@ -2,31 +2,79 @@
|
|
2
2
|
name: AXElements
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.9.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Mark Rada
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-21 00:00:00 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: mouse
|
16
16
|
prerelease: false
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
23
|
-
type: :
|
22
|
+
version: 2.0.0
|
23
|
+
type: :runtime
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.0.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: screen_recorder
|
32
|
+
prerelease: false
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ~>
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 0.1.5
|
39
|
+
type: :runtime
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.1.5
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: accessibility_core
|
48
|
+
prerelease: false
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.4.1
|
55
|
+
type: :runtime
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.4.1
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: activesupport
|
64
|
+
prerelease: false
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ~>
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 3.2.10
|
71
|
+
type: :runtime
|
24
72
|
version_requirements: !ruby/object:Gem::Requirement
|
25
73
|
none: false
|
26
74
|
requirements:
|
27
75
|
- - ~>
|
28
76
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
77
|
+
version: 3.2.10
|
30
78
|
- !ruby/object:Gem::Dependency
|
31
79
|
name: yard
|
32
80
|
prerelease: false
|
@@ -35,30 +83,30 @@ dependencies:
|
|
35
83
|
requirements:
|
36
84
|
- - ~>
|
37
85
|
- !ruby/object:Gem::Version
|
38
|
-
version: 0.
|
86
|
+
version: 0.8.3
|
39
87
|
type: :development
|
40
88
|
version_requirements: !ruby/object:Gem::Requirement
|
41
89
|
none: false
|
42
90
|
requirements:
|
43
91
|
- - ~>
|
44
92
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.
|
93
|
+
version: 0.8.3
|
46
94
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
95
|
+
name: kramdown
|
48
96
|
prerelease: false
|
49
97
|
requirement: !ruby/object:Gem::Requirement
|
50
98
|
none: false
|
51
99
|
requirements:
|
52
100
|
- - ~>
|
53
101
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
102
|
+
version: 0.14.1
|
55
103
|
type: :development
|
56
104
|
version_requirements: !ruby/object:Gem::Requirement
|
57
105
|
none: false
|
58
106
|
requirements:
|
59
107
|
- - ~>
|
60
108
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
109
|
+
version: 0.14.1
|
62
110
|
description: 'AXElements is a UI automation DSL built on top of the Mac OS X Accessibility
|
63
111
|
|
64
112
|
Framework that allows code to be written in a very natural and declarative
|
@@ -72,16 +120,15 @@ extensions:
|
|
72
120
|
- ext/accessibility/key_coder/extconf.rb
|
73
121
|
extra_rdoc_files: []
|
74
122
|
files:
|
75
|
-
- lib/accessibility/core.rb
|
76
123
|
- lib/accessibility/dsl.rb
|
77
124
|
- lib/accessibility/enumerators.rb
|
78
125
|
- lib/accessibility/errors.rb
|
79
126
|
- lib/accessibility/factory.rb
|
80
127
|
- lib/accessibility/graph.rb
|
81
|
-
- lib/accessibility/
|
82
|
-
- lib/accessibility/pp_inspector.rb
|
128
|
+
- lib/accessibility/pretty_printer.rb
|
83
129
|
- lib/accessibility/qualifier.rb
|
84
130
|
- lib/accessibility/string.rb
|
131
|
+
- lib/accessibility/system_info.rb
|
85
132
|
- lib/accessibility/translator.rb
|
86
133
|
- lib/accessibility/version.rb
|
87
134
|
- lib/accessibility.rb
|
@@ -95,17 +142,13 @@ files:
|
|
95
142
|
- lib/ax/scroll_area.rb
|
96
143
|
- lib/ax/static_text.rb
|
97
144
|
- lib/ax/systemwide.rb
|
145
|
+
- lib/ax_elements/active_support_selections.rb
|
98
146
|
- lib/ax_elements/awesome_print.rb
|
99
147
|
- lib/ax_elements/exception_workaround.rb
|
148
|
+
- lib/ax_elements/mri.rb
|
100
149
|
- lib/ax_elements/nsarray_compat.rb
|
101
|
-
- lib/ax_elements/vendor/inflection_data.rb
|
102
|
-
- lib/ax_elements/vendor/inflections.rb
|
103
|
-
- lib/ax_elements/vendor/inflector.rb
|
104
150
|
- lib/ax_elements.rb
|
105
151
|
- lib/AXElements.rb
|
106
|
-
- lib/minitest/ax_elements.rb
|
107
|
-
- lib/mouse.rb
|
108
|
-
- lib/rspec/expectations/ax_elements.rb
|
109
152
|
- ext/accessibility/key_coder/extconf.rb
|
110
153
|
- ext/accessibility/key_coder/key_coder.c
|
111
154
|
- rakelib/doc.rake
|
@@ -114,8 +157,8 @@ files:
|
|
114
157
|
- rakelib/test.rake
|
115
158
|
- Rakefile
|
116
159
|
- README.markdown
|
160
|
+
- History.markdown
|
117
161
|
- .yardopts
|
118
|
-
- test/integration/accessibility/test_core.rb
|
119
162
|
- test/integration/accessibility/test_dsl.rb
|
120
163
|
- test/integration/accessibility/test_enumerators.rb
|
121
164
|
- test/integration/accessibility/test_errors.rb
|
@@ -126,27 +169,21 @@ files:
|
|
126
169
|
- test/integration/ax/test_menu.rb
|
127
170
|
- test/integration/ax/test_row.rb
|
128
171
|
- test/integration/ax_elements/test_nsarray_compat.rb
|
129
|
-
- test/integration/minitest/test_ax_elements.rb
|
130
|
-
- test/integration/rspec/expectations/test_ax_elements.rb
|
131
|
-
- test/sanity/accessibility/test_core.rb
|
132
172
|
- test/sanity/accessibility/test_dsl.rb
|
133
173
|
- test/sanity/accessibility/test_errors.rb
|
134
174
|
- test/sanity/accessibility/test_factory.rb
|
135
|
-
- test/sanity/accessibility/
|
136
|
-
- test/sanity/accessibility/test_pp_inspector.rb
|
175
|
+
- test/sanity/accessibility/test_pretty_printer.rb
|
137
176
|
- test/sanity/accessibility/test_qualifier.rb
|
138
177
|
- test/sanity/accessibility/test_string.rb
|
139
178
|
- test/sanity/accessibility/test_translator.rb
|
179
|
+
- test/sanity/accessibility/test_version.rb
|
140
180
|
- test/sanity/ax/test_application.rb
|
141
181
|
- test/sanity/ax/test_element.rb
|
142
182
|
- test/sanity/ax/test_systemwide.rb
|
143
183
|
- test/sanity/ax_elements/test_nsarray_compat.rb
|
144
184
|
- test/sanity/ax_elements/test_nsobject_inspect.rb
|
145
|
-
- test/sanity/minitest/test_ax_elements.rb
|
146
|
-
- test/sanity/rspec/expectations/test_ax_elements.rb
|
147
185
|
- test/sanity/test_accessibility.rb
|
148
186
|
- test/sanity/test_ax_elements.rb
|
149
|
-
- test/sanity/test_mouse.rb
|
150
187
|
- test/helper.rb
|
151
188
|
homepage: http://github.com/Marketcircle/AXElements
|
152
189
|
licenses:
|
@@ -169,12 +206,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
206
|
version: "0"
|
170
207
|
requirements: []
|
171
208
|
rubyforge_project:
|
172
|
-
rubygems_version: 1.8.
|
209
|
+
rubygems_version: 1.8.24
|
173
210
|
signing_key:
|
174
211
|
specification_version: 3
|
175
212
|
summary: A DSL for automating GUI manipulation
|
176
213
|
test_files:
|
177
|
-
- test/integration/accessibility/test_core.rb
|
178
214
|
- test/integration/accessibility/test_dsl.rb
|
179
215
|
- test/integration/accessibility/test_enumerators.rb
|
180
216
|
- test/integration/accessibility/test_errors.rb
|
@@ -185,25 +221,19 @@ test_files:
|
|
185
221
|
- test/integration/ax/test_menu.rb
|
186
222
|
- test/integration/ax/test_row.rb
|
187
223
|
- test/integration/ax_elements/test_nsarray_compat.rb
|
188
|
-
- test/integration/minitest/test_ax_elements.rb
|
189
|
-
- test/integration/rspec/expectations/test_ax_elements.rb
|
190
|
-
- test/sanity/accessibility/test_core.rb
|
191
224
|
- test/sanity/accessibility/test_dsl.rb
|
192
225
|
- test/sanity/accessibility/test_errors.rb
|
193
226
|
- test/sanity/accessibility/test_factory.rb
|
194
|
-
- test/sanity/accessibility/
|
195
|
-
- test/sanity/accessibility/test_pp_inspector.rb
|
227
|
+
- test/sanity/accessibility/test_pretty_printer.rb
|
196
228
|
- test/sanity/accessibility/test_qualifier.rb
|
197
229
|
- test/sanity/accessibility/test_string.rb
|
198
230
|
- test/sanity/accessibility/test_translator.rb
|
231
|
+
- test/sanity/accessibility/test_version.rb
|
199
232
|
- test/sanity/ax/test_application.rb
|
200
233
|
- test/sanity/ax/test_element.rb
|
201
234
|
- test/sanity/ax/test_systemwide.rb
|
202
235
|
- test/sanity/ax_elements/test_nsarray_compat.rb
|
203
236
|
- test/sanity/ax_elements/test_nsobject_inspect.rb
|
204
|
-
- test/sanity/minitest/test_ax_elements.rb
|
205
|
-
- test/sanity/rspec/expectations/test_ax_elements.rb
|
206
237
|
- test/sanity/test_accessibility.rb
|
207
238
|
- test/sanity/test_ax_elements.rb
|
208
|
-
- test/sanity/test_mouse.rb
|
209
239
|
- test/helper.rb
|