Skip to content

Commit c4ec484

Browse files
committed
refactor: make it testable
1 parent e91d3e4 commit c4ec484

File tree

1 file changed

+32
-27
lines changed

1 file changed

+32
-27
lines changed

src/ProcessManager/FirefoxManager.php

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -54,33 +54,7 @@ public function start(): WebDriver
5454
$this->waitUntilReady($this->process, $url.$this->options['path'], 'firefox');
5555
}
5656

57-
$firefoxOptions = [];
58-
if (isset($_SERVER['PANTHER_FIREFOX_BINARY'])) {
59-
$firefoxOptions['binary'] = $_SERVER['PANTHER_FIREFOX_BINARY'];
60-
}
61-
if ($this->arguments) {
62-
$firefoxOptions['args'] = $this->arguments;
63-
}
64-
65-
$capabilities = DesiredCapabilities::firefox();
66-
$capabilities->setCapability('moz:firefoxOptions', $firefoxOptions);
67-
68-
// Prefer reduced motion, see https://developer.mozilla.org/fr/docs/Web/CSS/@media/prefers-reduced-motion
69-
/** @var FirefoxOptions|array $firefoxOptions */
70-
$firefoxOptions = $capabilities->getCapability('moz:firefoxOptions') ?? [];
71-
$firefoxOptions = $firefoxOptions instanceof FirefoxOptions ? $firefoxOptions->toArray() : $firefoxOptions;
72-
if (!filter_var($_SERVER['PANTHER_NO_REDUCED_MOTION'] ?? false, \FILTER_VALIDATE_BOOLEAN)) {
73-
$firefoxOptions['prefs']['ui.prefersReducedMotion'] = 1;
74-
} else {
75-
$firefoxOptions['prefs']['ui.prefersReducedMotion'] = 0;
76-
}
77-
$capabilities->setCapability('moz:firefoxOptions', $firefoxOptions);
78-
79-
foreach ($this->options['capabilities'] as $capability => $value) {
80-
$capabilities->setCapability($capability, $value);
81-
}
82-
83-
return RemoteWebDriver::create($url, $capabilities, $this->options['connection_timeout_in_ms'] ?? null, $this->options['request_timeout_in_ms'] ?? null);
57+
return RemoteWebDriver::create($url, $this->buildCapabilities(), $this->options['connection_timeout_in_ms'] ?? null, $this->options['request_timeout_in_ms'] ?? null);
8458
}
8559

8660
public function quit(): void
@@ -123,6 +97,37 @@ private function getDefaultArguments(): array
12397
return $args;
12498
}
12599

100+
private function buildCapabilities(): DesiredCapabilities
101+
{
102+
$firefoxOptions = [];
103+
if (isset($_SERVER['PANTHER_FIREFOX_BINARY'])) {
104+
$firefoxOptions['binary'] = $_SERVER['PANTHER_FIREFOX_BINARY'];
105+
}
106+
if ($this->arguments) {
107+
$firefoxOptions['args'] = $this->arguments;
108+
}
109+
110+
$capabilities = DesiredCapabilities::firefox();
111+
$capabilities->setCapability('moz:firefoxOptions', $firefoxOptions);
112+
113+
// Prefer reduced motion, see https://developer.mozilla.org/fr/docs/Web/CSS/@media/prefers-reduced-motion
114+
/** @var FirefoxOptions|array $firefoxOptions */
115+
$firefoxOptions = $capabilities->getCapability('moz:firefoxOptions') ?? [];
116+
$firefoxOptions = $firefoxOptions instanceof FirefoxOptions ? $firefoxOptions->toArray() : $firefoxOptions;
117+
if (!filter_var($_SERVER['PANTHER_NO_REDUCED_MOTION'] ?? false, \FILTER_VALIDATE_BOOLEAN)) {
118+
$firefoxOptions['prefs']['ui.prefersReducedMotion'] = 1;
119+
} else {
120+
$firefoxOptions['prefs']['ui.prefersReducedMotion'] = 0;
121+
}
122+
$capabilities->setCapability('moz:firefoxOptions', $firefoxOptions);
123+
124+
foreach ($this->options['capabilities'] as $capability => $value) {
125+
$capabilities->setCapability($capability, $value);
126+
}
127+
128+
return $capabilities;
129+
}
130+
126131
private function getDefaultOptions(): array
127132
{
128133
return [

0 commit comments

Comments
 (0)