Skip to content

Commit

Permalink
Merge pull request #301 from loic425/feature/behat-dmore-extension
Browse files Browse the repository at this point in the history
Use Behat dmore extensions
  • Loading branch information
loic425 committed Jan 26, 2021
2 parents 02ff7fd + 22c4cc3 commit 0864f3c
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 25 deletions.
22 changes: 1 addition & 21 deletions .github/workflows/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:

-
name: Run PHPStan
run: make test-psalm
run: make test-phpstan
if: always() && steps.end-of-setup.outcome == 'success'

test-application-without-frontend:
Expand Down Expand Up @@ -353,26 +353,6 @@ jobs:
name: Warmup cache
run: bin/console cache:warmup

-
name: Download and configure ChromeDriver
run: |
curl https://chromedriver.storage.googleapis.com/87.0.4280.88/chromedriver_linux64.zip > chromedriver.zip
unzip chromedriver.zip
chmod +x chromedriver
-
name: Run ChromeDriver
run: ./chromedriver > /dev/null 2>&1 &

-
name: Download and configure Selenium
run: |
curl http://selenium-release.storage.googleapis.com/3.4/selenium-server-standalone-3.4.0.jar > selenium.jar
-
name: Run Selenium
run: java -Dwebdriver.chrome.driver=./chromedriver -jar ./selenium.jar > /dev/null 2>&1 &

-
name: Run webserver
run: symfony server:start --port=8080 --dir=public --daemon
Expand Down
9 changes: 7 additions & 2 deletions behat.yml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ default:
snippets: false

extensions:
DMore\ChromeExtension\Behat\ServiceContainer\ChromeExtension: ~

FriendsOfBehat\MinkDebugExtension:
directory: etc/build
clean_start: false
Expand All @@ -18,10 +20,14 @@ default:
files_path: "%paths.base%/src/Monofony/Pack/CorePack/.recipe/tests/Resources/"
base_url: "https://127.0.0.1:8080/"
default_session: symfony
javascript_session: chrome
javascript_session: chrome_headless
sessions:
symfony:
symfony: ~
chrome_headless:
chrome:
api_url: http://127.0.0.1:9222
validate_certificate: false
chrome:
selenium2:
browser: chrome
Expand All @@ -31,7 +37,6 @@ default:
version: ""
chrome:
switches:
- "--headless"
- "start-fullscreen"
- "start-maximized"
- "no-sandbox"
Expand Down
5 changes: 4 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,11 @@
"require-dev": {
"behat/behat": "^3.2",
"behat/mink-selenium2-driver": "^1.3",
"dmore/behat-chrome-extension": "^1.3",
"dmore/chrome-mink-driver": "^2.7",
"friends-of-behat/mink": "^1.8",
"friends-of-behat/mink-browserkit-driver": "^1.4",
"friends-of-behat/mink-debug-extension": "^2.0",
"friends-of-behat/mink": "^1.8",
"friends-of-behat/mink-extension": "^2.4",
"friends-of-behat/page-object-extension": "^0.3",
"friends-of-behat/suite-settings-extension": "^1.0",
Expand All @@ -120,6 +122,7 @@
"vimeo/psalm": "^4.3"
},
"conflict": {
"api-platform/core": "^2.6",
"symfony/symfony": "*",
"symplify/package-builder": "^7.2",
"symplify/smart-file-system": "^7.2",
Expand Down
1 change: 1 addition & 0 deletions psalm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<ignoreFiles>
<directory name="vendor" />
<directory name="src/Monofony/Bridge/FOSOAuthServer/spec" />
<directory name="src/Monofony/Bridge/FOSOAuthServer/spec" />
<directory name="src/Monofony/Bridge/SyliusUser/spec" />
<directory name="src/Monofony/Pack/AdminPack/.recipe/spec" />
<directory name="src/Monofony/Pack/AdminPack/.recipe/tests" />
Expand Down
13 changes: 12 additions & 1 deletion src/Monofony/Bridge/Behat/Service/Setter/CookieSetter.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

use Behat\Mink\Driver\Selenium2Driver;
use Behat\Mink\Session;
use DMore\ChromeDriver\ChromeDriver;
use FriendsOfBehat\SymfonyExtension\Driver\SymfonyDriver;
use Symfony\Component\BrowserKit\Cookie;

Expand All @@ -37,14 +38,20 @@ public function __construct(Session $minkSession, $minkParameters)
}

/**
* {@inheritdoc}
* @psalm-suppress UndefinedDocblockClass
*/
public function setCookie($name, $value)
{
$this->prepareMinkSessionIfNeeded($this->minkSession);

$driver = $this->minkSession->getDriver();

if ($driver instanceof ChromeDriver) {
if (!$driver->isStarted()) {
$driver->start();
}
}

if ($driver instanceof SymfonyDriver) {
$driver->getClient()->getCookieJar()->set(
new Cookie($name, $value, null, null, parse_url($this->minkParameters['base_url'], PHP_URL_HOST))
Expand Down Expand Up @@ -75,6 +82,10 @@ private function shouldMinkSessionBePrepared(Session $session): bool
return true;
}

if ($driver instanceof ChromeDriver) {
return true;
}

if (false !== strpos($session->getCurrentUrl(), $this->minkParameters['base_url'])) {
return false;
}
Expand Down
3 changes: 3 additions & 0 deletions src/Monofony/Bridge/Behat/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@
"license": "MIT",
"require": {
"php": ">=7.3",
"dmore/behat-chrome-extension": "^1.3",
"dmore/chrome-mink-driver": "^2.7",
"behat/behat": "^3.2",
"behat/mink-selenium2-driver": "^1.3",
"friends-of-behat/mink-browserkit-driver": "^1.4",
"friends-of-behat/mink": "^1.8",
"friends-of-behat/mink-extension": "^2.4",
"friends-of-behat/page-object-extension": "^0.3",
"friends-of-behat/symfony-extension": "^2.0",
"monofony/core": "^0.5",
Expand Down
9 changes: 9 additions & 0 deletions symfony.lock
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@
"dealerdirect/phpcodesniffer-composer-installer": {
"version": "v0.7.1"
},
"dmore/behat-chrome-extension": {
"version": "1.3.0"
},
"dmore/chrome-mink-driver": {
"version": "2.7.0"
},
"dnoegel/php-xdg-base-dir": {
"version": "v0.1.1"
},
Expand Down Expand Up @@ -1001,6 +1007,9 @@
"symplify/smart-file-system": {
"version": "v7.2.2"
},
"textalk/websocket": {
"version": "1.5.0"
},
"thecodingmachine/safe": {
"version": "v1.3.3"
},
Expand Down

0 comments on commit 0864f3c

Please sign in to comment.