1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace Facebook\WebDriver\Interactions\Internal; 4*04fd306cSNickeau 5*04fd306cSNickeauuse Facebook\WebDriver\Internal\WebDriverLocatable; 6*04fd306cSNickeauuse Facebook\WebDriver\WebDriverMouse; 7*04fd306cSNickeau 8*04fd306cSNickeau/** 9*04fd306cSNickeau * Base class for all mouse-related actions. 10*04fd306cSNickeau */ 11*04fd306cSNickeauclass WebDriverMouseAction 12*04fd306cSNickeau{ 13*04fd306cSNickeau /** 14*04fd306cSNickeau * @var WebDriverMouse 15*04fd306cSNickeau */ 16*04fd306cSNickeau protected $mouse; 17*04fd306cSNickeau /** 18*04fd306cSNickeau * @var WebDriverLocatable 19*04fd306cSNickeau */ 20*04fd306cSNickeau protected $locationProvider; 21*04fd306cSNickeau 22*04fd306cSNickeau /** 23*04fd306cSNickeau * @param WebDriverMouse $mouse 24*04fd306cSNickeau * @param WebDriverLocatable|null $location_provider 25*04fd306cSNickeau */ 26*04fd306cSNickeau public function __construct(WebDriverMouse $mouse, WebDriverLocatable $location_provider = null) 27*04fd306cSNickeau { 28*04fd306cSNickeau $this->mouse = $mouse; 29*04fd306cSNickeau $this->locationProvider = $location_provider; 30*04fd306cSNickeau } 31*04fd306cSNickeau 32*04fd306cSNickeau /** 33*04fd306cSNickeau * @return null|WebDriverCoordinates 34*04fd306cSNickeau */ 35*04fd306cSNickeau protected function getActionLocation() 36*04fd306cSNickeau { 37*04fd306cSNickeau if ($this->locationProvider !== null) { 38*04fd306cSNickeau return $this->locationProvider->getCoordinates(); 39*04fd306cSNickeau } 40*04fd306cSNickeau 41*04fd306cSNickeau return null; 42*04fd306cSNickeau } 43*04fd306cSNickeau 44*04fd306cSNickeau protected function moveToLocation() 45*04fd306cSNickeau { 46*04fd306cSNickeau $this->mouse->mouseMove($this->locationProvider); 47*04fd306cSNickeau } 48*04fd306cSNickeau} 49