cutedriver-qt-sut-plugin 2.0.0.20210120165900

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 (73) hide show
  1. checksums.yaml +7 -0
  2. data/env.rb +24 -0
  3. data/installer/extconf.rb +62 -0
  4. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin.rb +23 -0
  5. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/action.rb +157 -0
  6. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/application.rb +312 -0
  7. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/attribute.rb +300 -0
  8. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/behaviour.rb +214 -0
  9. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/configure_behaviour.rb +317 -0
  10. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_cpu.rb +145 -0
  11. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_gpu.rb +147 -0
  12. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_mem.rb +142 -0
  13. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_pwr.rb +146 -0
  14. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/events.rb +192 -0
  15. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/file_transfer.rb +375 -0
  16. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/find.rb +82 -0
  17. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/fixture.rb +214 -0
  18. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/fps.rb +189 -0
  19. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/gesture.rb +1039 -0
  20. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/infologger.rb +767 -0
  21. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/key_press.rb +166 -0
  22. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/locale_db.rb +157 -0
  23. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/method.rb +112 -0
  24. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/multitouch.rb +474 -0
  25. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/os.rb +100 -0
  26. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/qt_api_method.rb +148 -0
  27. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/record.rb +134 -0
  28. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/screen_capture.rb +279 -0
  29. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/settings.rb +302 -0
  30. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/sut.rb +840 -0
  31. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/synchronization.rb +257 -0
  32. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/treewidgetitemcolumn.rb +117 -0
  33. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/type_text.rb +97 -0
  34. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/view_item.rb +97 -0
  35. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/webkit.rb +272 -0
  36. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/widget.rb +877 -0
  37. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/action.rb +30 -0
  38. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/configure_command.rb +38 -0
  39. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/drag.rb +44 -0
  40. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/find_object.rb +67 -0
  41. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/group.rb +44 -0
  42. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/infologger_command.rb +38 -0
  43. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/qt.rb +171 -0
  44. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/tap.rb +54 -0
  45. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/version.rb +34 -0
  46. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/widget.rb +199 -0
  47. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/agent.rb +54 -0
  48. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/application.rb +192 -0
  49. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/configure_command.rb +53 -0
  50. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/find_object.rb +48 -0
  51. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/fixture.rb +65 -0
  52. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/group.rb +57 -0
  53. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/infologger_command.rb +53 -0
  54. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/key_sequence.rb +93 -0
  55. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/screen_capture.rb +53 -0
  56. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/tap.rb +62 -0
  57. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/version.rb +46 -0
  58. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/widget.rb +98 -0
  59. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/plugin.rb +200 -0
  60. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/adapter.rb +466 -0
  61. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/communication.rb +185 -0
  62. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/controller.rb +69 -0
  63. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/find_object_generator.rb +287 -0
  64. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/fixture_parameter.rb +77 -0
  65. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/message_composer.rb +370 -0
  66. data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/widget.rb +79 -0
  67. data/lib/testability-driver-qt-sut-plugin.rb +24 -0
  68. data/xml/behaviour/qt.xml +845 -0
  69. data/xml/defaults/sut_qt.xml +9 -0
  70. data/xml/keymap/qt.xml +321 -0
  71. data/xml/keymap/win.xml +174 -0
  72. data/xml/template/qt.xml +141 -0
  73. metadata +127 -0
@@ -0,0 +1,300 @@
1
+ ############################################################################
2
+ ##
3
+ ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
+ ## All rights reserved.
5
+ ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
+ ##
7
+ ## This file is part of TDriver.
8
+ ##
9
+ ## If you have questions regarding the use of this file, please contact
10
+ ## Nokia at testabilitydriver@nokia.com .
11
+ ##
12
+ ## This library is free software; you can redistribute it and/or
13
+ ## modify it under the terms of the GNU Lesser General Public
14
+ ## License version 2.1 as published by the Free Software Foundation
15
+ ## and appearing in the file LICENSE.LGPL included in the packaging
16
+ ## of this file.
17
+ ##
18
+ ############################################################################
19
+
20
+ module MobyBehaviour
21
+
22
+ module QT
23
+
24
+ # == description
25
+ # Behaviours for handling attributes
26
+ #
27
+ # == behaviour
28
+ # QtAttribute
29
+ #
30
+ # == requires
31
+ # testability-driver-qt-sut-plugin
32
+ #
33
+ # == input_type
34
+ # *
35
+ #
36
+ # == sut_type
37
+ # qt
38
+ #
39
+ # == sut_version
40
+ # *
41
+ #
42
+ # == objects
43
+ # *
44
+ #
45
+ module Attribute
46
+
47
+ include MobyBehaviour::QT::Behaviour
48
+
49
+ # == description
50
+ # Sets an attribute of the target object.
51
+ #
52
+ # == arguments
53
+ # attribute
54
+ # String
55
+ # description: Name of the attribute to be set as string
56
+ # example: "text"
57
+ #
58
+ # Symbol
59
+ # description: Name of the attribute to be set as symbol
60
+ # example: :text
61
+ #
62
+ # value
63
+ # String
64
+ # description: New value of the attribute.
65
+ # example: "Menu"
66
+ #
67
+ # Integer
68
+ # description: New value of the attribute.
69
+ # example: 200
70
+ #
71
+ # TrueClass
72
+ # description: New value of the attribute.
73
+ # example: true
74
+ #
75
+ # FalseClass
76
+ # description: New value of the attribute.
77
+ # example: false
78
+ #
79
+ # Date
80
+ # description: New value of the attribute.
81
+ # example: Date.today
82
+ #
83
+ # Time
84
+ # description: New value of the attribute.
85
+ # example: Time.now
86
+ #
87
+ # DateTime
88
+ # description: New value of the attribute.
89
+ # example: DateTime.now
90
+ #
91
+ # type
92
+ # String
93
+ # description: Type of the value. If this argument is not given, the type will be detected based on the class of the value argument.
94
+ # example: "QPoint"
95
+ # default: nil
96
+ #
97
+ # == tables
98
+ # attribute_types_table
99
+ # title: Valid type argument values
100
+ # |Type|Example|
101
+ # |QRect|'10,10,150,150'|
102
+ # |QPoint|'100,200'|
103
+ # |QSize|'50,80'|
104
+ # |QDate|'15.08.2009'|
105
+ # |QDateTime|'1373352400'|
106
+ #
107
+ # == returns
108
+ # NilClass
109
+ # description: Always returns nil
110
+ # example: nil
111
+ #
112
+ # == exceptions
113
+ # ArgumentError
114
+ # description: One of the arguments is not valid
115
+ # RuntimeError
116
+ # description: Setting of the attribute failed
117
+ def set_attribute( attribute, value, type = nil )
118
+
119
+ # verify attribute argument variable type
120
+ attribute.check_type [ Symbol, String ], 'wrong argument type $1 for attribute name (expected $2)'
121
+
122
+ # verify type argument variable type
123
+ type.check_type [ NilClass, String ], 'wrong argument type $1 for attribute type (expected $2)'
124
+
125
+ # convert symbol to string
126
+ attribute = attribute.to_s if attribute.kind_of?( Symbol )
127
+
128
+ # raise exception if attribute name was not given
129
+ attribute.not_empty 'attribute name cannot be be empty string'
130
+
131
+ type.not_empty 'argument type must be either nil or non empty string' if type.kind_of?( String )
132
+
133
+ # in qt_behaviour
134
+ command = command_params
135
+
136
+ command.transitions_off
137
+
138
+ command.command_name( 'SetAttribute' )
139
+
140
+ case type
141
+
142
+ when nil
143
+
144
+ # Implicit typing
145
+
146
+ # by class
147
+ if value.kind_of? Integer
148
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s.strip, 'attribute_type' => 'int'}
149
+
150
+ elsif value.kind_of? Date
151
+ temp_date = value.day.to_s << '.' << value.month.to_s << '.' << value.year.to_s
152
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => temp_date, 'attribute_type' => 'QDate' }
153
+
154
+ elsif value.kind_of? Time
155
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_i.to_s, 'attribute_type' => 'QDateTime' }
156
+
157
+ elsif value.kind_of? DateTime
158
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => Time.parse(value.to_s).to_i.to_s, 'attribute_type' => 'QDateTime' }
159
+
160
+ elsif value.kind_of? TrueClass
161
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s.downcase, 'attribute_type' => 'bool'}
162
+
163
+ elsif value.kind_of? FalseClass
164
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s.downcase, 'attribute_type' => 'bool'}
165
+
166
+ else
167
+ # by format
168
+ # if ( value.kind_of?( Integer ) || ( value.kind_of?( String ) && value.strip == value.strip.to_i.to_s ) )
169
+ if value.kind_of?( String ) && value.strip == value.strip.to_i.to_s
170
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s.strip, 'attribute_type' => 'int'}
171
+
172
+ elsif (value == true || value == false || (value.kind_of?(String) && (value.strip.downcase == "true" || value.strip.downcase == "false")))
173
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s.downcase, 'attribute_type' => 'bool'}
174
+
175
+ else
176
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s, 'attribute_type' => 'string'}
177
+
178
+ end
179
+
180
+ end
181
+
182
+ when "QRect"
183
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s, 'attribute_type' => 'QRect'}
184
+
185
+ when "QPoint"
186
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s, 'attribute_type' => 'QPoint'}
187
+
188
+ when "QSize"
189
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s, 'attribute_type' => 'QSize'}
190
+
191
+ when "QDateTime"
192
+
193
+ params = { 'attribute_name' => attribute.to_s, 'attribute_type' => 'QDateTime' }
194
+
195
+ if value.kind_of? String
196
+ params[ 'attribute_value' ] = value.to_s
197
+
198
+ elsif value.kind_of? Integer
199
+ params[ 'attribute_value' ] = value.to_s
200
+
201
+ elsif value.kind_of? Time
202
+ params[ 'attribute_value' ] = value.to_i.to_s
203
+
204
+ elsif value.kind_of? DateTime
205
+ params[ 'attribute_value' ] = Time.parse( value.to_s ).to_i.to_s
206
+
207
+ else
208
+ raise ArgumentError.new( "The value for QDateTime type attributes must be of type String, Integer, Time or DateTime, it was #{value.class.to_s}." )
209
+
210
+ end
211
+
212
+ when "QDate"
213
+
214
+ params = { 'attribute_name' => attribute.to_s, 'attribute_type' => 'QDate' }
215
+
216
+ if value.kind_of? String
217
+ params[ 'attribute_value' ] = value.to_s
218
+
219
+ elsif value.kind_of? Date
220
+ temp_date = value.day.to_s << '.' << value.month.to_s << '.' << value.year.to_s
221
+ params[ 'attribute_value' ] = temp_date
222
+
223
+ else
224
+ raise ArgumentError.new( "The value for QDate type attributes must be of type String or Date, it was #{value.class.to_s}." )
225
+
226
+ end
227
+
228
+ else
229
+
230
+ #puts "Unidentified.\nName: " << attribute.to_s << "\nValue: " << value.to_s << "\nType: " << type.to_s
231
+ params = { 'attribute_name' => attribute.to_s, 'attribute_value' => value.to_s, 'attribute_type' => type.to_s }
232
+
233
+ end
234
+
235
+ command.command_params( params )
236
+ command.service( 'objectManipulation' )
237
+ returnValue = @sut.execute_command( command )
238
+
239
+ returnValue = "OK"
240
+ begin
241
+ returnValue = @sut.execute_command( command )
242
+ rescue
243
+ $logger.behaviour "FAIL;Failed when calling method set_attribute with values attribute:#{attribute.to_s} value:#{value.to_s}.;#{identity};set_attribute;"
244
+ raise RuntimeError.new("Setting attribute '%s' to value '%s' failed with error: %s" % [attribute, value, returnValue])
245
+ end
246
+
247
+ $logger.behaviour "PASS;The method set_attribute was executed successfully with with values attribute:#{attribute.to_s} value:#{value.to_s}.;#{identity};set_attribute;"
248
+
249
+ nil
250
+
251
+
252
+ end
253
+
254
+ # == description
255
+ # Wrapper method to set test object's attribute value. See [link="#QtAttribute:set_attribute"]supported value argument types[/link] and [link="#attribute_types_table"]attribute types table[/link].\n\n
256
+ # Minimum number of required arguments is 2; attribute name and new value. Please see examples for correct call sequence.
257
+ #
258
+ # == arguments
259
+ # name
260
+ # String
261
+ # description: Attribute name
262
+ # example: "attribute_name"
263
+ # *arguments
264
+ # Array
265
+ # description: Attribute value and type
266
+ # example: ["0,0", "QPoint"]
267
+ #
268
+ # == returns
269
+ # NilClass
270
+ # description: -
271
+ # example: -
272
+ def []=( name, *arguments )
273
+
274
+ _argument_count = arguments.count
275
+
276
+ if _argument_count == 0 || _argument_count > 2
277
+
278
+ raise ArgumentError, "wrong number of arguments (#{ _argument_count } of 2)"
279
+
280
+ elsif _argument_count == 2
281
+
282
+ # set_attribute( name, arguments.last, arguments.first )
283
+ arguments.reverse!
284
+
285
+ end
286
+
287
+ # do magic
288
+ set_attribute( name, *arguments )
289
+
290
+ nil
291
+
292
+ end
293
+
294
+ # enable hooking for performance measurement & debug logging
295
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
296
+
297
+ end
298
+
299
+ end
300
+ end
@@ -0,0 +1,214 @@
1
+ ############################################################################
2
+ ##
3
+ ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
+ ## All rights reserved.
5
+ ## Contact: Nokia Corporation (testabilitydriver@nokia.com)
6
+ ##
7
+ ## This file is part of TDriver.
8
+ ##
9
+ ## If you have questions regarding the use of this file, please contact
10
+ ## Nokia at testabilitydriver@nokia.com .
11
+ ##
12
+ ## This library is free software; you can redistribute it and/or
13
+ ## modify it under the terms of the GNU Lesser General Public
14
+ ## License version 2.1 as published by the Free Software Foundation
15
+ ## and appearing in the file LICENSE.LGPL included in the packaging
16
+ ## of this file.
17
+ ##
18
+ ############################################################################
19
+
20
+ module MobyBehaviour
21
+
22
+ module QT
23
+
24
+ # == description
25
+ # Base behaviour
26
+ #
27
+ # == behaviour
28
+ # QtBehaviour
29
+ #
30
+ # == requires
31
+ # sut_qt
32
+ #
33
+ # == sut_type
34
+ # qt
35
+ #
36
+ # == input_type
37
+ # All
38
+ #
39
+ # == sut_version
40
+ # *
41
+ #
42
+ # == objects
43
+ # sut;application
44
+ #
45
+ module Behaviour
46
+
47
+ include MobyBehaviour::Behaviour
48
+
49
+ @@_valid_buttons = [ :NoButton, :Left, :Right, :Middle ]
50
+ @@_buttons_map = { :NoButton => '0', :Left => '1', :Right => '2', :Middle => '4' }
51
+ @@_valid_directions = [ :Up, :Down, :Left, :Right ]
52
+ @@_direction_map = { :Up => '0', :Down => '180', :Left => '270', :Right => '90' }
53
+ @@_pinch_directions = { :Horizontal => '90', :Vertical => '0'}
54
+ @@_rotate_direction = [ :Clockwise, :CounterClockwise ]
55
+ @@_events_enabled = false
56
+
57
+ # == nodoc
58
+ # should this method be private?
59
+ def command_params( command = MobyCommand::WidgetCommand.new )
60
+
61
+ if attribute( 'objectType' ) == 'Graphics' and attribute( 'visibleOnScreen' ) == 'false' and @creation_attributes[ :visibleOnScreen ] != 'false'
62
+
63
+ begin
64
+
65
+ #try to make the item visible if so wanted
66
+ fixture( 'qt', 'ensureVisible' ) if sut_parameters[ :ensure_visible, false ].true?
67
+ fixture( 'qt', 'ensureQmlVisible') if sut_parameters[ :ensure_qml_visible, false ].true?
68
+
69
+ @creation_attributes.merge!( 'visibleOnScreen' => 'true' )
70
+
71
+ @parent.child( @creation_attributes )
72
+
73
+ rescue
74
+
75
+ raise MobyBase::TestObjectNotVisibleError
76
+
77
+ end
78
+
79
+ end
80
+
81
+ _object_type = attribute( 'objectType' ).intern
82
+
83
+ #for components with object visible on screen but not actual widgets or graphicsitems
84
+ if _object_type == :Embedded
85
+
86
+ _object_type = @parent.attribute( 'objectType' ).intern
87
+
88
+ _object_id = @parent.id
89
+
90
+ else
91
+
92
+ _object_id = @id
93
+
94
+ end
95
+
96
+ command.application_id( get_application_id )
97
+
98
+ command.set_object_id( _object_id )
99
+
100
+ command.object_type( _object_type )
101
+
102
+ command.set_event_type( sut_parameters[ :event_type, "0" ] )
103
+
104
+ # set app id as vkb if the attribute exists as the command needs to go to the vkb app
105
+ begin
106
+
107
+ # raises exception if value not found
108
+ value = attribute( 'vkb_app_id' )
109
+
110
+ command.application_id( value )
111
+
112
+ rescue MobyBase::AttributeNotFoundError
113
+
114
+ end
115
+
116
+ command
117
+
118
+ end
119
+
120
+ private
121
+
122
+ # == nodoc
123
+ # should this method be private?
124
+ def plugin_command( require_response = false, command = MobyCommand::WidgetCommand.new )
125
+ command.set_event_type(sut_parameters[ :event_type, "0" ])
126
+ command.application_id( get_application_id )
127
+ command.set_object_id( @id )
128
+ command.object_type( attribute('objectType' ).intern)
129
+ command.transitions_off
130
+ command
131
+ end
132
+
133
+ # TODO: document me
134
+ def do_sleep(time)
135
+
136
+ time = time.to_f * 1.3
137
+
138
+ #for flicks the duration of the gesture is short but animation (scroll etc..) may not
139
+ #so wait at least one second
140
+ time = 1 if time < 1
141
+ sleep time
142
+
143
+ end
144
+
145
+ # TODO: document me
146
+ def center_x
147
+
148
+ #x = attribute( 'x_absolute' ).to_i
149
+ #width = attribute( 'width' ).to_i
150
+ #x = x + ( width/2 )
151
+ #x.to_s
152
+
153
+ ( ( attribute( 'x_absolute' ).to_i ) + ( attribute( 'width' ).to_i / 2 ) ).to_s
154
+
155
+ end
156
+
157
+ # TODO: document me
158
+ def center_y
159
+
160
+ #y = attribute( 'y_absolute' ).to_i
161
+ #height = attribute( 'height' ).to_i
162
+ #y = y + ( height/2 )
163
+ #y.to_s
164
+
165
+ ( ( attribute( 'y_absolute' ).to_i ) + ( attribute( 'height' ).to_i / 2 ) ).to_s
166
+
167
+ end
168
+
169
+ # TODO: document me
170
+ def param_set_configured?( params, key )
171
+
172
+ if params.kind_of?(Hash) && params.has_key?(key)
173
+
174
+ #( params[ key ].nil? ? sut_parameters[ key, 'false' ] : params[ key ].to_s ).to_s == "true"
175
+
176
+ ( params[ key ] || sut_parameters[ key, false ] ).true?
177
+
178
+ else
179
+
180
+ #sut_parameters[ key, 'false' ].true?
181
+
182
+ sut_parameters[ key, false ].true?
183
+
184
+ end
185
+ end
186
+
187
+ # TODO: document me
188
+ def execute_behavior( params, command )
189
+
190
+ if !get_application.multitouch_ongoing? && !@@_events_enabled && param_set_configured?( params, :ensure_event )
191
+
192
+ ensure_event(:retry_timeout => 5, :retry_interval => 0.5) {
193
+
194
+ @sut.execute_command( command )
195
+
196
+ }
197
+
198
+ else
199
+
200
+ @sut.execute_command( command )
201
+
202
+ end
203
+
204
+ end
205
+
206
+ # enable hooking for performance measurement & debug logging
207
+ TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
208
+
209
+ end
210
+
211
+ end
212
+
213
+ end
214
+