automation_object 0.0.4 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/automation_object.rb +14 -72
- data/lib/automation_object/blue_print.rb +37 -100
- data/lib/automation_object/blue_print/composite/automatic_onload_modal.rb +28 -0
- data/lib/automation_object/blue_print/composite/base.rb +18 -0
- data/lib/automation_object/blue_print/composite/custom_method.rb +23 -0
- data/lib/automation_object/blue_print/composite/element.rb +20 -0
- data/lib/automation_object/blue_print/composite/element_array.rb +21 -0
- data/lib/automation_object/blue_print/composite/element_hash.rb +26 -0
- data/lib/automation_object/blue_print/composite/helpers/element_helper.rb +33 -0
- data/lib/automation_object/blue_print/composite/helpers/multiple_elements_helper.rb +18 -0
- data/lib/automation_object/blue_print/composite/hook.rb +31 -0
- data/lib/automation_object/blue_print/composite/hook_action.rb +84 -0
- data/lib/automation_object/blue_print/composite/hook_element_requirements.rb +39 -0
- data/lib/automation_object/blue_print/composite/modal.rb +56 -0
- data/lib/automation_object/blue_print/composite/screen.rb +61 -0
- data/lib/automation_object/blue_print/composite/top.rb +51 -0
- data/lib/automation_object/blue_print/composite/view.rb +48 -0
- data/lib/automation_object/blue_print/hash_adapter.rb +17 -0
- data/lib/automation_object/blue_print/hash_adapter/automatic_onload_modal.rb +35 -0
- data/lib/automation_object/blue_print/hash_adapter/composite.rb +93 -0
- data/lib/automation_object/blue_print/hash_adapter/custom_method.rb +30 -0
- data/lib/automation_object/blue_print/hash_adapter/element.rb +34 -0
- data/lib/automation_object/blue_print/hash_adapter/element_array.rb +36 -0
- data/lib/automation_object/blue_print/hash_adapter/element_hash.rb +43 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/element_helper.rb +59 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/multiple_elements_helper.rb +35 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/validation_error.rb +26 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/validation_helper.rb +99 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate.rb +23 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_allowed_keys.rb +31 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_element_presence_of.rb +55 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_instance_of.rb +39 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_modal_presence_of.rb +54 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_presence_of.rb +36 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_screen_presence_of.rb +55 -0
- data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_view_presence_of.rb +52 -0
- data/lib/automation_object/blue_print/hash_adapter/hook.rb +35 -0
- data/lib/automation_object/blue_print/hash_adapter/hook_action.rb +134 -0
- data/lib/automation_object/blue_print/hash_adapter/hook_element_requirements.rb +64 -0
- data/lib/automation_object/blue_print/hash_adapter/modal.rb +52 -0
- data/lib/automation_object/blue_print/hash_adapter/screen.rb +91 -0
- data/lib/automation_object/blue_print/hash_adapter/top.rb +63 -0
- data/lib/automation_object/blue_print/hash_adapter/view.rb +29 -0
- data/lib/automation_object/blue_print/helpers/file_helper.rb +38 -0
- data/lib/automation_object/blue_print/yaml_adapter.rb +50 -0
- data/lib/automation_object/driver.rb +44 -0
- data/lib/automation_object/driver/appium_adapter/driver.rb +150 -0
- data/lib/automation_object/driver/appium_adapter/element.rb +118 -0
- data/lib/automation_object/driver/base.rb +11 -0
- data/lib/automation_object/driver/driver.rb +69 -245
- data/lib/automation_object/driver/element.rb +51 -210
- data/lib/automation_object/driver/helpers/selenium_driver_helper.rb +41 -0
- data/lib/automation_object/driver/helpers/selenium_element_helper.rb +138 -0
- data/lib/automation_object/driver/nokogiri_adapter/backup/driver.rb +83 -0
- data/lib/automation_object/driver/nokogiri_adapter/backup/element.rb +66 -0
- data/lib/automation_object/driver/nokogiri_adapter/backup/form.rb +29 -0
- data/lib/automation_object/driver/nokogiri_adapter/backup/helpers/driver_element_helper.rb +52 -0
- data/lib/automation_object/driver/nokogiri_adapter/backup/session.rb +115 -0
- data/lib/automation_object/driver/nokogiri_adapter/driver.rb +104 -0
- data/lib/automation_object/driver/nokogiri_adapter/element.rb +85 -0
- data/lib/automation_object/driver/nokogiri_adapter/error.rb +17 -0
- data/lib/automation_object/driver/selenium_adapter/driver.rb +143 -0
- data/lib/automation_object/driver/selenium_adapter/element.rb +116 -0
- data/lib/automation_object/dsl.rb +33 -0
- data/lib/automation_object/dsl/blue_print_adapter.rb +16 -0
- data/lib/automation_object/dsl/blue_print_adapter/composite.rb +54 -0
- data/lib/automation_object/dsl/blue_print_adapter/element.rb +14 -0
- data/lib/automation_object/dsl/blue_print_adapter/element_array.rb +14 -0
- data/lib/automation_object/dsl/blue_print_adapter/element_hash.rb +14 -0
- data/lib/automation_object/dsl/blue_print_adapter/modal.rb +23 -0
- data/lib/automation_object/dsl/blue_print_adapter/screen.rb +26 -0
- data/lib/automation_object/dsl/blue_print_adapter/top.rb +19 -0
- data/lib/automation_object/dsl/models.rb +18 -0
- data/lib/automation_object/dsl/proxies/element.rb +16 -0
- data/lib/automation_object/dsl/proxies/element_array.rb +16 -0
- data/lib/automation_object/dsl/proxies/element_hash.rb +16 -0
- data/lib/automation_object/dsl/proxies/helpers/composite_helper.rb +74 -0
- data/lib/automation_object/dsl/proxies/modal.rb +17 -0
- data/lib/automation_object/dsl/proxies/screen.rb +17 -0
- data/lib/automation_object/dsl/proxies/top.rb +17 -0
- data/lib/automation_object/framework.rb +79 -386
- data/lib/automation_object/helpers/composite.rb +95 -0
- data/lib/automation_object/helpers/composite_hook.rb +46 -0
- data/lib/automation_object/helpers/hash.rb +15 -0
- data/lib/automation_object/helpers/reflection_helper.rb +28 -0
- data/lib/automation_object/helpers/string.rb +27 -0
- data/lib/automation_object/proxies/mutex_proxy.rb +63 -0
- data/lib/automation_object/proxies/proxy.rb +20 -0
- data/lib/automation_object/proxies/throttle_proxy.rb +57 -0
- data/lib/automation_object/state.rb +37 -0
- data/lib/automation_object/state/blue_print_adapter.rb +16 -0
- data/lib/automation_object/state/blue_print_adapter/composite.rb +65 -0
- data/lib/automation_object/state/blue_print_adapter/element.rb +20 -0
- data/lib/automation_object/state/blue_print_adapter/element_array.rb +25 -0
- data/lib/automation_object/state/blue_print_adapter/element_hash.rb +31 -0
- data/lib/automation_object/state/blue_print_adapter/element_proxy.rb +28 -0
- data/lib/automation_object/state/blue_print_adapter/helpers/element_helper.rb +31 -0
- data/lib/automation_object/state/blue_print_adapter/helpers/screen_manager.rb +137 -0
- data/lib/automation_object/state/blue_print_adapter/helpers/window.rb +39 -0
- data/lib/automation_object/state/blue_print_adapter/hook.rb +56 -0
- data/lib/automation_object/state/blue_print_adapter/hook_action.rb +33 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/action_loop.rb +35 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/change_screen.rb +26 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/change_to_previous_screen.rb +21 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/close_modal.rb +31 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/close_screen.rb +19 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/element_requirement.rb +34 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/new_screen.rb +37 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/possible_screen_changes.rb +21 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/reset_screen.rb +18 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/show_modal.rb +26 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/sleep.rb +18 -0
- data/lib/automation_object/state/blue_print_adapter/hook_actions/wait_for_elements.rb +20 -0
- data/lib/automation_object/state/blue_print_adapter/modal.rb +26 -0
- data/lib/automation_object/state/blue_print_adapter/screen.rb +32 -0
- data/lib/automation_object/state/blue_print_adapter/top.rb +45 -0
- data/lib/automation_object/state/error.rb +24 -0
- data/lib/automation_object/state/session.rb +38 -0
- data/lib/automation_object/step_definitions.rb +14 -0
- data/lib/automation_object/step_definitions/action.rb +21 -0
- data/lib/automation_object/step_definitions/cache.rb +23 -0
- data/lib/automation_object/step_definitions/element/actions.rb +87 -0
- data/lib/automation_object/step_definitions/element/regex.rb +24 -0
- data/lib/automation_object/step_definitions/element/steps.rb +67 -0
- data/lib/automation_object/step_definitions/parse.rb +39 -0
- data/lib/automation_object/version.rb +1 -1
- metadata +194 -110
- data/lib/automation_object/blue_print_validation/base_validation.rb +0 -44
- data/lib/automation_object/blue_print_validation/common_methods.rb +0 -106
- data/lib/automation_object/blue_print_validation/element_validation.rb +0 -198
- data/lib/automation_object/blue_print_validation/formatted_errors.rb +0 -41
- data/lib/automation_object/blue_print_validation/hook_validation.rb +0 -393
- data/lib/automation_object/blue_print_validation/key_value_constants.rb +0 -75
- data/lib/automation_object/blue_print_validation/modal_validation.rb +0 -37
- data/lib/automation_object/blue_print_validation/screen_modal_common_methods.rb +0 -119
- data/lib/automation_object/blue_print_validation/screen_validation.rb +0 -21
- data/lib/automation_object/blue_print_validation/validation_object.rb +0 -32
- data/lib/automation_object/driver/anonymous.rb +0 -27
- data/lib/automation_object/element/element.rb +0 -145
- data/lib/automation_object/element/element_array.rb +0 -12
- data/lib/automation_object/element/element_cell.rb +0 -126
- data/lib/automation_object/element/element_group.rb +0 -33
- data/lib/automation_object/element/element_hash.rb +0 -25
- data/lib/automation_object/element/element_helpers.rb +0 -29
- data/lib/automation_object/element/element_methods.rb +0 -134
- data/lib/automation_object/element/elements_helpers.rb +0 -204
- data/lib/automation_object/framework/events.rb +0 -8
- data/lib/automation_object/framework/helpers.rb +0 -101
- data/lib/automation_object/framework/print_objects.rb +0 -67
- data/lib/automation_object/framework/screen_monitor.rb +0 -55
- data/lib/automation_object/framework/screen_routing.rb +0 -310
- data/lib/automation_object/framework/window_helpers.rb +0 -181
- data/lib/automation_object/hash.rb +0 -6
- data/lib/automation_object/hook_helpers.rb +0 -27
- data/lib/automation_object/logger.rb +0 -179
- data/lib/automation_object/object.rb +0 -22
- data/lib/automation_object/screen/modal.rb +0 -8
- data/lib/automation_object/screen/screen.rb +0 -209
- data/lib/automation_object/screen/screen_hook_helpers.rb +0 -319
- data/lib/automation_object/screen/screen_modal_helpers.rb +0 -101
- data/lib/automation_object/screen/screen_prompt_helpers.rb +0 -21
- data/lib/automation_object/screen/screen_window_helpers.rb +0 -149
@@ -0,0 +1,31 @@
|
|
1
|
+
#Require parent class
|
2
|
+
require_relative 'base'
|
3
|
+
|
4
|
+
require_relative 'hook_action'
|
5
|
+
require_relative 'hook_element_requirements'
|
6
|
+
|
7
|
+
module AutomationObject
|
8
|
+
module BluePrint
|
9
|
+
module Composite
|
10
|
+
#Hook composite class, passing method to adapter only
|
11
|
+
#Hoping to improve code completion and standard interface where
|
12
|
+
#classes use this as a template to add additional adapters
|
13
|
+
class Hook < Base
|
14
|
+
# @return [HookAction]
|
15
|
+
def before
|
16
|
+
self.adapter.before
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [HookAction]
|
20
|
+
def after
|
21
|
+
self.adapter.after
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Array<HookElementRequirements>] array of element requirements
|
25
|
+
def live?
|
26
|
+
self.adapter.live?
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#Require parent class
|
2
|
+
require_relative 'base'
|
3
|
+
|
4
|
+
require_relative 'hook_element_requirements'
|
5
|
+
|
6
|
+
module AutomationObject
|
7
|
+
module BluePrint
|
8
|
+
module Composite
|
9
|
+
#HookAction composite class, passing method to adapter only
|
10
|
+
#Hoping to improve code completion and standard interface where
|
11
|
+
#classes use this as a template to add additional adapters
|
12
|
+
class HookAction < Base
|
13
|
+
#Get the order to run the hook in
|
14
|
+
# @return [Array<Symbol>] list of hook methods to run in given order
|
15
|
+
def hook_order
|
16
|
+
self.adapter.hook_order
|
17
|
+
end
|
18
|
+
|
19
|
+
#Get length of hook actions
|
20
|
+
# @return [Integer] length of hook actions
|
21
|
+
def length
|
22
|
+
self.adapter.length
|
23
|
+
end
|
24
|
+
|
25
|
+
#See if hook actions are empty
|
26
|
+
# @return [Boolean] if hook actions are empty
|
27
|
+
def empty?
|
28
|
+
self.adapter.empty?
|
29
|
+
end
|
30
|
+
|
31
|
+
# @return [Symbol, nil] screen to change to
|
32
|
+
def change_screen
|
33
|
+
self.adapter.change_screen
|
34
|
+
end
|
35
|
+
|
36
|
+
# @return [Symbol, nil] new screen
|
37
|
+
def new_screen
|
38
|
+
self.adapter.new_screen
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [Boolean]
|
42
|
+
def close_screen
|
43
|
+
self.adapter.close_screen
|
44
|
+
end
|
45
|
+
|
46
|
+
# @return [Boolean]
|
47
|
+
def close_modal
|
48
|
+
self.adapter.close_modal
|
49
|
+
end
|
50
|
+
|
51
|
+
# @return [Boolean]
|
52
|
+
def change_to_previous_screen
|
53
|
+
self.adapter.change_to_previous_screen
|
54
|
+
end
|
55
|
+
|
56
|
+
# @return [Symbol, nil]
|
57
|
+
def show_modal
|
58
|
+
self.adapter.show_modal
|
59
|
+
end
|
60
|
+
|
61
|
+
# @return [Array]
|
62
|
+
def possible_screen_changes
|
63
|
+
self.adapter.possible_screen_changes
|
64
|
+
end
|
65
|
+
|
66
|
+
#@return [Boolean] reset the screen?
|
67
|
+
def reset_screen
|
68
|
+
self.adapter.reset_screen
|
69
|
+
end
|
70
|
+
|
71
|
+
#@return [Numeric] amount of time to sleep
|
72
|
+
def sleep
|
73
|
+
self.adapter.sleep
|
74
|
+
end
|
75
|
+
|
76
|
+
#Custom method for array of children instead of Hash
|
77
|
+
# @return [Array<HookElementRequirements>] array of wait for element children
|
78
|
+
def wait_for_elements
|
79
|
+
self.adapter.wait_for_elements
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
#Require parent class
|
2
|
+
require_relative 'base'
|
3
|
+
|
4
|
+
require_relative 'element'
|
5
|
+
|
6
|
+
module AutomationObject
|
7
|
+
module BluePrint
|
8
|
+
module Composite
|
9
|
+
#HookElementRequirements composite class, passing method to adapter only
|
10
|
+
#Hoping to improve code completion and standard interface where
|
11
|
+
#classes use this as a template to add additional adapters
|
12
|
+
class HookElementRequirements < Base
|
13
|
+
#Get the order to run the hook in
|
14
|
+
# @return [Array<Symbol>] list of hook methods to run in given order
|
15
|
+
def hook_order
|
16
|
+
self.adapter.hook_order
|
17
|
+
end
|
18
|
+
|
19
|
+
#Get element requirement
|
20
|
+
# @param name [Symbol] name of requested requirement
|
21
|
+
def requirement(name)
|
22
|
+
self.adapter.requirement(name)
|
23
|
+
end
|
24
|
+
|
25
|
+
#Get name of the element
|
26
|
+
# @return [Symbol] name of element
|
27
|
+
def element_name
|
28
|
+
self.adapter.element_name
|
29
|
+
end
|
30
|
+
|
31
|
+
#Convience for getting element blueprints
|
32
|
+
# @return [AutomationObject::BluePrint::Composite::Element]
|
33
|
+
def element_blueprints(composite_object = nil)
|
34
|
+
self.adapter.element_blueprints(composite_object)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#Require parent class
|
2
|
+
require_relative 'base'
|
3
|
+
|
4
|
+
require_relative 'automatic_onload_modal'
|
5
|
+
require_relative 'hook'
|
6
|
+
|
7
|
+
require_relative 'modal'
|
8
|
+
require_relative 'element'
|
9
|
+
require_relative 'element_array'
|
10
|
+
require_relative 'element_hash'
|
11
|
+
|
12
|
+
module AutomationObject
|
13
|
+
module BluePrint
|
14
|
+
module Composite
|
15
|
+
#Modal composite class, passing method to adapter only
|
16
|
+
#Hoping to improve code completion and standard interface where
|
17
|
+
#classes use this as a template to add additional adapters
|
18
|
+
class Modal < Base
|
19
|
+
# @return [Array<Symbol>]
|
20
|
+
def included_views
|
21
|
+
self.adapter.screens
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Array<AutomaticOnloadModal>]
|
25
|
+
def automatic_onload_modals
|
26
|
+
self.adapter.automatic_onload_modals
|
27
|
+
end
|
28
|
+
|
29
|
+
# @return [Array<Symbol>]
|
30
|
+
def automatic_screen_changes
|
31
|
+
self.adapter.automatic_screen_changes
|
32
|
+
end
|
33
|
+
|
34
|
+
# @return [Hook]
|
35
|
+
def load
|
36
|
+
self.adapter.load
|
37
|
+
end
|
38
|
+
|
39
|
+
# @return [Hash<Element>]
|
40
|
+
def elements
|
41
|
+
self.adapter.elements
|
42
|
+
end
|
43
|
+
|
44
|
+
# @return [Hash<ElementArray>]
|
45
|
+
def element_arrays
|
46
|
+
self.adapter.element_arrays
|
47
|
+
end
|
48
|
+
|
49
|
+
# @return [Hash<ElementHash>]
|
50
|
+
def element_hashes
|
51
|
+
self.adapter.element_hashes
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
#Require parent class
|
2
|
+
require_relative 'base'
|
3
|
+
|
4
|
+
require_relative 'automatic_onload_modal'
|
5
|
+
require_relative 'hook'
|
6
|
+
|
7
|
+
require_relative 'modal'
|
8
|
+
require_relative 'element'
|
9
|
+
require_relative 'element_array'
|
10
|
+
require_relative 'element_hash'
|
11
|
+
|
12
|
+
module AutomationObject
|
13
|
+
module BluePrint
|
14
|
+
module Composite
|
15
|
+
#Screen composite class, passing method to adapter only
|
16
|
+
#Hoping to improve code completion and standard interface where
|
17
|
+
#classes use this as a template to add additional adapters
|
18
|
+
class Screen < Base
|
19
|
+
# @return [Array<Symbol>]
|
20
|
+
def included_views
|
21
|
+
self.adapter.screens
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Array<AutomaticOnloadModal>]
|
25
|
+
def automatic_onload_modals
|
26
|
+
self.adapter.automatic_onload_modals
|
27
|
+
end
|
28
|
+
|
29
|
+
# @return [Array<Symbol>]
|
30
|
+
def automatic_screen_changes
|
31
|
+
self.adapter.automatic_screen_changes
|
32
|
+
end
|
33
|
+
|
34
|
+
# @return [Hook]
|
35
|
+
def load
|
36
|
+
self.adapter.load
|
37
|
+
end
|
38
|
+
|
39
|
+
# @return [Hash<Modal>]
|
40
|
+
def modals
|
41
|
+
self.adapter.modals
|
42
|
+
end
|
43
|
+
|
44
|
+
# @return [Hash<Element>]
|
45
|
+
def elements
|
46
|
+
self.adapter.elements
|
47
|
+
end
|
48
|
+
|
49
|
+
# @return [Hash<ElementArray>]
|
50
|
+
def element_arrays
|
51
|
+
self.adapter.element_arrays
|
52
|
+
end
|
53
|
+
|
54
|
+
# @return [Hash<ElementHash>]
|
55
|
+
def element_hashes
|
56
|
+
self.adapter.element_hashes
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#Require parent class
|
2
|
+
require_relative 'base'
|
3
|
+
|
4
|
+
require_relative 'screen'
|
5
|
+
require_relative 'view'
|
6
|
+
|
7
|
+
module AutomationObject
|
8
|
+
module BluePrint
|
9
|
+
module Composite
|
10
|
+
#Top composite class, passing method to adapter only
|
11
|
+
#Hoping to improve code completion and standard interface where
|
12
|
+
#classes use this as a template to add additional adapters
|
13
|
+
class Top < Base
|
14
|
+
# @return [Hash<Screen>]
|
15
|
+
def screens
|
16
|
+
self.adapter.screens
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [Hash<View>]
|
20
|
+
def views
|
21
|
+
self.adapter.views
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [String, nil] base url to navigate to upon framework creation
|
25
|
+
def base_url
|
26
|
+
self.adapter.base_url
|
27
|
+
end
|
28
|
+
|
29
|
+
# @return [Symbol, nil] default screen to be set when framework is created
|
30
|
+
def default_screen
|
31
|
+
self.adapter.default_screen
|
32
|
+
end
|
33
|
+
|
34
|
+
# @return [Numeric] sleep when transitioning screens
|
35
|
+
def screen_transition_sleep
|
36
|
+
self.adapter.screen_transition_sleep
|
37
|
+
end
|
38
|
+
|
39
|
+
# @return [Hash] driver methods to throttle
|
40
|
+
def throttle_driver_methods
|
41
|
+
self.adapter.throttle_driver_methods
|
42
|
+
end
|
43
|
+
|
44
|
+
# @return [Hash] element methods to throttle
|
45
|
+
def throttle_element_methods
|
46
|
+
self.adapter.throttle_element_methods
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#Require parent class
|
2
|
+
require_relative 'base'
|
3
|
+
|
4
|
+
module AutomationObject
|
5
|
+
module BluePrint
|
6
|
+
module Composite
|
7
|
+
#View composite class, passing method to adapter only
|
8
|
+
#Hoping to improve code completion and standard interface where
|
9
|
+
#classes use this as a template to add additional adapters
|
10
|
+
class View < Base
|
11
|
+
# @return [Array<AutomaticOnloadModal>]
|
12
|
+
def automatic_onload_modals
|
13
|
+
self.adapter.automatic_onload_modals
|
14
|
+
end
|
15
|
+
|
16
|
+
# @return [Array<Symbol>]
|
17
|
+
def automatic_screen_changes
|
18
|
+
self.adapter.automatic_screen_changes
|
19
|
+
end
|
20
|
+
|
21
|
+
# @return [Hook]
|
22
|
+
def load
|
23
|
+
self.adapter.load
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [Hash<Modal>]
|
27
|
+
def modals
|
28
|
+
self.adapter.modals
|
29
|
+
end
|
30
|
+
|
31
|
+
# @return [Hash<Element>]
|
32
|
+
def elements
|
33
|
+
self.adapter.elements
|
34
|
+
end
|
35
|
+
|
36
|
+
# @return [Hash<ElementArray>]
|
37
|
+
def element_arrays
|
38
|
+
self.adapter.element_arrays
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [Hash<ElementHash>]
|
42
|
+
def element_hashes
|
43
|
+
self.adapter.element_hashes
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative 'composite/top'
|
2
|
+
require_relative 'hash_adapter/top'
|
3
|
+
|
4
|
+
module AutomationObject::BluePrint
|
5
|
+
#BluePrint Hash Adapter
|
6
|
+
module HashAdapter
|
7
|
+
extend self
|
8
|
+
# @param [Hash] hash that includes all the information needed to create a BluePrint
|
9
|
+
# @return [AutomationObject::BluePrint::Composite::Top] Composite BluePrint Object
|
10
|
+
def build(hash = {})
|
11
|
+
hash.symbolize_keys_deep!
|
12
|
+
|
13
|
+
top_hash = AutomationObject::BluePrint::HashAdapter::Top.new(hash)
|
14
|
+
AutomationObject::BluePrint::Composite::Top.new(top_hash)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#Require parent class
|
2
|
+
require_relative 'composite'
|
3
|
+
|
4
|
+
module AutomationObject
|
5
|
+
module BluePrint
|
6
|
+
module HashAdapter
|
7
|
+
#Automatic Onload Modal Composite
|
8
|
+
class AutomaticOnloadModal < Composite
|
9
|
+
#Validations
|
10
|
+
validates :modal_name, instance_of: [String, Symbol], modal_presence_of: true, presence_of: true
|
11
|
+
validates :number_of_checks, instance_of: Numeric
|
12
|
+
validates :close, instance_of: TrueClass
|
13
|
+
|
14
|
+
def modal_name
|
15
|
+
modal_name = self.hash[:modal_name]
|
16
|
+
|
17
|
+
case modal_name
|
18
|
+
when Symbol, String
|
19
|
+
return modal_name.to_sym
|
20
|
+
else
|
21
|
+
return nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def number_of_checks
|
26
|
+
return self.hash[:number_of_checks] ||= 1
|
27
|
+
end
|
28
|
+
|
29
|
+
def close
|
30
|
+
return self.hash[:close] ||= false
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require_relative '../../helpers/composite'
|
2
|
+
|
3
|
+
require_relative 'helpers/validation_helper'
|
4
|
+
require_relative 'helpers/validation_error'
|
5
|
+
|
6
|
+
module AutomationObject
|
7
|
+
module BluePrint
|
8
|
+
module HashAdapter
|
9
|
+
class Composite < AutomationObject::Composite
|
10
|
+
include ValidationHelper
|
11
|
+
|
12
|
+
attr_accessor :hash
|
13
|
+
|
14
|
+
# @param hash [Hash] hash for the composite to build of off
|
15
|
+
# @param name [Symbol] name of composite element
|
16
|
+
# @param parent [Object, nil] parent composite object
|
17
|
+
# @param location [String] string location for error/debugging purposes
|
18
|
+
def initialize(hash = {}, name = :top, parent = nil, location = 'top')
|
19
|
+
#Add hash before calling super
|
20
|
+
self.hash = (hash.is_a?(Hash)) ? hash : {}
|
21
|
+
self.hash.symbolize_keys_deep!
|
22
|
+
|
23
|
+
super(name, parent, location)
|
24
|
+
|
25
|
+
#Validate using ValidationHelper
|
26
|
+
unless self.valid?
|
27
|
+
if self.parent
|
28
|
+
self.parent.add_errors(self.errors)
|
29
|
+
else
|
30
|
+
raise ValidationError.new(self.errors.uniq.reverse)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Overriding base get_child method
|
36
|
+
# @param name [Symbol] name of child
|
37
|
+
# @param options [Hash] options for child
|
38
|
+
def get_child(name, options)
|
39
|
+
child = (self.hash[name].is_a?(Hash)) ? self.hash[name] : Hash.new
|
40
|
+
child_location = self.location + "[#{name}]"
|
41
|
+
|
42
|
+
create_composite(options, child, name, child_location)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Overriding base get_children method
|
46
|
+
# @param name [Symbol] name of child
|
47
|
+
# @param options [Hash] options for child
|
48
|
+
# @return children [Hash] return children and names
|
49
|
+
def get_children(name, options)
|
50
|
+
children = self.hash[name]
|
51
|
+
children = (children.is_a?(Hash)) ? children : Hash.new
|
52
|
+
|
53
|
+
self.create_hash_children(children, options)
|
54
|
+
end
|
55
|
+
|
56
|
+
# @param name [Symbol] name of child
|
57
|
+
# @param children [Array] hash of children
|
58
|
+
# @param args [Hash] arguments for adding children
|
59
|
+
def create_array_children(name, children, args)
|
60
|
+
composite_children = children.map.with_index { |child, index|
|
61
|
+
location = (args[:location]) ? args[:location] : self.location
|
62
|
+
child_location = location + "[#{index}]"
|
63
|
+
|
64
|
+
create_composite(args, child, "#{name}[#{index}]", child_location)
|
65
|
+
}
|
66
|
+
|
67
|
+
return composite_children
|
68
|
+
end
|
69
|
+
|
70
|
+
# @param children [Hash] hash of children
|
71
|
+
# @param args [Hash] arguments for adding children
|
72
|
+
def create_hash_children(children, args)
|
73
|
+
composite_children = children.inject({}) { |hash, (key, value)|
|
74
|
+
child_location = self.location + "[#{key}]"
|
75
|
+
|
76
|
+
hash[key] = create_composite(args, value, key, child_location)
|
77
|
+
hash
|
78
|
+
}
|
79
|
+
|
80
|
+
return composite_children
|
81
|
+
end
|
82
|
+
|
83
|
+
def create_composite(args, child, name, location)
|
84
|
+
#Get the Composite Class that corresponds with the HashAdapter Class
|
85
|
+
class_name = args[:interface].name.split('::').last
|
86
|
+
composite_class = AutomationObject::BluePrint::Composite.const_get(class_name)
|
87
|
+
|
88
|
+
composite_class.new(args[:interface].new(child, name, self, location))
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|