1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace Facebook\WebDriver\Interactions\Internal; 4*04fd306cSNickeau 5*04fd306cSNickeauuse Facebook\WebDriver\Exception\UnsupportedOperationException; 6*04fd306cSNickeauuse Facebook\WebDriver\WebDriverPoint; 7*04fd306cSNickeau 8*04fd306cSNickeau/** 9*04fd306cSNickeau * Interface representing basic mouse operations. 10*04fd306cSNickeau */ 11*04fd306cSNickeauclass WebDriverCoordinates 12*04fd306cSNickeau{ 13*04fd306cSNickeau /** 14*04fd306cSNickeau * @var null 15*04fd306cSNickeau */ 16*04fd306cSNickeau private $onScreen; 17*04fd306cSNickeau /** 18*04fd306cSNickeau * @var callable 19*04fd306cSNickeau */ 20*04fd306cSNickeau private $inViewPort; 21*04fd306cSNickeau /** 22*04fd306cSNickeau * @var callable 23*04fd306cSNickeau */ 24*04fd306cSNickeau private $onPage; 25*04fd306cSNickeau /** 26*04fd306cSNickeau * @var string 27*04fd306cSNickeau */ 28*04fd306cSNickeau private $auxiliary; 29*04fd306cSNickeau 30*04fd306cSNickeau /** 31*04fd306cSNickeau * @param null $on_screen 32*04fd306cSNickeau * @param callable $in_view_port 33*04fd306cSNickeau * @param callable $on_page 34*04fd306cSNickeau * @param string $auxiliary 35*04fd306cSNickeau */ 36*04fd306cSNickeau public function __construct($on_screen, callable $in_view_port, callable $on_page, $auxiliary) 37*04fd306cSNickeau { 38*04fd306cSNickeau $this->onScreen = $on_screen; 39*04fd306cSNickeau $this->inViewPort = $in_view_port; 40*04fd306cSNickeau $this->onPage = $on_page; 41*04fd306cSNickeau $this->auxiliary = $auxiliary; 42*04fd306cSNickeau } 43*04fd306cSNickeau 44*04fd306cSNickeau /** 45*04fd306cSNickeau * @throws UnsupportedOperationException 46*04fd306cSNickeau * @return WebDriverPoint 47*04fd306cSNickeau */ 48*04fd306cSNickeau public function onScreen() 49*04fd306cSNickeau { 50*04fd306cSNickeau throw new UnsupportedOperationException( 51*04fd306cSNickeau 'onScreen is planned but not yet supported by Selenium' 52*04fd306cSNickeau ); 53*04fd306cSNickeau } 54*04fd306cSNickeau 55*04fd306cSNickeau /** 56*04fd306cSNickeau * @return WebDriverPoint 57*04fd306cSNickeau */ 58*04fd306cSNickeau public function inViewPort() 59*04fd306cSNickeau { 60*04fd306cSNickeau return call_user_func($this->inViewPort); 61*04fd306cSNickeau } 62*04fd306cSNickeau 63*04fd306cSNickeau /** 64*04fd306cSNickeau * @return WebDriverPoint 65*04fd306cSNickeau */ 66*04fd306cSNickeau public function onPage() 67*04fd306cSNickeau { 68*04fd306cSNickeau return call_user_func($this->onPage); 69*04fd306cSNickeau } 70*04fd306cSNickeau 71*04fd306cSNickeau /** 72*04fd306cSNickeau * @return string The attached object id. 73*04fd306cSNickeau */ 74*04fd306cSNickeau public function getAuxiliary() 75*04fd306cSNickeau { 76*04fd306cSNickeau return $this->auxiliary; 77*04fd306cSNickeau } 78*04fd306cSNickeau} 79