testability-driver-qt-sut-plugin 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/application.rb +16 -6
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/behaviour.rb +86 -12
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/configure_behaviour.rb +1 -1
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/events.rb +5 -3
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/file_transfer.rb +15 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/fixture.rb +110 -76
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/gesture.rb +125 -69
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/sut.rb +28 -19
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/synchronization.rb +143 -24
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/widget.rb +25 -10
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/agent.rb +54 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/application.rb +1 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/configure_command.rb +32 -39
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/find_object.rb +8 -19
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/fixture.rb +35 -22
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/group.rb +31 -29
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/infologger_command.rb +23 -32
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/key_sequence.rb +44 -61
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/screen_capture.rb +22 -23
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/tap.rb +39 -28
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/version.rb +14 -24
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/widget.rb +39 -42
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/adapter.rb +93 -120
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/communication.rb +95 -75
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/find_object_generator.rb +6 -8
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/message_composer.rb +1 -1
- data/xml/behaviour/qt.xml +6 -0
- data/xml/keymap/win.xml +174 -0
- data/xml/template/qt.xml +128 -117
- metadata +60 -75
@@ -89,7 +89,7 @@ module MobyBehaviour
|
|
89
89
|
end
|
90
90
|
command.command_params(params)
|
91
91
|
|
92
|
-
|
92
|
+
execute_behavior(move_params, command)
|
93
93
|
|
94
94
|
rescue Exception => e
|
95
95
|
|
@@ -130,12 +130,15 @@ module MobyBehaviour
|
|
130
130
|
# |:interval|This method sleeps tap_count times interval|Integer|2|1|
|
131
131
|
# |:tap_count|Number of taps to do|Integer|2|1|
|
132
132
|
# |:use_tap_screen|Should tapping be done on screen or as mouse event to the object|Boolean|true|see TDriver parameters table below|
|
133
|
+
# |:ensure_event|Verify that an event is sent to the target object. Retry if not received by target|Boolean|true|false|
|
134
|
+
#
|
133
135
|
# tdriver_params_table
|
134
136
|
# title: Default values read from tdriver parameters
|
135
137
|
# description: These setting values are read from tdriver_parameters.xml
|
136
138
|
# |Name|Description|Default if missing from parameters|
|
137
139
|
# |use_tap_screen|See :use_tap_screen above|false|
|
138
140
|
# |in_tap_move_pointer|Wether to actually move mouse pointer to tap coordinates|false|
|
141
|
+
# |:ensure_event|Verify that an event is sent to the target object. Retry if not received by target|false|
|
139
142
|
#
|
140
143
|
# == returns
|
141
144
|
# NilClass
|
@@ -178,6 +181,7 @@ module MobyBehaviour
|
|
178
181
|
|
179
182
|
tap_count = tap_params[:tap_count].nil? ? 1 : tap_params[:tap_count]
|
180
183
|
use_tap_screen = tap_params[:use_tap_screen].nil? ? sut_parameters[ :use_tap_screen, 'false'] : tap_params[:use_tap_screen].to_s
|
184
|
+
|
181
185
|
else
|
182
186
|
tap_count = tap_params
|
183
187
|
|
@@ -254,7 +258,7 @@ module MobyBehaviour
|
|
254
258
|
command.command_params(params)
|
255
259
|
|
256
260
|
# puts "tap: " + (Time.now - tapMeasure).to_s + " s - tap about to execute "
|
257
|
-
|
261
|
+
execute_behavior(tap_params, command)
|
258
262
|
|
259
263
|
# puts "tap: " + (Time.now - tapMeasure).to_s + " s - executed"
|
260
264
|
#do not allow operations to continue untill taps done
|
@@ -358,7 +362,7 @@ module MobyBehaviour
|
|
358
362
|
|
359
363
|
)
|
360
364
|
|
361
|
-
|
365
|
+
execute_behavior(tap_params, command)
|
362
366
|
|
363
367
|
rescue # Exception => e
|
364
368
|
|
@@ -479,13 +483,25 @@ module MobyBehaviour
|
|
479
483
|
|
480
484
|
logging_enabled = $logger.enabled
|
481
485
|
$logger.enabled = false
|
482
|
-
|
486
|
+
|
483
487
|
raise ArgumentError.new("First parameter should be time between taps or Hash") unless tap_params.kind_of? Hash or tap_params.kind_of? Fixnum
|
484
488
|
|
485
489
|
begin
|
486
|
-
|
487
|
-
|
488
|
-
|
490
|
+
ens = param_set_configured?(tap_params, :ensure_event)
|
491
|
+
tap_params[:ensure_event] = false
|
492
|
+
if ens
|
493
|
+
self.ensure_event(:retry_timeout => 5, :retry_interval => 0.5) {
|
494
|
+
tap_down(button, false, tap_params)
|
495
|
+
sleep time
|
496
|
+
tap_up(button, false, tap_params)
|
497
|
+
}
|
498
|
+
else
|
499
|
+
tap_down(button, false, tap_params)
|
500
|
+
sleep time
|
501
|
+
tap_up(button, false, tap_params)
|
502
|
+
end
|
503
|
+
|
504
|
+
|
489
505
|
rescue Exception => e
|
490
506
|
$logger.enabled = logging_enabled
|
491
507
|
$logger.behaviour "FAIL;Failed long_tap with time \"#{time.to_s}\", button \"#{button.to_s}\".;#{identity};long_tap;"
|
@@ -610,7 +626,7 @@ module MobyBehaviour
|
|
610
626
|
params.merge!(tap_params)
|
611
627
|
|
612
628
|
command.command_params(params)
|
613
|
-
|
629
|
+
execute_behavior(tap_params, command)
|
614
630
|
|
615
631
|
self.force_refresh( :id => get_application_id ) if refresh
|
616
632
|
|
@@ -679,8 +695,7 @@ module MobyBehaviour
|
|
679
695
|
|
680
696
|
command.command_params(params)
|
681
697
|
|
682
|
-
|
683
|
-
@sut.execute_command(command)
|
698
|
+
execute_behavior(tap_params, command)
|
684
699
|
self.force_refresh({:id => get_application_id}) if refresh
|
685
700
|
|
686
701
|
rescue Exception => e
|
@@ -0,0 +1,54 @@
|
|
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 TDriver.
|
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 MobyController
|
21
|
+
|
22
|
+
module QT
|
23
|
+
|
24
|
+
module AgentCommand
|
25
|
+
|
26
|
+
include MobyController::Abstraction
|
27
|
+
|
28
|
+
# TODO: document me
|
29
|
+
# overloads default MobyController::Abstraction#make_message
|
30
|
+
def make_message
|
31
|
+
|
32
|
+
command = @parameters[ :command ]
|
33
|
+
|
34
|
+
case command
|
35
|
+
|
36
|
+
when :version
|
37
|
+
|
38
|
+
# query agent version from versionService
|
39
|
+
Comms::MessageGenerator.generate( '<TasCommands service="versionService" />' )
|
40
|
+
|
41
|
+
else
|
42
|
+
|
43
|
+
# raise exception if command not implemented
|
44
|
+
raise NotImplementedError, "command #{ command.inspect } not implemented in #{ self.class.name }"
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end # AgentCommand
|
51
|
+
|
52
|
+
end # QT
|
53
|
+
|
54
|
+
end # MobyController
|
@@ -19,42 +19,35 @@
|
|
19
19
|
|
20
20
|
module MobyController
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
end #module ConfigureCommand
|
56
|
-
|
57
|
-
end #module QT
|
58
|
-
|
59
|
-
end #module MobyController
|
60
|
-
|
22
|
+
module QT
|
23
|
+
|
24
|
+
module ConfigureCommand
|
25
|
+
|
26
|
+
include MobyController::Abstraction
|
27
|
+
|
28
|
+
# Creates service command message which will be sent to @sut_adapter by execute method
|
29
|
+
# == params
|
30
|
+
# == returns
|
31
|
+
# == raises
|
32
|
+
def make_message
|
33
|
+
|
34
|
+
Comms::MessageGenerator.generate(
|
35
|
+
Nokogiri::XML::Builder.new{
|
36
|
+
TasCommands( :service => "confService", :id=> application_id ) {
|
37
|
+
Target( :TasId => "Application" ){
|
38
|
+
Command( value || "", ( params || {} ).merge( :name => name ) )
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}.to_xml
|
42
|
+
)
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
# enable hooking for performance measurement & debug logging
|
47
|
+
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
48
|
+
|
49
|
+
end # ConfigureCommand
|
50
|
+
|
51
|
+
end # QT
|
52
|
+
|
53
|
+
end # MobyController
|
data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/find_object.rb
CHANGED
@@ -25,27 +25,17 @@ module MobyController
|
|
25
25
|
|
26
26
|
include MobyUtil::FindObjectGenerator
|
27
27
|
|
28
|
-
|
29
|
-
|
28
|
+
include MobyController::Abstraction
|
29
|
+
|
30
|
+
# Creates service command message which will be sent to @sut_adapter by execute method
|
30
31
|
# == params
|
31
32
|
# == returns
|
32
33
|
# == raises
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
# *[ message, return_crc ]
|
39
|
-
MobyController::QT::Comms::MessageGenerator.generate( generate_message ), true
|
40
|
-
|
41
|
-
)
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
def set_adapter( adapter )
|
46
|
-
|
47
|
-
@sut_adapter = adapter
|
48
|
-
|
34
|
+
def make_message
|
35
|
+
|
36
|
+
# *[ message, return_crc ]
|
37
|
+
[ Comms::MessageGenerator.generate( generate_message ), true ]
|
38
|
+
|
49
39
|
end
|
50
40
|
|
51
41
|
# enable hooking for performance measurement & debug logging
|
@@ -56,4 +46,3 @@ module MobyController
|
|
56
46
|
end # QT
|
57
47
|
|
58
48
|
end # MobyController
|
59
|
-
|
@@ -19,34 +19,47 @@
|
|
19
19
|
|
20
20
|
module MobyController
|
21
21
|
|
22
|
-
|
22
|
+
module QT
|
23
23
|
|
24
|
-
|
25
|
-
include MobyUtil::MessageComposer
|
24
|
+
module Fixture
|
26
25
|
|
27
|
-
|
28
|
-
# Sends the message to the device using the @sut_adapter (see base class)
|
29
|
-
# == params
|
30
|
-
# == returns
|
31
|
-
# == raises
|
32
|
-
# NotImplementedError: raised if unsupported command type
|
33
|
-
def execute
|
34
|
-
Kernel::raise ArgumentError.new( "Fixture '%s' not found for sut id '%s'" % [ @name, @sut_adapter.sut_id ] ) if ( plugin_params = $parameters[ @sut_adapter.sut_id.to_sym ][ :fixtures ][ @params[:name].to_sym, nil ] ).nil?
|
26
|
+
include MobyUtil::MessageComposer
|
35
27
|
|
36
|
-
|
37
|
-
@sut_adapter.send_service_request(Comms::MessageGenerator.generate(make_fixture_message(fixture_plugin, @params)))
|
28
|
+
include MobyController::Abstraction
|
38
29
|
|
39
|
-
|
30
|
+
# Creates service command message which will be sent to @sut_adapter by execute method
|
31
|
+
# == params
|
32
|
+
# == returns
|
33
|
+
# == raises
|
34
|
+
def make_message
|
40
35
|
|
41
|
-
|
42
|
-
|
43
|
-
end
|
36
|
+
# use local variable for less AST lookups
|
37
|
+
sut_id = @sut_adapter.sut_id.to_sym
|
44
38
|
|
45
|
-
|
46
|
-
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
39
|
+
plugin_name = @params[ :name ].to_s
|
47
40
|
|
48
|
-
|
41
|
+
# retrieve plugin details from fixtures configuration
|
42
|
+
plugin_params = $parameters[ sut_id ][ :fixtures ][ plugin_name.to_sym, nil ]
|
49
43
|
|
50
|
-
|
44
|
+
# verify that plugin is configured
|
45
|
+
plugin_params.not_nil "Fixture #{ plugin_name.inspect } not found for #{ sut_id.inspect }"
|
51
46
|
|
52
|
-
|
47
|
+
# retrieve plugin name
|
48
|
+
fixture_plugin = plugin_params.kind_of?( String ) ? plugin_params : plugin_params[ :plugin ]
|
49
|
+
|
50
|
+
Comms::MessageGenerator.generate(
|
51
|
+
make_fixture_message(
|
52
|
+
fixture_plugin, @params
|
53
|
+
)
|
54
|
+
)
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
# enable hooking for performance measurement & debug logging
|
59
|
+
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
60
|
+
|
61
|
+
end # Fixture
|
62
|
+
|
63
|
+
end # QT
|
64
|
+
|
65
|
+
end # MobyController
|
@@ -19,34 +19,36 @@
|
|
19
19
|
|
20
20
|
module MobyController
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
22
|
+
module QT
|
23
|
+
|
24
|
+
module Group
|
25
|
+
|
26
|
+
# Execute the command).
|
27
|
+
# Sends the message to the device using the @sut_adapter (see base class)
|
28
|
+
# == params
|
29
|
+
# == returns
|
30
|
+
# == raises
|
31
|
+
# NotImplementedError: raised if unsupported command type
|
32
|
+
def execute
|
33
|
+
builder = Nokogiri::XML::Builder.new{
|
34
|
+
TasCommands( :id=> application.id.to_s, :transitions => 'true', :service => 'uiCommand', :interval => interval.to_s, :multitouch => multitouch.to_s)
|
35
|
+
}
|
36
|
+
|
37
|
+
@sut_adapter.set_message_builder(builder)
|
38
|
+
block.call
|
39
|
+
@sut_adapter.send_grouped_request
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
def set_adapter( adapter )
|
44
|
+
@sut_adapter = adapter
|
45
|
+
end
|
46
|
+
|
47
|
+
# enable hooking for performance measurement & debug logging
|
48
|
+
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
49
|
+
|
50
|
+
end #module Group
|
51
|
+
|
52
|
+
end #module QT
|
51
53
|
|
52
54
|
end #module MobyController
|
@@ -19,44 +19,35 @@
|
|
19
19
|
|
20
20
|
module MobyController
|
21
21
|
|
22
|
-
|
22
|
+
module QT
|
23
23
|
|
24
|
-
|
24
|
+
module InfoLoggerCommand
|
25
25
|
|
26
|
-
|
27
|
-
# Sends the message to the device using the @sut_adapter (see base class)
|
28
|
-
# == params
|
29
|
-
# == returns
|
30
|
-
# == raises
|
31
|
-
# NotImplementedError: raised if unsupported command type
|
32
|
-
def execute
|
26
|
+
include MobyController::Abstraction
|
33
27
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
Command( value || "", ( params || {} ).merge( :name => name ) )
|
40
|
-
}
|
41
|
-
}
|
42
|
-
}.to_xml
|
43
|
-
)
|
44
|
-
)
|
28
|
+
# Creates service command message which will be sent to @sut_adapter by execute method
|
29
|
+
# == params
|
30
|
+
# == returns
|
31
|
+
# == raises
|
32
|
+
def make_message
|
45
33
|
|
46
|
-
|
34
|
+
Comms::MessageGenerator.generate(
|
35
|
+
Nokogiri::XML::Builder.new{
|
36
|
+
TasCommands( :service => "infoService", :id=> application_id, :interval => params[:interval] ) {
|
37
|
+
Target( :TasId => "Application" ){
|
38
|
+
Command( value || "", ( params || {} ).merge( :name => name ) )
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}.to_xml
|
42
|
+
)
|
47
43
|
|
48
|
-
|
44
|
+
end
|
49
45
|
|
50
|
-
|
46
|
+
# enable hooking for performance measurement & debug logging
|
47
|
+
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
51
48
|
|
52
|
-
|
49
|
+
end # InfoLoggerCommand
|
53
50
|
|
54
|
-
|
55
|
-
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
51
|
+
end # QT
|
56
52
|
|
57
|
-
|
58
|
-
end # InfoLoggerCommand
|
59
|
-
|
60
|
-
end #module QT
|
61
|
-
|
62
|
-
end #module MobyController
|
53
|
+
end # MobyController
|