testability-driver 0.9.2
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.
- data/README +1 -0
- data/bin/start_app_perf +199 -0
- data/bin/tdriver-devtools +3 -0
- data/config/sut_parameters.rb +39 -0
- data/ext/extconf.rb +67 -0
- data/ext/native_extensions.c +70 -0
- data/lib/matti.rb +30 -0
- data/lib/tdriver-devtools/behaviour/old/xml/example/flick-example.rb +223 -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 +1924 -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/behaviour/xml_generator/example/flick-example.rb +245 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/example/sut.rb +964 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/generate.rb +68 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/lib/custom_rdoc_generator.rb +1865 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.argument.default.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.argument.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.argument_type.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.exception.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.arguments.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.deprecated.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.exceptions.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.info.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.returns.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.tables.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.template +12 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.returns.template +5 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.table.item.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.table.row.template +2 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.table.template +7 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.template +14 -0
- data/lib/tdriver-devtools/behaviour/xml_generator/update +3 -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 +892 -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 +1861 -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/flick-example.rb +233 -0
- data/lib/tdriver-devtools/tests/feature_tests/example/impl.rb +194 -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 +26 -0
- data/lib/tdriver/base/behaviour/behaviour.rb +32 -0
- data/lib/tdriver/base/behaviour/behaviours/object_behaviour_composition.rb +94 -0
- data/lib/tdriver/base/behaviour/behaviours/object_behaviour_description.rb +262 -0
- data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +111 -0
- data/lib/tdriver/base/behaviour/factory.rb +380 -0
- data/lib/tdriver/base/behaviour/loader.rb +28 -0
- data/lib/tdriver/base/command_data/command_data.rb +51 -0
- data/lib/tdriver/base/command_data/loader.rb +25 -0
- data/lib/tdriver/base/errors.rb +131 -0
- data/lib/tdriver/base/loader.rb +38 -0
- data/lib/tdriver/base/state_object.rb +270 -0
- data/lib/tdriver/base/sut/adapter.rb +28 -0
- data/lib/tdriver/base/sut/controller.rb +119 -0
- data/lib/tdriver/base/sut/factory.rb +287 -0
- data/lib/tdriver/base/sut/generic/behaviours/application.rb +243 -0
- data/lib/tdriver/base/sut/generic/behaviours/controller.rb +67 -0
- data/lib/tdriver/base/sut/generic/behaviours/find.rb +96 -0
- data/lib/tdriver/base/sut/generic/behaviours/flash_behaviour.rb +346 -0
- data/lib/tdriver/base/sut/generic/behaviours/sut.rb +1268 -0
- data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +182 -0
- data/lib/tdriver/base/sut/generic/behaviours/verification.rb +119 -0
- data/lib/tdriver/base/sut/generic/commands/application.rb +219 -0
- data/lib/tdriver/base/sut/generic/commands/key_sequence.rb +82 -0
- data/lib/tdriver/base/sut/generic/commands/screen_capture.rb +58 -0
- data/lib/tdriver/base/sut/generic/plugin.rb +96 -0
- data/lib/tdriver/base/sut/loader.rb +35 -0
- data/lib/tdriver/base/sut/sut.rb +67 -0
- data/lib/tdriver/base/test_object/abstract.rb +179 -0
- data/lib/tdriver/base/test_object/behaviours/syncronization.rb +94 -0
- data/lib/tdriver/base/test_object/behaviours/test_object.rb +787 -0
- data/lib/tdriver/base/test_object/factory.rb +618 -0
- data/lib/tdriver/base/test_object/identificator.rb +511 -0
- data/lib/tdriver/base/test_object/loader.rb +37 -0
- data/lib/tdriver/env.rb +21 -0
- data/lib/tdriver/loader.rb +36 -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 +158 -0
- data/lib/tdriver/report/error_recovery/tdriver_error_recovery_settings.rb +98 -0
- data/lib/tdriver/report/report.rb +47 -0
- data/lib/tdriver/report/report_api.rb +207 -0
- data/lib/tdriver/report/report_combine.rb +86 -0
- data/lib/tdriver/report/report_crash_file_capture.rb +167 -0
- data/lib/tdriver/report/report_creator.rb +571 -0
- data/lib/tdriver/report/report_cucumber.rb +158 -0
- data/lib/tdriver/report/report_cucumber_listener.rb +337 -0
- data/lib/tdriver/report/report_cucumber_reporter.rb +335 -0
- data/lib/tdriver/report/report_data_presentation.rb +152 -0
- data/lib/tdriver/report/report_data_table.rb +64 -0
- data/lib/tdriver/report/report_execution_statistics.rb +284 -0
- data/lib/tdriver/report/report_file_capture.rb +159 -0
- data/lib/tdriver/report/report_grouping.rb +539 -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 +621 -0
- data/lib/tdriver/report/report_test_run.rb +1286 -0
- data/lib/tdriver/report/report_test_unit.rb +175 -0
- data/lib/tdriver/report/report_writer.rb +1405 -0
- data/lib/tdriver/tdriver.rb +158 -0
- data/lib/tdriver/util/common.rb +24 -0
- data/lib/tdriver/util/common/array.rb +39 -0
- data/lib/tdriver/util/common/crc16.rb +100 -0
- data/lib/tdriver/util/common/environment.rb +153 -0
- data/lib/tdriver/util/common/error.rb +39 -0
- data/lib/tdriver/util/common/file.rb +315 -0
- data/lib/tdriver/util/common/gem.rb +108 -0
- data/lib/tdriver/util/common/kernel.rb +189 -0
- data/lib/tdriver/util/common/loader.rb +39 -0
- data/lib/tdriver/util/common/retryable.rb +98 -0
- data/lib/tdriver/util/common/string.rb +77 -0
- data/lib/tdriver/util/dbaccess/dbaccess.rb +188 -0
- data/lib/tdriver/util/dbaccess/dbconnection.rb +41 -0
- data/lib/tdriver/util/dbaccess/error.rb +35 -0
- data/lib/tdriver/util/dbaccess/loader.rb +29 -0
- data/lib/tdriver/util/dynamic_attribute_filter.rb +182 -0
- data/lib/tdriver/util/hooking.rb +434 -0
- data/lib/tdriver/util/loader.rb +65 -0
- data/lib/tdriver/util/localisation.rb +24 -0
- data/lib/tdriver/util/localisation/error.rb +32 -0
- data/lib/tdriver/util/localisation/loader.rb +28 -0
- data/lib/tdriver/util/localisation/localisation.rb +479 -0
- data/lib/tdriver/util/logger.rb +377 -0
- data/lib/tdriver/util/operator_data/error.rb +29 -0
- data/lib/tdriver/util/operator_data/loader.rb +26 -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.rb +24 -0
- data/lib/tdriver/util/parameter/error.rb +45 -0
- data/lib/tdriver/util/parameter/loader.rb +37 -0
- data/lib/tdriver/util/parameter/parameter.rb +285 -0
- data/lib/tdriver/util/parameter/parameter_hash.rb +101 -0
- data/lib/tdriver/util/parameter/parameter_template.rb +120 -0
- data/lib/tdriver/util/parameter/parameter_user_api.rb +84 -0
- data/lib/tdriver/util/parameter/parameter_xml.rb +247 -0
- data/lib/tdriver/util/plugin/abstract.rb +60 -0
- data/lib/tdriver/util/plugin/error.rb +25 -0
- data/lib/tdriver/util/plugin/loader.rb +28 -0
- data/lib/tdriver/util/plugin/service.rb +200 -0
- data/lib/tdriver/util/recorder.rb +292 -0
- data/lib/tdriver/util/stats.rb +90 -0
- data/lib/tdriver/util/user_data/error.rb +29 -0
- data/lib/tdriver/util/user_data/loader.rb +26 -0
- data/lib/tdriver/util/user_data/user_data.rb +103 -0
- data/lib/tdriver/util/video_rec.rb +264 -0
- data/lib/tdriver/util/xml/abstraction.rb +47 -0
- data/lib/tdriver/util/xml/builder.rb +54 -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 +46 -0
- data/lib/tdriver/util/xml/nil_element.rb +89 -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 +22 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/abstraction.rb +111 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/attribute.rb +54 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/builder.rb +58 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/document.rb +58 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/element.rb +147 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/loader.rb +42 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/nodeset.rb +187 -0
- data/lib/tdriver/util/xml/xml.rb +170 -0
- data/lib/tdriver/verify/verify.rb +687 -0
- data/lib/tdriver/verify/verify.rb_org +630 -0
- data/lib/tdriver/version.rb +21 -0
- data/xml/behaviours/generic.xml +495 -0
- data/xml/defaults/generic.xml +97 -0
- data/xml/defaults/sut_generic.xml +36 -0
- data/xml/parameters/tdriver_parameters.xml +23 -0
- data/xml/templates/generic.xml +227 -0
- metadata +327 -0
data/lib/tdriver.rb
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# load tdriver resources and framework
|
|
24
|
+
require File.expand_path( File.join( File.dirname( __FILE__ ), 'tdriver/env' ) )
|
|
25
|
+
require File.expand_path( File.join( File.dirname( __FILE__ ), 'tdriver/version' ) )
|
|
26
|
+
require File.expand_path( File.join( File.dirname( __FILE__ ), 'tdriver/tdriver' ) )
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# Module is used to be as template for all behaviours
|
|
24
|
+
# TestObject can verify whether it has some behaviour by calling:
|
|
25
|
+
# TestObject.kind_of? MobyBehaviour::Abstract
|
|
26
|
+
|
|
27
|
+
module MobyBehaviour
|
|
28
|
+
|
|
29
|
+
module Behaviour
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
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 applying behaviours to target object
|
|
24
|
+
#
|
|
25
|
+
# == behaviour
|
|
26
|
+
# GenericObjectBehaviourComposition
|
|
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 ObjectBehaviourComposition
|
|
44
|
+
|
|
45
|
+
public
|
|
46
|
+
|
|
47
|
+
# == description
|
|
48
|
+
# 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).
|
|
49
|
+
# == tables
|
|
50
|
+
# apply_behaviour_table
|
|
51
|
+
# title: Hash table details
|
|
52
|
+
# |Key|Description|Example|Required|
|
|
53
|
+
# |:object_type| Rule for object type(s). In following example all generic test object and application specific behaviours are accepted. | ["*", "application"] | Yes |
|
|
54
|
+
# |:sut_type| Rule for SUT type(s). In following example all non-SUT specific and QT specific behaviours are applied. | ["*", "QT"] | Yes |
|
|
55
|
+
# |: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 |
|
|
56
|
+
# |: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 |
|
|
57
|
+
#
|
|
58
|
+
# == arguments
|
|
59
|
+
# rules
|
|
60
|
+
# Hash
|
|
61
|
+
# description: Target object's SUT, type and version requirements
|
|
62
|
+
# example: { :version=>["*", "1.0"], :object_type=>["*", "application"], :sut_type=>["*", "QT"], :input_type=>["*", "touch"] }
|
|
63
|
+
#
|
|
64
|
+
# == returns
|
|
65
|
+
# Array
|
|
66
|
+
# description: Array of applied behaviour module indexes (Fixnum)
|
|
67
|
+
# example: [0, 3, 4, 6, 7, 8, 9]
|
|
68
|
+
def apply_behaviour!( rules )
|
|
69
|
+
|
|
70
|
+
sut = ( sut = self ).kind_of?( MobyBase::SUT ) ? sut : sut.sut
|
|
71
|
+
|
|
72
|
+
MobyBase::BehaviourFactory.instance.apply_behaviour!( { :sut_type => [ '*', sut.ui_type ], :version => [ '*', sut.ui_version ] }.merge( rules ).merge( { :object => self } ) )
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
private
|
|
77
|
+
|
|
78
|
+
# behaviour specific initialization
|
|
79
|
+
def self.extended( target )
|
|
80
|
+
|
|
81
|
+
target.instance_exec{
|
|
82
|
+
|
|
83
|
+
# array of extended behaviours to target object
|
|
84
|
+
@object_behaviours = []
|
|
85
|
+
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
end
|
|
89
|
+
# enable hooking for performance measurement & debug logging
|
|
90
|
+
MobyUtil::Hooking.instance.hook_methods( self ) if defined?( MobyUtil::Hooking )
|
|
91
|
+
|
|
92
|
+
end # ObjectBehaviourComposition
|
|
93
|
+
|
|
94
|
+
end # MobyBehaviour
|
|
@@ -0,0 +1,262 @@
|
|
|
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
|
+
return_indexes ? @object_behaviours : @object_behaviours.collect{ | index | MobyBase::BehaviourFactory.instance.get_behaviour_at_index( index )[ :name ] }.uniq.compact.sort
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# == description
|
|
75
|
+
# Returns a list of the names of (behaviour) methods publicly accessible in object. This method may be useful when implementing/testing custom behaviour modules.
|
|
76
|
+
# == returns
|
|
77
|
+
# Array
|
|
78
|
+
# description: List of method names
|
|
79
|
+
# example: ["application?", "close", "closable?", "describe"]
|
|
80
|
+
def object_methods
|
|
81
|
+
|
|
82
|
+
[].tap{ | methods |
|
|
83
|
+
@object_behaviours.each{ | index |
|
|
84
|
+
MobyBase::BehaviourFactory.instance.get_behaviour_at_index( index )[ :methods ].keys.each{ | key | methods << key.to_s }
|
|
85
|
+
}
|
|
86
|
+
}.uniq.compact.sort
|
|
87
|
+
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# == description
|
|
91
|
+
# Return brief method description either as return value or printed to STDOUT. This method may be useful when implementing/testing custom behaviour modules.
|
|
92
|
+
#
|
|
93
|
+
# == arguments
|
|
94
|
+
# method_name
|
|
95
|
+
# String
|
|
96
|
+
# description: Name of the method
|
|
97
|
+
# example: "type"
|
|
98
|
+
#
|
|
99
|
+
# print
|
|
100
|
+
# TrueClass
|
|
101
|
+
# description: Print result to STDOUT and return as String
|
|
102
|
+
# example: true
|
|
103
|
+
# FalseClass
|
|
104
|
+
# description: Return result as Hash instead of printing to STDOUT
|
|
105
|
+
# example: false
|
|
106
|
+
#
|
|
107
|
+
# return_result
|
|
108
|
+
# TrueClass
|
|
109
|
+
# description: Pass result as return value
|
|
110
|
+
# example: true
|
|
111
|
+
# FalseClass
|
|
112
|
+
# description: Do not pass result as return value
|
|
113
|
+
# example: false
|
|
114
|
+
#
|
|
115
|
+
# == returns
|
|
116
|
+
# String
|
|
117
|
+
# description: String representation of object description/details
|
|
118
|
+
# example: "Description:\nReturns type of the test object\n\nExample:\ntype"
|
|
119
|
+
#
|
|
120
|
+
# Hash
|
|
121
|
+
# description: Hash representation of object description/details
|
|
122
|
+
# example: { :description=>"Returns type of the test object", :example=>"type" }
|
|
123
|
+
#
|
|
124
|
+
# NilClass
|
|
125
|
+
# description: When 'return_result' is false
|
|
126
|
+
# example: nil
|
|
127
|
+
#
|
|
128
|
+
# == footer
|
|
129
|
+
#
|
|
130
|
+
def describe_method( method_name, print = true, return_result = false )
|
|
131
|
+
|
|
132
|
+
# convert to symbol if method_name is a string
|
|
133
|
+
method_name = method_name.to_sym if method_name.kind_of?( String )
|
|
134
|
+
|
|
135
|
+
Kernel::raise ArgumentError.new("Wrong argument type for method name. (Actual: #{ method_name.class }, Expected: Symbol)") unless method_name.kind_of?( Symbol )
|
|
136
|
+
|
|
137
|
+
# print result to stdout if argument not boolean
|
|
138
|
+
print = true unless [ TrueClass, FalseClass ].include? print.class
|
|
139
|
+
|
|
140
|
+
# return result not printed out to stdout
|
|
141
|
+
return_result = true unless print
|
|
142
|
+
|
|
143
|
+
result_hash = nil
|
|
144
|
+
|
|
145
|
+
@object_behaviours.each{ | index |
|
|
146
|
+
|
|
147
|
+
behaviour = MobyBase::BehaviourFactory.instance.get_behaviour_at_index( index )
|
|
148
|
+
|
|
149
|
+
if behaviour[ :methods ].keys.include? method_name
|
|
150
|
+
method_details = behaviour[:methods][ method_name ]
|
|
151
|
+
result_hash = { :description => method_details[ :description ], :example => method_details[ :example ] }
|
|
152
|
+
break;
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
Kernel::raise RuntimeError.new("No such method for object type of #{ self.type }") if result_hash.nil?
|
|
158
|
+
|
|
159
|
+
if print
|
|
160
|
+
|
|
161
|
+
result = ""
|
|
162
|
+
|
|
163
|
+
[ :description, :example ].each{ | key |
|
|
164
|
+
tmp_hash = result_hash[ key ]
|
|
165
|
+
result << "\n#{ key.to_s.capitalize }:\n#{ tmp_hash }\n"
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
puts result
|
|
169
|
+
|
|
170
|
+
else
|
|
171
|
+
|
|
172
|
+
result = result_hash
|
|
173
|
+
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
( return_result ? result : nil )
|
|
177
|
+
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
# == description
|
|
181
|
+
# Return list of methods and behaviour name(s) which caller object contains. This method may be useful when implementing/testing custom behaviour modules.
|
|
182
|
+
#
|
|
183
|
+
# == arguments
|
|
184
|
+
# print
|
|
185
|
+
# TrueClass
|
|
186
|
+
# description: Print result to STDOUT and return as String
|
|
187
|
+
# example: true
|
|
188
|
+
# FalseClass
|
|
189
|
+
# description: Return result as Hash instead of printing to STDOUT
|
|
190
|
+
# example: false
|
|
191
|
+
#
|
|
192
|
+
# return_result
|
|
193
|
+
# TrueClass
|
|
194
|
+
# description: Pass result as return value
|
|
195
|
+
# example: true
|
|
196
|
+
# FalseClass
|
|
197
|
+
# description: Do not pass result as return value
|
|
198
|
+
# example: false
|
|
199
|
+
#
|
|
200
|
+
# == returns
|
|
201
|
+
# String
|
|
202
|
+
# description: String representation of object details
|
|
203
|
+
# example: "Object:\n sut => sut_qt\n type => application\n\nBehaviours:\n GenericApplication\n\nMethods:\n application?\n"
|
|
204
|
+
#
|
|
205
|
+
# Hash
|
|
206
|
+
# description: Hash representation of object details
|
|
207
|
+
# example: { :methods=>["application?"], :behaviours=>["GenericApplication"], :object=>{:sut=>:sut_qt, :type=>"application"} }
|
|
208
|
+
#
|
|
209
|
+
# NilClass
|
|
210
|
+
# description: When 'return_result' is false
|
|
211
|
+
# example: nil
|
|
212
|
+
#
|
|
213
|
+
# == footer
|
|
214
|
+
#
|
|
215
|
+
def describe( print = true, return_result = false )
|
|
216
|
+
|
|
217
|
+
# print result to stdout if argument not boolean
|
|
218
|
+
print = true unless [ TrueClass, FalseClass ].include? print.class
|
|
219
|
+
|
|
220
|
+
# return result not printed out to stdout
|
|
221
|
+
return_result = true unless print
|
|
222
|
+
|
|
223
|
+
result_hash = {
|
|
224
|
+
|
|
225
|
+
:object => { :type => self.type, :sut => self.kind_of?( MobyBase::SUT ) ? self.id : self.sut.id },
|
|
226
|
+
:methods => object_methods,
|
|
227
|
+
:behaviours => behaviours
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
if print
|
|
231
|
+
|
|
232
|
+
result = ""
|
|
233
|
+
|
|
234
|
+
[:object, :behaviours, :methods].each{ | key, value |
|
|
235
|
+
value = result_hash[ key ]
|
|
236
|
+
result << "\n#{ key.to_s.capitalize }:\n"
|
|
237
|
+
case value.class.to_s
|
|
238
|
+
when "Array": result << "\t" << value.join("\n\t") << "\n"
|
|
239
|
+
when "Hash": result << value.collect{ | key, value | "\t#{ key } => #{ value }" }.join("\n") << "\n"
|
|
240
|
+
#else
|
|
241
|
+
#result << "\t#{ value }\n"
|
|
242
|
+
end
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
puts result
|
|
246
|
+
|
|
247
|
+
else
|
|
248
|
+
|
|
249
|
+
result = result_hash
|
|
250
|
+
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
( return_result ? result : nil )
|
|
254
|
+
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
# enable hooking for performance measurement & debug logging
|
|
258
|
+
MobyUtil::Hooking.instance.hook_methods( self ) if defined?( MobyUtil::Hooking )
|
|
259
|
+
|
|
260
|
+
end # ObjectBehaviourDescription
|
|
261
|
+
|
|
262
|
+
end # MobyBehaviour
|