testability-driver 1.3.1 → 1.3.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/bin/start_app_perf +6 -6
- data/lib/tdriver-devtools/behaviour/xml/rdoc_behaviour_xml_generator.rb +4 -4
- data/lib/tdriver-devtools/doc/xslt/template.xsl +103 -21
- data/lib/tdriver/base/behaviour/behaviours/object_behaviour_description.rb +1 -1
- data/lib/tdriver/base/command_data/loader.rb +6 -2
- data/lib/tdriver/base/loader.rb +21 -14
- data/lib/tdriver/base/state_object.rb +1 -1
- data/lib/tdriver/base/sut/controller.rb +8 -2
- data/lib/tdriver/base/sut/generic/behaviours/sut.rb +103 -46
- data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +2 -2
- data/lib/tdriver/base/sut/generic/behaviours/verification.rb +1 -1
- data/lib/tdriver/base/sut/generic/commands/application.rb +18 -278
- data/lib/tdriver/base/sut/generic/commands/key_sequence.rb +1 -1
- data/lib/tdriver/base/sut/sut.rb +1 -1
- data/lib/tdriver/base/test_object/abstract.rb +1 -1
- data/lib/tdriver/base/test_object/adapter.rb +4 -1
- data/lib/tdriver/base/test_object/behaviours/syncronization.rb +3 -3
- data/lib/tdriver/base/test_object/behaviours/test_object.rb +61 -24
- data/lib/tdriver/base/test_object/cache.rb +6 -4
- data/lib/tdriver/base/test_object/factory.rb +4 -2
- data/lib/tdriver/base/test_object/loader.rb +23 -14
- data/lib/tdriver/base/test_object/xml/abstraction.rb +63 -0
- data/lib/tdriver/base/test_object/xml/adapter.rb +4 -1
- data/lib/tdriver/report/report_test_run.rb +1 -1
- data/lib/tdriver/report/report_writer.rb +4 -3
- data/lib/tdriver/util/common/boolean.rb +10 -13
- data/lib/tdriver/util/common/environment.rb +8 -7
- data/lib/tdriver/util/common/hash.rb +5 -5
- data/lib/tdriver/util/common/numeric.rb +5 -5
- data/lib/tdriver/util/common/object.rb +3 -3
- data/lib/tdriver/util/common/retryable.rb +65 -2
- data/lib/tdriver/util/common/string.rb +4 -4
- data/lib/tdriver/util/database/access.rb +9 -11
- data/lib/tdriver/util/fixture/service.rb +54 -0
- data/lib/tdriver/util/localisation/localisation.rb +3 -2
- data/lib/tdriver/util/logger/logger.rb +55 -41
- data/lib/tdriver/util/parameter/parameter.rb +38 -7
- data/lib/tdriver/util/xml/abstraction.rb +8 -8
- data/lib/tdriver/util/xml/builder.rb +1 -1
- data/lib/tdriver/util/xml/xml.rb +11 -11
- data/lib/tdriver/verify/verify.rb +33 -36
- data/lib/tdriver/version.rb +1 -1
- data/xml/defaults/sut_generic.xml +1 -29
- data/xml/templates/generic.xml +28 -0
- metadata +48 -17
@@ -97,11 +97,11 @@ module MobyBehaviour
|
|
97
97
|
power_up
|
98
98
|
sleep sleep_time_after_powerup
|
99
99
|
|
100
|
-
MobyUtil::Retryable.until( :timeout => 60, :
|
100
|
+
MobyUtil::Retryable.until( :timeout => 60, :interval => 5 ) {
|
101
101
|
system(str_commands_after_powerup) if str_commands_after_powerup != nil
|
102
102
|
if $parameters[ :ats4_error_recovery_enabled, false ]!='true'
|
103
103
|
$logger.behaviour "PASS;TDriver attempting reconnect"
|
104
|
-
|
104
|
+
connect( id )
|
105
105
|
$logger.behaviour "PASS;TDriver connected"
|
106
106
|
else
|
107
107
|
$logger.behaviour "PASS;ATS4 handling reconnection"
|
@@ -198,7 +198,7 @@ module MobyBehaviour
|
|
198
198
|
$logger.enabled = ( attributes[ :__logging ] == 'true' ? true : false )
|
199
199
|
|
200
200
|
# behaviour logging
|
201
|
-
$logger.behaviour "#{ ( result == true ? 'PASS' : 'FAIL' ) };#{ description };#{ (
|
201
|
+
$logger.behaviour "#{ ( result == true ? 'PASS' : 'FAIL' ) };#{ description };#{ ( sut? ? id.to_s : '' ) };test_object_exists?;"
|
202
202
|
|
203
203
|
# raise exception if neccessery
|
204
204
|
raise result if result.kind_of?( Exception )
|
@@ -21,43 +21,6 @@ module MobyCommand
|
|
21
21
|
|
22
22
|
class Application < MobyCommand::CommandData
|
23
23
|
|
24
|
-
=begin
|
25
|
-
attr_reader(
|
26
|
-
|
27
|
-
:command_type,
|
28
|
-
:application_name,
|
29
|
-
:application_uid,
|
30
|
-
:sut,
|
31
|
-
:application_arguments,
|
32
|
-
:events_to_listen,
|
33
|
-
:signals_to_listen,
|
34
|
-
:working_directory,
|
35
|
-
:flags,
|
36
|
-
:start_command,
|
37
|
-
|
38
|
-
:refresh_arguments,
|
39
|
-
:attribute_csv_string
|
40
|
-
|
41
|
-
|
42
|
-
:_arguments,
|
43
|
-
:_environment,
|
44
|
-
:_working_directory,
|
45
|
-
:_events_to_listen,
|
46
|
-
:_start_command,
|
47
|
-
:_application_uid,
|
48
|
-
:_application_name,
|
49
|
-
:_command,
|
50
|
-
:_application_name,
|
51
|
-
:_application_uid,
|
52
|
-
:_flags,
|
53
|
-
:_attribute_csv_string,
|
54
|
-
:_signals_to_listen,
|
55
|
-
:_sut,
|
56
|
-
:_refresh_args
|
57
|
-
|
58
|
-
)
|
59
|
-
=end
|
60
|
-
|
61
24
|
attr_reader :command_arguments
|
62
25
|
|
63
26
|
# TODO: document me
|
@@ -85,22 +48,6 @@ module MobyCommand
|
|
85
48
|
@_refresh_args = nil
|
86
49
|
@_attribute_csv_string = nil
|
87
50
|
@_checksum = nil
|
88
|
-
|
89
|
-
=begin
|
90
|
-
# store values from arguments
|
91
|
-
self.name( arguments[ :application_name ] )
|
92
|
-
self.uid( arguments[ :application_uid ] )
|
93
|
-
self.sut( arguments[ :sut ] )
|
94
|
-
self.arguments( arguments[ :arguments ] )
|
95
|
-
self.events_to_listen( arguments[ :events_to_listen ] )
|
96
|
-
self.signals_to_listen( arguments[ :signals_to_listen ] )
|
97
|
-
self.environment( arguments[ :environment ] )
|
98
|
-
self.working_directory( arguments[ :working_directory ] )
|
99
|
-
self.flags( arguments[ :flags ] )
|
100
|
-
self.start_command( arguments[ :start_command ] )
|
101
|
-
self.refresh_args( arguments[ :refresh_arguments ] )
|
102
|
-
self.attribute_filter( arguments[ :attribute_filter ] )
|
103
|
-
=end
|
104
51
|
|
105
52
|
# store values from arguments - call setter method only when required
|
106
53
|
arguments.each_pair{ | key, value |
|
@@ -195,7 +142,7 @@ module MobyCommand
|
|
195
142
|
# ArgumentError:: When sut is not nil or a SUT
|
196
143
|
def sut( sut )
|
197
144
|
|
198
|
-
|
145
|
+
sut.check_type [ MobyBase::SUT, NilClass ], 'wrong argument type $1 for SUT (expected $2)'
|
199
146
|
@_sut = sut
|
200
147
|
self
|
201
148
|
|
@@ -208,59 +155,59 @@ module MobyCommand
|
|
208
155
|
# Application:: This CommandData object
|
209
156
|
# == raises
|
210
157
|
# ArgumentError:: When app_name is not nil or a String
|
211
|
-
def name(
|
158
|
+
def name( name )
|
212
159
|
|
213
|
-
|
214
|
-
@_application_name =
|
160
|
+
name.check_type [ String, NilClass ], 'wrong argument type $1 for application name (expected $2)'
|
161
|
+
@_application_name = name
|
215
162
|
self
|
216
163
|
|
217
164
|
end
|
218
165
|
|
219
166
|
def arguments( arguments )
|
220
167
|
|
221
|
-
|
168
|
+
arguments.check_type [ String, NilClass ], 'wrong argument type $1 for application arguments (expected $2)'
|
222
169
|
@_arguments = arguments
|
223
170
|
|
224
171
|
end
|
225
172
|
|
226
173
|
def flags( flags )
|
227
174
|
|
228
|
-
|
175
|
+
flags.check_type [ Hash, NilClass ], 'wrong argument type $1 for application flags (expected $2)'
|
229
176
|
@_flags = flags
|
230
177
|
|
231
178
|
end
|
232
179
|
|
233
|
-
def environment(
|
180
|
+
def environment( env )
|
234
181
|
|
235
|
-
|
236
|
-
@_environment =
|
182
|
+
env.check_type [ String, NilClass ], 'wrong argument type $1 for application environment (expected $2)'
|
183
|
+
@_environment = env
|
237
184
|
|
238
185
|
end
|
239
186
|
|
240
|
-
def working_directory(
|
187
|
+
def working_directory( dir )
|
241
188
|
|
242
|
-
|
243
|
-
@_working_directory =
|
189
|
+
dir.check_type [ String, NilClass ], 'wrong argument type $1 for application working directory (expected $2)'
|
190
|
+
@_working_directory = dir
|
244
191
|
|
245
192
|
end
|
246
193
|
|
247
194
|
def events_to_listen( events )
|
248
195
|
|
249
|
-
|
196
|
+
events.check_type [ String, NilClass ], 'wrong argument type $1 for events to be listened (expected $2)'
|
250
197
|
@_events_to_listen = events
|
251
198
|
|
252
199
|
end
|
253
200
|
|
254
201
|
def signals_to_listen( signals )
|
255
202
|
|
256
|
-
|
203
|
+
signals.check_type [ String, NilClass ], 'wrong argument type $1 for signals to be listened (expected $2)'
|
257
204
|
@_signals_to_listen = signals
|
258
205
|
|
259
206
|
end
|
260
207
|
|
261
208
|
def start_command( start_command )
|
262
209
|
|
263
|
-
|
210
|
+
start_command.check_type [ String, NilClass ], 'wrong argument type $1 for application start command (expected $2)'
|
264
211
|
@_start_command = start_command
|
265
212
|
|
266
213
|
end
|
@@ -272,9 +219,10 @@ module MobyCommand
|
|
272
219
|
# Application:: This CommandData object
|
273
220
|
# == raises
|
274
221
|
# ArgumentError:: When app_name is not nil or a String
|
275
|
-
def uid( app_uid )
|
222
|
+
def uid( app_uid )
|
223
|
+
|
224
|
+
app_uid.check_type [ Fixnum, String, NilClass ], 'wrong argument type $1 for application UID (expected $2)'
|
276
225
|
|
277
|
-
raise ArgumentError.new( "The given application uid must be nil, a String or an Integer." ) unless app_uid == nil || app_uid.kind_of?( String ) || app_uid.kind_of?( Fixnum )
|
278
226
|
@_application_uid = app_uid
|
279
227
|
@_application_uid = @_application_uid.to_i unless @_application_uid == nil
|
280
228
|
self
|
@@ -322,213 +270,5 @@ module MobyCommand
|
|
322
270
|
|
323
271
|
end
|
324
272
|
|
325
|
-
=begin
|
326
|
-
|
327
|
-
class Application < MobyCommand::CommandData
|
328
|
-
|
329
|
-
#Application command types
|
330
|
-
#Launch application = :Run
|
331
|
-
#Close application = :Close
|
332
|
-
#List of running applications = :List
|
333
|
-
#Current state of the UI = :State
|
334
|
-
#Kill = :Kill
|
335
|
-
#Kill All = :KillAll
|
336
|
-
#
|
337
|
-
# Constructs a new Application CommandData object
|
338
|
-
# == params
|
339
|
-
# command_type:: (optional) Symbol, defines the command to perform on the application
|
340
|
-
# app_name:: (optional) String, name of application to perform this command on
|
341
|
-
# app_uid::
|
342
|
-
# sut:: (optional) SUT, creator of the command. Can be used to access parameters when creating messages.
|
343
|
-
# arguments:: (optional) Arguments given to the application on start up. Comma separated list if more the one.
|
344
|
-
# environment:: (optional) Environment given to the application on start up. Comma separated list if more the one.
|
345
|
-
# working_directory:: (optional) Working directory for the application (not used on Symbian)
|
346
|
-
# == returns
|
347
|
-
# Application:: New CommandData object
|
348
|
-
# == raises
|
349
|
-
# ArgumentError:: When the supplied command_type is invalid.
|
350
|
-
def initialize( command_type = nil, app_name = nil, app_uid = nil, sut = nil, arguments = nil, environment = nil, working_directory = nil, events_to_listen = nil, signals_to_listen = nil, flags = nil, start_command = nil)
|
351
|
-
# Set status value to nil (not executed)
|
352
|
-
|
353
|
-
self.command( command_type )
|
354
|
-
self.name( app_name )
|
355
|
-
self.uid( app_uid )
|
356
|
-
self.sut( sut )
|
357
|
-
self.arguments( arguments )
|
358
|
-
self.events_to_listen( events_to_listen )
|
359
|
-
self.signals_to_listen( signals_to_listen )
|
360
|
-
self.environment( environment )
|
361
|
-
self.working_directory( working_directory )
|
362
|
-
self.flags( flags )
|
363
|
-
self.start_command( start_command )
|
364
|
-
self.refresh_args
|
365
|
-
|
366
|
-
@_attribute_csv_string = nil
|
367
|
-
|
368
|
-
self
|
369
|
-
|
370
|
-
end
|
371
|
-
|
372
|
-
# Store the args for possible future use
|
373
|
-
def refresh_args(refresh_args={})
|
374
|
-
@_refresh_args = refresh_args
|
375
|
-
end
|
376
|
-
|
377
|
-
def get_refresh_args
|
378
|
-
@_refresh_args
|
379
|
-
end
|
380
|
-
|
381
|
-
|
382
|
-
# Defines the type of command this Application CommandData object represents
|
383
|
-
# == params
|
384
|
-
# command_type:: Symbol, defines the command to perform on the application
|
385
|
-
# == returns
|
386
|
-
# Application:: This CommandData object
|
387
|
-
# == raises
|
388
|
-
# ArgumentError:: When the supplied command_type is invalid.
|
389
|
-
def command( command_type )
|
390
|
-
|
391
|
-
@_command = command_type
|
392
|
-
self
|
393
|
-
|
394
|
-
end
|
395
|
-
|
396
|
-
# Defines the used SUT to be able to access parameters when creating messages
|
397
|
-
# == params
|
398
|
-
# sut:: SUT, creator of the command.
|
399
|
-
# == returns
|
400
|
-
# Application:: This CommandData object
|
401
|
-
# == raises
|
402
|
-
# ArgumentError:: When sut is not nil or a SUT
|
403
|
-
def sut( sut )
|
404
|
-
|
405
|
-
raise ArgumentError.new( "The given sut must be nil or a SUT." ) unless sut == nil || sut.kind_of?( MobyBase::SUT )
|
406
|
-
@_sut = sut
|
407
|
-
self
|
408
|
-
|
409
|
-
end
|
410
|
-
|
411
|
-
# Defines the name of the application this Application CommandData object is associated with
|
412
|
-
# == params
|
413
|
-
# app_name:: String, name of application to perform this command on
|
414
|
-
# == returns
|
415
|
-
# Application:: This CommandData object
|
416
|
-
# == raises
|
417
|
-
# ArgumentError:: When app_name is not nil or a String
|
418
|
-
def name( app_name )
|
419
|
-
|
420
|
-
raise ArgumentError.new( "The given application name must be nil or a String." ) unless app_name == nil || app_name.kind_of?( String )
|
421
|
-
@_application_name = app_name
|
422
|
-
self
|
423
|
-
|
424
|
-
end
|
425
|
-
|
426
|
-
def arguments( arguments )
|
427
|
-
|
428
|
-
raise ArgumentError.new( "The given application arguments must be nil or a String." ) unless arguments == nil || arguments.kind_of?( String )
|
429
|
-
@_arguments = arguments
|
430
|
-
|
431
|
-
end
|
432
|
-
|
433
|
-
def flags( flags )
|
434
|
-
|
435
|
-
raise ArgumentError.new( "The given application flags must be nil or a Hash." ) unless flags == nil || flags.kind_of?( Hash )
|
436
|
-
@_flags = flags
|
437
|
-
|
438
|
-
end
|
439
|
-
|
440
|
-
def environment( environment )
|
441
|
-
|
442
|
-
raise ArgumentError.new( "The given application environment must be nil or a String." ) unless environment == nil || environment.kind_of?( String )
|
443
|
-
@_environment = environment
|
444
|
-
|
445
|
-
end
|
446
|
-
|
447
|
-
def working_directory( working_directory )
|
448
|
-
|
449
|
-
raise ArgumentError.new( "The given application working directory must be nil or a String." ) unless working_directory == nil || working_directory.kind_of?( String )
|
450
|
-
@_working_directory = working_directory
|
451
|
-
|
452
|
-
end
|
453
|
-
|
454
|
-
def events_to_listen( events )
|
455
|
-
|
456
|
-
raise ArgumentError.new( "The events to listen must be nil or a String." ) unless events == nil || events.kind_of?( String )
|
457
|
-
@_events_to_listen = events
|
458
|
-
|
459
|
-
end
|
460
|
-
|
461
|
-
def signals_to_listen( signals )
|
462
|
-
|
463
|
-
raise ArgumentError.new( "The signals to listen must be nil or a String." ) unless signals == nil || signals.kind_of?( String )
|
464
|
-
@_signals_to_listen = signals
|
465
|
-
|
466
|
-
end
|
467
|
-
|
468
|
-
def start_command( start_command )
|
469
|
-
|
470
|
-
raise ArgumentError.new( "The start_command must be nil or a String." ) unless start_command == nil || start_command.kind_of?( String )
|
471
|
-
@_start_command = start_command
|
472
|
-
|
473
|
-
end
|
474
|
-
|
475
|
-
# Defines the uid of the application this Application CommandData object is associated with
|
476
|
-
# == params
|
477
|
-
# app_uid:: FixNum, uid of application to perform this command on
|
478
|
-
# == returns
|
479
|
-
# Application:: This CommandData object
|
480
|
-
# == raises
|
481
|
-
# ArgumentError:: When app_name is not nil or a String
|
482
|
-
def uid( app_uid )
|
483
|
-
|
484
|
-
raise ArgumentError.new( "The given application uid must be nil, a String or an Integer." ) unless app_uid == nil || app_uid.kind_of?( String ) || app_uid.kind_of?( Fixnum )
|
485
|
-
@_application_uid = app_uid
|
486
|
-
@_application_uid = @_application_uid.to_i unless @_application_uid == nil
|
487
|
-
self
|
488
|
-
|
489
|
-
end
|
490
|
-
|
491
|
-
def get_command
|
492
|
-
|
493
|
-
@_command
|
494
|
-
|
495
|
-
end
|
496
|
-
|
497
|
-
def get_application
|
498
|
-
|
499
|
-
@_application_name
|
500
|
-
|
501
|
-
end
|
502
|
-
|
503
|
-
def get_uid
|
504
|
-
|
505
|
-
@_application_uid
|
506
|
-
|
507
|
-
end
|
508
|
-
|
509
|
-
def get_flags
|
510
|
-
|
511
|
-
@_flags
|
512
|
-
|
513
|
-
end
|
514
|
-
|
515
|
-
def attribute_filter(attribute_string)
|
516
|
-
|
517
|
-
@_attribute_csv_string = attribute_string
|
518
|
-
|
519
|
-
end
|
520
|
-
|
521
|
-
def get_attribute_filter
|
522
|
-
|
523
|
-
@_attribute_csv_string
|
524
|
-
|
525
|
-
end
|
526
|
-
|
527
|
-
# enable hooking for performance measurement & debug logging
|
528
|
-
TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
|
529
|
-
|
530
|
-
end # Application
|
531
|
-
=end
|
532
|
-
|
533
273
|
end # MobyCommand
|
534
274
|
|
@@ -33,7 +33,7 @@ module MobyCommand
|
|
33
33
|
#TODO: Review comment (OR): @sequence -> @_sequence?
|
34
34
|
@sequence = [] # Array.new( 0 )
|
35
35
|
#@_sut = sut
|
36
|
-
|
36
|
+
append!( key_symbol, type_symbol ) unless key_symbol.nil?
|
37
37
|
end
|
38
38
|
|
39
39
|
# Function to append a keypress with type to KeySequence.sequence array
|
data/lib/tdriver/base/sut/sut.rb
CHANGED
@@ -86,7 +86,7 @@ module MobyBase
|
|
86
86
|
# TODO: document me
|
87
87
|
def inspect
|
88
88
|
|
89
|
-
"#<#{ self.class }:0x#{ ( "%x" % (
|
89
|
+
"#<#{ self.class }:0x#{ ( "%x" % ( object_id.to_i << 1 ) )[ 3 .. -1 ] } @id=#{ @id.inspect } @input=\"#{ @input }\" @type=\"#{ @type }\" @ui_type=\"#{ @ui_type }\" @ui_version=\"#{ @ui_version }\">"
|
90
90
|
|
91
91
|
end
|
92
92
|
|
@@ -188,7 +188,7 @@ module MobyBase
|
|
188
188
|
# TODO: document me
|
189
189
|
def inspect
|
190
190
|
|
191
|
-
"#<#{ self.class }:0x#{ ( "%x" % (
|
191
|
+
"#<#{ self.class }:0x#{ ( "%x" % ( object_id.to_i << 1 ) )[ 3 .. -1 ] } @id=\"#{ @id }\" @name=\"#{ @name }\" @parent=#{ @parent.inspect } @sut=#{ @sut.inspect } @type=\"#{ @type }\" @x_path=\"#{ @x_path }\">"
|
192
192
|
|
193
193
|
end
|
194
194
|
|
@@ -111,10 +111,10 @@ module MobyBehaviour
|
|
111
111
|
:identification_directives => dynamic_attributes.default_values(
|
112
112
|
:__timeout => timeout,
|
113
113
|
:__retry_interval => retry_interval,
|
114
|
-
:__refresh_arguments =>
|
115
|
-
:__parent_application =>
|
114
|
+
:__refresh_arguments => kind_of?( MobyBase::SUT ) ? attributes : { :id => get_application_id },
|
115
|
+
:__parent_application => sut? == true ? nil : @parent_application
|
116
116
|
),
|
117
|
-
:parent => self
|
117
|
+
:parent => self
|
118
118
|
)
|
119
119
|
|
120
120
|
rescue MobyBase::TestObjectNotFoundError
|