<?php

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.
     * @deprecated Use ChromeDriverService::CHROME_DRIVER_EXECUTABLE
     */
    public const CHROME_DRIVER_EXE_PROPERTY = 'webdriver.chrome.driver';
    /** @var string The environment variable storing the path to the chrome driver executable */
    public const CHROME_DRIVER_EXECUTABLE = 'WEBDRIVER_CHROME_DRIVER';
    /**
     * @var string Default executable used when no other is provided
     * @internal
     */
    public const DEFAULT_EXECUTABLE = 'chromedriver';

    /**
     * @return static
     */
    public static function createDefaultService()
    {
        $pathToExecutable = getenv(self::CHROME_DRIVER_EXECUTABLE) ?: getenv(self::CHROME_DRIVER_EXE_PROPERTY);
        if ($pathToExecutable === false || $pathToExecutable === '') {
            $pathToExecutable = static::DEFAULT_EXECUTABLE;
        }

        $port = 9515; // TODO: Get another port if the default port is used.
        $args = ['--port=' . $port];

        return new static($pathToExecutable, $port, $args);
    }
}
