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