Laravel version update

Laravel version update
This commit is contained in:
Manish Verma
2018-08-06 18:48:58 +05:30
parent d143048413
commit 126fbb0255
13678 changed files with 1031482 additions and 778530 deletions

View File

@@ -0,0 +1,101 @@
<?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\Chrome;
use Facebook\WebDriver\Exception\WebDriverException;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\DriverCommand;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Remote\Service\DriverCommandExecutor;
use Facebook\WebDriver\Remote\WebDriverCommand;
class ChromeDriver extends RemoteWebDriver
{
/**
* @return static
*/
public static function start(DesiredCapabilities $desired_capabilities = null, ChromeDriverService $service = null)
{
if ($desired_capabilities === null) {
$desired_capabilities = DesiredCapabilities::chrome();
}
if ($service === null) {
$service = ChromeDriverService::createDefaultService();
}
$executor = new DriverCommandExecutor($service);
$driver = new static($executor, null, $desired_capabilities);
$driver->startSession($desired_capabilities);
return $driver;
}
public function startSession(DesiredCapabilities $desired_capabilities)
{
$command = new WebDriverCommand(
null,
DriverCommand::NEW_SESSION,
[
'desiredCapabilities' => $desired_capabilities->toArray(),
]
);
$response = $this->executor->execute($command);
$this->sessionID = $response->getSessionID();
}
/**
* Always throws an exception. Use ChromeDriver::start() instead.
*
* @param string $selenium_server_url
* @param DesiredCapabilities|array $desired_capabilities
* @param int|null $connection_timeout_in_ms
* @param int|null $request_timeout_in_ms
* @param string|null $http_proxy
* @param int|null $http_proxy_port
* @param DesiredCapabilities $required_capabilities
* @throws WebDriverException
* @return RemoteWebDriver
*/
public static function create(
$selenium_server_url = 'http://localhost:4444/wd/hub',
$desired_capabilities = null,
$connection_timeout_in_ms = null,
$request_timeout_in_ms = null,
$http_proxy = null,
$http_proxy_port = null,
DesiredCapabilities $required_capabilities = null
) {
throw new WebDriverException('Please use ChromeDriver::start() instead.');
}
/**
* Always throws an exception. Use ChromeDriver::start() instead.
*
* @param string $session_id The existing session id
* @param string $selenium_server_url The url of the remote Selenium WebDriver server
* @param int|null $connection_timeout_in_ms Set timeout for the connect phase to remote Selenium WebDriver server
* @param int|null $request_timeout_in_ms Set the maximum time of a request to remote Selenium WebDriver server
* @throws WebDriverException
* @return RemoteWebDriver|void
*/
public static function createBySessionID(
$session_id,
$selenium_server_url = 'http://localhost:4444/wd/hub',
$connection_timeout_in_ms = null,
$request_timeout_in_ms = null
) {
throw new WebDriverException('Please use ChromeDriver::start() instead.');
}
}

View File

@@ -0,0 +1,37 @@
<?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\Chrome;
use Facebook\WebDriver\Remote\Service\DriverService;
class ChromeDriverService extends DriverService
{
// The environment variable storing the path to the chrome driver executable.
const CHROME_DRIVER_EXE_PROPERTY = 'webdriver.chrome.driver';
/**
* @return static
*/
public static function createDefaultService()
{
$exe = getenv(self::CHROME_DRIVER_EXE_PROPERTY);
$port = 9515; // TODO: Get another port if the default port is used.
$args = ["--port=$port"];
$service = new static($exe, $port, $args);
return $service;
}
}

View File

@@ -0,0 +1,175 @@
<?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\Chrome;
use Facebook\WebDriver\Remote\DesiredCapabilities;
/**
* The class manages the capabilities in ChromeDriver.
*
* @see https://sites.google.com/a/chromium.org/chromedriver/capabilities
*/
class ChromeOptions
{
/**
* The key of chrome options in desired capabilities.
*/
const CAPABILITY = 'chromeOptions';
/**
* @var array
*/
private $arguments = [];
/**
* @var string
*/
private $binary = '';
/**
* @var array
*/
private $extensions = [];
/**
* @var array
*/
private $experimentalOptions = [];
/**
* Sets the path of the Chrome executable. The path should be either absolute
* or relative to the location running ChromeDriver server.
*
* @param string $path
* @return ChromeOptions
*/
public function setBinary($path)
{
$this->binary = $path;
return $this;
}
/**
* @param array $arguments
* @return ChromeOptions
*/
public function addArguments(array $arguments)
{
$this->arguments = array_merge($this->arguments, $arguments);
return $this;
}
/**
* Add a Chrome extension to install on browser startup. Each path should be
* a packed Chrome extension.
*
* @param array $paths
* @return ChromeOptions
*/
public function addExtensions(array $paths)
{
foreach ($paths as $path) {
$this->addExtension($path);
}
return $this;
}
/**
* @param array $encoded_extensions An array of base64 encoded of the extensions.
* @return ChromeOptions
*/
public function addEncodedExtensions(array $encoded_extensions)
{
foreach ($encoded_extensions as $encoded_extension) {
$this->addEncodedExtension($encoded_extension);
}
return $this;
}
/**
* Sets an experimental option which has not exposed officially.
*
* @param string $name
* @param mixed $value
* @return ChromeOptions
*/
public function setExperimentalOption($name, $value)
{
$this->experimentalOptions[$name] = $value;
return $this;
}
/**
* @return DesiredCapabilities The DesiredCapabilities for Chrome with this options.
*/
public function toCapabilities()
{
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(self::CAPABILITY, $this);
return $capabilities;
}
/**
* @return array
*/
public function toArray()
{
$options = $this->experimentalOptions;
// The selenium server expects a 'dictionary' instead of a 'list' when
// reading the chrome option. However, an empty array in PHP will be
// converted to a 'list' instead of a 'dictionary'. To fix it, we always
// set the 'binary' to avoid returning an empty array.
$options['binary'] = $this->binary;
if ($this->arguments) {
$options['args'] = $this->arguments;
}
if ($this->extensions) {
$options['extensions'] = $this->extensions;
}
return $options;
}
/**
* Add a Chrome extension to install on browser startup. Each path should be a
* packed Chrome extension.
*
* @param string $path
* @return ChromeOptions
*/
private function addExtension($path)
{
$this->addEncodedExtension(base64_encode(file_get_contents($path)));
return $this;
}
/**
* @param string $encoded_extension Base64 encoded of the extension.
* @return ChromeOptions
*/
private function addEncodedExtension($encoded_extension)
{
$this->extensions[] = $encoded_extension;
return $this;
}
}