đã tạo được test case của createUser
This commit is contained in:
+159
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
|
||||
namespace Laravel\Dusk;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
use InvalidArgumentException;
|
||||
|
||||
class OperatingSystem
|
||||
{
|
||||
/**
|
||||
* List of available operating system platforms.
|
||||
*
|
||||
* @var array<string, array{slug: string, commands: array<int, string>}>
|
||||
*/
|
||||
protected static $platforms = [
|
||||
'linux' => [
|
||||
'slug' => 'linux64',
|
||||
'commands' => [
|
||||
'/usr/bin/google-chrome --version',
|
||||
'/usr/bin/chromium-browser --version',
|
||||
'/usr/bin/chromium --version',
|
||||
'/usr/bin/google-chrome-stable --version',
|
||||
],
|
||||
],
|
||||
'mac' => [
|
||||
'slug' => 'mac-x64',
|
||||
'commands' => [
|
||||
'/Applications/Google\ Chrome\ for\ Testing.app/Contents/MacOS/Google\ Chrome\ for\ Testing --version',
|
||||
'/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version',
|
||||
],
|
||||
],
|
||||
'mac-intel' => [
|
||||
'slug' => 'mac-x64',
|
||||
'commands' => [
|
||||
'/Applications/Google\ Chrome\ for\ Testing.app/Contents/MacOS/Google\ Chrome\ for\ Testing --version',
|
||||
'/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version',
|
||||
],
|
||||
],
|
||||
'mac-arm' => [
|
||||
'slug' => 'mac-arm64',
|
||||
'commands' => [
|
||||
'/Applications/Google\ Chrome\ for\ Testing.app/Contents/MacOS/Google\ Chrome\ for\ Testing --version',
|
||||
'/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version',
|
||||
],
|
||||
],
|
||||
'win' => [
|
||||
'slug' => 'win32',
|
||||
'commands' => [
|
||||
'reg query "HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon" /v version',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Resolve the Chrome version commands for the given operating system.
|
||||
*
|
||||
* @param string $operatingSystem
|
||||
* @return array<int, string>
|
||||
*/
|
||||
public static function chromeVersionCommands($operatingSystem)
|
||||
{
|
||||
$commands = static::$platforms[$operatingSystem]['commands'] ?? null;
|
||||
|
||||
if (is_null($commands)) {
|
||||
throw new InvalidArgumentException("Unable to find commands for Operating System [{$operatingSystem}]");
|
||||
}
|
||||
|
||||
return $commands;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve the ChromeDriver slug for the given operating system.
|
||||
*
|
||||
* @param string $operatingSystem
|
||||
* @param string|null $version
|
||||
* @return string
|
||||
*/
|
||||
public static function chromeDriverSlug($operatingSystem, $version = null)
|
||||
{
|
||||
$slug = static::$platforms[$operatingSystem]['slug'] ?? null;
|
||||
|
||||
if (is_null($slug)) {
|
||||
throw new InvalidArgumentException("Unable to find ChromeDriver slug for Operating System [{$operatingSystem}]");
|
||||
}
|
||||
|
||||
if (! is_null($version) && version_compare($version, '115.0', '<')) {
|
||||
if ($slug === 'mac-arm64') {
|
||||
return version_compare($version, '106.0.5249', '<') ? 'mac64_m1' : 'mac_arm64';
|
||||
} elseif ($slug === 'mac-x64') {
|
||||
return 'mac64';
|
||||
}
|
||||
}
|
||||
|
||||
return $slug;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all supported operating systems.
|
||||
*
|
||||
* @return array<int, string>
|
||||
*/
|
||||
public static function all()
|
||||
{
|
||||
return array_keys(static::$platforms);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current operating system identifier.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function id()
|
||||
{
|
||||
if (static::onWindows()) {
|
||||
return 'win';
|
||||
} elseif (static::onMac()) {
|
||||
return static::macArchitectureId();
|
||||
}
|
||||
|
||||
return 'linux';
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the operating system is Windows or Windows Subsystem for Linux.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function onWindows()
|
||||
{
|
||||
return PHP_OS === 'WINNT' || Str::contains(php_uname(), 'Microsoft');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the operating system is macOS.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function onMac()
|
||||
{
|
||||
return PHP_OS === 'Darwin';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current macOS platform architecture.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function macArchitectureId()
|
||||
{
|
||||
switch (php_uname('m')) {
|
||||
case 'arm64':
|
||||
return 'mac-arm';
|
||||
case 'x86_64':
|
||||
return 'mac-intel';
|
||||
default:
|
||||
return 'mac';
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user