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.
Files changed (163) hide show
  1. checksums.yaml +4 -4
  2. data/lib/automation_object.rb +14 -72
  3. data/lib/automation_object/blue_print.rb +37 -100
  4. data/lib/automation_object/blue_print/composite/automatic_onload_modal.rb +28 -0
  5. data/lib/automation_object/blue_print/composite/base.rb +18 -0
  6. data/lib/automation_object/blue_print/composite/custom_method.rb +23 -0
  7. data/lib/automation_object/blue_print/composite/element.rb +20 -0
  8. data/lib/automation_object/blue_print/composite/element_array.rb +21 -0
  9. data/lib/automation_object/blue_print/composite/element_hash.rb +26 -0
  10. data/lib/automation_object/blue_print/composite/helpers/element_helper.rb +33 -0
  11. data/lib/automation_object/blue_print/composite/helpers/multiple_elements_helper.rb +18 -0
  12. data/lib/automation_object/blue_print/composite/hook.rb +31 -0
  13. data/lib/automation_object/blue_print/composite/hook_action.rb +84 -0
  14. data/lib/automation_object/blue_print/composite/hook_element_requirements.rb +39 -0
  15. data/lib/automation_object/blue_print/composite/modal.rb +56 -0
  16. data/lib/automation_object/blue_print/composite/screen.rb +61 -0
  17. data/lib/automation_object/blue_print/composite/top.rb +51 -0
  18. data/lib/automation_object/blue_print/composite/view.rb +48 -0
  19. data/lib/automation_object/blue_print/hash_adapter.rb +17 -0
  20. data/lib/automation_object/blue_print/hash_adapter/automatic_onload_modal.rb +35 -0
  21. data/lib/automation_object/blue_print/hash_adapter/composite.rb +93 -0
  22. data/lib/automation_object/blue_print/hash_adapter/custom_method.rb +30 -0
  23. data/lib/automation_object/blue_print/hash_adapter/element.rb +34 -0
  24. data/lib/automation_object/blue_print/hash_adapter/element_array.rb +36 -0
  25. data/lib/automation_object/blue_print/hash_adapter/element_hash.rb +43 -0
  26. data/lib/automation_object/blue_print/hash_adapter/helpers/element_helper.rb +59 -0
  27. data/lib/automation_object/blue_print/hash_adapter/helpers/multiple_elements_helper.rb +35 -0
  28. data/lib/automation_object/blue_print/hash_adapter/helpers/validation_error.rb +26 -0
  29. data/lib/automation_object/blue_print/hash_adapter/helpers/validation_helper.rb +99 -0
  30. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate.rb +23 -0
  31. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_allowed_keys.rb +31 -0
  32. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_element_presence_of.rb +55 -0
  33. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_instance_of.rb +39 -0
  34. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_modal_presence_of.rb +54 -0
  35. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_presence_of.rb +36 -0
  36. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_screen_presence_of.rb +55 -0
  37. data/lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_view_presence_of.rb +52 -0
  38. data/lib/automation_object/blue_print/hash_adapter/hook.rb +35 -0
  39. data/lib/automation_object/blue_print/hash_adapter/hook_action.rb +134 -0
  40. data/lib/automation_object/blue_print/hash_adapter/hook_element_requirements.rb +64 -0
  41. data/lib/automation_object/blue_print/hash_adapter/modal.rb +52 -0
  42. data/lib/automation_object/blue_print/hash_adapter/screen.rb +91 -0
  43. data/lib/automation_object/blue_print/hash_adapter/top.rb +63 -0
  44. data/lib/automation_object/blue_print/hash_adapter/view.rb +29 -0
  45. data/lib/automation_object/blue_print/helpers/file_helper.rb +38 -0
  46. data/lib/automation_object/blue_print/yaml_adapter.rb +50 -0
  47. data/lib/automation_object/driver.rb +44 -0
  48. data/lib/automation_object/driver/appium_adapter/driver.rb +150 -0
  49. data/lib/automation_object/driver/appium_adapter/element.rb +118 -0
  50. data/lib/automation_object/driver/base.rb +11 -0
  51. data/lib/automation_object/driver/driver.rb +69 -245
  52. data/lib/automation_object/driver/element.rb +51 -210
  53. data/lib/automation_object/driver/helpers/selenium_driver_helper.rb +41 -0
  54. data/lib/automation_object/driver/helpers/selenium_element_helper.rb +138 -0
  55. data/lib/automation_object/driver/nokogiri_adapter/backup/driver.rb +83 -0
  56. data/lib/automation_object/driver/nokogiri_adapter/backup/element.rb +66 -0
  57. data/lib/automation_object/driver/nokogiri_adapter/backup/form.rb +29 -0
  58. data/lib/automation_object/driver/nokogiri_adapter/backup/helpers/driver_element_helper.rb +52 -0
  59. data/lib/automation_object/driver/nokogiri_adapter/backup/session.rb +115 -0
  60. data/lib/automation_object/driver/nokogiri_adapter/driver.rb +104 -0
  61. data/lib/automation_object/driver/nokogiri_adapter/element.rb +85 -0
  62. data/lib/automation_object/driver/nokogiri_adapter/error.rb +17 -0
  63. data/lib/automation_object/driver/selenium_adapter/driver.rb +143 -0
  64. data/lib/automation_object/driver/selenium_adapter/element.rb +116 -0
  65. data/lib/automation_object/dsl.rb +33 -0
  66. data/lib/automation_object/dsl/blue_print_adapter.rb +16 -0
  67. data/lib/automation_object/dsl/blue_print_adapter/composite.rb +54 -0
  68. data/lib/automation_object/dsl/blue_print_adapter/element.rb +14 -0
  69. data/lib/automation_object/dsl/blue_print_adapter/element_array.rb +14 -0
  70. data/lib/automation_object/dsl/blue_print_adapter/element_hash.rb +14 -0
  71. data/lib/automation_object/dsl/blue_print_adapter/modal.rb +23 -0
  72. data/lib/automation_object/dsl/blue_print_adapter/screen.rb +26 -0
  73. data/lib/automation_object/dsl/blue_print_adapter/top.rb +19 -0
  74. data/lib/automation_object/dsl/models.rb +18 -0
  75. data/lib/automation_object/dsl/proxies/element.rb +16 -0
  76. data/lib/automation_object/dsl/proxies/element_array.rb +16 -0
  77. data/lib/automation_object/dsl/proxies/element_hash.rb +16 -0
  78. data/lib/automation_object/dsl/proxies/helpers/composite_helper.rb +74 -0
  79. data/lib/automation_object/dsl/proxies/modal.rb +17 -0
  80. data/lib/automation_object/dsl/proxies/screen.rb +17 -0
  81. data/lib/automation_object/dsl/proxies/top.rb +17 -0
  82. data/lib/automation_object/framework.rb +79 -386
  83. data/lib/automation_object/helpers/composite.rb +95 -0
  84. data/lib/automation_object/helpers/composite_hook.rb +46 -0
  85. data/lib/automation_object/helpers/hash.rb +15 -0
  86. data/lib/automation_object/helpers/reflection_helper.rb +28 -0
  87. data/lib/automation_object/helpers/string.rb +27 -0
  88. data/lib/automation_object/proxies/mutex_proxy.rb +63 -0
  89. data/lib/automation_object/proxies/proxy.rb +20 -0
  90. data/lib/automation_object/proxies/throttle_proxy.rb +57 -0
  91. data/lib/automation_object/state.rb +37 -0
  92. data/lib/automation_object/state/blue_print_adapter.rb +16 -0
  93. data/lib/automation_object/state/blue_print_adapter/composite.rb +65 -0
  94. data/lib/automation_object/state/blue_print_adapter/element.rb +20 -0
  95. data/lib/automation_object/state/blue_print_adapter/element_array.rb +25 -0
  96. data/lib/automation_object/state/blue_print_adapter/element_hash.rb +31 -0
  97. data/lib/automation_object/state/blue_print_adapter/element_proxy.rb +28 -0
  98. data/lib/automation_object/state/blue_print_adapter/helpers/element_helper.rb +31 -0
  99. data/lib/automation_object/state/blue_print_adapter/helpers/screen_manager.rb +137 -0
  100. data/lib/automation_object/state/blue_print_adapter/helpers/window.rb +39 -0
  101. data/lib/automation_object/state/blue_print_adapter/hook.rb +56 -0
  102. data/lib/automation_object/state/blue_print_adapter/hook_action.rb +33 -0
  103. data/lib/automation_object/state/blue_print_adapter/hook_actions/action_loop.rb +35 -0
  104. data/lib/automation_object/state/blue_print_adapter/hook_actions/change_screen.rb +26 -0
  105. data/lib/automation_object/state/blue_print_adapter/hook_actions/change_to_previous_screen.rb +21 -0
  106. data/lib/automation_object/state/blue_print_adapter/hook_actions/close_modal.rb +31 -0
  107. data/lib/automation_object/state/blue_print_adapter/hook_actions/close_screen.rb +19 -0
  108. data/lib/automation_object/state/blue_print_adapter/hook_actions/element_requirement.rb +34 -0
  109. data/lib/automation_object/state/blue_print_adapter/hook_actions/new_screen.rb +37 -0
  110. data/lib/automation_object/state/blue_print_adapter/hook_actions/possible_screen_changes.rb +21 -0
  111. data/lib/automation_object/state/blue_print_adapter/hook_actions/reset_screen.rb +18 -0
  112. data/lib/automation_object/state/blue_print_adapter/hook_actions/show_modal.rb +26 -0
  113. data/lib/automation_object/state/blue_print_adapter/hook_actions/sleep.rb +18 -0
  114. data/lib/automation_object/state/blue_print_adapter/hook_actions/wait_for_elements.rb +20 -0
  115. data/lib/automation_object/state/blue_print_adapter/modal.rb +26 -0
  116. data/lib/automation_object/state/blue_print_adapter/screen.rb +32 -0
  117. data/lib/automation_object/state/blue_print_adapter/top.rb +45 -0
  118. data/lib/automation_object/state/error.rb +24 -0
  119. data/lib/automation_object/state/session.rb +38 -0
  120. data/lib/automation_object/step_definitions.rb +14 -0
  121. data/lib/automation_object/step_definitions/action.rb +21 -0
  122. data/lib/automation_object/step_definitions/cache.rb +23 -0
  123. data/lib/automation_object/step_definitions/element/actions.rb +87 -0
  124. data/lib/automation_object/step_definitions/element/regex.rb +24 -0
  125. data/lib/automation_object/step_definitions/element/steps.rb +67 -0
  126. data/lib/automation_object/step_definitions/parse.rb +39 -0
  127. data/lib/automation_object/version.rb +1 -1
  128. metadata +194 -110
  129. data/lib/automation_object/blue_print_validation/base_validation.rb +0 -44
  130. data/lib/automation_object/blue_print_validation/common_methods.rb +0 -106
  131. data/lib/automation_object/blue_print_validation/element_validation.rb +0 -198
  132. data/lib/automation_object/blue_print_validation/formatted_errors.rb +0 -41
  133. data/lib/automation_object/blue_print_validation/hook_validation.rb +0 -393
  134. data/lib/automation_object/blue_print_validation/key_value_constants.rb +0 -75
  135. data/lib/automation_object/blue_print_validation/modal_validation.rb +0 -37
  136. data/lib/automation_object/blue_print_validation/screen_modal_common_methods.rb +0 -119
  137. data/lib/automation_object/blue_print_validation/screen_validation.rb +0 -21
  138. data/lib/automation_object/blue_print_validation/validation_object.rb +0 -32
  139. data/lib/automation_object/driver/anonymous.rb +0 -27
  140. data/lib/automation_object/element/element.rb +0 -145
  141. data/lib/automation_object/element/element_array.rb +0 -12
  142. data/lib/automation_object/element/element_cell.rb +0 -126
  143. data/lib/automation_object/element/element_group.rb +0 -33
  144. data/lib/automation_object/element/element_hash.rb +0 -25
  145. data/lib/automation_object/element/element_helpers.rb +0 -29
  146. data/lib/automation_object/element/element_methods.rb +0 -134
  147. data/lib/automation_object/element/elements_helpers.rb +0 -204
  148. data/lib/automation_object/framework/events.rb +0 -8
  149. data/lib/automation_object/framework/helpers.rb +0 -101
  150. data/lib/automation_object/framework/print_objects.rb +0 -67
  151. data/lib/automation_object/framework/screen_monitor.rb +0 -55
  152. data/lib/automation_object/framework/screen_routing.rb +0 -310
  153. data/lib/automation_object/framework/window_helpers.rb +0 -181
  154. data/lib/automation_object/hash.rb +0 -6
  155. data/lib/automation_object/hook_helpers.rb +0 -27
  156. data/lib/automation_object/logger.rb +0 -179
  157. data/lib/automation_object/object.rb +0 -22
  158. data/lib/automation_object/screen/modal.rb +0 -8
  159. data/lib/automation_object/screen/screen.rb +0 -209
  160. data/lib/automation_object/screen/screen_hook_helpers.rb +0 -319
  161. data/lib/automation_object/screen/screen_modal_helpers.rb +0 -101
  162. data/lib/automation_object/screen/screen_prompt_helpers.rb +0 -21
  163. data/lib/automation_object/screen/screen_window_helpers.rb +0 -149
@@ -0,0 +1,14 @@
1
+ module AutomationObject
2
+ #Require step definitons at run-time, only when running in a Cucumber context
3
+ module StepDefinitions
4
+ extend self
5
+
6
+ def load
7
+ require 'minitest/autorun'
8
+ require 'minitest/unit'
9
+ require 'minitest-bonus-assertions'
10
+
11
+ Dir[File.dirname(__FILE__) + '/step_definitions/**/*.rb'].each { |file| require file }
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,21 @@
1
+ require_relative 'parse'
2
+
3
+ module AutomationObject
4
+ module StepDefinitions
5
+ class Action
6
+ attr_accessor :args, :automation_object
7
+
8
+ def initialize(*args)
9
+ #Parse arguments
10
+ self.args = AutomationObject::StepDefinitions::Parse.new(args).get
11
+ end
12
+
13
+ def automation_object
14
+ return @automation_object if @automation_object
15
+
16
+ @automation_object = AutomationObject::Framework.get
17
+ return @automation_object
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,23 @@
1
+ #Class for caching values between steps
2
+ module AutomationObject
3
+ module StepDefinitions
4
+ module Cache
5
+ extend self
6
+
7
+ #Singleton hash, create new if needed
8
+ # @return [Hash] hash of values saved or new hash
9
+ def values
10
+ return @values if @values
11
+ @values = {}
12
+ end
13
+
14
+ def get(key)
15
+ return self.values[key]
16
+ end
17
+
18
+ def set(key, value)
19
+ self.values[key] = value
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,87 @@
1
+ require_relative '../action'
2
+
3
+ module AutomationObject
4
+ module StepDefinitions
5
+ module Element
6
+ class CallAction < AutomationObject::StepDefinitions::Action
7
+ def initialize(*args)
8
+ super
9
+ @method, @screen, @element = self.args
10
+ end
11
+
12
+ def run
13
+ automation_object.send(@screen).send(@element).send(@method)
14
+ end
15
+ end
16
+
17
+ class TypeAction < AutomationObject::StepDefinitions::Action
18
+ def initialize(*args)
19
+ super
20
+ @text, @screen, @element = self.args
21
+ end
22
+
23
+ def run
24
+ automation_object.send(@screen).send(@element).send_keys(@text)
25
+ end
26
+ end
27
+
28
+ class ScrollAction < AutomationObject::StepDefinitions::Action
29
+ def initialize(*args)
30
+ super
31
+ @screen, @element = self.args
32
+ end
33
+
34
+ def run
35
+ automation_object.send(@screen).send(@element).scroll_into_view
36
+ end
37
+ end
38
+
39
+ class SaveAction < AutomationObject::StepDefinitions::Action
40
+ def initialize(*args)
41
+ super
42
+ @method, @key, @screen, @element = self.args
43
+ end
44
+
45
+ def run
46
+ #Save value from called method/property
47
+ value = automation_object.send(@screen).send(@element).send(@method)
48
+ AutomationObject::StepDefinitions::Cache.set(@key, value)
49
+ end
50
+ end
51
+
52
+ class ExistAction < AutomationObject::StepDefinitions::Action
53
+ def initialize(*args)
54
+ super
55
+ @screen, @element, @negative = self.args
56
+ end
57
+
58
+ def run
59
+ exists = AutomationObject::Framework.get.send(@screen).send(@element).exists?
60
+
61
+ if @negative
62
+ assert_equal false, exists
63
+ else
64
+ assert_equal true, exists
65
+ end
66
+ end
67
+ end
68
+
69
+ class EqualAction < AutomationObject::StepDefinitions::Action
70
+ def initialize(*args)
71
+ super
72
+ @screen, @element, @method, @negative, @expected_value = self.args
73
+ end
74
+
75
+ def run
76
+ actual_value = AutomationObject::Framework.get.send(@screen).send(@element).send(@method)
77
+
78
+ if @negative
79
+ refute_equal @expected_value, actual_value
80
+ else
81
+ assert_equal @expected_value, actual_value
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,24 @@
1
+ module AutomationObject
2
+ module StepDefinitions
3
+ #Storing regular expressions in a module
4
+ #So I can unit test the matches and any changes that can occur to them
5
+ #To make sure we don't break existing implementations by accident
6
+ module Element
7
+ #Action
8
+
9
+ CALL_REGEX = /^I (\w+|%\{[\w\d]+\}) ?(?: on| over)? (?:the )?"(\w+|%\{[\w\d]+\})" "(\w+|%\{[\w\d]+\})" element$/
10
+
11
+ TYPE_REGEX = /^I type "([\w\s]+|%\{[\w\d]+\})" in(?:to)? (?:the )?"(\w+|%\{[\w\d]+\})" "(\w+|%\{[\w\d]+\})" element$/
12
+
13
+ SCROLL_REGEX = /^I scroll to (?:the )?"(\w+|%\{[\w\d]+\})" "(\w+|%\{[\w\d]+\})" element$/
14
+
15
+ SAVE_REGEX = /^I save "(\w+|%\{[\w\d]+\})" as "([\w\d]+)" from (?:the )?"(\w+|%\{[\w\d]+\})" "(\w+|%\{[\w\d]+\})" element$/
16
+
17
+ #Should
18
+
19
+ EXIST_REGEX = /^(?:the )?"(\w+|%\{[\w\d]+\})" "(\w+|%\{[\w\d]+\})" element should ?(n't |not )?exist$/
20
+
21
+ EQUAL_REGEX = /^(?:the )?"(\w+|%\{[\w\d]+\})" "(\w+|%\{[\w\d]+\})" element "(\w+|%\{[\w\d]+\})" should ?(n't |not )?equal "(.+)"$/
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,67 @@
1
+ require_relative 'regex'
2
+ require_relative 'actions'
3
+
4
+ # Element related step definitions
5
+
6
+ # Step to call a method on an element
7
+ #
8
+ # Examples:
9
+ # I click on the "home_screen" "about_button" element
10
+ # I hover over the "home_screen" "test_link" element
11
+ # I tap on "home_screen" "logo_button" element
12
+
13
+ When(AutomationObject::StepDefinitions::Element::CALL_REGEX) do |*args|
14
+ AutomationObject::StepDefinitions::Element::CallAction.new(args).run
15
+ end
16
+
17
+ # Step to type into a field element
18
+ #
19
+ # Examples:
20
+ # I type "blah" into the "home_screen" "text_field" element
21
+ # I hover over the "home_screen" "test_link" element
22
+ # I tap on "home_screen" "logo_button" element
23
+
24
+ When(AutomationObject::StepDefinitions::Element::TYPE_REGEX) do |*args|
25
+ AutomationObject::StepDefinitions::Element::TypeAction.new(args).run
26
+ end
27
+
28
+ # Step to scroll to an element
29
+ #
30
+ # Examples:
31
+ # I scroll to the "home_screen" "logo_button" element
32
+
33
+ When(AutomationObject::StepDefinitions::Element::SCROLL_REGEX) do |*args|
34
+ AutomationObject::StepDefinitions::Element::ScrollAction.new(args).run
35
+ end
36
+
37
+ # Step to save something from an element
38
+ #
39
+ # Examples:
40
+ # I save "text" as "unique_value" from the "home_screen" "logo_button" element
41
+
42
+ When(AutomationObject::StepDefinitions::Element::SAVE_REGEX) do |*args|
43
+ AutomationObject::StepDefinitions::Element::SaveAction.new(args).run
44
+ end
45
+
46
+ # Step to test element exists
47
+ #
48
+ # Examples:
49
+ # Then the "home_screen" "title" element should exist
50
+ # Then the "home_screen" "title" element shouldn't exist
51
+ # Then "home_screen" "title" element should not exist
52
+
53
+ Then(AutomationObject::StepDefinitions::Element::EXIST_REGEX) do |*args|
54
+ AutomationObject::StepDefinitions::Element::ExistAction.new(args).run
55
+ end
56
+
57
+ # Step to test element value to a given value
58
+ # If trying to carry over from any other object, use cache mechanism
59
+ #
60
+ # Examples:
61
+ # the "home_screen" "title" element "text" should equal "Home"
62
+ # "home_screen" "title" element "text" should not equal "About"
63
+ # the "home_screen" "title" element "text" shouldn't equal "%{saved_value}"
64
+
65
+ Then(AutomationObject::StepDefinitions::Element::EQUAL_REGEX) do |*args|
66
+ AutomationObject::StepDefinitions::Element::EqualAction.new(args).run
67
+ end
@@ -0,0 +1,39 @@
1
+ require_relative 'cache'
2
+
3
+ module AutomationObject
4
+ module StepDefinitions
5
+ class Parse
6
+ # @param args [Array] input args from step definition
7
+ def initialize(args)
8
+ @args = args
9
+ end
10
+
11
+ def get
12
+ parsed_args = []
13
+ for arg in @args
14
+ parsed_args.push(parse(arg))
15
+ end
16
+
17
+ return parsed_args
18
+ end
19
+
20
+ private
21
+
22
+ # Used to parse any embedded variables
23
+ # @param string [String] index of arg
24
+ # @return [String] parsed string
25
+ def parse(string)
26
+ parsed_string = string
27
+
28
+ string.scan(/%\{(\w+)\}/) { |cache_key|
29
+ cached_value = AutomationObject::StepDefinitions::Cache.get(cache_key)
30
+ next unless cached_value
31
+
32
+ parsed_string.gsub("%{#{cache_key}}", cached_value)
33
+ }
34
+
35
+ return parsed_string
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,3 +1,3 @@
1
1
  module AutomationObject
2
- VERSION = '0.0.4'
2
+ VERSION = '0.5.0'
3
3
  end
metadata CHANGED
@@ -1,257 +1,341 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: automation_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Blatter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-18 00:00:00.000000000 Z
11
+ date: 2016-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.6'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: colorize
42
+ name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.6'
48
45
  - - ">="
49
46
  - !ruby/object:Gem::Version
50
- version: 0.6.0
51
- type: :runtime
47
+ version: '0'
48
+ type: :development
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
- - - "~>"
56
- - !ruby/object:Gem::Version
57
- version: '0.6'
58
52
  - - ">="
59
53
  - !ruby/object:Gem::Version
60
- version: 0.6.0
54
+ version: '0'
61
55
  - !ruby/object:Gem::Dependency
62
- name: awesome_print
56
+ name: minitest-bonus-assertions
63
57
  requirement: !ruby/object:Gem::Requirement
64
58
  requirements:
65
59
  - - "~>"
66
60
  - !ruby/object:Gem::Version
67
- version: '1.2'
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 1.2.0
71
- type: :runtime
61
+ version: '1.0'
62
+ type: :development
72
63
  prerelease: false
73
64
  version_requirements: !ruby/object:Gem::Requirement
74
65
  requirements:
75
66
  - - "~>"
76
67
  - !ruby/object:Gem::Version
77
- version: '1.2'
68
+ version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: mocha
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
78
73
  - - ">="
79
74
  - !ruby/object:Gem::Version
80
- version: 1.2.0
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
81
83
  - !ruby/object:Gem::Dependency
82
- name: thread
84
+ name: fakefs
83
85
  requirement: !ruby/object:Gem::Requirement
84
86
  requirements:
85
- - - "~>"
87
+ - - ">="
86
88
  - !ruby/object:Gem::Version
87
- version: '0.1'
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
88
94
  - - ">="
89
95
  - !ruby/object:Gem::Version
90
- version: 0.1.4
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: awesome_print
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
91
104
  type: :runtime
92
105
  prerelease: false
93
106
  version_requirements: !ruby/object:Gem::Requirement
94
107
  requirements:
95
- - - "~>"
96
- - !ruby/object:Gem::Version
97
- version: '0.1'
98
108
  - - ">="
99
109
  - !ruby/object:Gem::Version
100
- version: 0.1.4
110
+ version: '0'
101
111
  - !ruby/object:Gem::Dependency
102
112
  name: event_emitter
103
113
  requirement: !ruby/object:Gem::Requirement
104
114
  requirements:
105
- - - "~>"
106
- - !ruby/object:Gem::Version
107
- version: '0.2'
108
115
  - - ">="
109
116
  - !ruby/object:Gem::Version
110
- version: 0.2.5
117
+ version: '0'
111
118
  type: :runtime
112
119
  prerelease: false
113
120
  version_requirements: !ruby/object:Gem::Requirement
114
121
  requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '0.2'
118
122
  - - ">="
119
123
  - !ruby/object:Gem::Version
120
- version: 0.2.5
124
+ version: '0'
121
125
  - !ruby/object:Gem::Dependency
122
- name: rspec
126
+ name: cucumber
123
127
  requirement: !ruby/object:Gem::Requirement
124
128
  requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: 3.1.0
128
129
  - - ">="
129
130
  - !ruby/object:Gem::Version
130
- version: 3.1.0
131
+ version: '0'
131
132
  type: :runtime
132
133
  prerelease: false
133
134
  version_requirements: !ruby/object:Gem::Requirement
134
135
  requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: 3.1.0
138
136
  - - ">="
139
137
  - !ruby/object:Gem::Version
140
- version: 3.1.0
138
+ version: '0'
141
139
  - !ruby/object:Gem::Dependency
142
- name: rspec-expectations
140
+ name: rest-client
143
141
  requirement: !ruby/object:Gem::Requirement
144
142
  requirements:
145
- - - "~>"
146
- - !ruby/object:Gem::Version
147
- version: '3.1'
148
143
  - - ">="
149
144
  - !ruby/object:Gem::Version
150
- version: 3.1.2
145
+ version: '0'
151
146
  type: :runtime
152
147
  prerelease: false
153
148
  version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: nokogiri
155
+ requirement: !ruby/object:Gem::Requirement
154
156
  requirements:
155
157
  - - "~>"
156
158
  - !ruby/object:Gem::Version
157
- version: '3.1'
158
- - - ">="
159
+ version: 1.6.3.1
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
159
165
  - !ruby/object:Gem::Version
160
- version: 3.1.2
166
+ version: 1.6.3.1
161
167
  - !ruby/object:Gem::Dependency
162
168
  name: appium_lib
163
169
  requirement: !ruby/object:Gem::Requirement
164
170
  requirements:
165
171
  - - "~>"
166
172
  - !ruby/object:Gem::Version
167
- version: '4.1'
168
- - - ">="
169
- - !ruby/object:Gem::Version
170
- version: 4.1.0
173
+ version: 6.0.0
171
174
  type: :runtime
172
175
  prerelease: false
173
176
  version_requirements: !ruby/object:Gem::Requirement
174
177
  requirements:
175
178
  - - "~>"
176
179
  - !ruby/object:Gem::Version
177
- version: '4.1'
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: 4.1.0
180
+ version: 6.0.0
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: selenium-webdriver
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: '2.44'
187
+ version: '2.41'
188
188
  - - ">="
189
189
  - !ruby/object:Gem::Version
190
- version: 2.44.0
190
+ version: 2.41.0
191
191
  type: :runtime
192
192
  prerelease: false
193
193
  version_requirements: !ruby/object:Gem::Requirement
194
194
  requirements:
195
195
  - - "~>"
196
196
  - !ruby/object:Gem::Version
197
- version: '2.44'
197
+ version: '2.41'
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
- version: 2.44.0
200
+ version: 2.41.0
201
201
  description: |-
202
202
  This gem provides a way to create a dynamic usable DSL framework representing your website or app.
203
203
  Implementing Selenium/Appium driver and YAML configurations, this API will provide a layer in between your automation code and the driver.
204
204
  By creating YAML configurations that represents your website/app, the DSL framework in turn will reflect your configuration
205
205
  and allow you to control the automation through the DSL framework. Using this gem can help remove tedious tasks that are often
206
206
  repeated throughout code and help improve the scalability of code by mapping UI in YAML configuration files.
207
- email:
208
- - mblatter@spartzinc.com
207
+ email:
209
208
  executables: []
210
209
  extensions: []
211
210
  extra_rdoc_files: []
212
211
  files:
213
212
  - lib/automation_object.rb
214
213
  - lib/automation_object/blue_print.rb
215
- - lib/automation_object/blue_print_validation/base_validation.rb
216
- - lib/automation_object/blue_print_validation/common_methods.rb
217
- - lib/automation_object/blue_print_validation/element_validation.rb
218
- - lib/automation_object/blue_print_validation/formatted_errors.rb
219
- - lib/automation_object/blue_print_validation/hook_validation.rb
220
- - lib/automation_object/blue_print_validation/key_value_constants.rb
221
- - lib/automation_object/blue_print_validation/modal_validation.rb
222
- - lib/automation_object/blue_print_validation/screen_modal_common_methods.rb
223
- - lib/automation_object/blue_print_validation/screen_validation.rb
224
- - lib/automation_object/blue_print_validation/validation_object.rb
225
- - lib/automation_object/driver/anonymous.rb
214
+ - lib/automation_object/blue_print/composite/automatic_onload_modal.rb
215
+ - lib/automation_object/blue_print/composite/base.rb
216
+ - lib/automation_object/blue_print/composite/custom_method.rb
217
+ - lib/automation_object/blue_print/composite/element.rb
218
+ - lib/automation_object/blue_print/composite/element_array.rb
219
+ - lib/automation_object/blue_print/composite/element_hash.rb
220
+ - lib/automation_object/blue_print/composite/helpers/element_helper.rb
221
+ - lib/automation_object/blue_print/composite/helpers/multiple_elements_helper.rb
222
+ - lib/automation_object/blue_print/composite/hook.rb
223
+ - lib/automation_object/blue_print/composite/hook_action.rb
224
+ - lib/automation_object/blue_print/composite/hook_element_requirements.rb
225
+ - lib/automation_object/blue_print/composite/modal.rb
226
+ - lib/automation_object/blue_print/composite/screen.rb
227
+ - lib/automation_object/blue_print/composite/top.rb
228
+ - lib/automation_object/blue_print/composite/view.rb
229
+ - lib/automation_object/blue_print/hash_adapter.rb
230
+ - lib/automation_object/blue_print/hash_adapter/automatic_onload_modal.rb
231
+ - lib/automation_object/blue_print/hash_adapter/composite.rb
232
+ - lib/automation_object/blue_print/hash_adapter/custom_method.rb
233
+ - lib/automation_object/blue_print/hash_adapter/element.rb
234
+ - lib/automation_object/blue_print/hash_adapter/element_array.rb
235
+ - lib/automation_object/blue_print/hash_adapter/element_hash.rb
236
+ - lib/automation_object/blue_print/hash_adapter/helpers/element_helper.rb
237
+ - lib/automation_object/blue_print/hash_adapter/helpers/multiple_elements_helper.rb
238
+ - lib/automation_object/blue_print/hash_adapter/helpers/validation_error.rb
239
+ - lib/automation_object/blue_print/hash_adapter/helpers/validation_helper.rb
240
+ - lib/automation_object/blue_print/hash_adapter/helpers/validators/validate.rb
241
+ - lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_allowed_keys.rb
242
+ - lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_element_presence_of.rb
243
+ - lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_instance_of.rb
244
+ - lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_modal_presence_of.rb
245
+ - lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_presence_of.rb
246
+ - lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_screen_presence_of.rb
247
+ - lib/automation_object/blue_print/hash_adapter/helpers/validators/validate_view_presence_of.rb
248
+ - lib/automation_object/blue_print/hash_adapter/hook.rb
249
+ - lib/automation_object/blue_print/hash_adapter/hook_action.rb
250
+ - lib/automation_object/blue_print/hash_adapter/hook_element_requirements.rb
251
+ - lib/automation_object/blue_print/hash_adapter/modal.rb
252
+ - lib/automation_object/blue_print/hash_adapter/screen.rb
253
+ - lib/automation_object/blue_print/hash_adapter/top.rb
254
+ - lib/automation_object/blue_print/hash_adapter/view.rb
255
+ - lib/automation_object/blue_print/helpers/file_helper.rb
256
+ - lib/automation_object/blue_print/yaml_adapter.rb
257
+ - lib/automation_object/driver.rb
258
+ - lib/automation_object/driver/appium_adapter/driver.rb
259
+ - lib/automation_object/driver/appium_adapter/element.rb
260
+ - lib/automation_object/driver/base.rb
226
261
  - lib/automation_object/driver/driver.rb
227
262
  - lib/automation_object/driver/element.rb
228
- - lib/automation_object/element/element.rb
229
- - lib/automation_object/element/element_array.rb
230
- - lib/automation_object/element/element_cell.rb
231
- - lib/automation_object/element/element_group.rb
232
- - lib/automation_object/element/element_hash.rb
233
- - lib/automation_object/element/element_helpers.rb
234
- - lib/automation_object/element/element_methods.rb
235
- - lib/automation_object/element/elements_helpers.rb
263
+ - lib/automation_object/driver/helpers/selenium_driver_helper.rb
264
+ - lib/automation_object/driver/helpers/selenium_element_helper.rb
265
+ - lib/automation_object/driver/nokogiri_adapter/backup/driver.rb
266
+ - lib/automation_object/driver/nokogiri_adapter/backup/element.rb
267
+ - lib/automation_object/driver/nokogiri_adapter/backup/form.rb
268
+ - lib/automation_object/driver/nokogiri_adapter/backup/helpers/driver_element_helper.rb
269
+ - lib/automation_object/driver/nokogiri_adapter/backup/session.rb
270
+ - lib/automation_object/driver/nokogiri_adapter/driver.rb
271
+ - lib/automation_object/driver/nokogiri_adapter/element.rb
272
+ - lib/automation_object/driver/nokogiri_adapter/error.rb
273
+ - lib/automation_object/driver/selenium_adapter/driver.rb
274
+ - lib/automation_object/driver/selenium_adapter/element.rb
275
+ - lib/automation_object/dsl.rb
276
+ - lib/automation_object/dsl/blue_print_adapter.rb
277
+ - lib/automation_object/dsl/blue_print_adapter/composite.rb
278
+ - lib/automation_object/dsl/blue_print_adapter/element.rb
279
+ - lib/automation_object/dsl/blue_print_adapter/element_array.rb
280
+ - lib/automation_object/dsl/blue_print_adapter/element_hash.rb
281
+ - lib/automation_object/dsl/blue_print_adapter/modal.rb
282
+ - lib/automation_object/dsl/blue_print_adapter/screen.rb
283
+ - lib/automation_object/dsl/blue_print_adapter/top.rb
284
+ - lib/automation_object/dsl/models.rb
285
+ - lib/automation_object/dsl/proxies/element.rb
286
+ - lib/automation_object/dsl/proxies/element_array.rb
287
+ - lib/automation_object/dsl/proxies/element_hash.rb
288
+ - lib/automation_object/dsl/proxies/helpers/composite_helper.rb
289
+ - lib/automation_object/dsl/proxies/modal.rb
290
+ - lib/automation_object/dsl/proxies/screen.rb
291
+ - lib/automation_object/dsl/proxies/top.rb
236
292
  - lib/automation_object/framework.rb
237
- - lib/automation_object/framework/events.rb
238
- - lib/automation_object/framework/helpers.rb
239
- - lib/automation_object/framework/print_objects.rb
240
- - lib/automation_object/framework/screen_monitor.rb
241
- - lib/automation_object/framework/screen_routing.rb
242
- - lib/automation_object/framework/window_helpers.rb
243
- - lib/automation_object/hash.rb
244
- - lib/automation_object/hook_helpers.rb
245
- - lib/automation_object/logger.rb
246
- - lib/automation_object/object.rb
247
- - lib/automation_object/screen/modal.rb
248
- - lib/automation_object/screen/screen.rb
249
- - lib/automation_object/screen/screen_hook_helpers.rb
250
- - lib/automation_object/screen/screen_modal_helpers.rb
251
- - lib/automation_object/screen/screen_prompt_helpers.rb
252
- - lib/automation_object/screen/screen_window_helpers.rb
293
+ - lib/automation_object/helpers/composite.rb
294
+ - lib/automation_object/helpers/composite_hook.rb
295
+ - lib/automation_object/helpers/hash.rb
296
+ - lib/automation_object/helpers/reflection_helper.rb
297
+ - lib/automation_object/helpers/string.rb
298
+ - lib/automation_object/proxies/mutex_proxy.rb
299
+ - lib/automation_object/proxies/proxy.rb
300
+ - lib/automation_object/proxies/throttle_proxy.rb
301
+ - lib/automation_object/state.rb
302
+ - lib/automation_object/state/blue_print_adapter.rb
303
+ - lib/automation_object/state/blue_print_adapter/composite.rb
304
+ - lib/automation_object/state/blue_print_adapter/element.rb
305
+ - lib/automation_object/state/blue_print_adapter/element_array.rb
306
+ - lib/automation_object/state/blue_print_adapter/element_hash.rb
307
+ - lib/automation_object/state/blue_print_adapter/element_proxy.rb
308
+ - lib/automation_object/state/blue_print_adapter/helpers/element_helper.rb
309
+ - lib/automation_object/state/blue_print_adapter/helpers/screen_manager.rb
310
+ - lib/automation_object/state/blue_print_adapter/helpers/window.rb
311
+ - lib/automation_object/state/blue_print_adapter/hook.rb
312
+ - lib/automation_object/state/blue_print_adapter/hook_action.rb
313
+ - lib/automation_object/state/blue_print_adapter/hook_actions/action_loop.rb
314
+ - lib/automation_object/state/blue_print_adapter/hook_actions/change_screen.rb
315
+ - lib/automation_object/state/blue_print_adapter/hook_actions/change_to_previous_screen.rb
316
+ - lib/automation_object/state/blue_print_adapter/hook_actions/close_modal.rb
317
+ - lib/automation_object/state/blue_print_adapter/hook_actions/close_screen.rb
318
+ - lib/automation_object/state/blue_print_adapter/hook_actions/element_requirement.rb
319
+ - lib/automation_object/state/blue_print_adapter/hook_actions/new_screen.rb
320
+ - lib/automation_object/state/blue_print_adapter/hook_actions/possible_screen_changes.rb
321
+ - lib/automation_object/state/blue_print_adapter/hook_actions/reset_screen.rb
322
+ - lib/automation_object/state/blue_print_adapter/hook_actions/show_modal.rb
323
+ - lib/automation_object/state/blue_print_adapter/hook_actions/sleep.rb
324
+ - lib/automation_object/state/blue_print_adapter/hook_actions/wait_for_elements.rb
325
+ - lib/automation_object/state/blue_print_adapter/modal.rb
326
+ - lib/automation_object/state/blue_print_adapter/screen.rb
327
+ - lib/automation_object/state/blue_print_adapter/top.rb
328
+ - lib/automation_object/state/error.rb
329
+ - lib/automation_object/state/session.rb
330
+ - lib/automation_object/step_definitions.rb
331
+ - lib/automation_object/step_definitions/action.rb
332
+ - lib/automation_object/step_definitions/cache.rb
333
+ - lib/automation_object/step_definitions/element/actions.rb
334
+ - lib/automation_object/step_definitions/element/regex.rb
335
+ - lib/automation_object/step_definitions/element/steps.rb
336
+ - lib/automation_object/step_definitions/parse.rb
253
337
  - lib/automation_object/version.rb
254
- homepage: https://github.com/SpartzInc/automation_object
338
+ homepage: https://github.com/mikeblatter/automation_object
255
339
  licenses:
256
340
  - MIT
257
341
  metadata: {}
@@ -271,7 +355,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
271
355
  version: '0'
272
356
  requirements: []
273
357
  rubyforge_project:
274
- rubygems_version: 2.4.2
358
+ rubygems_version: 2.4.8
275
359
  signing_key:
276
360
  specification_version: 4
277
361
  summary: YAML configuration based dynamic DSL framework for UI automation using Selenium