cutedriver-driver 2.0.0.20210120164037

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.
Files changed (226) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +16 -0
  3. data/bin/start_app_perf +200 -0
  4. data/bin/tdriver-devtools +3 -0
  5. data/config/sut_parameters.rb +52 -0
  6. data/config/sut_setup.rb +32 -0
  7. data/config/sut_teardown.rb +32 -0
  8. data/config/tdriver_custom_error_recovery.rb +83 -0
  9. data/ext/extconf.rb +70 -0
  10. data/ext/native_extensions.c +315 -0
  11. data/lib/matti.rb +25 -0
  12. data/lib/tdriver-devtools/behaviour/old/xml/example/flick-example.rb +120 -0
  13. data/lib/tdriver-devtools/behaviour/old/xml/example/impl.rb_invalid +194 -0
  14. data/lib/tdriver-devtools/behaviour/old/xml/generate_behaviour_xml.rb +95 -0
  15. data/lib/tdriver-devtools/behaviour/old/xml/lib/tdriver_generator.rb +722 -0
  16. data/lib/tdriver-devtools/behaviour/old/xml/qdoc_generator.rb +321 -0
  17. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.method.template +43 -0
  18. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.module.template +54 -0
  19. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument.template +7 -0
  20. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument_type.template +7 -0
  21. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.exception.template +5 -0
  22. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.line.template +2 -0
  23. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.template +5 -0
  24. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.method.template +23 -0
  25. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.template +14 -0
  26. data/lib/tdriver-devtools/behaviour/old/xml/update +3 -0
  27. data/lib/tdriver-devtools/behaviour/xml/generate.rb +88 -0
  28. data/lib/tdriver-devtools/behaviour/xml/rdoc_behaviour_xml_generator.rb +1945 -0
  29. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.default.template +1 -0
  30. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.template +3 -0
  31. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument_type.template +4 -0
  32. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.exception.template +4 -0
  33. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.arguments.template +4 -0
  34. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.deprecated.template +3 -0
  35. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.exceptions.template +3 -0
  36. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.info.template +1 -0
  37. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.returns.template +3 -0
  38. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.tables.template +3 -0
  39. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.template +12 -0
  40. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.returns.template +5 -0
  41. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.item.template +1 -0
  42. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.row.template +2 -0
  43. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.template +8 -0
  44. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.template +14 -0
  45. data/lib/tdriver-devtools/doc/behaviour_xml/QtExampleGestureBehaviour.xml +138 -0
  46. data/lib/tdriver-devtools/doc/behaviour_xml/created.rid +1 -0
  47. data/lib/tdriver-devtools/doc/behaviour_xml/tdriver.hash +1 -0
  48. data/lib/tdriver-devtools/doc/feature_xml/qt_widget_hold.feature.xml +9 -0
  49. data/lib/tdriver-devtools/doc/feature_xml/qt_widget_tap.feature.xml +9 -0
  50. data/lib/tdriver-devtools/doc/generate.rb +917 -0
  51. data/lib/tdriver-devtools/doc/update +1 -0
  52. data/lib/tdriver-devtools/doc/xslt/html.rb +7 -0
  53. data/lib/tdriver-devtools/doc/xslt/template.xsl +2170 -0
  54. data/lib/tdriver-devtools/doc/xslt/update +3 -0
  55. data/lib/tdriver-devtools/plugin/placeholder.txt +1 -0
  56. data/lib/tdriver-devtools/tdriver-devtools.rb +404 -0
  57. data/lib/tdriver-devtools/tests/feature_tests/example/behaviour_example.rb +100 -0
  58. data/lib/tdriver-devtools/tests/feature_tests/generate.rb +82 -0
  59. data/lib/tdriver-devtools/tests/feature_tests/lib/custom_rdoc_generator.rb +468 -0
  60. data/lib/tdriver-devtools/tests/feature_tests/templates/feature_attribute.template +5 -0
  61. data/lib/tdriver-devtools/tests/feature_tests/templates/feature_method.template +5 -0
  62. data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_attribute.template +5 -0
  63. data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_method.template +5 -0
  64. data/lib/tdriver-devtools/tests/feature_tests/update +3 -0
  65. data/lib/tdriver.rb +23 -0
  66. data/lib/tdriver/base/behaviour/abstract.rb +29 -0
  67. data/lib/tdriver/base/behaviour/behaviours/object_abstract.rb +107 -0
  68. data/lib/tdriver/base/behaviour/behaviours/object_behaviour_composition.rb +99 -0
  69. data/lib/tdriver/base/behaviour/behaviours/object_behaviour_description.rb +278 -0
  70. data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +119 -0
  71. data/lib/tdriver/base/behaviour/factory.rb +495 -0
  72. data/lib/tdriver/base/behaviour/loader.rb +46 -0
  73. data/lib/tdriver/base/command_data/command_data.rb +51 -0
  74. data/lib/tdriver/base/command_data/loader.rb +29 -0
  75. data/lib/tdriver/base/controller/abstraction.rb +56 -0
  76. data/lib/tdriver/base/controller/loader.rb +21 -0
  77. data/lib/tdriver/base/errors.rb +134 -0
  78. data/lib/tdriver/base/loader.rb +47 -0
  79. data/lib/tdriver/base/state_object.rb +373 -0
  80. data/lib/tdriver/base/sut/adapter.rb +54 -0
  81. data/lib/tdriver/base/sut/controller.rb +151 -0
  82. data/lib/tdriver/base/sut/factory.rb +339 -0
  83. data/lib/tdriver/base/sut/generic/behaviours/agent.rb +77 -0
  84. data/lib/tdriver/base/sut/generic/behaviours/application.rb +427 -0
  85. data/lib/tdriver/base/sut/generic/behaviours/controller.rb +67 -0
  86. data/lib/tdriver/base/sut/generic/behaviours/find.rb +107 -0
  87. data/lib/tdriver/base/sut/generic/behaviours/flash_behaviour.rb +337 -0
  88. data/lib/tdriver/base/sut/generic/behaviours/sut.rb +1888 -0
  89. data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +210 -0
  90. data/lib/tdriver/base/sut/generic/behaviours/verification.rb +222 -0
  91. data/lib/tdriver/base/sut/generic/commands/agent.rb +43 -0
  92. data/lib/tdriver/base/sut/generic/commands/application.rb +274 -0
  93. data/lib/tdriver/base/sut/generic/commands/fixture.rb +47 -0
  94. data/lib/tdriver/base/sut/generic/commands/key_sequence.rb +94 -0
  95. data/lib/tdriver/base/sut/generic/commands/screen_capture.rb +64 -0
  96. data/lib/tdriver/base/sut/generic/plugin.rb +97 -0
  97. data/lib/tdriver/base/sut/loader.rb +35 -0
  98. data/lib/tdriver/base/sut/sut.rb +98 -0
  99. data/lib/tdriver/base/test_object/abstract.rb +208 -0
  100. data/lib/tdriver/base/test_object/adapter.rb +740 -0
  101. data/lib/tdriver/base/test_object/behaviours/syncronization.rb +144 -0
  102. data/lib/tdriver/base/test_object/behaviours/test_object.rb +1047 -0
  103. data/lib/tdriver/base/test_object/cache.rb +134 -0
  104. data/lib/tdriver/base/test_object/factory.rb +684 -0
  105. data/lib/tdriver/base/test_object/loader.rb +51 -0
  106. data/lib/tdriver/base/test_object/verification.rb +178 -0
  107. data/lib/tdriver/base/test_object/xml/abstraction.rb +63 -0
  108. data/lib/tdriver/base/test_object/xml/adapter.rb +773 -0
  109. data/lib/tdriver/env.rb +21 -0
  110. data/lib/tdriver/loader.rb +57 -0
  111. data/lib/tdriver/matti.rb +35 -0
  112. data/lib/tdriver/report/error_recovery/tdriver_custom_error_recovery.rb +83 -0
  113. data/lib/tdriver/report/error_recovery/tdriver_error_recovery.rb +168 -0
  114. data/lib/tdriver/report/error_recovery/tdriver_error_recovery_settings.rb +106 -0
  115. data/lib/tdriver/report/report.rb +61 -0
  116. data/lib/tdriver/report/report_api.rb +348 -0
  117. data/lib/tdriver/report/report_combine.rb +86 -0
  118. data/lib/tdriver/report/report_crash_file_capture.rb +178 -0
  119. data/lib/tdriver/report/report_creator.rb +665 -0
  120. data/lib/tdriver/report/report_cucumber.rb +158 -0
  121. data/lib/tdriver/report/report_cucumber_listener.rb +184 -0
  122. data/lib/tdriver/report/report_cucumber_reporter.rb +181 -0
  123. data/lib/tdriver/report/report_data_presentation.rb +156 -0
  124. data/lib/tdriver/report/report_data_table.rb +64 -0
  125. data/lib/tdriver/report/report_execution_statistics.rb +400 -0
  126. data/lib/tdriver/report/report_file_capture.rb +159 -0
  127. data/lib/tdriver/report/report_graph_generator.rb +59 -0
  128. data/lib/tdriver/report/report_grouping.rb +541 -0
  129. data/lib/tdriver/report/report_javascript.rb +199 -0
  130. data/lib/tdriver/report/report_junit_xml.rb +147 -0
  131. data/lib/tdriver/report/report_rspec.rb +108 -0
  132. data/lib/tdriver/report/report_test_case_run.rb +725 -0
  133. data/lib/tdriver/report/report_test_run.rb +1476 -0
  134. data/lib/tdriver/report/report_test_unit.rb +223 -0
  135. data/lib/tdriver/report/report_writer.rb +1621 -0
  136. data/lib/tdriver/tdriver.rb +209 -0
  137. data/lib/tdriver/util/agent/loader.rb +22 -0
  138. data/lib/tdriver/util/agent/service.rb +107 -0
  139. data/lib/tdriver/util/common/array.rb +39 -0
  140. data/lib/tdriver/util/common/boolean.rb +48 -0
  141. data/lib/tdriver/util/common/crc16.rb +149 -0
  142. data/lib/tdriver/util/common/environment.rb +154 -0
  143. data/lib/tdriver/util/common/error.rb +40 -0
  144. data/lib/tdriver/util/common/exception.rb +53 -0
  145. data/lib/tdriver/util/common/exceptions.rb +12 -0
  146. data/lib/tdriver/util/common/file.rb +328 -0
  147. data/lib/tdriver/util/common/gem.rb +109 -0
  148. data/lib/tdriver/util/common/hash.rb +288 -0
  149. data/lib/tdriver/util/common/kernel.rb +253 -0
  150. data/lib/tdriver/util/common/loader.rb +47 -0
  151. data/lib/tdriver/util/common/numeric.rb +159 -0
  152. data/lib/tdriver/util/common/object.rb +159 -0
  153. data/lib/tdriver/util/common/retryable.rb +179 -0
  154. data/lib/tdriver/util/common/stackable.rb +185 -0
  155. data/lib/tdriver/util/common/string.rb +174 -0
  156. data/lib/tdriver/util/database/access.rb +240 -0
  157. data/lib/tdriver/util/database/connection.rb +44 -0
  158. data/lib/tdriver/util/database/error.rb +34 -0
  159. data/lib/tdriver/util/database/loader.rb +28 -0
  160. data/lib/tdriver/util/filters/attribute_filter.rb +121 -0
  161. data/lib/tdriver/util/filters/loader.rb +29 -0
  162. data/lib/tdriver/util/fixture/loader.rb +22 -0
  163. data/lib/tdriver/util/fixture/service.rb +211 -0
  164. data/lib/tdriver/util/hooking/hooking.rb +477 -0
  165. data/lib/tdriver/util/keymap/keymap.rb +81 -0
  166. data/lib/tdriver/util/loader.rb +80 -0
  167. data/lib/tdriver/util/localisation/error.rb +31 -0
  168. data/lib/tdriver/util/localisation/loader.rb +25 -0
  169. data/lib/tdriver/util/localisation/localisation.rb +762 -0
  170. data/lib/tdriver/util/logger/loader.rb +22 -0
  171. data/lib/tdriver/util/logger/logger.rb +591 -0
  172. data/lib/tdriver/util/operator_data/error.rb +29 -0
  173. data/lib/tdriver/util/operator_data/loader.rb +27 -0
  174. data/lib/tdriver/util/operator_data/operator_data.rb +93 -0
  175. data/lib/tdriver/util/other/config.rb +221 -0
  176. data/lib/tdriver/util/parameter/error.rb +48 -0
  177. data/lib/tdriver/util/parameter/loader.rb +25 -0
  178. data/lib/tdriver/util/parameter/parameter.rb +1161 -0
  179. data/lib/tdriver/util/plugin/abstract.rb +61 -0
  180. data/lib/tdriver/util/plugin/error.rb +0 -0
  181. data/lib/tdriver/util/plugin/loader.rb +28 -0
  182. data/lib/tdriver/util/plugin/service.rb +319 -0
  183. data/lib/tdriver/util/recorder/loader.rb +25 -0
  184. data/lib/tdriver/util/recorder/recorder.rb +72 -0
  185. data/lib/tdriver/util/recorder/scripter.rb +294 -0
  186. data/lib/tdriver/util/statistics/statistics.rb +89 -0
  187. data/lib/tdriver/util/user_data/error.rb +28 -0
  188. data/lib/tdriver/util/user_data/loader.rb +25 -0
  189. data/lib/tdriver/util/user_data/user_data.rb +104 -0
  190. data/lib/tdriver/util/video/camera.rb +67 -0
  191. data/lib/tdriver/util/video/camera_linux.rb +153 -0
  192. data/lib/tdriver/util/video/camera_windows.rb +174 -0
  193. data/lib/tdriver/util/video/loader.rb +31 -0
  194. data/lib/tdriver/util/video/video_utils.rb +139 -0
  195. data/lib/tdriver/util/xml/abstraction.rb +117 -0
  196. data/lib/tdriver/util/xml/attribute.rb +32 -0
  197. data/lib/tdriver/util/xml/builder.rb +53 -0
  198. data/lib/tdriver/util/xml/comment.rb +32 -0
  199. data/lib/tdriver/util/xml/document.rb +32 -0
  200. data/lib/tdriver/util/xml/element.rb +32 -0
  201. data/lib/tdriver/util/xml/error.rb +46 -0
  202. data/lib/tdriver/util/xml/loader.rb +62 -0
  203. data/lib/tdriver/util/xml/nil_node.rb +95 -0
  204. data/lib/tdriver/util/xml/nodeset.rb +32 -0
  205. data/lib/tdriver/util/xml/parsers/libxml/libxml.rb +140 -0
  206. data/lib/tdriver/util/xml/parsers/loader.rb +21 -0
  207. data/lib/tdriver/util/xml/parsers/nokogiri/abstraction.rb +167 -0
  208. data/lib/tdriver/util/xml/parsers/nokogiri/attribute.rb +66 -0
  209. data/lib/tdriver/util/xml/parsers/nokogiri/builder.rb +64 -0
  210. data/lib/tdriver/util/xml/parsers/nokogiri/comment.rb +39 -0
  211. data/lib/tdriver/util/xml/parsers/nokogiri/document.rb +66 -0
  212. data/lib/tdriver/util/xml/parsers/nokogiri/element.rb +39 -0
  213. data/lib/tdriver/util/xml/parsers/nokogiri/loader.rb +58 -0
  214. data/lib/tdriver/util/xml/parsers/nokogiri/node.rb +212 -0
  215. data/lib/tdriver/util/xml/parsers/nokogiri/nodeset.rb +237 -0
  216. data/lib/tdriver/util/xml/parsers/nokogiri/text.rb +39 -0
  217. data/lib/tdriver/util/xml/text.rb +32 -0
  218. data/lib/tdriver/util/xml/xml.rb +332 -0
  219. data/lib/tdriver/verify/verify.rb +2398 -0
  220. data/lib/tdriver/version.rb +21 -0
  221. data/xml/behaviours/generic.xml +530 -0
  222. data/xml/defaults/generic.xml +11 -0
  223. data/xml/defaults/sut_generic.xml +8 -0
  224. data/xml/parameters/tdriver_parameters.xml +23 -0
  225. data/xml/templates/generic.xml +292 -0
  226. metadata +324 -0
@@ -0,0 +1,5 @@
1
+ Feature: %s
2
+ As a test scripter writer
3
+ I want to use %s attribute to [DO_SOMETHING] in [TARGET_APPLICATION]
4
+ so that I can test the %s behaviour
5
+
@@ -0,0 +1,5 @@
1
+ Feature: %s
2
+ As a test scripter writer
3
+ I want to use %s method to [DO_SOMETHING] in [TARGET_APPLICATION]
4
+ so that I can test the %s behaviour
5
+
@@ -0,0 +1,5 @@
1
+ Scenario: Testing %s attribute (Rename this to be more descriptive)
2
+ Given I launch application [APPLICATION_NAME] as @app
3
+ When I execute "@app.[SOME_OBJECT].%s"
4
+ Then [ADD_YOUR_VERIFICATION_HERE]
5
+
@@ -0,0 +1,5 @@
1
+ Scenario: Testing %s method with %s argument%s (Rename this to be more descriptive)
2
+ Given I launch application [APPLICATION_NAME] as @app
3
+ When I execute "@app.[SOME_OBJECT].%s(%s)"
4
+ Then [ADD_YOUR_VERIFICATION_HERE]
5
+
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env sh
2
+ rm -rf output
3
+ ruby generate.rb example/behaviour_example.rb
@@ -0,0 +1,23 @@
1
+ ############################################################################
2
+ ##
3
+ ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
+ ## All rights reserved.
5
+ ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
+ ##
7
+ ## This file is part of Testability Driver.
8
+ ##
9
+ ## If you have questions regarding the use of this file, please contact
10
+ ## Nokia at testabilitydriver@nokia.com .
11
+ ##
12
+ ## This library is free software; you can redistribute it and/or
13
+ ## modify it under the terms of the GNU Lesser General Public
14
+ ## License version 2.1 as published by the Free Software Foundation
15
+ ## and appearing in the file LICENSE.LGPL included in the packaging
16
+ ## of this file.
17
+ ##
18
+ ############################################################################
19
+
20
+ # load tdriver resources and framework
21
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'tdriver/env' ) )
22
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'tdriver/version' ) )
23
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'tdriver/tdriver' ) )
@@ -0,0 +1,29 @@
1
+ ############################################################################
2
+ ##
3
+ ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
+ ## All rights reserved.
5
+ ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
+ ##
7
+ ## This file is part of Testability Driver.
8
+ ##
9
+ ## If you have questions regarding the use of this file, please contact
10
+ ## Nokia at testabilitydriver@nokia.com .
11
+ ##
12
+ ## This library is free software; you can redistribute it and/or
13
+ ## modify it under the terms of the GNU Lesser General Public
14
+ ## License version 2.1 as published by the Free Software Foundation
15
+ ## and appearing in the file LICENSE.LGPL included in the packaging
16
+ ## of this file.
17
+ ##
18
+ ############################################################################
19
+
20
+ # Module is used to be as template for all behaviours
21
+ # TestObject can verify whether it has some behaviour by calling:
22
+ # TestObject.kind_of? MobyBehaviour::Abstract
23
+ module MobyBehaviour
24
+
25
+ module Behaviour
26
+
27
+ end # Behaviour
28
+
29
+ end # MobyBehaviour
@@ -0,0 +1,107 @@
1
+ ############################################################################
2
+ ##
3
+ ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
+ ## All rights reserved.
5
+ ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
+ ##
7
+ ## This file is part of Testability Driver.
8
+ ##
9
+ ## If you have questions regarding the use of this file, please contact
10
+ ## Nokia at testabilitydriver@nokia.com .
11
+ ##
12
+ ## This library is free software; you can redistribute it and/or
13
+ ## modify it under the terms of the GNU Lesser General Public
14
+ ## License version 2.1 as published by the Free Software Foundation
15
+ ## and appearing in the file LICENSE.LGPL included in the packaging
16
+ ## of this file.
17
+ ##
18
+ ############################################################################
19
+
20
+ module MobyBehaviour
21
+
22
+ # == description
23
+ # Generic object abstraction class applied to TestObject, Applcation and SUT
24
+ #
25
+ # == behaviour
26
+ # GenericObjectAbstraction
27
+ #
28
+ # == requires
29
+ # *
30
+ #
31
+ # == input_type
32
+ # *
33
+ #
34
+ # == sut_type
35
+ # *
36
+ #
37
+ # == sut_version
38
+ # *
39
+ #
40
+ # == objects
41
+ # *;application;sut
42
+ #
43
+ module GenericObjectAbstraction
44
+
45
+ # == description
46
+ # Determines if the current object is type of application
47
+ # == returns
48
+ # Boolean
49
+ # description: Determines is object type of application
50
+ # example: false
51
+ def application?
52
+
53
+ begin
54
+
55
+ @type == 'application'
56
+
57
+ rescue
58
+
59
+ false
60
+
61
+ end
62
+
63
+ end
64
+
65
+ # == description
66
+ # Determines if the current object is type of SUT
67
+ # == returns
68
+ # Boolean
69
+ # description: Determines is object type of SUT
70
+ # example: false
71
+ def sut?
72
+
73
+ begin
74
+
75
+ @type == 'sut'
76
+
77
+ rescue
78
+
79
+ false
80
+
81
+ end
82
+
83
+ end
84
+
85
+ # == description
86
+ # Determines if the current object is type of test object
87
+ # == returns
88
+ # Boolean
89
+ # description: Determines is object type of test object
90
+ # example: false
91
+ def test_object?
92
+
93
+ begin
94
+
95
+ kind_of?( MobyBase::TestObject )
96
+
97
+ rescue
98
+
99
+ false
100
+
101
+ end
102
+
103
+ end
104
+
105
+ end # GenericObjectAbstraction
106
+
107
+ end # MobyBehaviour
@@ -0,0 +1,99 @@
1
+ ############################################################################
2
+ ##
3
+ ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
+ ## All rights reserved.
5
+ ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
+ ##
7
+ ## This file is part of Testability Driver.
8
+ ##
9
+ ## If you have questions regarding the use of this file, please contact
10
+ ## Nokia at testabilitydriver@nokia.com .
11
+ ##
12
+ ## This library is free software; you can redistribute it and/or
13
+ ## modify it under the terms of the GNU Lesser General Public
14
+ ## License version 2.1 as published by the Free Software Foundation
15
+ ## and appearing in the file LICENSE.LGPL included in the packaging
16
+ ## of this file.
17
+ ##
18
+ ############################################################################
19
+
20
+ # deprecated: use TDriver::BehaviourFactory instead
21
+
22
+ =begin
23
+ module MobyBehaviour
24
+
25
+ # == description
26
+ # Generic methods for applying behaviours to target object
27
+ #
28
+ # == behaviour
29
+ # GenericObjectBehaviourComposition
30
+ #
31
+ # == requires
32
+ # *
33
+ #
34
+ # == input_type
35
+ # *
36
+ #
37
+ # == sut_type
38
+ # *
39
+ #
40
+ # == sut_version
41
+ # *
42
+ #
43
+ # == objects
44
+ # *;sut
45
+ #
46
+ module ObjectBehaviourComposition
47
+
48
+ public
49
+ # == nodoc
50
+ # == description
51
+ # Apply all behaviour modules to target object which meets the given rules. Target object can be either type of "sut", "application" or "*" (any test object).
52
+ # == tables
53
+ # apply_behaviour_table
54
+ # title: Hash table details
55
+ # |Key|Description|Example|Required|
56
+ # |:object_type| Rule for object type(s). In following example all generic test object and application specific behaviours are accepted. | ["*", "application"] | Yes |
57
+ # |:sut_type| Rule for SUT type(s). In following example all non-SUT specific and QT specific behaviours are applied. | ["*", "QT"] | Yes |
58
+ # |:input_type| Rule defining for SUT input type(s). In following example all SUT input types and touch screen specific behaviours are applied. | ["*", "touch"] | Yes |
59
+ # |:version| Rule for SUT version(s). In following example all all SUT versions and SUT QT v1.0 specific behaviours are applied. | ["*", "1.0"] | Yes |
60
+ #
61
+ # == arguments
62
+ # rules
63
+ # Hash
64
+ # description: Target object's SUT, type and version requirements
65
+ # example: { :version=>["*", "1.0"], :object_type=>["*", "application"], :sut_type=>["*", "QT"], :input_type=>["*", "touch"] }
66
+ #
67
+ # == returns
68
+ # Array
69
+ # description: Array of applied behaviour module indexes (Fixnum)
70
+ # example: [0, 3, 4, 6, 7, 8, 9]
71
+ def apply_behaviour!( rules )
72
+
73
+ sut = ( sut = self ).kind_of?( MobyBase::SUT ) ? sut : sut.sut
74
+
75
+ TDriver::BehaviourFactory.apply_behaviour( { :sut_type => [ '*', sut.ui_type ], :version => [ '*', sut.ui_version ] }.merge( rules ).merge( { :object => self } ) )
76
+
77
+ end
78
+
79
+ private
80
+
81
+ # behaviour specific initialization
82
+ def self.extended( target )
83
+
84
+ target.instance_exec{
85
+
86
+ # array of extended behaviours to target object
87
+ @object_behaviours = []
88
+
89
+ }
90
+
91
+ end
92
+
93
+ # enable hooking for performance measurement & debug logging
94
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
95
+
96
+ end # ObjectBehaviourComposition
97
+
98
+ end # MobyBehaviour
99
+ =end
@@ -0,0 +1,278 @@
1
+ ############################################################################
2
+ ##
3
+ ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
+ ## All rights reserved.
5
+ ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
+ ##
7
+ ## This file is part of Testability Driver.
8
+ ##
9
+ ## If you have questions regarding the use of this file, please contact
10
+ ## Nokia at testabilitydriver@nokia.com .
11
+ ##
12
+ ## This library is free software; you can redistribute it and/or
13
+ ## modify it under the terms of the GNU Lesser General Public
14
+ ## License version 2.1 as published by the Free Software Foundation
15
+ ## and appearing in the file LICENSE.LGPL included in the packaging
16
+ ## of this file.
17
+ ##
18
+ ############################################################################
19
+
20
+ module MobyBehaviour
21
+
22
+ # == description
23
+ # Generic methods for inspecting test object and it's methods
24
+ #
25
+ # == behaviour
26
+ # GenericObjectDescription
27
+ #
28
+ # == requires
29
+ # *
30
+ #
31
+ # == input_type
32
+ # *
33
+ #
34
+ # == sut_type
35
+ # *
36
+ #
37
+ # == sut_version
38
+ # *
39
+ #
40
+ # == objects
41
+ # *;sut
42
+ #
43
+ module ObjectBehaviourDescription
44
+
45
+ # == description
46
+ # Return list of behaviour name(s) which caller object contains. This method may be useful when implementing/testing custom behaviour modules.
47
+ #
48
+ # == arguments
49
+ # return_indexes
50
+ # TrueClass
51
+ # description: Returns result as array of behaviour indexes
52
+ # example: true
53
+ # FalseClass
54
+ # description: Returns result as array of behaviour names
55
+ # example: false
56
+ #
57
+ # == returns
58
+ # Array
59
+ # description: If 'return_indexes' is true, result is a array of indexes (Fixnum)
60
+ # example: [1,2,3,4,5]
61
+ #
62
+ # Array
63
+ # description: If 'return_indexes' is false, result is a array of behaviour names (String)
64
+ # example: ["GenericApplication", "GenericFind", "GenericObjectComposition"]
65
+ #
66
+ # == footer
67
+ #
68
+ def behaviours( return_indexes = false )
69
+
70
+ if return_indexes
71
+
72
+ @object_behaviours
73
+
74
+ else
75
+
76
+ TDriver::BehaviourFactory.collect_behaviours( :index => @object_behaviours ).collect{ | behaviour | behaviour[ :name ] }.uniq.compact
77
+
78
+ end
79
+
80
+ end
81
+
82
+ # == description
83
+ # Returns a list of the names of (behaviour) methods publicly accessible in object. This method may be useful when implementing/testing custom behaviour modules.
84
+ # == returns
85
+ # Array
86
+ # description: List of method names
87
+ # example: ["application?", "close", "closable?", "describe"]
88
+ def object_methods
89
+
90
+ TDriver::BehaviourFactory.collect_behaviours( :index => @object_behaviours ).inject( [] ){ | result, behaviour |
91
+
92
+ # append method names to result array
93
+ result.concat(
94
+
95
+ behaviour[ :methods ].keys.collect{ | key |
96
+
97
+ # make sure that method name is returned in type of string
98
+ key.to_s
99
+
100
+ }
101
+
102
+ )
103
+
104
+ }.uniq.compact
105
+
106
+ end
107
+
108
+ # == description
109
+ # Return brief method description either as return value or printed to STDOUT. This method may be useful when implementing/testing custom behaviour modules.
110
+ #
111
+ # == arguments
112
+ # method_name
113
+ # String
114
+ # description: Name of the method
115
+ # example: "type"
116
+ #
117
+ # print
118
+ # TrueClass
119
+ # description: Print result to STDOUT and return as String
120
+ # example: true
121
+ # FalseClass
122
+ # description: Return result as Hash instead of printing to STDOUT
123
+ # example: false
124
+ #
125
+ # return_result
126
+ # TrueClass
127
+ # description: Pass result as return value
128
+ # example: true
129
+ # FalseClass
130
+ # description: Do not pass result as return value
131
+ # example: false
132
+ #
133
+ # == returns
134
+ # String
135
+ # description: String representation of object description/details
136
+ # example: "Description:\nReturns type of the test object\n\nExample:\ntype"
137
+ #
138
+ # Hash
139
+ # description: Hash representation of object description/details
140
+ # example: { :description=>"Returns type of the test object", :example=>"type" }
141
+ #
142
+ # NilClass
143
+ # description: When 'return_result' is false
144
+ # example: nil
145
+ #
146
+ # == exceptions
147
+ # TypeError
148
+ # description: Wrong argument type <class> for method name (expected Symbol or String)
149
+ #
150
+ # ArgumentError
151
+ # description: Test object type of <type> does not have method <name>
152
+ #
153
+ def describe_method( method_name, print = true, return_result = false )
154
+
155
+ # verify that method_name is type of Symbol or String and convert it to Symbol
156
+ method_name = method_name.check_type( [ Symbol, String ], "wrong argument type $1 for method name (expected $2)" ).to_s
157
+
158
+ # verify that print argument is boolean
159
+ print = print.check_type( [ TrueClass, FalseClass ], "wrong argument type $1 for verbose output (expected $2)" ).true?
160
+
161
+ # return result not printed out to stdout
162
+ return_result = true if print.false?
163
+
164
+ behaviours = TDriver::BehaviourFactory.collect_behaviours( :index => @object_behaviours ).select{ | behaviour |
165
+
166
+ behaviour[ :methods ].keys.include?( method_name )
167
+
168
+ }.compact.last
169
+
170
+ # verify that method was found
171
+ behaviours.not_blank "Test object type of #{ @type } does not have method #{ method_name.inspect }"
172
+
173
+ result = {
174
+ :name => method_name,
175
+ :description => behaviours[ :methods ][ method_name ][ :description ],
176
+ :example => behaviours[ :methods ][ method_name ][ :example ]
177
+ }
178
+
179
+ if print
180
+
181
+ result = [ :name, :description, :example ].inject( "" ){ | tmp_result, key |
182
+
183
+ tmp_result << "\n#{ key.to_s.capitalize }:\n#{ result[ key ] }\n"
184
+
185
+ }
186
+
187
+ puts result
188
+
189
+ end
190
+
191
+ # result
192
+ return_result ? result : nil
193
+
194
+ end
195
+
196
+ # == description
197
+ # Return list of methods and behaviour name(s) which caller object contains. This method may be useful when implementing/testing custom behaviour modules.
198
+ #
199
+ # == arguments
200
+ # print
201
+ # TrueClass
202
+ # description: Print result to STDOUT and return as String
203
+ # example: true
204
+ # FalseClass
205
+ # description: Return result as Hash instead of printing to STDOUT
206
+ # example: false
207
+ #
208
+ # return_result
209
+ # TrueClass
210
+ # description: Pass result as return value
211
+ # example: true
212
+ # FalseClass
213
+ # description: Do not pass result as return value
214
+ # example: false
215
+ #
216
+ # == returns
217
+ # String
218
+ # description: String representation of object details
219
+ # example: "Object:\n sut => sut_qt\n type => application\n\nBehaviours:\n GenericApplication\n\nMethods:\n application?\n"
220
+ #
221
+ # Hash
222
+ # description: Hash representation of object details
223
+ # example: { :methods=>["application?"], :behaviours=>["GenericApplication"], :object=>{:sut=>:sut_qt, :type=>"application"} }
224
+ #
225
+ # NilClass
226
+ # description: When 'return_result' is false
227
+ # example: nil
228
+ #
229
+ def describe( print = true, return_result = false )
230
+
231
+ # print result to stdout if argument not boolean
232
+ print = true unless [ TrueClass, FalseClass ].include? print.class
233
+
234
+ # return result not printed out to stdout
235
+ return_result = true unless print
236
+
237
+ result_hash = {
238
+
239
+ :object => { :type => @type, :sut => kind_of?( MobyBase::SUT ) ? id : sut.id },
240
+ :methods => object_methods,
241
+ :behaviours => behaviours
242
+ }
243
+
244
+ if print
245
+
246
+ result = ""
247
+
248
+ [:object, :behaviours, :methods].each{ | key, value |
249
+ value = result_hash[ key ]
250
+ result << "\n#{ key.to_s.capitalize }:\n"
251
+ case value.class.to_s
252
+ when "Array"
253
+ result << "\t" << value.join("\n\t") << "\n"
254
+ when "Hash"
255
+ result << value.collect{ | key, value | "\t#{ key } => #{ value }" }.join("\n") << "\n"
256
+ #else
257
+ #result << "\t#{ value }\n"
258
+ end
259
+ }
260
+
261
+ puts result
262
+
263
+ else
264
+
265
+ result = result_hash
266
+
267
+ end
268
+
269
+ ( return_result ? result : nil )
270
+
271
+ end
272
+
273
+ # enable hooking for performance measurement & debug logging
274
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
275
+
276
+ end # ObjectBehaviourDescription
277
+
278
+ end # MobyBehaviour