xref: /plugin/combo/vendor/php-webdriver/webdriver/lib/Firefox/FirefoxDriverService.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1*04fd306cSNickeau<?php
2*04fd306cSNickeau
3*04fd306cSNickeaunamespace Facebook\WebDriver\Firefox;
4*04fd306cSNickeau
5*04fd306cSNickeauuse Facebook\WebDriver\Remote\Service\DriverService;
6*04fd306cSNickeau
7*04fd306cSNickeauclass FirefoxDriverService extends DriverService
8*04fd306cSNickeau{
9*04fd306cSNickeau    /**
10*04fd306cSNickeau     * @var string Name of the environment variable storing the path to the driver binary
11*04fd306cSNickeau     */
12*04fd306cSNickeau    const WEBDRIVER_FIREFOX_DRIVER = 'WEBDRIVER_FIREFOX_DRIVER';
13*04fd306cSNickeau    /**
14*04fd306cSNickeau     * @var string Default executable used when no other is provided
15*04fd306cSNickeau     * @internal
16*04fd306cSNickeau     */
17*04fd306cSNickeau    const DEFAULT_EXECUTABLE = 'geckodriver';
18*04fd306cSNickeau
19*04fd306cSNickeau    /**
20*04fd306cSNickeau     * @return static
21*04fd306cSNickeau     */
22*04fd306cSNickeau    public static function createDefaultService()
23*04fd306cSNickeau    {
24*04fd306cSNickeau        $pathToExecutable = getenv(static::WEBDRIVER_FIREFOX_DRIVER);
25*04fd306cSNickeau        if ($pathToExecutable === false || $pathToExecutable === '') {
26*04fd306cSNickeau            $pathToExecutable = static::DEFAULT_EXECUTABLE;
27*04fd306cSNickeau        }
28*04fd306cSNickeau
29*04fd306cSNickeau        $port = 9515; // TODO: Get another free port if the default port is used.
30*04fd306cSNickeau        $args = ['-p=' . $port];
31*04fd306cSNickeau
32*04fd306cSNickeau        return new static($pathToExecutable, $port, $args);
33*04fd306cSNickeau    }
34*04fd306cSNickeau}
35