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
@@ -0,0 +1,77 @@
|
|
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
|
+
# Agent specific commands
|
24
|
+
#
|
25
|
+
# == behaviour
|
26
|
+
# AgentCommands
|
27
|
+
#
|
28
|
+
# == requires
|
29
|
+
# *
|
30
|
+
#
|
31
|
+
# == input_type
|
32
|
+
# *
|
33
|
+
#
|
34
|
+
# == sut_type
|
35
|
+
# *
|
36
|
+
#
|
37
|
+
# == sut_version
|
38
|
+
# *
|
39
|
+
#
|
40
|
+
# == objects
|
41
|
+
# AgentCommandService
|
42
|
+
module AgentCommands
|
43
|
+
|
44
|
+
include MobyBehaviour::Behaviour
|
45
|
+
|
46
|
+
# == nodoc
|
47
|
+
# == description
|
48
|
+
# Queries version of used agent
|
49
|
+
#
|
50
|
+
# == arguments
|
51
|
+
# == returns
|
52
|
+
# String
|
53
|
+
# description: version number in String format
|
54
|
+
# example: "1.3"
|
55
|
+
#
|
56
|
+
# == exceptions
|
57
|
+
#
|
58
|
+
# == info
|
59
|
+
# See SUT#agent method
|
60
|
+
def version
|
61
|
+
|
62
|
+
# execute command/model by using sut controller
|
63
|
+
execute_command(
|
64
|
+
|
65
|
+
# model
|
66
|
+
MobyCommand::AgentCommand.new( :command => :version )
|
67
|
+
|
68
|
+
)
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
# enable hooking for performance measurement & debug logging
|
73
|
+
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
74
|
+
|
75
|
+
end # AgentCommands
|
76
|
+
|
77
|
+
end # MobyBehaviour
|
@@ -0,0 +1,427 @@
|
|
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
|
+
# Describes the behaviour of application and its associated methods
|
24
|
+
#
|
25
|
+
# == behaviour
|
26
|
+
# GenericApplication
|
27
|
+
#
|
28
|
+
# == requires
|
29
|
+
# *
|
30
|
+
#
|
31
|
+
# == input_type
|
32
|
+
# *
|
33
|
+
#
|
34
|
+
# == sut_type
|
35
|
+
# *
|
36
|
+
#
|
37
|
+
# == sut_version
|
38
|
+
# *
|
39
|
+
#
|
40
|
+
# == objects
|
41
|
+
# application
|
42
|
+
#
|
43
|
+
module Application
|
44
|
+
|
45
|
+
include MobyBehaviour::Behaviour
|
46
|
+
|
47
|
+
# == description
|
48
|
+
# Closes application and optionally verifies that it is closed. A Hash argument can be used to set any of the optional parameters. Keys not set in the hash will use default values. Close can be set to force kill the application process if close fails. It can also be set to not check if the application process is terminated, in which case close is considered to be successful if the application is no longer in the foreground.\n
|
49
|
+
# \n
|
50
|
+
# [b]NOTE:[/b] this will currently always try to close applications, also privilegied applications. \n
|
51
|
+
# \n
|
52
|
+
# [b]For backwards compatibility:[/b] Instead of using a Hash as argument, the value can also be true, false or nil which will be taken as the value of :force_kill
|
53
|
+
#
|
54
|
+
# == arguments
|
55
|
+
# options_hash
|
56
|
+
# Hash
|
57
|
+
# description: See supported hash keys from [link="#close_hash_keys"]close application options hash keys table[/link]
|
58
|
+
# example: {:force_kill => true, :check_process => false}
|
59
|
+
# TrueClass
|
60
|
+
# description: For backwards compatibility: same as :force_kill => true
|
61
|
+
# example: true
|
62
|
+
# FalseClass
|
63
|
+
# description: For backwards compatibility: same as :force_kill => false
|
64
|
+
# example: false
|
65
|
+
# NilClass
|
66
|
+
# description: For backwards compatibility: same as :force_kill => nil (uses 'application_close_kill' from TDriver parameters file)
|
67
|
+
# example: nil
|
68
|
+
#
|
69
|
+
# == tables
|
70
|
+
# close_hash_keys
|
71
|
+
# title: Close application options hash keys
|
72
|
+
# |Key|Type|Description|Default|Required|
|
73
|
+
# |:force_kill|TrueClass, FalseClass|If this options is set to true, the application process is killed if close fails. Setting this option to nil (default value), will cause close to use the value defined in the 'application_close_kill' parameter as defined in the TDriver parameter file.|nil|No|
|
74
|
+
# |:check_process|TrueClass, FalseClass|If this options is set to true, success of the close method is verified by checking if the process is still active. If it is set to false, TDriver will only check that the application is no longer in the foreground.|true|No|
|
75
|
+
#
|
76
|
+
# == returns
|
77
|
+
# NilClass
|
78
|
+
# description: -
|
79
|
+
# example: -
|
80
|
+
#
|
81
|
+
# == exceptions
|
82
|
+
# TestObjectNotFoundError
|
83
|
+
# description: If this application is not the foreground application on the device under test.
|
84
|
+
#
|
85
|
+
# VerificationError
|
86
|
+
# description: If no application test object is found after close or if this application is still in the foreground after the close.
|
87
|
+
#
|
88
|
+
# TypeError
|
89
|
+
# description: Wrong argument type <class> for options_hash (expected a Hash, TrueClass or FalseClass)
|
90
|
+
#
|
91
|
+
# TypeError
|
92
|
+
# description: Wrong argument type <class> for :force_kill (expected NilClass, TrueClass or FalseClass)
|
93
|
+
#
|
94
|
+
# TypeError
|
95
|
+
# description: Wrong argument type <class> for :check_process (expected TrueClass or FalseClass)
|
96
|
+
#
|
97
|
+
def close( options_hash = {} )
|
98
|
+
|
99
|
+
begin
|
100
|
+
|
101
|
+
# check if closable
|
102
|
+
raise RuntimeError, 'The application is of a type that cannot be closed.' unless closable?
|
103
|
+
|
104
|
+
# default options
|
105
|
+
default_options = { :force_kill => nil, :check_process => true }
|
106
|
+
|
107
|
+
# for backwards compatibility
|
108
|
+
if options_hash.kind_of?( Hash )
|
109
|
+
|
110
|
+
# merge user defined options with default options
|
111
|
+
close_options = default_options.merge( options_hash )
|
112
|
+
|
113
|
+
else
|
114
|
+
|
115
|
+
# support legacy option of defining only force_kill as argument
|
116
|
+
close_options = default_options
|
117
|
+
|
118
|
+
# if options defined
|
119
|
+
if options_hash != nil
|
120
|
+
|
121
|
+
# workaround/backwards compatibility: allow string as hash key value
|
122
|
+
options_hash = options_hash.to_boolean if options_hash.kind_of?( String )
|
123
|
+
|
124
|
+
# verify options_hash value
|
125
|
+
options_hash.check_type( [ FalseClass, TrueClass ], "Wrong argument type $1 for options hash (expected $2)" )
|
126
|
+
|
127
|
+
# store force_kill value
|
128
|
+
close_options[ :force_kill ] = options_hash
|
129
|
+
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
# workaround/backwards compatibility: allow string as hash key value
|
135
|
+
close_options[ :force_kill ] = close_options[ :force_kill ].to_boolean if close_options[ :force_kill ].kind_of?( String )
|
136
|
+
|
137
|
+
# verify :force_kill value type
|
138
|
+
close_options[ :force_kill ].check_type( [ NilClass, TrueClass, FalseClass ], 'Wrong argument type $1 for :force_kill (expected $2)' )
|
139
|
+
|
140
|
+
# workaround/backwards compatibility: allow string as hash key value
|
141
|
+
close_options[ :check_process ] = close_options[ :check_process ].to_boolean if close_options[ :check_process ].kind_of?( String )
|
142
|
+
|
143
|
+
# verify :check_process value type
|
144
|
+
close_options[ :check_process ].check_type( [ TrueClass, FalseClass ], 'Wrong argument type $1 for :check_process (expected $2)' )
|
145
|
+
|
146
|
+
if close_options[ :force_kill ] != nil
|
147
|
+
|
148
|
+
@sut.execute_command(
|
149
|
+
MobyCommand::Application.new(
|
150
|
+
:Close,
|
151
|
+
{
|
152
|
+
:application_name => @name,
|
153
|
+
:application_uid => @id,
|
154
|
+
:sut => @sut,
|
155
|
+
:flags => { :force_kill => close_options[ :force_kill ] }
|
156
|
+
}
|
157
|
+
)
|
158
|
+
)
|
159
|
+
|
160
|
+
else
|
161
|
+
|
162
|
+
@sut.execute_command(
|
163
|
+
MobyCommand::Application.new(
|
164
|
+
:Close,
|
165
|
+
{
|
166
|
+
:application_name => @name,
|
167
|
+
:application_uid => @id,
|
168
|
+
:sut => @sut
|
169
|
+
}
|
170
|
+
)
|
171
|
+
)
|
172
|
+
|
173
|
+
end
|
174
|
+
|
175
|
+
# store start time
|
176
|
+
start_time = Time.now
|
177
|
+
|
178
|
+
# store original logger state
|
179
|
+
original_logger_state = $logger.enabled
|
180
|
+
|
181
|
+
# disable logging
|
182
|
+
$logger.enabled = false
|
183
|
+
|
184
|
+
# retrieve application synchronization timeout value
|
185
|
+
timeout_time = sut_parameters[ :application_synchronization_timeout, '60' ].to_f
|
186
|
+
|
187
|
+
# retrieve application synchronization timeout retry interval value
|
188
|
+
refresh_interval = sut_parameters[ :application_synchronization_retry_interval, '0.25' ].to_f
|
189
|
+
|
190
|
+
# create application identification hash
|
191
|
+
application_identification_hash = { :type => 'application', :id => @id }
|
192
|
+
|
193
|
+
begin
|
194
|
+
|
195
|
+
# verify close results
|
196
|
+
MobyUtil::Retryable.until(
|
197
|
+
:timeout => timeout_time,
|
198
|
+
:interval => refresh_interval,
|
199
|
+
:exception => MobyBase::VerificationError,
|
200
|
+
:unless => [ MobyBase::TestObjectNotFoundError, MobyBase::ApplicationNotAvailableError ]
|
201
|
+
){
|
202
|
+
|
203
|
+
# raises MobyBase::ApplicationNotAvailableError if application was not found
|
204
|
+
@sut.refresh( application_identification_hash, [ {:className => 'application', :tasId => @id } ] )
|
205
|
+
|
206
|
+
# retrieve application object from sut.xml_data
|
207
|
+
matches, unused_rule = @test_object_adapter.get_objects( @sut.xml_data, application_identification_hash, true )
|
208
|
+
|
209
|
+
# check if the application is still found or not
|
210
|
+
if ( close_options[ :check_process ] == true )
|
211
|
+
|
212
|
+
# the application did not close
|
213
|
+
raise MobyBase::VerificationError, "Verification of close failed. The application that was to be closed is still running." if matches.count > 0 && (Time.now - start_time) >= timeout_time
|
214
|
+
|
215
|
+
elsif ( close_options[ :check_process ] == false )
|
216
|
+
|
217
|
+
if matches.count > 0
|
218
|
+
|
219
|
+
if @test_object_adapter.test_object_element_attribute( matches.first, 'id' ) == @id
|
220
|
+
|
221
|
+
# the application was still in the foreground
|
222
|
+
raise MobyBase::VerificationError, "Verification of close failed. The application that was to be closed was still in the foreground."
|
223
|
+
|
224
|
+
else
|
225
|
+
|
226
|
+
# The foreground application was not the one being closed.
|
227
|
+
raise MobyBase::TestObjectNotFoundError, "The foreground application was not the one being closed (id: #{ @id })."
|
228
|
+
|
229
|
+
end
|
230
|
+
|
231
|
+
end
|
232
|
+
|
233
|
+
end
|
234
|
+
|
235
|
+
# The application could not be found, break
|
236
|
+
break
|
237
|
+
|
238
|
+
} # MobyUtil::Retryable.until
|
239
|
+
|
240
|
+
rescue MobyBase::TestObjectNotFoundError
|
241
|
+
|
242
|
+
# everything ok: application not running anymore
|
243
|
+
|
244
|
+
rescue MobyBase::ApplicationNotAvailableError
|
245
|
+
|
246
|
+
# everything ok: application not running anymore
|
247
|
+
|
248
|
+
rescue RuntimeError
|
249
|
+
|
250
|
+
# something unexpected happened during the close, let exception through
|
251
|
+
raise unless $!.message =~ /The application with Id \d+ is no longer available/
|
252
|
+
|
253
|
+
ensure
|
254
|
+
|
255
|
+
# restore original state
|
256
|
+
$logger.enabled = original_logger_state
|
257
|
+
|
258
|
+
end
|
259
|
+
|
260
|
+
rescue Exception
|
261
|
+
|
262
|
+
$logger.behaviour "FAIL;Failed when closing.;#{ identity };close;"
|
263
|
+
|
264
|
+
# let exception through
|
265
|
+
raise
|
266
|
+
|
267
|
+
end
|
268
|
+
|
269
|
+
$logger.behaviour "PASS;Closed successfully.;#{ identity };close;"
|
270
|
+
|
271
|
+
#@sut.application
|
272
|
+
|
273
|
+
nil
|
274
|
+
|
275
|
+
end
|
276
|
+
|
277
|
+
# == description
|
278
|
+
# Returns executable name (exe) of foreground application
|
279
|
+
# == returns
|
280
|
+
# String
|
281
|
+
# description: Application's executable name
|
282
|
+
# example: "calculator"
|
283
|
+
# == exceptions
|
284
|
+
# RuntimeError
|
285
|
+
# description: No executable name has been defined for this application.
|
286
|
+
# == example
|
287
|
+
# puts @sut.application.executable_name #prints foreground executable name to console
|
288
|
+
def executable_name
|
289
|
+
|
290
|
+
begin
|
291
|
+
|
292
|
+
name = attribute('FullName')
|
293
|
+
|
294
|
+
rescue MobyBase::AttributeNotFoundError
|
295
|
+
|
296
|
+
begin
|
297
|
+
|
298
|
+
name = attribute('exepath')
|
299
|
+
|
300
|
+
rescue MobyBase::AttributeNotFoundError
|
301
|
+
|
302
|
+
name = ''
|
303
|
+
|
304
|
+
end
|
305
|
+
|
306
|
+
end
|
307
|
+
|
308
|
+
name.not_empty 'Application does not have "FullName" or "exepath" attribute', RuntimeError
|
309
|
+
|
310
|
+
File.basename( name.gsub( /\\/, '/' ) )
|
311
|
+
|
312
|
+
end
|
313
|
+
|
314
|
+
# == description
|
315
|
+
# Returns uid of foreground application
|
316
|
+
# == returns
|
317
|
+
# String
|
318
|
+
# description: Unique ID of the application.
|
319
|
+
# example: "2197"
|
320
|
+
# == example
|
321
|
+
# puts @sut.application.uid #prints foreground executable uid to console
|
322
|
+
def uid
|
323
|
+
|
324
|
+
@id
|
325
|
+
|
326
|
+
end
|
327
|
+
|
328
|
+
# == nodoc
|
329
|
+
# TODO: document all the possible values and then make public
|
330
|
+
def environment
|
331
|
+
|
332
|
+
@environment
|
333
|
+
|
334
|
+
end
|
335
|
+
|
336
|
+
# == nodoc
|
337
|
+
# TODO: to be removed?
|
338
|
+
# == description
|
339
|
+
# Indicates whether this application can be closed with the ApplicationBehaviour::close method. Note: at the moment
|
340
|
+
# it always returns true!
|
341
|
+
# === returns
|
342
|
+
# Boolean:: True if closing is possible with the ApplicationBehaviour::close method
|
343
|
+
# === example
|
344
|
+
# puts @sut.application.closable #prints foreground application closable status to console (at the moment always true)
|
345
|
+
def closable?
|
346
|
+
|
347
|
+
true
|
348
|
+
|
349
|
+
end
|
350
|
+
|
351
|
+
# == description
|
352
|
+
# Bring the application to foreground.\n
|
353
|
+
# \n
|
354
|
+
# [b]NOTE:[/b] Currently this works only for Symbian OS target!
|
355
|
+
#
|
356
|
+
# == returns
|
357
|
+
# NilClass
|
358
|
+
# description: -
|
359
|
+
# example: -
|
360
|
+
#
|
361
|
+
#
|
362
|
+
def bring_to_foreground
|
363
|
+
|
364
|
+
@sut.execute_command(
|
365
|
+
MobyCommand::Application.new(
|
366
|
+
:BringToForeground,
|
367
|
+
{
|
368
|
+
:application_uid => @id,
|
369
|
+
:sut => @sut
|
370
|
+
}
|
371
|
+
)
|
372
|
+
)
|
373
|
+
|
374
|
+
end
|
375
|
+
|
376
|
+
# == description
|
377
|
+
# Kills the application process
|
378
|
+
#
|
379
|
+
# == returns
|
380
|
+
# NilClass
|
381
|
+
# description: -
|
382
|
+
# example: -
|
383
|
+
#
|
384
|
+
def kill
|
385
|
+
|
386
|
+
@sut.execute_command(
|
387
|
+
MobyCommand::Application.new(
|
388
|
+
:Kill,
|
389
|
+
{
|
390
|
+
:application_name => executable_name,
|
391
|
+
:application_uid => @id,
|
392
|
+
:sut => @sut
|
393
|
+
}
|
394
|
+
)
|
395
|
+
)
|
396
|
+
|
397
|
+
end
|
398
|
+
|
399
|
+
# == description
|
400
|
+
# Returns the mem usage of the application if the information is available.
|
401
|
+
# Will return -1 if the information is not available.
|
402
|
+
#
|
403
|
+
# == returns
|
404
|
+
# Integer
|
405
|
+
# description: Current memory usage
|
406
|
+
# example: 124354
|
407
|
+
#
|
408
|
+
def mem_usage
|
409
|
+
|
410
|
+
begin
|
411
|
+
|
412
|
+
attribute('memUsage').to_i
|
413
|
+
|
414
|
+
rescue
|
415
|
+
|
416
|
+
-1
|
417
|
+
|
418
|
+
end
|
419
|
+
|
420
|
+
end
|
421
|
+
|
422
|
+
# enable hooking for performance measurement & debug logging
|
423
|
+
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
424
|
+
|
425
|
+
end # ApplicationBehaviour
|
426
|
+
|
427
|
+
end # MobyBehaviour
|