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.
- checksums.yaml +7 -0
- data/env.rb +24 -0
- data/installer/extconf.rb +62 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin.rb +23 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/action.rb +157 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/application.rb +312 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/attribute.rb +300 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/behaviour.rb +214 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/configure_behaviour.rb +317 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_cpu.rb +145 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_gpu.rb +147 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_mem.rb +142 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_pwr.rb +146 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/events.rb +192 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/file_transfer.rb +375 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/find.rb +82 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/fixture.rb +214 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/fps.rb +189 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/gesture.rb +1039 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/infologger.rb +767 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/key_press.rb +166 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/locale_db.rb +157 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/method.rb +112 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/multitouch.rb +474 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/os.rb +100 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/qt_api_method.rb +148 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/record.rb +134 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/screen_capture.rb +279 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/settings.rb +302 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/sut.rb +840 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/synchronization.rb +257 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/treewidgetitemcolumn.rb +117 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/type_text.rb +97 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/view_item.rb +97 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/webkit.rb +272 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/widget.rb +877 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/action.rb +30 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/configure_command.rb +38 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/drag.rb +44 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/find_object.rb +67 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/group.rb +44 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/infologger_command.rb +38 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/qt.rb +171 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/tap.rb +54 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/version.rb +34 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/widget.rb +199 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/agent.rb +54 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/application.rb +192 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/configure_command.rb +53 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/find_object.rb +48 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/fixture.rb +65 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/group.rb +57 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/infologger_command.rb +53 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/key_sequence.rb +93 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/screen_capture.rb +53 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/tap.rb +62 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/version.rb +46 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/widget.rb +98 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/plugin.rb +200 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/adapter.rb +466 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/communication.rb +185 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/controller.rb +69 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/find_object_generator.rb +287 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/fixture_parameter.rb +77 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/message_composer.rb +370 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/widget.rb +79 -0
- data/lib/testability-driver-qt-sut-plugin.rb +24 -0
- data/xml/behaviour/qt.xml +845 -0
- data/xml/defaults/sut_qt.xml +9 -0
- data/xml/keymap/qt.xml +321 -0
- data/xml/keymap/win.xml +174 -0
- data/xml/template/qt.xml +141 -0
- 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 | 
            +
             |