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.
- checksums.yaml +7 -0
- data/README.md +16 -0
- data/bin/start_app_perf +200 -0
- data/bin/tdriver-devtools +3 -0
- data/config/sut_parameters.rb +52 -0
- data/config/sut_setup.rb +32 -0
- data/config/sut_teardown.rb +32 -0
- data/config/tdriver_custom_error_recovery.rb +83 -0
- data/ext/extconf.rb +70 -0
- data/ext/native_extensions.c +315 -0
- data/lib/matti.rb +25 -0
- data/lib/tdriver-devtools/behaviour/old/xml/example/flick-example.rb +120 -0
- data/lib/tdriver-devtools/behaviour/old/xml/example/impl.rb_invalid +194 -0
- data/lib/tdriver-devtools/behaviour/old/xml/generate_behaviour_xml.rb +95 -0
- data/lib/tdriver-devtools/behaviour/old/xml/lib/tdriver_generator.rb +722 -0
- data/lib/tdriver-devtools/behaviour/old/xml/qdoc_generator.rb +321 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.method.template +43 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.module.template +54 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument.template +7 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument_type.template +7 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.exception.template +5 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.line.template +2 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.template +5 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.method.template +23 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.template +14 -0
- data/lib/tdriver-devtools/behaviour/old/xml/update +3 -0
- data/lib/tdriver-devtools/behaviour/xml/generate.rb +88 -0
- data/lib/tdriver-devtools/behaviour/xml/rdoc_behaviour_xml_generator.rb +1945 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.default.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument_type.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.exception.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.arguments.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.deprecated.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.exceptions.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.info.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.returns.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.tables.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.template +12 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.returns.template +5 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.item.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.row.template +2 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.template +8 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.template +14 -0
- data/lib/tdriver-devtools/doc/behaviour_xml/QtExampleGestureBehaviour.xml +138 -0
- data/lib/tdriver-devtools/doc/behaviour_xml/created.rid +1 -0
- data/lib/tdriver-devtools/doc/behaviour_xml/tdriver.hash +1 -0
- data/lib/tdriver-devtools/doc/feature_xml/qt_widget_hold.feature.xml +9 -0
- data/lib/tdriver-devtools/doc/feature_xml/qt_widget_tap.feature.xml +9 -0
- data/lib/tdriver-devtools/doc/generate.rb +917 -0
- data/lib/tdriver-devtools/doc/update +1 -0
- data/lib/tdriver-devtools/doc/xslt/html.rb +7 -0
- data/lib/tdriver-devtools/doc/xslt/template.xsl +2170 -0
- data/lib/tdriver-devtools/doc/xslt/update +3 -0
- data/lib/tdriver-devtools/plugin/placeholder.txt +1 -0
- data/lib/tdriver-devtools/tdriver-devtools.rb +404 -0
- data/lib/tdriver-devtools/tests/feature_tests/example/behaviour_example.rb +100 -0
- data/lib/tdriver-devtools/tests/feature_tests/generate.rb +82 -0
- data/lib/tdriver-devtools/tests/feature_tests/lib/custom_rdoc_generator.rb +468 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/feature_attribute.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/feature_method.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_attribute.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_method.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/update +3 -0
- data/lib/tdriver.rb +23 -0
- data/lib/tdriver/base/behaviour/abstract.rb +29 -0
- data/lib/tdriver/base/behaviour/behaviours/object_abstract.rb +107 -0
- data/lib/tdriver/base/behaviour/behaviours/object_behaviour_composition.rb +99 -0
- data/lib/tdriver/base/behaviour/behaviours/object_behaviour_description.rb +278 -0
- data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +119 -0
- data/lib/tdriver/base/behaviour/factory.rb +495 -0
- data/lib/tdriver/base/behaviour/loader.rb +46 -0
- data/lib/tdriver/base/command_data/command_data.rb +51 -0
- data/lib/tdriver/base/command_data/loader.rb +29 -0
- data/lib/tdriver/base/controller/abstraction.rb +56 -0
- data/lib/tdriver/base/controller/loader.rb +21 -0
- data/lib/tdriver/base/errors.rb +134 -0
- data/lib/tdriver/base/loader.rb +47 -0
- data/lib/tdriver/base/state_object.rb +373 -0
- data/lib/tdriver/base/sut/adapter.rb +54 -0
- data/lib/tdriver/base/sut/controller.rb +151 -0
- data/lib/tdriver/base/sut/factory.rb +339 -0
- data/lib/tdriver/base/sut/generic/behaviours/agent.rb +77 -0
- data/lib/tdriver/base/sut/generic/behaviours/application.rb +427 -0
- data/lib/tdriver/base/sut/generic/behaviours/controller.rb +67 -0
- data/lib/tdriver/base/sut/generic/behaviours/find.rb +107 -0
- data/lib/tdriver/base/sut/generic/behaviours/flash_behaviour.rb +337 -0
- data/lib/tdriver/base/sut/generic/behaviours/sut.rb +1888 -0
- data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +210 -0
- data/lib/tdriver/base/sut/generic/behaviours/verification.rb +222 -0
- data/lib/tdriver/base/sut/generic/commands/agent.rb +43 -0
- data/lib/tdriver/base/sut/generic/commands/application.rb +274 -0
- data/lib/tdriver/base/sut/generic/commands/fixture.rb +47 -0
- data/lib/tdriver/base/sut/generic/commands/key_sequence.rb +94 -0
- data/lib/tdriver/base/sut/generic/commands/screen_capture.rb +64 -0
- data/lib/tdriver/base/sut/generic/plugin.rb +97 -0
- data/lib/tdriver/base/sut/loader.rb +35 -0
- data/lib/tdriver/base/sut/sut.rb +98 -0
- data/lib/tdriver/base/test_object/abstract.rb +208 -0
- data/lib/tdriver/base/test_object/adapter.rb +740 -0
- data/lib/tdriver/base/test_object/behaviours/syncronization.rb +144 -0
- data/lib/tdriver/base/test_object/behaviours/test_object.rb +1047 -0
- data/lib/tdriver/base/test_object/cache.rb +134 -0
- data/lib/tdriver/base/test_object/factory.rb +684 -0
- data/lib/tdriver/base/test_object/loader.rb +51 -0
- data/lib/tdriver/base/test_object/verification.rb +178 -0
- data/lib/tdriver/base/test_object/xml/abstraction.rb +63 -0
- data/lib/tdriver/base/test_object/xml/adapter.rb +773 -0
- data/lib/tdriver/env.rb +21 -0
- data/lib/tdriver/loader.rb +57 -0
- data/lib/tdriver/matti.rb +35 -0
- data/lib/tdriver/report/error_recovery/tdriver_custom_error_recovery.rb +83 -0
- data/lib/tdriver/report/error_recovery/tdriver_error_recovery.rb +168 -0
- data/lib/tdriver/report/error_recovery/tdriver_error_recovery_settings.rb +106 -0
- data/lib/tdriver/report/report.rb +61 -0
- data/lib/tdriver/report/report_api.rb +348 -0
- data/lib/tdriver/report/report_combine.rb +86 -0
- data/lib/tdriver/report/report_crash_file_capture.rb +178 -0
- data/lib/tdriver/report/report_creator.rb +665 -0
- data/lib/tdriver/report/report_cucumber.rb +158 -0
- data/lib/tdriver/report/report_cucumber_listener.rb +184 -0
- data/lib/tdriver/report/report_cucumber_reporter.rb +181 -0
- data/lib/tdriver/report/report_data_presentation.rb +156 -0
- data/lib/tdriver/report/report_data_table.rb +64 -0
- data/lib/tdriver/report/report_execution_statistics.rb +400 -0
- data/lib/tdriver/report/report_file_capture.rb +159 -0
- data/lib/tdriver/report/report_graph_generator.rb +59 -0
- data/lib/tdriver/report/report_grouping.rb +541 -0
- data/lib/tdriver/report/report_javascript.rb +199 -0
- data/lib/tdriver/report/report_junit_xml.rb +147 -0
- data/lib/tdriver/report/report_rspec.rb +108 -0
- data/lib/tdriver/report/report_test_case_run.rb +725 -0
- data/lib/tdriver/report/report_test_run.rb +1476 -0
- data/lib/tdriver/report/report_test_unit.rb +223 -0
- data/lib/tdriver/report/report_writer.rb +1621 -0
- data/lib/tdriver/tdriver.rb +209 -0
- data/lib/tdriver/util/agent/loader.rb +22 -0
- data/lib/tdriver/util/agent/service.rb +107 -0
- data/lib/tdriver/util/common/array.rb +39 -0
- data/lib/tdriver/util/common/boolean.rb +48 -0
- data/lib/tdriver/util/common/crc16.rb +149 -0
- data/lib/tdriver/util/common/environment.rb +154 -0
- data/lib/tdriver/util/common/error.rb +40 -0
- data/lib/tdriver/util/common/exception.rb +53 -0
- data/lib/tdriver/util/common/exceptions.rb +12 -0
- data/lib/tdriver/util/common/file.rb +328 -0
- data/lib/tdriver/util/common/gem.rb +109 -0
- data/lib/tdriver/util/common/hash.rb +288 -0
- data/lib/tdriver/util/common/kernel.rb +253 -0
- data/lib/tdriver/util/common/loader.rb +47 -0
- data/lib/tdriver/util/common/numeric.rb +159 -0
- data/lib/tdriver/util/common/object.rb +159 -0
- data/lib/tdriver/util/common/retryable.rb +179 -0
- data/lib/tdriver/util/common/stackable.rb +185 -0
- data/lib/tdriver/util/common/string.rb +174 -0
- data/lib/tdriver/util/database/access.rb +240 -0
- data/lib/tdriver/util/database/connection.rb +44 -0
- data/lib/tdriver/util/database/error.rb +34 -0
- data/lib/tdriver/util/database/loader.rb +28 -0
- data/lib/tdriver/util/filters/attribute_filter.rb +121 -0
- data/lib/tdriver/util/filters/loader.rb +29 -0
- data/lib/tdriver/util/fixture/loader.rb +22 -0
- data/lib/tdriver/util/fixture/service.rb +211 -0
- data/lib/tdriver/util/hooking/hooking.rb +477 -0
- data/lib/tdriver/util/keymap/keymap.rb +81 -0
- data/lib/tdriver/util/loader.rb +80 -0
- data/lib/tdriver/util/localisation/error.rb +31 -0
- data/lib/tdriver/util/localisation/loader.rb +25 -0
- data/lib/tdriver/util/localisation/localisation.rb +762 -0
- data/lib/tdriver/util/logger/loader.rb +22 -0
- data/lib/tdriver/util/logger/logger.rb +591 -0
- data/lib/tdriver/util/operator_data/error.rb +29 -0
- data/lib/tdriver/util/operator_data/loader.rb +27 -0
- data/lib/tdriver/util/operator_data/operator_data.rb +93 -0
- data/lib/tdriver/util/other/config.rb +221 -0
- data/lib/tdriver/util/parameter/error.rb +48 -0
- data/lib/tdriver/util/parameter/loader.rb +25 -0
- data/lib/tdriver/util/parameter/parameter.rb +1161 -0
- data/lib/tdriver/util/plugin/abstract.rb +61 -0
- data/lib/tdriver/util/plugin/error.rb +0 -0
- data/lib/tdriver/util/plugin/loader.rb +28 -0
- data/lib/tdriver/util/plugin/service.rb +319 -0
- data/lib/tdriver/util/recorder/loader.rb +25 -0
- data/lib/tdriver/util/recorder/recorder.rb +72 -0
- data/lib/tdriver/util/recorder/scripter.rb +294 -0
- data/lib/tdriver/util/statistics/statistics.rb +89 -0
- data/lib/tdriver/util/user_data/error.rb +28 -0
- data/lib/tdriver/util/user_data/loader.rb +25 -0
- data/lib/tdriver/util/user_data/user_data.rb +104 -0
- data/lib/tdriver/util/video/camera.rb +67 -0
- data/lib/tdriver/util/video/camera_linux.rb +153 -0
- data/lib/tdriver/util/video/camera_windows.rb +174 -0
- data/lib/tdriver/util/video/loader.rb +31 -0
- data/lib/tdriver/util/video/video_utils.rb +139 -0
- data/lib/tdriver/util/xml/abstraction.rb +117 -0
- data/lib/tdriver/util/xml/attribute.rb +32 -0
- data/lib/tdriver/util/xml/builder.rb +53 -0
- data/lib/tdriver/util/xml/comment.rb +32 -0
- data/lib/tdriver/util/xml/document.rb +32 -0
- data/lib/tdriver/util/xml/element.rb +32 -0
- data/lib/tdriver/util/xml/error.rb +46 -0
- data/lib/tdriver/util/xml/loader.rb +62 -0
- data/lib/tdriver/util/xml/nil_node.rb +95 -0
- data/lib/tdriver/util/xml/nodeset.rb +32 -0
- data/lib/tdriver/util/xml/parsers/libxml/libxml.rb +140 -0
- data/lib/tdriver/util/xml/parsers/loader.rb +21 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/abstraction.rb +167 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/attribute.rb +66 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/builder.rb +64 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/comment.rb +39 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/document.rb +66 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/element.rb +39 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/loader.rb +58 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/node.rb +212 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/nodeset.rb +237 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/text.rb +39 -0
- data/lib/tdriver/util/xml/text.rb +32 -0
- data/lib/tdriver/util/xml/xml.rb +332 -0
- data/lib/tdriver/verify/verify.rb +2398 -0
- data/lib/tdriver/version.rb +21 -0
- data/xml/behaviours/generic.xml +530 -0
- data/xml/defaults/generic.xml +11 -0
- data/xml/defaults/sut_generic.xml +8 -0
- data/xml/parameters/tdriver_parameters.xml +23 -0
- data/xml/templates/generic.xml +292 -0
- metadata +324 -0
data/lib/tdriver.rb
ADDED
@@ -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
|