diff --git a/composer.json b/composer.json index 2bba13ee24accc1d058d8b22943fcf1f0fbf9738..475e114d8f67be300e26e74ff5367e60f2c63b72 100644 --- a/composer.json +++ b/composer.json @@ -80,7 +80,8 @@ "phpmd/phpmd": "2.8.1", "phpunit/phpunit": "7.5.20", "sebastian/phpcpd": "4.1.0", - "squizlabs/php_codesniffer": "3.5.3" + "squizlabs/php_codesniffer": "3.5.3", + "dmore/chrome-mink-driver": "^2.7" }, "extra": { "merge-plugin": { diff --git a/composer.lock b/composer.lock index adb55f03ab43104df0d56af14116139205301f65..f707adc518cfb10ed6f31f5aabc7e9822818fd85 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b675aae875163666b2bbbc27fd4bdb0b", + "content-hash": "ced17b29cf19648fc7ac5f7f9debc075", "packages": [ { "name": "ahand/mobileesp", @@ -1836,7 +1836,7 @@ }, { "name": "symfony/inflector", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/inflector.git", @@ -1894,7 +1894,7 @@ }, { "name": "symfony/options-resolver", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", @@ -2124,7 +2124,7 @@ }, { "name": "symfony/property-access", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", @@ -5522,16 +5522,16 @@ }, { "name": "composer/xdebug-handler", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "cbe23383749496fe0f373345208b79568e4bc248" + "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248", - "reference": "cbe23383749496fe0f373345208b79568e4bc248", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/1ab9842d69e64fb3a01be6b656501032d1b78cb7", + "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7", "shasum": "" }, "require": { @@ -5562,7 +5562,55 @@ "Xdebug", "performance" ], - "time": "2019-11-06T16:40:04+00:00" + "time": "2020-03-01T12:26:26+00:00" + }, + { + "name": "dmore/chrome-mink-driver", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://gitlab.com/DMore/chrome-mink-driver.git", + "reference": "d66765fb7f448e8b2bca2b899308a4a6d8a69264" + }, + "dist": { + "type": "zip", + "url": "https://gitlab.com/api/v4/projects/DMore%2Fchrome-mink-driver/repository/archive.zip?sha=d66765fb7f448e8b2bca2b899308a4a6d8a69264", + "reference": "d66765fb7f448e8b2bca2b899308a4a6d8a69264", + "shasum": "" + }, + "require": { + "behat/mink": "^1.7", + "ext-curl": "*", + "ext-json": "*", + "textalk/websocket": "^1.2.0" + }, + "require-dev": { + "mink/driver-testsuite": "dev-master", + "phpunit/phpunit": "^5.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "DMore\\ChromeDriver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dorian More", + "email": "doriancmore@gmail.com" + } + ], + "description": "Mink driver for controlling chrome without selenium", + "time": "2019-03-30T09:22:58+00:00" }, { "name": "doctrine/annotations", @@ -6416,16 +6464,16 @@ }, { "name": "phpspec/prophecy", - "version": "v1.10.2", + "version": "v1.10.3", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9" + "reference": "451c3cd1418cf640de218914901e51b064abb093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9", - "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", "shasum": "" }, "require": { @@ -6475,7 +6523,7 @@ "spy", "stub" ], - "time": "2020-01-20T15:57:02+00:00" + "time": "2020-03-05T15:02:03+00:00" }, { "name": "phpunit/php-code-coverage", @@ -7526,16 +7574,16 @@ }, { "name": "symfony/config", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "6abc18b2a97f63508d23929bbb2ae65aaa07bace" + "reference": "03328d6e172ec7384341c622d4c28d350040d021" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/6abc18b2a97f63508d23929bbb2ae65aaa07bace", - "reference": "6abc18b2a97f63508d23929bbb2ae65aaa07bace", + "url": "https://api.github.com/repos/symfony/config/zipball/03328d6e172ec7384341c622d4c28d350040d021", + "reference": "03328d6e172ec7384341c622d4c28d350040d021", "shasum": "" }, "require": { @@ -7586,20 +7634,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:05:51+00:00" + "time": "2020-02-03T08:11:57+00:00" }, { "name": "symfony/console", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12" + "reference": "6827023c5872bea44b29d145de693b21981cf4cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12", - "reference": "7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12", + "url": "https://api.github.com/repos/symfony/console/zipball/6827023c5872bea44b29d145de693b21981cf4cd", + "reference": "6827023c5872bea44b29d145de693b21981cf4cd", "shasum": "" }, "require": { @@ -7658,20 +7706,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2020-01-10T07:52:48+00:00" + "time": "2020-02-15T13:27:16+00:00" }, { "name": "symfony/css-selector", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "e1b3e1a0621d6e48ee46092b4c7d8280f746b3c5" + "reference": "ee9b946e7223b11257329a054c64396b19d619e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/e1b3e1a0621d6e48ee46092b4c7d8280f746b3c5", - "reference": "e1b3e1a0621d6e48ee46092b4c7d8280f746b3c5", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ee9b946e7223b11257329a054c64396b19d619e1", + "reference": "ee9b946e7223b11257329a054c64396b19d619e1", "shasum": "" }, "require": { @@ -7711,20 +7759,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2020-01-01T11:03:25+00:00" + "time": "2020-02-04T08:04:52+00:00" }, { "name": "symfony/debug", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "70dd18e93bb8bdf3c4db7fde832619fef9828cf8" + "reference": "a99278d50af8a9164219da38d61fb161a7f6e0a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/70dd18e93bb8bdf3c4db7fde832619fef9828cf8", - "reference": "70dd18e93bb8bdf3c4db7fde832619fef9828cf8", + "url": "https://api.github.com/repos/symfony/debug/zipball/a99278d50af8a9164219da38d61fb161a7f6e0a6", + "reference": "a99278d50af8a9164219da38d61fb161a7f6e0a6", "shasum": "" }, "require": { @@ -7767,20 +7815,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2020-01-08T16:36:15+00:00" + "time": "2020-02-03T15:10:40+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "22000f10c9e1cfef051e8b4de46815b41a0223fc" + "reference": "b06b36883abc61eb8fb576e89102a9ba6c9ee7ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/22000f10c9e1cfef051e8b4de46815b41a0223fc", - "reference": "22000f10c9e1cfef051e8b4de46815b41a0223fc", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b06b36883abc61eb8fb576e89102a9ba6c9ee7ee", + "reference": "b06b36883abc61eb8fb576e89102a9ba6c9ee7ee", "shasum": "" }, "require": { @@ -7838,20 +7886,20 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2020-01-08T11:20:51+00:00" + "time": "2020-02-19T17:19:43+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "79ede8f2836e5ec910ebb325bde40f987244baa8" + "reference": "2f67a869aef3eecf42e7f8be4a8b86c92308686c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/79ede8f2836e5ec910ebb325bde40f987244baa8", - "reference": "79ede8f2836e5ec910ebb325bde40f987244baa8", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2f67a869aef3eecf42e7f8be4a8b86c92308686c", + "reference": "2f67a869aef3eecf42e7f8be4a8b86c92308686c", "shasum": "" }, "require": { @@ -7901,11 +7949,11 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:05:51+00:00" + "time": "2020-02-04T08:04:52+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", @@ -7955,16 +8003,16 @@ }, { "name": "symfony/finder", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a90a9d3b9f458a5cdeabfa4090b20c000ca3962f" + "reference": "5ec813ccafa8164ef21757e8c725d3a57da59200" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a90a9d3b9f458a5cdeabfa4090b20c000ca3962f", - "reference": "a90a9d3b9f458a5cdeabfa4090b20c000ca3962f", + "url": "https://api.github.com/repos/symfony/finder/zipball/5ec813ccafa8164ef21757e8c725d3a57da59200", + "reference": "5ec813ccafa8164ef21757e8c725d3a57da59200", "shasum": "" }, "require": { @@ -8000,7 +8048,7 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2020-01-01T11:03:25+00:00" + "time": "2020-02-14T07:34:21+00:00" }, { "name": "symfony/polyfill-php72", @@ -8059,16 +8107,16 @@ }, { "name": "symfony/process", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "5b9d2bcffe4678911a4c941c00b7c161252cf09a" + "reference": "b03b02dcea26ba4c65c16a73bab4f00c186b13da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/5b9d2bcffe4678911a4c941c00b7c161252cf09a", - "reference": "5b9d2bcffe4678911a4c941c00b7c161252cf09a", + "url": "https://api.github.com/repos/symfony/process/zipball/b03b02dcea26ba4c65c16a73bab4f00c186b13da", + "reference": "b03b02dcea26ba4c65c16a73bab4f00c186b13da", "shasum": "" }, "require": { @@ -8104,11 +8152,11 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2020-01-01T11:03:25+00:00" + "time": "2020-02-04T08:04:52+00:00" }, { "name": "symfony/stopwatch", - "version": "v3.4.37", + "version": "v3.4.38", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", @@ -8155,6 +8203,45 @@ "homepage": "https://symfony.com", "time": "2020-01-01T11:03:25+00:00" }, + { + "name": "textalk/websocket", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/Textalk/websocket-php.git", + "reference": "bfa18bb6bf523680c7803f6b04694fbbf2f67bbf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Textalk/websocket-php/zipball/bfa18bb6bf523680c7803f6b04694fbbf2f67bbf", + "reference": "bfa18bb6bf523680c7803f6b04694fbbf2f67bbf", + "shasum": "" + }, + "require-dev": { + "cboden/ratchet": "0.3.*", + "phpunit/phpunit": "4.1.*", + "phpunit/phpunit-selenium": "1.3.3", + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "autoload": { + "psr-4": { + "WebSocket\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fredrik Liljegren", + "email": "fredrik.liljegren@textalk.se" + } + ], + "description": "WebSocket client and server", + "time": "2015-10-09T07:32:42+00:00" + }, { "name": "theseer/fdomdocument", "version": "1.6.6", diff --git a/module/VuFind/src/VuFindTest/Unit/MinkTestCase.php b/module/VuFind/src/VuFindTest/Unit/MinkTestCase.php index c0ddacf05cf134c36b497eb6657286777308e793..ac7494b465fc8015fcacb54e63d8391525ca8826 100644 --- a/module/VuFind/src/VuFindTest/Unit/MinkTestCase.php +++ b/module/VuFind/src/VuFindTest/Unit/MinkTestCase.php @@ -31,6 +31,7 @@ namespace VuFindTest\Unit; use Behat\Mink\Driver\Selenium2Driver; use Behat\Mink\Element\Element; use Behat\Mink\Session; +use DMore\ChromeDriver\ChromeDriver; use VuFind\Config\Locator as ConfigLocator; use VuFind\Config\Writer as ConfigWriter; @@ -154,8 +155,11 @@ abstract class MinkTestCase extends DbTestCase */ protected function getMinkDriver() { - $env = getenv('VUFIND_SELENIUM_BROWSER'); - $browser = $env ? $env : 'firefox'; + $driver = getenv('VUFIND_MINK_DRIVER') ?? 'selenium'; + if ($driver === 'chrome') { + return new ChromeDriver('http://localhost:9222', null, 'data:;'); + } + $browser = getenv('VUFIND_SELENIUM_BROWSER') ?? 'firefox'; return new Selenium2Driver($browser); }