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,39 @@
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 MobyUtil
21
+
22
+ module XML
23
+
24
+ module Nokogiri
25
+
26
+ module Comment # behaviour
27
+
28
+ include Node
29
+
30
+ # enable hooking for performance measurement & debug logging
31
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
32
+
33
+ end # Comment
34
+
35
+ end # Nokogiri
36
+
37
+ end # XML
38
+
39
+ end # MobyUtil
@@ -0,0 +1,66 @@
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 MobyUtil
21
+
22
+ module XML
23
+
24
+ module Nokogiri
25
+
26
+ module Document # behaviour
27
+
28
+ include Node
29
+
30
+ # TODO: document me
31
+ def initialize( xml, options = {} )
32
+
33
+ @options = options
34
+
35
+ initialize_cache
36
+
37
+ @xml = parse( xml )
38
+
39
+ end
40
+
41
+ # TODO: document me
42
+ def root
43
+
44
+ cache( :root, :value ){ node_object( @xml.root ) }
45
+
46
+ end
47
+
48
+ private
49
+
50
+ # TODO: document me
51
+ def parse( xml_string )
52
+
53
+ ::Nokogiri::XML.parse( xml_string, nil, 'UTF-8', ::Nokogiri::XML::ParseOptions::STRICT )
54
+
55
+ end
56
+
57
+ # enable hooking for performance measurement & debug logging
58
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
59
+
60
+ end # Document
61
+
62
+ end # Nokogiri
63
+
64
+ end # XML
65
+
66
+ end # MobyUtil
@@ -0,0 +1,39 @@
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 MobyUtil
21
+
22
+ module XML
23
+
24
+ module Nokogiri
25
+
26
+ module Element # behaviour
27
+
28
+ include Node
29
+
30
+ # enable hooking for performance measurement & debug logging
31
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
32
+
33
+ end # Element
34
+
35
+ end # Nokogiri
36
+
37
+ end # XML
38
+
39
+ end # MobyUtil
@@ -0,0 +1,58 @@
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
+ # nokogiri parser
21
+ require 'nokogiri'
22
+
23
+ # for utf-8/unicode support
24
+ require 'kconv'
25
+
26
+ [
27
+
28
+ # abstraction for document, nodeset and element
29
+ 'abstraction.rb',
30
+
31
+ 'node.rb',
32
+
33
+ # nokogiri parser wrapper
34
+ 'comment.rb',
35
+
36
+ # nokogiri parser wrapper
37
+ 'document.rb',
38
+
39
+ # nokogiri parser wrapper
40
+ 'nodeset.rb',
41
+
42
+ # nokogiri parser wrapper
43
+ 'element.rb',
44
+
45
+ # nokogiri parser wrapper
46
+ 'text.rb',
47
+
48
+ # nokogiri parser wrapper
49
+ 'attribute.rb',
50
+
51
+ # nokogiri parser wrapper
52
+ 'builder.rb',
53
+
54
+ ].each{ | filename |
55
+
56
+ require File.expand_path( File.join( File.dirname( __FILE__ ), filename ) )
57
+
58
+ }
@@ -0,0 +1,212 @@
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 MobyUtil
21
+
22
+ module XML
23
+
24
+ module Nokogiri
25
+
26
+ module Node # behaviour
27
+
28
+ include Abstraction
29
+
30
+ # TODO: document me
31
+ def []( value )
32
+
33
+ cache( :[], value ){ @xml[ value ] }
34
+
35
+ end
36
+
37
+ # TODO: document me
38
+ def []=( name, value )
39
+
40
+ clear_cache
41
+
42
+ @xml[ name ] = value
43
+
44
+ end
45
+
46
+ # TODO: document me
47
+ def ==( object )
48
+
49
+ cache( :==, object.object_id ){ @xml.content == object.xml.content }
50
+
51
+ end
52
+
53
+ # aliases for ==
54
+ alias_method :eql?, :==
55
+
56
+ # TODO: document me
57
+ def <=>( object )
58
+
59
+ cache( :<=>, object.object_id ){ @xml <=> object.xml }
60
+
61
+ end
62
+
63
+ # TODO: document me
64
+ def add_previous_sibling( other )
65
+
66
+ clear_cache
67
+
68
+ @xml.add_previous_sibling( other.xml )
69
+
70
+ end
71
+
72
+ # TODO: document me
73
+ def attribute( attr_name )
74
+
75
+ cache( :attribute, attr_name ){ _attribute( @xml.attribute( attr_name ) ) }
76
+
77
+ end
78
+
79
+ # TODO: document me
80
+ def attributes
81
+
82
+ cache( :attributes, :value ){
83
+
84
+ # return hash of attributes
85
+ #Hash[ @xml.attribute_nodes.collect{ | node |
86
+ # [ node.node_name, node.value.to_s ] }
87
+ #]
88
+
89
+ # approx. 20% faster
90
+ @xml.attribute_nodes.inject({}){ | result, node | result[ node.node_name ] = node.value; result }
91
+
92
+ }
93
+
94
+ end
95
+
96
+ # TODO: document me
97
+ def blank?
98
+
99
+ cache( :blank?, :value ){ @xml.blank? }
100
+
101
+ end
102
+
103
+ # TODO: document me
104
+ def children
105
+
106
+ cache( :children, :value ){ node_object( @xml.children ) }
107
+
108
+ end
109
+
110
+ # TODO: document me
111
+ def content
112
+
113
+ cache( :content, :value ){ @xml.content }
114
+
115
+ end
116
+
117
+ # aliases for text
118
+ alias_method :text, :content
119
+ alias_method :inner_text, :content
120
+
121
+ # TODO: document me
122
+ def each( &block )
123
+
124
+ # iterate each attribute
125
+ @xml.each{ | element |
126
+
127
+ yield( cache( :each, element ){ node_object( element ) } )
128
+
129
+ }
130
+
131
+ nil
132
+
133
+ end
134
+
135
+ # TODO: document me
136
+ def inner_html
137
+
138
+ cache( :inner_html, :value ){ @xml.inner_html }
139
+
140
+ end
141
+
142
+ # aliases for inner_html
143
+ alias_method :inner_xml, :inner_html
144
+
145
+ # TODO: document me
146
+ def to_s
147
+
148
+ cache( :to_s, :value ){ @xml.to_s }
149
+
150
+ end
151
+
152
+ # TODO: document me
153
+ def parent
154
+
155
+ cache( :parent, :value ){ node_object( @xml.parent ) }
156
+
157
+ end
158
+
159
+ # TODO: document me
160
+ def remove
161
+
162
+ clear_cache
163
+
164
+ @xml.remove
165
+
166
+ self
167
+
168
+ end
169
+
170
+ # TODO: document me
171
+ def replace( other )
172
+
173
+ clear_cache
174
+
175
+ @xml.replace( other.xml )
176
+
177
+ self
178
+
179
+ end
180
+
181
+ # TODO: document me
182
+ def xpath( xpath_query, *args, &block )
183
+
184
+ cache( :xpath, xpath_query ){ node_object( @xml.xpath( xpath_query, *args, &block ) ) }
185
+
186
+ end
187
+
188
+ # TODO: document me
189
+ def at_xpath( xpath_query, *args, &block )
190
+
191
+ cache( :at_xpath, xpath_query ){ node_object( @xml.at_xpath( xpath_query, *args, &block ) ) }
192
+
193
+ end
194
+
195
+ private
196
+
197
+ def _attribute( value )
198
+
199
+ value.to_s unless value.nil?
200
+
201
+ end
202
+
203
+ # enable hooking for performance measurement & debug logging
204
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
205
+
206
+ end # Element
207
+
208
+ end # Nokogiri
209
+
210
+ end # XML
211
+
212
+ end # MobyUtil
@@ -0,0 +1,237 @@
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 MobyUtil
21
+
22
+ module XML
23
+
24
+ module Nokogiri
25
+
26
+ module Nodeset # behaviour
27
+
28
+ include Abstraction
29
+
30
+ def []( node )
31
+
32
+ cache( :at_index, node ){ node_object( @xml[ node ] ) }
33
+
34
+ end
35
+
36
+ def first
37
+
38
+ cache( :first, :value ){ node_object( @xml.first ) }
39
+
40
+ end
41
+
42
+ def last
43
+
44
+ cache( :last, :value ){ node_object( @xml.last ) }
45
+
46
+ end
47
+
48
+ def each( &block )
49
+
50
+ #@xml.each{ | node |
51
+ # yield( cache( :each, node ){ node_object( node ) } )
52
+ #}
53
+
54
+ # approx. 3,5% faster
55
+ cache( :each, :cached_nodes ){
56
+
57
+ @xml.collect{ | node |
58
+
59
+ cache( :each, node ){ node_object( node ) }
60
+
61
+ }
62
+
63
+ }.each{ | node |
64
+
65
+ yield( node )
66
+
67
+ }
68
+
69
+ self
70
+
71
+ end
72
+
73
+ def each_with_index( &block )
74
+
75
+ @xml.each_with_index{ | node, index |
76
+
77
+ yield( cache( :each, node ){ node_object( node ) }, index )
78
+
79
+ }
80
+
81
+ self
82
+
83
+ end
84
+
85
+ def collect( &block )
86
+
87
+ _collect( &block )
88
+
89
+ end
90
+
91
+ def collect!( &block )
92
+
93
+ clear_cache
94
+
95
+ @xml = _collect( &block )
96
+
97
+ self
98
+
99
+ end
100
+
101
+ def compact
102
+
103
+ cache( :compact, :value ){ node_object( @xml.compact ) }
104
+
105
+ end
106
+
107
+ def compact!
108
+
109
+ @xml = cache( :compact_, :value ){ @xml.compact }
110
+
111
+ self
112
+
113
+ end
114
+
115
+ def inject( result, &block )
116
+
117
+ cache( :each, :cached_nodes ){
118
+
119
+ @xml.collect{ | node |
120
+
121
+ cache( :each, node ){ node_object( node ) }
122
+
123
+ }
124
+
125
+ }.__send__( :inject, result, &block )
126
+
127
+ end
128
+
129
+ def sort( &block )
130
+
131
+ node_object( _sort( &block ) )
132
+
133
+ end
134
+
135
+ def sort!( &block )
136
+
137
+ clear_cache
138
+
139
+ @xml = _sort( &block )
140
+
141
+ self
142
+
143
+ end
144
+
145
+ def empty?
146
+
147
+ cache( :empty?, :value ){ @xml.empty? }
148
+
149
+ end
150
+
151
+ def length
152
+
153
+ cache( :length, :value ){ @xml.length }
154
+
155
+ end
156
+
157
+
158
+ def to_a
159
+
160
+ cache( :to_a, :value ){ @xml.collect{ | node | node_object( node ) } }
161
+
162
+ end
163
+
164
+ def delete( node )
165
+
166
+ clear_cache
167
+
168
+ @xml.each do | nodeset_node |
169
+
170
+ if ( node.xml.content == nodeset_node.content )
171
+
172
+ @xml.delete( nodeset_node )
173
+
174
+ break
175
+
176
+ end
177
+
178
+ end
179
+
180
+ end
181
+
182
+ # aliases for length method
183
+ alias size length
184
+
185
+ alias count length
186
+
187
+ private
188
+
189
+ def _collect( &block )
190
+
191
+ #@xml.collect{ | node | yield( cache( :each, node ){ node_object( node ) } ) }
192
+
193
+ # approx. 3.5% faster
194
+ cache( :each, :cached_nodes ){
195
+
196
+ @xml.collect{ | node |
197
+
198
+ cache( :each, node ){ node_object( node ) }
199
+
200
+ }
201
+
202
+ }.collect{ | node |
203
+
204
+ yield( node )
205
+
206
+ }
207
+
208
+ end
209
+
210
+ def _sort( &block )
211
+
212
+ @xml.sort{ | node_a, node_b |
213
+
214
+ if block_given?
215
+
216
+ yield( cache( :each, node_a ){ node_object( node_a ) }, cache( :each, node_b ){ node_object( node_b ) } )
217
+
218
+ else
219
+
220
+ node_a <=> node_b
221
+
222
+ end
223
+
224
+ }
225
+
226
+ end
227
+
228
+ # enable hooking for performance measurement & debug logging
229
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
230
+
231
+ end # Nodeset
232
+
233
+ end # Nokogiri
234
+
235
+ end # XML
236
+
237
+ end # MobyUtil