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,185 @@ | |
| 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 MobyController
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              module QT
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                module Comms
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  # Command types
         | 
| 27 | 
            +
                  ERROR_MSG = 0
         | 
| 28 | 
            +
                  VALID_MSG = 1
         | 
| 29 | 
            +
                  OK_MESSAGE = "OK"
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                  class Inflator
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                    def self.inflate( response )
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                      # strip 4 extra bytes written by qt compression, return empty string if no raw data found, otherwise inflate it
         | 
| 36 | 
            +
                      ( raw_data = response[ 4 .. -1 ] ).empty? ? "" : Zlib::Inflate.inflate( raw_data )
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                    end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                    # enable hooking for performance measurement & debug logging
         | 
| 41 | 
            +
                    TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                  end # Inflator
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                  # deprecated: see send_service_request#adapter.rb
         | 
| 46 | 
            +
                  # Wrapper for protocol message.
         | 
| 47 | 
            +
                  class QTResponse
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                    attr_accessor :msg_body, :flag, :crc, :message_id
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                    # deprecated: see send_service_request#adapter.rb
         | 
| 52 | 
            +
                    # Initialize QT Response.      
         | 
| 53 | 
            +
                    # == params
         | 
| 54 | 
            +
                    # command_flag Indicator flad for message type (error or ok)
         | 
| 55 | 
            +
                    # message_code 0 or an error code
         | 
| 56 | 
            +
                    # msg_body Body of the message. For command a simple "OK" message for ui state the xml document as string  
         | 
| 57 | 
            +
                    # == returns
         | 
| 58 | 
            +
                    def initialize( command_flag, msg_body, crc, message_id )
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                      @flag, @msg_body, @crc, @message_id = command_flag, msg_body, crc, message_id
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                    end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                    # deprecated: see send_service_request#adapter.rb
         | 
| 65 | 
            +
                    def validate_message( msg_id )
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                      #check that response matches the request
         | 
| 68 | 
            +
                      if @message_id != msg_id 
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                        msg = "Response to request did not match: #{ @message_id.to_s.inspect }!=#{ msg_id.to_s.inspect }"
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                        $logger.fatal msg
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                        $logger.fatal @msg_body 
         | 
| 75 | 
            +
             | 
| 76 | 
            +
                        raise RuntimeError, msg
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                      end
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                      #raise error if error flag
         | 
| 81 | 
            +
                      if @flag == Comms::ERROR_MSG
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                        raise MobyBase::ApplicationNotAvailableError, @msg_body if @msg_body =~ /The application with Id \d+ is no longer available/
         | 
| 84 | 
            +
             | 
| 85 | 
            +
                        raise RuntimeError, @msg_body
         | 
| 86 | 
            +
             | 
| 87 | 
            +
                      end
         | 
| 88 | 
            +
             | 
| 89 | 
            +
                    end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
                    # enable hooking for performance measurement & debug logging
         | 
| 92 | 
            +
                    TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                  end # QTResponse
         | 
| 95 | 
            +
             | 
| 96 | 
            +
                  # Message generator for qt tas messages
         | 
| 97 | 
            +
                  class MessageGenerator
         | 
| 98 | 
            +
             | 
| 99 | 
            +
                    def self.generate( message_data, message_flag = VALID_MSG )
         | 
| 100 | 
            +
             | 
| 101 | 
            +
                      MobyController::QT::Comms::QtMessage.new( message_flag, message_data )
         | 
| 102 | 
            +
             | 
| 103 | 
            +
                    end
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                    # enable hooking for performance measurement & debug logging
         | 
| 106 | 
            +
                    TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
         | 
| 107 | 
            +
             | 
| 108 | 
            +
                  end # MobyController
         | 
| 109 | 
            +
             | 
| 110 | 
            +
                  class QtMessage
         | 
| 111 | 
            +
             | 
| 112 | 
            +
                    attr_reader :flag, :data, :compression, :size
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                    attr_accessor :message_id 
         | 
| 115 | 
            +
             | 
| 116 | 
            +
                    def initialize( message_flag, message_data )
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                      # message flag
         | 
| 119 | 
            +
                      @flag = message_flag
         | 
| 120 | 
            +
             | 
| 121 | 
            +
                      # no compression by default
         | 
| 122 | 
            +
                      @compression = 1
         | 
| 123 | 
            +
             | 
| 124 | 
            +
                      @data = message_data
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                      @size = @data.size
         | 
| 127 | 
            +
             | 
| 128 | 
            +
                      # calculate crc only when requested
         | 
| 129 | 
            +
                      @crc = nil
         | 
| 130 | 
            +
             | 
| 131 | 
            +
                    end
         | 
| 132 | 
            +
             | 
| 133 | 
            +
                    def crc
         | 
| 134 | 
            +
             | 
| 135 | 
            +
                      if @crc.nil?
         | 
| 136 | 
            +
             | 
| 137 | 
            +
                        # calculate outgoing message crc; sent in message header to receiver for data validation
         | 
| 138 | 
            +
                        @crc = TDriver::Checksum.crc16_ibm( @data ) 
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                      else
         | 
| 141 | 
            +
             | 
| 142 | 
            +
                        @crc
         | 
| 143 | 
            +
             | 
| 144 | 
            +
                      end
         | 
| 145 | 
            +
                      
         | 
| 146 | 
            +
                    end
         | 
| 147 | 
            +
             | 
| 148 | 
            +
                    def make_binary_message( message_id )
         | 
| 149 | 
            +
             | 
| 150 | 
            +
             | 
| 151 | 
            +
                      [ @flag, @size, crc, @compression, message_id, @data ].pack( 'CISCIa*' )
         | 
| 152 | 
            +
             | 
| 153 | 
            +
                    end
         | 
| 154 | 
            +
             | 
| 155 | 
            +
                    def deflate( level = 9 )
         | 
| 156 | 
            +
             | 
| 157 | 
            +
                      unless @compression == 2
         | 
| 158 | 
            +
             | 
| 159 | 
            +
                        @compression = 2
         | 
| 160 | 
            +
             | 
| 161 | 
            +
                        data_size = @data.size
         | 
| 162 | 
            +
             | 
| 163 | 
            +
                        # qUncompress required the data length at the beginning so append it - the bytes need to be arranged in the below method (see QByteArray::qUncompress)
         | 
| 164 | 
            +
                        @data = [ ( data_size & 0xff000000 ) >> 24, ( data_size & 0x00ff0000 ) >> 16, ( data_size & 0x0000ff00 ) >> 8, ( data_size & 0x000000ff ), Zlib::Deflate.deflate( @data, level ) ].pack('C4a*')
         | 
| 165 | 
            +
             | 
| 166 | 
            +
                        # update data size
         | 
| 167 | 
            +
                        @size = @data.size
         | 
| 168 | 
            +
             | 
| 169 | 
            +
                        # recalculate crc
         | 
| 170 | 
            +
                        @crc = nil
         | 
| 171 | 
            +
             | 
| 172 | 
            +
                      end
         | 
| 173 | 
            +
                      
         | 
| 174 | 
            +
                    end      
         | 
| 175 | 
            +
             | 
| 176 | 
            +
                    # enable hooking for performance measurement & debug logging
         | 
| 177 | 
            +
                    TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
         | 
| 178 | 
            +
             | 
| 179 | 
            +
                  end # QtMessage
         | 
| 180 | 
            +
             | 
| 181 | 
            +
                end # Comms
         | 
| 182 | 
            +
             | 
| 183 | 
            +
              end # QT
         | 
| 184 | 
            +
             | 
| 185 | 
            +
            end # MobyController
         | 
| @@ -0,0 +1,69 @@ | |
| 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 MobyController
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            	module QT
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            		module SutController
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            			def disconnect
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            				@sut_adapter.disconnect
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            			end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            			def connect( id )
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            				@sut_adapter.connect( id )
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            			end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                  def received_bytes
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            				@sut_adapter.socket_received_bytes
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            			end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  def sent_bytes
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            				@sut_adapter.socket_sent_bytes
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            			end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                  def received_packets
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            				@sut_adapter.socket_received_packets
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            			end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                  def sent_packets
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            				@sut_adapter.socket_sent_packets
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            			end
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            			# enable hooking for performance measurement & debug logging
         | 
| 63 | 
            +
            			TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            		end # SutController
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            	end # QT
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            end # MobyController
         | 
    
        data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/find_object_generator.rb
    ADDED
    
    | @@ -0,0 +1,287 @@ | |
| 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 MobyUtil
         | 
| 21 | 
            +
              
         | 
| 22 | 
            +
              module FindObjectGenerator
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                def generate_message
         | 
| 25 | 
            +
                
         | 
| 26 | 
            +
                  # get sut paramteres only once, store to local variable
         | 
| 27 | 
            +
                  sut_parameters = $parameters[ @_sut.id ]
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            	    filter_type = sut_parameters[ :filter_type, 'none' ]
         | 
| 30 | 
            +
            	
         | 
| 31 | 
            +
                  plugin_timeout = sut_parameters[ :qttas_plugin_timeout, 10000 ].to_i
         | 
| 32 | 
            +
                  
         | 
| 33 | 
            +
            	    if filter_type != 'none'
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            	      filters = {}
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                    sut_parameters.if_found( :filter_properties ){ | key, value | filters[ 'filterProperties' ] = value }
         | 
| 38 | 
            +
                    sut_parameters.if_found( :plugin_blacklist  ){ | key, value | filters[ 'pluginBlackList'  ] = value }
         | 
| 39 | 
            +
                    sut_parameters.if_found( :plugin_whitelist  ){ | key, value | filters[ 'pluginWhiteList'  ] = value }
         | 
| 40 | 
            +
                    sut_parameters.if_found( :use_view_crop     ){ | key, value | filters[ 'useViewCrop'      ] = value }
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            	      case filter_type
         | 
| 43 | 
            +
            		
         | 
| 44 | 
            +
            	        when 'dynamic'
         | 
| 45 | 
            +
            		
         | 
| 46 | 
            +
                        value = TDriver::AttributeFilter.filter_string
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            		        filters[ 'attributeWhiteList' ] = value unless value.blank?
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            	        when 'static'
         | 
| 51 | 
            +
            		
         | 
| 52 | 
            +
                        sut_parameters.if_found( :attribute_blacklist ){ | key, value | filters[ 'attributeBlackList' ] = value }
         | 
| 53 | 
            +
                        sut_parameters.if_found( :attribute_whitelist ){ | key, value | filters[ 'attributeWhiteList' ] = value }
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            	        end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  else
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                    filters = {}
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                  end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                  #xml = "<?xml version=\"1.0\"?>"
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                  xml = "<TasCommands plugin_timeout=\"#{plugin_timeout}\" service=\"findObject\" #{ @_app_details.to_attributes }"
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                  # pass checksum value if known from previous service request result
         | 
| 68 | 
            +
                  #unless @_checksum.nil?
         | 
| 69 | 
            +
                  #  xml << " checksum=\"#{ @_checksum.to_s }\" "
         | 
| 70 | 
            +
                  #end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                  unless @_params.empty?
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                    # TasCommands close    
         | 
| 75 | 
            +
                    xml << '><Target>'
         | 
| 76 | 
            +
                    
         | 
| 77 | 
            +
                    # temp. objects xml fragment
         | 
| 78 | 
            +
                    objects = ""
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                    # collect objects with attributes
         | 
| 81 | 
            +
                    @_params.reverse_each{ | parameters |
         | 
| 82 | 
            +
                    
         | 
| 83 | 
            +
                      if parameters == @_params.last
         | 
| 84 | 
            +
                      
         | 
| 85 | 
            +
                        objects = "<object #{ parameters.to_attributes } />"          
         | 
| 86 | 
            +
                        
         | 
| 87 | 
            +
                      else
         | 
| 88 | 
            +
                      
         | 
| 89 | 
            +
                        objects = "<object #{ parameters.to_attributes }>#{ objects }</object>"
         | 
| 90 | 
            +
                        
         | 
| 91 | 
            +
                      end
         | 
| 92 | 
            +
                    
         | 
| 93 | 
            +
                    }
         | 
| 94 | 
            +
             | 
| 95 | 
            +
                    # add objects to xml
         | 
| 96 | 
            +
                    xml << objects
         | 
| 97 | 
            +
             | 
| 98 | 
            +
                    xml << '<Command name="findObject">'
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                    filters.each{ | name, value | xml << "<param name=\"#{ name }\" value=\"#{ value }\" />" }
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                    xml << '</Command></Target></TasCommands>'
         | 
| 103 | 
            +
                
         | 
| 104 | 
            +
                  else
         | 
| 105 | 
            +
                
         | 
| 106 | 
            +
                    # TasCommands close
         | 
| 107 | 
            +
                    xml << ' />'
         | 
| 108 | 
            +
                  
         | 
| 109 | 
            +
                  end
         | 
| 110 | 
            +
                  
         | 
| 111 | 
            +
                  xml
         | 
| 112 | 
            +
             | 
| 113 | 
            +
                end
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            =begin	
         | 
| 116 | 
            +
                def generate_message
         | 
| 117 | 
            +
                
         | 
| 118 | 
            +
                  # get sut paramteres only once, store to local variable
         | 
| 119 | 
            +
                  sut_parameters = $parameters[ @_sut.id ]
         | 
| 120 | 
            +
             | 
| 121 | 
            +
            	    filter_type = sut_parameters[ :filter_type, 'none' ]
         | 
| 122 | 
            +
            	
         | 
| 123 | 
            +
            	    if filter_type != 'none'
         | 
| 124 | 
            +
             | 
| 125 | 
            +
            	      filters = {}
         | 
| 126 | 
            +
            	      value = nil
         | 
| 127 | 
            +
            	      filters[ 'filterProperties' ] = value if ( value = sut_parameters[ :filter_properties, nil ] )
         | 
| 128 | 
            +
            	      filters[ 'pluginBlackList'  ] = value if ( value = sut_parameters[ :plugin_blacklist,  nil ] )
         | 
| 129 | 
            +
            	      filters[ 'pluginWhiteList'  ] = value if ( value = sut_parameters[ :plugin_whitelist,  nil ] )
         | 
| 130 | 
            +
             | 
| 131 | 
            +
            	      case filter_type
         | 
| 132 | 
            +
            		
         | 
| 133 | 
            +
            	        when 'dynamic'
         | 
| 134 | 
            +
             | 
| 135 | 
            +
            		        filters[ 'attributeWhiteList' ] = value if ( value = TDriver::AttributeFilter.filter_string ) 
         | 
| 136 | 
            +
            		
         | 
| 137 | 
            +
            	        when 'static'
         | 
| 138 | 
            +
             | 
| 139 | 
            +
            		        filters[ 'attributeBlackList' ] = value if ( value = sut_parameters[ :attribute_blacklist, nil ] )
         | 
| 140 | 
            +
            		        filters[ 'attributeWhiteList' ] = value if ( value = sut_parameters[ :attribute_whitelist, nil ] ) 
         | 
| 141 | 
            +
            		
         | 
| 142 | 
            +
            	        end
         | 
| 143 | 
            +
             | 
| 144 | 
            +
                  else
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                    filters = {}
         | 
| 147 | 
            +
             | 
| 148 | 
            +
                  end
         | 
| 149 | 
            +
             | 
| 150 | 
            +
                  #xml = "<?xml version=\"1.0\"?>"
         | 
| 151 | 
            +
             | 
| 152 | 
            +
                  xml = "<TasCommands service=\"findObject\" #{ @_app_details.to_attributes }"
         | 
| 153 | 
            +
                  
         | 
| 154 | 
            +
                  unless @_params.empty?
         | 
| 155 | 
            +
             | 
| 156 | 
            +
                    # TasCommands close    
         | 
| 157 | 
            +
                    xml << '><Target>'
         | 
| 158 | 
            +
                    
         | 
| 159 | 
            +
                    # temp. objects xml fragment
         | 
| 160 | 
            +
                    objects = ""
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                    # collect objects with attributes
         | 
| 163 | 
            +
                    @_params.reverse.each_with_index{ | parameters, index |
         | 
| 164 | 
            +
                    
         | 
| 165 | 
            +
                      if index == 0
         | 
| 166 | 
            +
                      
         | 
| 167 | 
            +
                        objects = "<object #{ parameters.to_attributes } />"          
         | 
| 168 | 
            +
                        
         | 
| 169 | 
            +
                      else
         | 
| 170 | 
            +
                      
         | 
| 171 | 
            +
                        objects = "<object #{ parameters.to_attributes }>#{ objects }</object>"
         | 
| 172 | 
            +
                        
         | 
| 173 | 
            +
                      end
         | 
| 174 | 
            +
                    
         | 
| 175 | 
            +
                    }
         | 
| 176 | 
            +
             | 
| 177 | 
            +
                    # add objects to xml
         | 
| 178 | 
            +
                    xml << objects
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                    xml << '<Command name="findObject">'
         | 
| 181 | 
            +
             | 
| 182 | 
            +
                    filters.each{ | name, value | xml << "<param name=\"#{ name }\" value=\"#{ value }\" />" }
         | 
| 183 | 
            +
             | 
| 184 | 
            +
                    xml << '</Command></Target></TasCommands>'
         | 
| 185 | 
            +
                
         | 
| 186 | 
            +
                  else
         | 
| 187 | 
            +
                
         | 
| 188 | 
            +
                    # TasCommands close
         | 
| 189 | 
            +
                    xml << ' />'
         | 
| 190 | 
            +
                  
         | 
| 191 | 
            +
                  end
         | 
| 192 | 
            +
                  
         | 
| 193 | 
            +
                  xml
         | 
| 194 | 
            +
             | 
| 195 | 
            +
                end
         | 
| 196 | 
            +
            =end
         | 
| 197 | 
            +
             | 
| 198 | 
            +
            =begin	
         | 
| 199 | 
            +
            	  def generate_message
         | 
| 200 | 
            +
            	
         | 
| 201 | 
            +
            	    filter_type = $parameters[ @_sut.id ][ :filter_type, 'none' ]
         | 
| 202 | 
            +
            	
         | 
| 203 | 
            +
            	    filters = make_params if filter_type == 'dynamic'
         | 
| 204 | 
            +
             | 
| 205 | 
            +
            	    builder = Nokogiri::XML::Builder.new do |xml|
         | 
| 206 | 
            +
             | 
| 207 | 
            +
            		    xml.TasCommands( ( @_app_details || {} ).merge( :service => "findObject") ) {			
         | 
| 208 | 
            +
             | 
| 209 | 
            +
            		      xml.Target{			  
         | 
| 210 | 
            +
             | 
| 211 | 
            +
            			      add_objects( xml, @_params )
         | 
| 212 | 
            +
             | 
| 213 | 
            +
            			      xml.Command( :name => 'findObject' ){ filters.collect{ | name, value | xml.param( :name => name, :value => value ) } } if filter_type == 'dynamic'
         | 
| 214 | 
            +
             | 
| 215 | 
            +
            		      } if @_params and @_params.size > 0
         | 
| 216 | 
            +
             | 
| 217 | 
            +
            		    }
         | 
| 218 | 
            +
             | 
| 219 | 
            +
            	    end
         | 
| 220 | 
            +
             | 
| 221 | 
            +
            	    builder.to_xml
         | 
| 222 | 
            +
             | 
| 223 | 
            +
            	  end
         | 
| 224 | 
            +
            	
         | 
| 225 | 
            +
             | 
| 226 | 
            +
              private
         | 
| 227 | 
            +
             | 
| 228 | 
            +
            	  def add_objects( builder, params )
         | 
| 229 | 
            +
             | 
| 230 | 
            +
            	    parent = builder.parent
         | 
| 231 | 
            +
             | 
| 232 | 
            +
            	    params.each{| objectParams | 
         | 
| 233 | 
            +
            	    
         | 
| 234 | 
            +
            	      parent = create_object_node( builder, objectParams, parent ) 
         | 
| 235 | 
            +
            	      
         | 
| 236 | 
            +
                  }
         | 
| 237 | 
            +
             | 
| 238 | 
            +
            	  end
         | 
| 239 | 
            +
            	
         | 
| 240 | 
            +
            	  def create_object_node( builder, params, parent )
         | 
| 241 | 
            +
             | 
| 242 | 
            +
            	    node = Nokogiri::XML::Node.new( 'object', builder.doc )
         | 
| 243 | 
            +
             | 
| 244 | 
            +
            	    params.keys.each{ | key | node[ key.to_s ] = params[ key ].to_s }
         | 
| 245 | 
            +
             | 
| 246 | 
            +
            	    parent.add_child( node )
         | 
| 247 | 
            +
             | 
| 248 | 
            +
            	  end
         | 
| 249 | 
            +
             | 
| 250 | 
            +
            	  def make_params
         | 
| 251 | 
            +
            	
         | 
| 252 | 
            +
            	    params = {}
         | 
| 253 | 
            +
             | 
| 254 | 
            +
            	    # get sut paramteres only once, store to local variable
         | 
| 255 | 
            +
            	    sut_parameters = $parameters[ @_sut.id ]
         | 
| 256 | 
            +
             | 
| 257 | 
            +
            	    params[ 'filterProperties' ] = $last_parameter if sut_parameters[ :filter_properties, nil ]
         | 
| 258 | 
            +
            	    params[ 'pluginBlackList'  ] = $last_parameter if sut_parameters[ :plugin_blacklist,  nil ]
         | 
| 259 | 
            +
            	    params[ 'pluginWhiteList'  ] = $last_parameter if sut_parameters[ :plugin_whitelist,  nil ]
         | 
| 260 | 
            +
             | 
| 261 | 
            +
            	    case sut_parameters[ :filter_type, 'none' ]
         | 
| 262 | 
            +
            		
         | 
| 263 | 
            +
            	      when 'dynamic'
         | 
| 264 | 
            +
             | 
| 265 | 
            +
            		      white_list = TDriver::AttributeFilter.filter_string
         | 
| 266 | 
            +
            		      
         | 
| 267 | 
            +
            		      params['attributeWhiteList'] = white_list if white_list
         | 
| 268 | 
            +
            		
         | 
| 269 | 
            +
            	      when 'static'
         | 
| 270 | 
            +
             | 
| 271 | 
            +
            		      params['attributeBlackList'] = $last_parameter if sut_parameters[ :attribute_blacklist, nil ]
         | 
| 272 | 
            +
            		      params['attributeWhiteList'] = $last_parameter if sut_parameters[ :attribute_whitelist, nil ]
         | 
| 273 | 
            +
            		
         | 
| 274 | 
            +
                  end
         | 
| 275 | 
            +
             | 
| 276 | 
            +
                  params		
         | 
| 277 | 
            +
             | 
| 278 | 
            +
                end
         | 
| 279 | 
            +
            =end
         | 
| 280 | 
            +
             | 
| 281 | 
            +
                # enable hoo./base/test_object/factory.rb:king for performance measurement & debug logging
         | 
| 282 | 
            +
                TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
         | 
| 283 | 
            +
             | 
| 284 | 
            +
              end
         | 
| 285 | 
            +
              
         | 
| 286 | 
            +
            end
         | 
| 287 | 
            +
             |