testability-driver 1.0.3 → 1.0.4

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.
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