testability-driver 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. data/lib/tdriver-devtools/behaviour/xml/rdoc_behaviour_xml_generator.rb +2 -2
  2. data/lib/tdriver-devtools/tdriver-devtools.rb +1 -1
  3. data/lib/tdriver-devtools/tests/feature_tests/lib/custom_rdoc_generator.rb +3 -3
  4. data/lib/tdriver/base/behaviour/behaviours/object_behaviour_composition.rb +6 -1
  5. data/lib/tdriver/base/behaviour/behaviours/object_behaviour_description.rb +5 -3
  6. data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +1 -1
  7. data/lib/tdriver/base/behaviour/factory.rb +225 -225
  8. data/lib/tdriver/base/errors.rb +1 -1
  9. data/lib/tdriver/base/state_object.rb +227 -179
  10. data/lib/tdriver/base/sut/controller.rb +2 -2
  11. data/lib/tdriver/base/sut/factory.rb +190 -182
  12. data/lib/tdriver/base/sut/generic/behaviours/application.rb +69 -25
  13. data/lib/tdriver/base/sut/generic/behaviours/controller.rb +1 -1
  14. data/lib/tdriver/base/sut/generic/behaviours/find.rb +4 -4
  15. data/lib/tdriver/base/sut/generic/behaviours/flash_behaviour.rb +3 -3
  16. data/lib/tdriver/base/sut/generic/behaviours/sut.rb +350 -165
  17. data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +9 -9
  18. data/lib/tdriver/base/sut/generic/behaviours/verification.rb +191 -103
  19. data/lib/tdriver/base/sut/generic/commands/application.rb +1 -1
  20. data/lib/tdriver/base/sut/generic/commands/key_sequence.rb +1 -1
  21. data/lib/tdriver/base/sut/generic/commands/screen_capture.rb +1 -1
  22. data/lib/tdriver/base/sut/generic/plugin.rb +1 -1
  23. data/lib/tdriver/base/sut/sut.rb +5 -1
  24. data/lib/tdriver/base/test_object/abstract.rb +136 -151
  25. data/lib/tdriver/base/test_object/adapter.rb +293 -82
  26. data/lib/tdriver/base/test_object/behaviours/syncronization.rb +20 -17
  27. data/lib/tdriver/base/test_object/behaviours/test_object.rb +159 -532
  28. data/lib/tdriver/base/test_object/cache.rb +1 -1
  29. data/lib/tdriver/base/test_object/factory.rb +254 -605
  30. data/lib/tdriver/base/test_object/identificator.rb +1 -1
  31. data/lib/tdriver/base/test_object/loader.rb +1 -1
  32. data/lib/tdriver/base/test_object/verification.rb +17 -17
  33. data/lib/tdriver/loader.rb +20 -9
  34. data/lib/tdriver/report/report.rb +5 -0
  35. data/lib/tdriver/report/report_creator.rb +2 -2
  36. data/lib/tdriver/report/report_cucumber_listener.rb +4 -4
  37. data/lib/tdriver/report/report_cucumber_reporter.rb +4 -4
  38. data/lib/tdriver/report/report_execution_statistics.rb +22 -22
  39. data/lib/tdriver/report/report_grouping.rb +2 -2
  40. data/lib/tdriver/report/report_javascript.rb +11 -4
  41. data/lib/tdriver/report/report_test_case_run.rb +2 -2
  42. data/lib/tdriver/report/report_test_run.rb +5 -5
  43. data/lib/tdriver/report/report_test_unit.rb +74 -26
  44. data/lib/tdriver/report/report_writer.rb +70 -13
  45. data/lib/tdriver/tdriver.rb +17 -8
  46. data/lib/tdriver/util/common/array.rb +1 -1
  47. data/lib/tdriver/util/common/crc16.rb +1 -1
  48. data/lib/tdriver/util/common/environment.rb +1 -1
  49. data/lib/tdriver/util/common/file.rb +18 -9
  50. data/lib/tdriver/util/common/gem.rb +1 -1
  51. data/lib/tdriver/util/common/hash.rb +21 -0
  52. data/lib/tdriver/util/common/kernel.rb +1 -1
  53. data/lib/tdriver/util/common/loader.rb +5 -2
  54. data/lib/tdriver/util/common/numeric.rb +54 -3
  55. data/lib/tdriver/util/common/retryable.rb +30 -12
  56. data/lib/tdriver/util/common/stackable.rb +185 -0
  57. data/lib/tdriver/util/common/string.rb +21 -5
  58. data/lib/tdriver/util/{dbaccess/dbaccess.rb → database/access.rb} +4 -1
  59. data/lib/tdriver/util/{dbaccess/dbconnection.rb → database/connection.rb} +3 -0
  60. data/lib/tdriver/util/{dbaccess → database}/error.rb +0 -1
  61. data/lib/tdriver/util/{dbaccess → database}/loader.rb +5 -6
  62. data/lib/tdriver/util/{dynamic_attribute_filter.rb → filters/dynamic_attributes.rb} +1 -1
  63. data/lib/tdriver/util/hooking/hooking.rb +477 -0
  64. data/lib/tdriver/util/loader.rb +35 -29
  65. data/lib/tdriver/util/localisation/error.rb +0 -1
  66. data/lib/tdriver/util/localisation/loader.rb +1 -4
  67. data/lib/tdriver/util/localisation/localisation.rb +30 -27
  68. data/lib/tdriver/util/{common.rb → logger/loader.rb} +2 -4
  69. data/lib/tdriver/util/logger/logger.rb +574 -0
  70. data/lib/tdriver/util/operator_data/loader.rb +4 -3
  71. data/lib/tdriver/util/operator_data/operator_data.rb +5 -5
  72. data/lib/tdriver/util/parameter/parameter.rb +7 -1
  73. data/lib/tdriver/util/parameter/parameter_hash.rb +1 -1
  74. data/lib/tdriver/util/parameter/parameter_template.rb +1 -1
  75. data/lib/tdriver/util/parameter/parameter_user_api.rb +28 -20
  76. data/lib/tdriver/util/parameter/parameter_xml.rb +1 -1
  77. data/lib/tdriver/util/plugin/abstract.rb +1 -1
  78. data/lib/tdriver/util/plugin/service.rb +1 -1
  79. data/lib/tdriver/util/{localisation.rb → recorder/loader.rb} +4 -3
  80. data/lib/tdriver/util/recorder/recorder.rb +66 -0
  81. data/lib/tdriver/util/recorder/scripter.rb +258 -0
  82. data/lib/tdriver/util/{stats.rb → statistics/statistics.rb} +7 -8
  83. data/lib/tdriver/util/user_data/error.rb +0 -1
  84. data/lib/tdriver/util/user_data/loader.rb +1 -2
  85. data/lib/tdriver/util/user_data/user_data.rb +6 -6
  86. data/lib/tdriver/util/video/camera.rb +67 -0
  87. data/lib/tdriver/util/video/camera_linux.rb +139 -0
  88. data/lib/tdriver/util/video/camera_windows.rb +174 -0
  89. data/lib/tdriver/util/video/loader.rb +31 -0
  90. data/lib/tdriver/util/video/video_utils.rb +139 -0
  91. data/lib/tdriver/util/xml/abstraction.rb +56 -5
  92. data/lib/tdriver/util/xml/builder.rb +2 -5
  93. data/lib/tdriver/util/{parameter.rb → xml/comment.rb} +10 -2
  94. data/lib/tdriver/util/xml/loader.rb +32 -22
  95. data/lib/tdriver/util/xml/nil_node.rb +2 -2
  96. data/lib/tdriver/util/xml/parsers/loader.rb +0 -1
  97. data/lib/tdriver/util/xml/parsers/nokogiri/abstraction.rb +18 -44
  98. data/lib/tdriver/util/xml/parsers/nokogiri/attribute.rb +9 -13
  99. data/lib/tdriver/util/xml/parsers/nokogiri/builder.rb +9 -3
  100. data/lib/tdriver/util/xml/parsers/nokogiri/comment.rb +39 -0
  101. data/lib/tdriver/util/xml/parsers/nokogiri/document.rb +6 -11
  102. data/lib/tdriver/util/xml/parsers/nokogiri/element.rb +2 -122
  103. data/lib/tdriver/util/xml/parsers/nokogiri/loader.rb +26 -16
  104. data/lib/tdriver/util/xml/parsers/nokogiri/node.rb +203 -0
  105. data/lib/tdriver/util/xml/parsers/nokogiri/nodeset.rb +1 -2
  106. data/lib/tdriver/util/xml/parsers/nokogiri/text.rb +2 -20
  107. data/lib/tdriver/util/xml/xml.rb +52 -20
  108. data/lib/tdriver/verify/verify.rb +238 -81
  109. data/xml/behaviours/generic.xml +12 -10
  110. metadata +156 -180
  111. data/lib/tdriver/base/test_object/factory_new.rb +0 -202
  112. data/lib/tdriver/util/hooking.rb +0 -434
  113. data/lib/tdriver/util/logger.rb +0 -506
  114. data/lib/tdriver/util/recorder.rb +0 -297
  115. data/lib/tdriver/util/video_utils.rb +0 -384
  116. data/lib/tdriver/util/xml/nil_element.rb +0 -89
@@ -117,7 +117,6 @@ module MobyUtil
117
117
  @xml.empty?
118
118
 
119
119
  end
120
-
121
120
 
122
121
  def length
123
122
 
@@ -188,7 +187,7 @@ module MobyUtil
188
187
  end
189
188
 
190
189
  # enable hooking for performance measurement & debug logging
191
- MobyUtil::Hooking.instance.hook_methods( self ) if defined?( MobyUtil::Hooking )
190
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
192
191
 
193
192
  end # Nodeset
194
193
 
@@ -25,28 +25,10 @@ module MobyUtil
25
25
 
26
26
  module Text # behaviour
27
27
 
28
- include Abstraction
29
-
30
- def parent
31
-
32
- element_object( @xml.parent )
33
-
34
- end
35
-
36
- def to_s
37
-
38
- @xml.content
39
-
40
- end
41
-
42
- def content
43
-
44
- @xml.content
45
-
46
- end
28
+ include Node
47
29
 
48
30
  # enable hooking for performance measurement & debug logging
49
- MobyUtil::Hooking.instance.hook_methods( self ) if defined?( MobyUtil::Hooking )
31
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
50
32
 
51
33
  end # Element
52
34
 
@@ -21,10 +21,6 @@ module MobyUtil
21
21
 
22
22
  module XML
23
23
 
24
- # default values
25
- #@@parser = MobyUtil::XML::LibXML
26
- @@parser = MobyUtil::XML::Nokogiri
27
-
28
24
  # Get current XML parser
29
25
  # == params
30
26
  # == return
@@ -45,9 +41,32 @@ module MobyUtil
45
41
  # == raises
46
42
  def self.current_parser=( value )
47
43
 
44
+ #raise RuntimeError, "Parser can be set only once per session" unless defined?( @@parser )
45
+
46
+ # set current parser
48
47
  @@parser = value
49
48
 
50
- nil
49
+ # apply parser implementation to abstraction modules
50
+ [
51
+ MobyUtil::XML::Document,
52
+ MobyUtil::XML::Element,
53
+ MobyUtil::XML::Nodeset,
54
+ MobyUtil::XML::Attribute,
55
+ MobyUtil::XML::Text,
56
+ MobyUtil::XML::Builder,
57
+ MobyUtil::XML::Comment ].each do | _module |
58
+
59
+ _module.module_exec{
60
+
61
+ # include parser implementation to abstraction modules
62
+ include MobyUtil::KernelHelper.get_constant( "#{ @@parser }::#{ _module.name.split('::').last }")
63
+
64
+ }
65
+
66
+ end
67
+
68
+ # return current parser as result
69
+ value
51
70
 
52
71
  end
53
72
 
@@ -65,7 +84,7 @@ module MobyUtil
65
84
 
66
85
  begin
67
86
 
68
- MobyUtil::XML::Document.new( nil, @@parser ).extend( @@parser::Document ).tap{ | document |
87
+ MobyUtil::XML::Document.new( nil ).tap{ | document |
69
88
 
70
89
  # parse given string
71
90
  document.xml = document.parse( xml_string )
@@ -80,37 +99,48 @@ module MobyUtil
80
99
  dump_location = ""
81
100
 
82
101
  # check if xml parse error logging is enabled
83
- if MobyUtil::KernelHelper.to_boolean( MobyUtil::Parameter[ :logging_xml_parse_error_dump ] )
102
+ if $parameters[ :logging_xml_parse_error_dump, 'true' ].to_s.to_boolean
103
+
104
+ # construct filename for xml dump
105
+ filename = 'xml_error_dump'
106
+
107
+ # add timestamp to filename if not overwriting the existing dump file
108
+ unless $parameters[ :logging_xml_parse_error_dump_overwrite, 'false' ].to_s.to_boolean
84
109
 
85
- # generate filename for xml dump
86
- filename = MobyUtil::KernelHelper.to_boolean( MobyUtil::Parameter[ :logging_xml_parse_error_dump_overwrite ] ) ? 'xml_error_dump.xml' : 'xml_error_dump_%i.xml' % Time.now
110
+ filename << "_#{ Time.now.to_i }"
111
+
112
+ end
113
+
114
+ # add file extension
115
+ filename << '.xml'
87
116
 
88
117
  # ... join filename with xml dump output path
89
- path = File.join( MobyUtil::FileHelper.expand_path( MobyUtil::Parameter[ :logging_xml_parse_error_dump_path ] ), filename )
118
+ path = File.join( MobyUtil::FileHelper.expand_path( $parameters[ :logging_xml_parse_error_dump_path ] ), filename )
90
119
 
91
120
  begin
92
121
 
93
122
  # write xml string to file
94
123
  File.open( path, "w" ){ | file | file << xml_string }
95
124
 
96
- dump_location = ". Saved to %s" % path
125
+ dump_location = "Saved to #{ path }"
97
126
 
98
127
  rescue
99
128
 
100
- dump_location = ". Error while saving to file %s" % path
129
+ dump_location = "Error while saving to file #{ path }"
101
130
 
102
131
  end
103
132
 
104
-
105
133
  end
106
134
 
107
135
  # raise exception
108
- Kernel::raise MobyUtil::XML::ParseError.new( "%s (%s)%s" % [ exception.message.gsub("\n", ''), exception.class, dump_location ] )
136
+ #Kernel::raise MobyUtil::XML::ParseError.new( "%s (%s)%s" % [ exception.message.gsub("\n", ''), exception.class, dump_location ] )
137
+ Kernel::raise MobyUtil::XML::ParseError, "#{ exception.message.gsub("\n", '') } (#{ exception.class }). #{ dump_location }"
109
138
 
110
139
  else
111
140
 
112
141
  # raise exception
113
- Kernel::raise MobyUtil::XML::ParseError.new( "%s (%s)" % [ exception.message.gsub("\n", ''), exception.class ] )
142
+ #Kernel::raise MobyUtil::XML::ParseError.new( "%s (%s)" % [ exception.message.gsub("\n", ''), exception.class ] )
143
+ Kernel::raise MobyUtil::XML::ParseError, "#{ exception.message.gsub("\n", '') } (#{ exception.class })"
114
144
 
115
145
  end
116
146
 
@@ -132,7 +162,7 @@ module MobyUtil
132
162
  def self.parse_file( filename )
133
163
 
134
164
  # raise exception if file not found
135
- Kernel::raise IOError.new( "File '%s' not found" % filename ) unless File.exist?( filename )
165
+ Kernel::raise IOError, "File #{ filename.inspect } not found" unless File.exist?( filename )
136
166
 
137
167
  self.parse_string( IO.read( filename ) )
138
168
 
@@ -160,7 +190,7 @@ module MobyUtil
160
190
 
161
191
  begin
162
192
 
163
- MobyUtil::XML::Builder.new.extend( @@parser::Builder ).tap{ | builder |
193
+ MobyUtil::XML::Builder.new.tap{ | builder |
164
194
 
165
195
  builder.build( &block )
166
196
 
@@ -168,16 +198,18 @@ module MobyUtil
168
198
 
169
199
  rescue Exception => exception
170
200
 
171
- Kernel::raise MobyUtil::XML::BuilderError.new( "%s (%s)" % [ exception.message, exception.class ] )
172
-
201
+ Kernel::raise MobyUtil::XML::BuilderError, "#{ exception.message } (#{ exception.class })"
173
202
 
174
203
  end
175
204
 
176
205
  end
177
206
 
178
207
  # enable hooking for performance measurement & debug logging
179
- MobyUtil::Hooking.instance.hook_methods( self ) if defined?( MobyUtil::Hooking )
208
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
180
209
 
181
210
  end # XML
182
211
 
183
212
  end # MobyUtil
213
+
214
+ # set used parser module
215
+ MobyUtil::XML.current_parser = MobyUtil::XML::Nokogiri
@@ -1,20 +1,20 @@
1
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
- ##
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
18
  ############################################################################
19
19
 
20
20
  module TDriverVerify
@@ -43,12 +43,12 @@ module TDriverVerify
43
43
 
44
44
  begin
45
45
 
46
- @@on_error_verify_block.call
46
+ @@on_error_verify_block.call
47
47
 
48
48
  rescue Exception => exception
49
49
 
50
- raise exception.class.new( "Exception was raised while executing on_error_verify_block. Reason: %s" % [ exception.message ])
51
-
50
+ raise exception.class.new( "Exception was raised while executing on_error_verify_block. Reason: %s" % [ exception.message ])
51
+
52
52
  end
53
53
 
54
54
  else
@@ -73,13 +73,14 @@ module TDriverVerify
73
73
 
74
74
  def verify( timeout = nil, message = nil, &block )
75
75
 
76
- logging_enabled = MobyUtil::Logger.instance.enabled
76
+ logging_enabled = $logger.enabled
77
77
 
78
78
  verify_caller = caller(1).first.to_s
79
79
 
80
80
  begin
81
81
 
82
- MobyUtil::Logger.instance.enabled = false
82
+ $logger.enabled = false
83
+
83
84
  Kernel::raise ArgumentError.new("No block was given.") unless block_given?
84
85
  Kernel::raise ArgumentError.new("Argument timeout was not an Integer.") unless timeout.nil? or timeout.kind_of?(Integer)
85
86
  Kernel::raise ArgumentError.new("Argument message was not a String.") unless message.nil? or message.kind_of?(String)
@@ -102,7 +103,7 @@ module TDriverVerify
102
103
  # no error => verification ok
103
104
  break
104
105
 
105
- rescue Exception => e
106
+ rescue Exception => e
106
107
 
107
108
  raise if e.kind_of? MobyBase::ContinuousVerificationError
108
109
 
@@ -119,8 +120,8 @@ module TDriverVerify
119
120
 
120
121
  rescue Exception
121
122
  # failed to load line from file, do nothing
122
- MobyUtil::Logger.instance.enabled = logging_enabled
123
- MobyUtil::Logger.instance.log "behaviour" , "WARNING;Failed to load source line: #{e.backtrace.inspect}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify;"
123
+ $logger.enabled = logging_enabled
124
+ $logger.log "behaviour" , "WARNING;Failed to load source line: #{e.backtrace.inspect}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify;"
124
125
  end
125
126
 
126
127
  if !source_contents.empty?
@@ -147,8 +148,8 @@ module TDriverVerify
147
148
 
148
149
  raise if e.kind_of? MobyBase::ContinuousVerificationError
149
150
 
150
- MobyUtil::Logger.instance.enabled = logging_enabled
151
- MobyUtil::Logger.instance.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed: #{e.to_s}#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify;"
151
+ $logger.enabled = logging_enabled
152
+ $logger.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed: #{e.to_s}#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify;"
152
153
  Kernel::raise e
153
154
 
154
155
  ensure
@@ -157,8 +158,8 @@ module TDriverVerify
157
158
 
158
159
  end
159
160
 
160
- MobyUtil::Logger.instance.enabled = logging_enabled
161
- MobyUtil::Logger.instance.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify;"
161
+ $logger.enabled = logging_enabled
162
+ $logger.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify;"
162
163
 
163
164
  return nil
164
165
 
@@ -178,11 +179,11 @@ module TDriverVerify
178
179
  # VerificationError:: The verification failed.
179
180
  def verify_not( timeout = nil, message = nil, &block )
180
181
 
181
- logging_enabled = MobyUtil::Logger.instance.enabled
182
+ logging_enabled = $logger.enabled
182
183
  verify_caller = caller(1).first.to_s
183
184
  begin
184
185
 
185
- MobyUtil::Logger.instance.enabled = false
186
+ $logger.enabled = false
186
187
  Kernel::raise ArgumentError.new("No block was given.") unless block_given?
187
188
  Kernel::raise ArgumentError.new("Argument timeout was not an Integer.") unless timeout.nil? or timeout.kind_of?(Integer)
188
189
  Kernel::raise ArgumentError.new("Argument message was not a String.") unless message.nil? or message.kind_of?(String)
@@ -242,8 +243,8 @@ module TDriverVerify
242
243
 
243
244
  raise if e.kind_of? MobyBase::ContinuousVerificationError
244
245
 
245
- MobyUtil::Logger.instance.enabled = logging_enabled
246
- MobyUtil::Logger.instance.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed: #{e.to_s}#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_not;"
246
+ $logger.enabled = logging_enabled
247
+ $logger.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed: #{e.to_s}#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_not;"
247
248
  Kernel::raise e
248
249
 
249
250
  ensure
@@ -252,8 +253,8 @@ module TDriverVerify
252
253
 
253
254
  end
254
255
 
255
- MobyUtil::Logger.instance.enabled = logging_enabled
256
- MobyUtil::Logger.instance.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_not;"
256
+ $logger.enabled = logging_enabled
257
+ $logger.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_not;"
257
258
  return nil
258
259
 
259
260
  end
@@ -272,11 +273,11 @@ module TDriverVerify
272
273
  # RuntimeError:: An unexpected error was encountered during verification.
273
274
  def verify_true( timeout = nil, message = nil, &block )
274
275
 
275
- logging_enabled = MobyUtil::Logger.instance.enabled
276
+ logging_enabled = $logger.enabled
276
277
  verify_caller = caller(1).first.to_s
277
278
 
278
279
  begin
279
- MobyUtil::Logger.instance.enabled = false
280
+ $logger.enabled = false
280
281
  Kernel::raise ArgumentError.new("No block was given.") unless block_given?
281
282
  Kernel::raise ArgumentError.new("Argument timeout was not an Integer.") unless timeout.nil? or timeout.kind_of?(Integer)
282
283
  Kernel::raise ArgumentError.new("Argument message was not a String.") unless message.nil? or message.kind_of?(String)
@@ -299,7 +300,7 @@ module TDriverVerify
299
300
 
300
301
  result = yield
301
302
 
302
- rescue Exception => e
303
+ rescue Exception => e
303
304
 
304
305
  #@@on_error_verify_block.call unless @@on_error_verify_block.nil?
305
306
 
@@ -316,12 +317,12 @@ module TDriverVerify
316
317
 
317
318
  unless result == true
318
319
 
319
- error_msg = "Verification #{message.nil? ? '' : '"' << message.to_s << '" '}at #{verify_caller} failed."
320
- error_msg << MobyUtil::KernelHelper.find_source(verify_caller)
320
+ error_msg = "Verification #{message.nil? ? '' : '"' << message.to_s << '" '}at #{verify_caller} failed."
321
+ error_msg << MobyUtil::KernelHelper.find_source(verify_caller)
321
322
 
322
- error_msg << "\nThe block did not return true. It returned: " << result.inspect
323
+ error_msg << "\nThe block did not return true. It returned: " << result.inspect
323
324
 
324
- raise MobyBase::VerificationError.new( error_msg )
325
+ raise MobyBase::VerificationError.new( error_msg )
325
326
 
326
327
  end
327
328
 
@@ -348,7 +349,7 @@ module TDriverVerify
348
349
 
349
350
  raise if e.kind_of? MobyBase::ContinuousVerificationError
350
351
 
351
- MobyUtil::Logger.instance.enabled = logging_enabled
352
+ $logger.enabled = logging_enabled
352
353
 
353
354
  # an unexpected error has occurred
354
355
  Kernel::raise RuntimeError.new("An unexpected error was encountered during verification:\n" << e.inspect )
@@ -359,15 +360,15 @@ module TDriverVerify
359
360
 
360
361
  rescue Exception => e
361
362
  raise if e.kind_of? MobyBase::ContinuousVerificationError
362
- MobyUtil::Logger.instance.enabled = logging_enabled
363
- MobyUtil::Logger.instance.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed:#{e.to_s}.\n#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_true;"
363
+ $logger.enabled = logging_enabled
364
+ $logger.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed:#{e.to_s}.\n#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_true;"
364
365
  Kernel::raise e
365
366
  ensure
366
367
  MobyBase::TestObjectFactory.instance.timeout = original_sync_timeout unless original_sync_timeout.nil?
367
368
  end
368
369
 
369
- MobyUtil::Logger.instance.enabled = logging_enabled
370
- MobyUtil::Logger.instance.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_true;"
370
+ $logger.enabled = logging_enabled
371
+ $logger.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_true;"
371
372
  return nil
372
373
 
373
374
  end
@@ -386,13 +387,13 @@ module TDriverVerify
386
387
  # RuntimeError:: An unexpected error was encountered during verification.
387
388
  def verify_false( timeout = nil, message = nil, &block )
388
389
 
389
- logging_enabled = MobyUtil::Logger.instance.enabled
390
+ logging_enabled = $logger.enabled
390
391
 
391
392
  verify_caller = caller(1).first.to_s
392
393
 
393
394
  begin
394
395
 
395
- MobyUtil::Logger.instance.enabled = false
396
+ $logger.enabled = false
396
397
 
397
398
  Kernel::raise ArgumentError.new("No block was given.") unless block_given?
398
399
 
@@ -423,7 +424,7 @@ module TDriverVerify
423
424
 
424
425
  error_msg = "Verification #{message.nil? ? '' : '"' << message.to_s << '" '}at #{verify_caller} failed:"
425
426
  error_msg << MobyUtil::KernelHelper.find_source(verify_caller)
426
- error_msg << "The block did not return false. It returned: " << result.inspect
427
+ error_msg << "The block did not return false. It returned: " << result.inspect
427
428
  raise MobyBase::VerificationError.new(error_msg) unless result == false
428
429
 
429
430
  # break loop if no exceptions thrown
@@ -445,7 +446,7 @@ module TDriverVerify
445
446
  rescue Exception => e
446
447
  raise if e.kind_of? MobyBase::ContinuousVerificationError
447
448
  # an unexpected error has occurred
448
- MobyUtil::Logger.instance.enabled = logging_enabled
449
+ $logger.enabled = logging_enabled
449
450
  Kernel::raise RuntimeError.new("An unexpected error was encountered during verification:\n" << e.inspect )
450
451
 
451
452
  end # begin, catch any VerificationErrors
@@ -458,8 +459,8 @@ module TDriverVerify
458
459
 
459
460
  raise if e.kind_of? MobyBase::ContinuousVerificationError
460
461
 
461
- MobyUtil::Logger.instance.enabled = logging_enabled
462
- MobyUtil::Logger.instance.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed:#{e.to_s}.\n #{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_false;"
462
+ $logger.enabled = logging_enabled
463
+ $logger.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed:#{e.to_s}.\n #{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_false;"
463
464
 
464
465
  Kernel::raise e
465
466
 
@@ -467,8 +468,8 @@ module TDriverVerify
467
468
  MobyBase::TestObjectFactory.instance.timeout = original_sync_timeout unless original_sync_timeout.nil?
468
469
  end
469
470
 
470
- MobyUtil::Logger.instance.enabled = logging_enabled
471
- MobyUtil::Logger.instance.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_false;"
471
+ $logger.enabled = logging_enabled
472
+ $logger.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_false;"
472
473
  return nil
473
474
 
474
475
  end
@@ -487,10 +488,10 @@ module TDriverVerify
487
488
  # VerificationError:: The verification failed.
488
489
  # RuntimeError:: An unexpected error was encountered during verification.
489
490
  def verify_equal( expected, timeout = nil, message = nil, &block )
490
- logging_enabled = MobyUtil::Logger.instance.enabled
491
+ logging_enabled = $logger.enabled
491
492
  verify_caller = caller(1).first.to_s
492
493
  begin
493
- MobyUtil::Logger.instance.enabled = false
494
+ $logger.enabled = false
494
495
  Kernel::raise ArgumentError.new("No block was given.") unless block_given?
495
496
  Kernel::raise ArgumentError.new("Argument timeout was not an Integer.") unless timeout.nil? or timeout.kind_of?(Integer)
496
497
  Kernel::raise ArgumentError.new("Argument message was not a String.") unless message.nil? or message.kind_of?(String)
@@ -521,7 +522,7 @@ module TDriverVerify
521
522
  if result != expected
522
523
  error_msg = "Verification #{message.nil? ? '' : '"' << message.to_s << '" '}at #{verify_caller} failed:"
523
524
  error_msg << MobyUtil::KernelHelper.find_source(verify_caller)
524
- error_msg << "\nThe block did not return #{expected.inspect}. It returned: " << result.inspect
525
+ error_msg << "\nThe block did not return #{expected.inspect}. It returned: " << result.inspect
525
526
  raise MobyBase::VerificationError.new(error_msg)
526
527
  end
527
528
  # break loop if no exceptions thrown
@@ -555,19 +556,159 @@ module TDriverVerify
555
556
 
556
557
  raise if e.kind_of? MobyBase::ContinuousVerificationError
557
558
 
558
- MobyUtil::Logger.instance.enabled = logging_enabled
559
- MobyUtil::Logger.instance.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed:#{e.to_s}.\n#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_equal;" << expected.to_s
559
+ $logger.enabled = logging_enabled
560
+ $logger.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed:#{e.to_s}.\n#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_equal;" << expected.to_s
560
561
  Kernel::raise e
561
562
  ensure
562
563
  MobyBase::TestObjectFactory.instance.timeout = original_sync_timeout unless original_sync_timeout.nil?
563
564
  end
564
565
 
565
- MobyUtil::Logger.instance.enabled = logging_enabled
566
- MobyUtil::Logger.instance.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_equal;" << expected.to_s
566
+ $logger.enabled = logging_enabled
567
+ $logger.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_equal;" << expected.to_s
567
568
  return nil
568
569
 
569
570
  end
570
571
 
572
+ # Verifies that the block given to return value matches with expected regular expression pattern. Verification is synchronized with all connected suts.
573
+ # If this method is called for a sut, synchronization is only done with that sut.
574
+ #
575
+ # === params
576
+ # expected:: Regular expression
577
+ # timeout:: (optional) Integer defining the amount of seconds during which the verification must pass.
578
+ # message:: (optional) A String that is displayed as additional information if the verification fails.
579
+ # === returns
580
+ # nil
581
+ # === raises
582
+ # ArgumentError:: message was not a String or timeout an integer, or no block was given.
583
+ # TypeError:: if block result not type of String.
584
+ # VerificationError:: The verification failed.
585
+ # RuntimeError:: An unexpected error was encountered during verification.
586
+ def verify_regexp( expected, timeout = nil, message = nil, &block )
587
+
588
+ logging_enabled = $logger.enabled
589
+
590
+ verify_caller = caller( 1 ).first.to_s
591
+
592
+ begin
593
+
594
+ raise ArgumentError, "No block was given." unless block_given?
595
+
596
+ # verify argument types
597
+ timeout.check_type [ Integer, NilClass ], "wrong argument type $1 for timeout (expected $2)"
598
+ message.check_type [ String, NilClass ], "wrong argument type $1 for message (expected $2)"
599
+ expected.check_type Regexp, "wrong argument type $1 for expected result (expected $2)"
600
+
601
+ $logger.enabled = false
602
+
603
+ #Set the testobject timeout to 0 for the duration of the verify call
604
+ original_sync_timeout = MobyBase::TestObjectFactory.instance.timeout
605
+
606
+ MobyBase::TestObjectFactory.instance.timeout = 0
607
+
608
+ timeout_time = get_end_time( timeout )
609
+
610
+ loop do
611
+
612
+ counter = ref_counter
613
+
614
+ # catch errors thrown due to verification results
615
+ begin
616
+
617
+ # catch errors thrown in the provided block
618
+ begin
619
+
620
+ # execute block
621
+ result = yield
622
+
623
+ rescue Exception
624
+
625
+ raise if $!.kind_of?( MobyBase::ContinuousVerificationError )
626
+
627
+ error_msg = "Verification #{ message.nil? ? '' : '"' << message.to_s << '" '}at #{ verify_caller } failed as an exception was thrown when the verification block was executed."
628
+
629
+ error_msg << MobyUtil::KernelHelper.find_source( verify_caller )
630
+
631
+ error_msg << "\nDetails: \n#{ $!.inspect }"
632
+
633
+ raise MobyBase::VerificationError, error_msg
634
+
635
+ end
636
+
637
+ # verify that result value is type of string
638
+ result.check_type String, "wrong variable type $1 for result (expected $2)"
639
+
640
+ # result verification
641
+ unless result =~ expected
642
+
643
+ error_msg = "Verification #{ message.nil? ? '' : '"' << message.to_s << '" '}at #{ verify_caller } failed:"
644
+
645
+ error_msg << MobyUtil::KernelHelper.find_source( verify_caller )
646
+
647
+ error_msg << "\nThe block did not match with pattern #{ expected.inspect }. It returned: #{ result.inspect }"
648
+
649
+ raise MobyBase::VerificationError, error_msg
650
+
651
+ end
652
+
653
+ # break loop if no exceptions thrown
654
+ break
655
+
656
+ rescue MobyBase::VerificationError
657
+
658
+ # refresh and retry unless timeout reached
659
+
660
+ raise $! if Time.new > timeout_time
661
+
662
+ sleep TIMEOUT_CYCLE_SECONDS
663
+
664
+ refresh_suts if counter == ref_counter
665
+
666
+ rescue MobyBase::ContinuousVerificationError
667
+
668
+ raise
669
+
670
+ rescue TypeError
671
+
672
+ raise $!
673
+
674
+ rescue Exception
675
+
676
+ raise if $!.kind_of?( MobyBase::ContinuousVerificationError )
677
+
678
+ # an unexpected error has occurred
679
+ raise RuntimeError, "An unexpected error was encountered during verification:\n#{ $!.inspect }"
680
+
681
+ end # begin, catch any VerificationErrors
682
+
683
+ end # do
684
+
685
+ rescue Exception
686
+
687
+ execute_on_error_verify_block unless @@on_error_verify_block.nil?
688
+
689
+ raise if $!.kind_of?( MobyBase::ContinuousVerificationError )
690
+
691
+ $logger.enabled = logging_enabled
692
+
693
+ $logger.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed:#{ $!.to_s }.\n#{ timeout.nil? ? '' : ' using timeout ' + timeout.to_s }.;#{ self.kind_of?( MobyBase::SUT ) ? "#{ self.id.to_s };sut" : ';' };{};verify_regexp;#{ expected.inspect }"
694
+
695
+ raise $!
696
+
697
+ ensure
698
+
699
+ MobyBase::TestObjectFactory.instance.timeout = original_sync_timeout
700
+
701
+ $logger.enabled = logging_enabled
702
+
703
+ end
704
+
705
+ $logger.log "behaviour", "PASS;Verification #{ message.nil? ? '' : '\"' << message << '\" ' }at #{ verify_caller } was successful#{ timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{ self.kind_of?( MobyBase::SUT ) ? "#{ self.id.to_s };sut" : ';'};{};verify_regexp;#{ expected.inspect }"
706
+
707
+ nil
708
+
709
+ end
710
+
711
+
571
712
  # Verifies that the given signal is emitted.
572
713
  #
573
714
  # === params
@@ -582,12 +723,12 @@ module TDriverVerify
582
723
  # VerificationError:: The verification failed.
583
724
  def verify_signal( timeout, signal_name, message = nil, &block )
584
725
 
585
- logging_enabled = MobyUtil::Logger.instance.enabled
726
+ logging_enabled = $logger.enabled
586
727
  verify_caller = caller(1).first.to_s
587
728
 
588
729
  begin
589
730
 
590
- MobyUtil::Logger.instance.enabled = false
731
+ $logger.enabled = false
591
732
 
592
733
  Kernel::raise ArgumentError.new("Argument timeout was not a non negative Integer.") unless (timeout.kind_of?(Integer) && timeout >= 0)
593
734
  Kernel::raise ArgumentError.new("Argument message was not a non empty String.") unless (message.nil? || (message.kind_of?(String) && !message.empty?))
@@ -601,7 +742,7 @@ module TDriverVerify
601
742
 
602
743
  error_msg = "Verification #{message.nil? ? '' : '"' << message.to_s << '" '}at #{verify_caller} failed:"
603
744
  error_msg << MobyUtil::KernelHelper.find_source(verify_caller)
604
- error_msg << "The signal #{signal_name} was not emitted in #{timeout} seconds."
745
+ error_msg << "The signal #{signal_name} was not emitted in #{timeout} seconds."
605
746
  error_msg << "\nNested exception:\n" << e.inspect
606
747
  Kernel::raise MobyBase::VerificationError.new(error_msg)
607
748
 
@@ -611,13 +752,13 @@ module TDriverVerify
611
752
 
612
753
  execute_on_error_verify_block unless @@on_error_verify_block.nil?
613
754
 
614
- MobyUtil::Logger.instance.enabled = logging_enabled
615
- MobyUtil::Logger.instance.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed: #{e.to_s} using timeout '#{timeout}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_signal;#{signal_name}"
755
+ $logger.enabled = logging_enabled
756
+ $logger.log "behaviour" , "FAIL;Verification #{message.nil? ? '' : '\"' << message << '\" '}failed: #{e.to_s} using timeout '#{timeout}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_signal;#{signal_name}"
616
757
  Kernel::raise e
617
758
  end
618
759
 
619
- MobyUtil::Logger.instance.enabled = logging_enabled
620
- MobyUtil::Logger.instance.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_signal;#{signal_name}"
760
+ $logger.enabled = logging_enabled
761
+ $logger.log "behaviour" , "PASS;Verification #{message.nil? ? '' : '\"' << message << '\" '}at #{verify_caller} was successful#{timeout.nil? ? '' : ' using timeout ' + timeout.to_s}.;#{self.kind_of?(MobyBase::SUT) ? self.id.to_s + ';sut' : ';'};{};verify_signal;#{signal_name}"
621
762
  return nil
622
763
 
623
764
  end
@@ -647,12 +788,14 @@ module TDriverVerify
647
788
  counter
648
789
  end
649
790
 
650
- # Refresh ui state inside verify
651
- def refresh_suts
652
- begin
653
- if self.kind_of? MobyBase::SUT
654
- appid = self.get_application_id
655
- if appid != "-1"
791
+ def verify_refresh(b_use_id=true)
792
+ if self.kind_of? MobyBase::SUT
793
+ begin
794
+ appid = self.get_application_id
795
+ rescue
796
+ appid='-1'
797
+ end
798
+ if appid != "-1" && b_use_id
656
799
  self.refresh({:id => appid})
657
800
  else
658
801
  self.refresh
@@ -660,21 +803,35 @@ module TDriverVerify
660
803
  else
661
804
  #refresh all connected suts
662
805
  MobyBase::SUTFactory.instance.connected_suts.each do |sut_id, sut_attributes|
663
- appid = sut_attributes[:sut].get_application_id
664
- if appid != "-1"
806
+ begin
807
+ appid = sut_attributes[:sut].get_application_id
808
+ rescue
809
+ appid='-1'
810
+ end
811
+ if appid != "-1" && b_use_id
665
812
  sut_attributes[:sut].refresh({:id => appid}) if sut_attributes[:is_connected]
666
813
  else
667
814
  sut_attributes[:sut].refresh if sut_attributes[:is_connected]
668
815
  end
669
816
  end
670
817
  end
818
+ end
671
819
 
820
+ # Refresh ui state inside verify
821
+ def refresh_suts
822
+ begin
823
+ verify_refresh
672
824
  # Ignore all availability errors
673
- rescue RuntimeError => e
674
- # This occurs when no applications are registered to sut
675
- if !(e.message =~ /no longer available/)
676
- # all other errors are passed up
677
- raise e
825
+ rescue RuntimeError, MobyBase::ApplicationNotAvailableError => e
826
+ begin
827
+ verify_refresh(false)
828
+ rescue RuntimeError, MobyBase::ApplicationNotAvailableError => e
829
+ # This occurs when no applications are registered to sut
830
+ if !(e.message =~ /no longer available/)
831
+ puts 'Raising exception'
832
+ # all other errors are passed up
833
+ raise e
834
+ end
678
835
  end
679
836
  end
680
837
  end