/* Siesta 5.5.2 Copyright(c) 2009-2021 Bryntum AB https://bryntum.com/contact https://bryntum.com/products/siesta/license */ Class('Siesta.Test.Simulator', { does : [ Siesta.Util.Role.CanGetType, Siesta.Test.Browser.Role.CanRebindJQueryContext, Siesta.Test.Simulate.Event, Siesta.Test.Simulate.Mouse, Siesta.Test.Simulate.Keyboard, Siesta.Test.Simulate.Touch ], has : { type : 'synthetic', test : null, global : null }, methods : { initialize : function () { this.SUPER(); this.onBlur = this.onBlur.bind(this); }, onTestLaunch : function (test) { var me = this; me.test = test me.global = test.global // Synthetic events unfortunately don't trigger `change` events on blur of an INPUT if (me.type === 'synthetic') { me.global.document.documentElement.addEventListener('blur', me.onBlur, true); } }, onBlur : function (event) { if (event.target && this.test.isTextInput(event.target)) { var inputFiresChangeAfterLosingFocus = Siesta.Project.Browser.FeatureSupport().supports.inputFiresChangeAfterLosingFocus && (!this.bowser.safari || !event.target.valueWasModifiedByBackspace); if (!inputFiresChangeAfterLosingFocus) { this.maybeMimicChangeEvent(event.target); } } }, cleanup : function () { // Added check that global exists, made tests crash without this.global && this.global.document.documentElement.removeEventListener('blur', this.onBlur, true); this.test = null this.global = null }, setSpeed : function (name) { Joose.O.extend(this, Siesta.Test.Simulator.speedPresets[name]); } } }); Siesta.Test.Simulator.speedPresets = { slow : { actionDelay : 100, afterActionDelay : 100, dragDelay : 25, pathBatchSize : 5, mouseMovePrecision : 1, mouseDragPrecision : 1 }, speedRun : { actionDelay : 1, afterActionDelay : 100, dragDelay : 10, pathBatchSize : 30, mouseMovePrecision : 1, mouseDragPrecision : 1 }, turboMode : { actionDelay : 1, afterActionDelay : 1, dragDelay : 0, pathBatchSize : 100, mouseMovePrecision : Infinity, mouseDragPrecision : Infinity } };