Files
faveo/vendor/facebook/webdriver/lib/Support/Events/EventFiringWebDriverNavigation.php
Manish Verma 126fbb0255 Laravel version update
Laravel version update
2018-08-06 18:55:45 +05:30

171 lines
4.0 KiB
PHP

<?php
// Copyright 2004-present Facebook. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
namespace Facebook\WebDriver\Support\Events;
use Facebook\WebDriver\Exception\WebDriverException;
use Facebook\WebDriver\WebDriverDispatcher;
use Facebook\WebDriver\WebDriverNavigation;
class EventFiringWebDriverNavigation
{
/**
* @var WebDriverNavigation
*/
protected $navigator;
/**
* @var WebDriverDispatcher
*/
protected $dispatcher;
/**
* @param WebDriverNavigation $navigator
* @param WebDriverDispatcher $dispatcher
*/
public function __construct(WebDriverNavigation $navigator, WebDriverDispatcher $dispatcher)
{
$this->navigator = $navigator;
$this->dispatcher = $dispatcher;
}
/**
* @return WebDriverDispatcher
*/
public function getDispatcher()
{
return $this->dispatcher;
}
/**
* @return WebDriverNavigation
*/
public function getNavigator()
{
return $this->navigator;
}
/**
* @throws WebDriverException
* @return $this
*/
public function back()
{
$this->dispatch(
'beforeNavigateBack',
$this->getDispatcher()->getDefaultDriver()
);
try {
$this->navigator->back();
} catch (WebDriverException $exception) {
$this->dispatchOnException($exception);
}
$this->dispatch(
'afterNavigateBack',
$this->getDispatcher()->getDefaultDriver()
);
return $this;
}
/**
* @throws WebDriverException
* @return $this
*/
public function forward()
{
$this->dispatch(
'beforeNavigateForward',
$this->getDispatcher()->getDefaultDriver()
);
try {
$this->navigator->forward();
} catch (WebDriverException $exception) {
$this->dispatchOnException($exception);
}
$this->dispatch(
'afterNavigateForward',
$this->getDispatcher()->getDefaultDriver()
);
return $this;
}
/**
* @throws WebDriverException
* @return $this
*/
public function refresh()
{
try {
$this->navigator->refresh();
return $this;
} catch (WebDriverException $exception) {
$this->dispatchOnException($exception);
throw $exception;
}
}
/**
* @param mixed $url
* @throws WebDriverException
* @return $this
*/
public function to($url)
{
$this->dispatch(
'beforeNavigateTo',
$url,
$this->getDispatcher()->getDefaultDriver()
);
try {
$this->navigator->to($url);
} catch (WebDriverException $exception) {
$this->dispatchOnException($exception);
throw $exception;
}
$this->dispatch(
'afterNavigateTo',
$url,
$this->getDispatcher()->getDefaultDriver()
);
return $this;
}
/**
* @param mixed $method
* @param mixed ...$arguments
*/
protected function dispatch($method, ...$arguments)
{
if (!$this->dispatcher) {
return;
}
$this->dispatcher->dispatch($method, $arguments);
}
/**
* @param WebDriverException $exception
*/
protected function dispatchOnException(WebDriverException $exception)
{
$this->dispatch('onException', $exception);
}
}