A JavaScript event-simulation, device oriented library for UI testing.
Device oriented ?
Effroi try to be the closest possible of the way your users use their input devices. To achieve this goal, effroi emulate real physical devices and fires every events a real device would fire for the same action.
By example, when a user want to click an element the following events sequence are fired:
- several mousewheel events to scroll to the element (if needed)
- several mouseout/mousemove/mouseover events to go over the element (if needed)
- mousedown/mouseup events
- a click event if none of the 2 previous events have been prevented
That's typically what effroi emulate for your UI tests. Effroi will also check for the feasibility of the requested action. If you try to click an element that is nor visible nor clickable, effroi will throw an error.
How to use
Device API
The device API goal is to emulate a real device and fire every events usually fired for each action a device permit.
Mouse
var mouse = effroimouse;// Scrolling with the mousemouse; // Returns true if scrolled false otherwisemouse; // Returns true if scrolled// Moving the cursormouse; // Returns true if dispatchedmouse; // Returns true if dispatched// Clickingmouse; // Returns true if dispatched// Right-clickingmouse; // Returns true if dispatched// Double-clickingmouse; // Returns true if dispatched// Pasting with the mousemouse;// Cutting with the mousemouse; // Returns the cutted content
Keyboard
var kbd = effroikeyboard;// Tabbing with the keyboardkbd; // Returns true if dispatched// Focusing an elementkbd; // Returns true if focus changed// Hitting a keykbd; // Returns true if dispatchedkbd; // Returns true if dispatched// Combining keyskbd; // Returns true if dispatched// Pasting with the keyboardkbd;// Cutting with the keyboardkbd; // Returns the cutted content
Tactile
var tactile = effroitactile;// Scrolling with the tactile displaytactile; // Returns true if scrolled false otherwisetactile; // Returns true if scrolled// Performing a touchtactile; // Returns true if dispatched
Unified pointing device API (PointerEvents)
Under development.
How to contribute
- Clone this repo
- npm install
- To run the tests:
grunt test
- To build the lib:
grunt dist