Sha256: 17a2019b072ce08be1bbc68a64068edae394750abfcbf098f6537fde8444df3e

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

require 'json'
require 'colorize'
require_relative 'xcmonkey/describer'
require_relative 'xcmonkey/version'
require_relative 'xcmonkey/logger'
require_relative 'xcmonkey/driver'

module Xcmonkey
	class Xcmonkey
	  attr_accessor :udid, :bundle_id, :duration, :driver

	  def initialize(params)
			ensure_required_params(params)
	    self.udid = params[:udid]
	    self.bundle_id = params[:bundle_id]
	    self.duration = params[:duration]
			self.driver = Driver.new(params)
	  end

    def run
			driver.ensure_device_exists
			driver.ensure_app_installed
			driver.terminate_app
			driver.open_home_screen(with_tracker: true)
			driver.launch_app
			driver.monkey_test(gestures)
    end

		def gestures
			taps = [:precise_tap, :blind_tap] * 10
			swipes = [:precise_swipe, :blind_swipe] * 5
			presses = [:precise_press, :blind_press]
			taps + swipes + presses
		end

		def ensure_required_params(params)
			Logger.error('UDID should be provided') if params[:udid].nil?
			Logger.error('Bundle identifier should be provided') if params[:bundle_id].nil?
			if params[:duration].nil? || !params[:duration].kind_of?(Integer) || !params[:duration].positive?
				Logger.error('Duration must be Integer and not less than 1 second')
			end
		end
	end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
xcmonkey-0.3.0 lib/xcmonkey.rb
xcmonkey-0.2.0 lib/xcmonkey.rb