testability-driver 1.3.1 → 1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|