diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 146a39d..995f6c7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,9 +24,7 @@ jobs: run: composer validate - name: Install dependencies - run: | - composer require phpunit/phpunit "<=8.5.2" --no-update --ignore-platform-reqs - composer install --prefer-dist --no-progress --no-interaction --no-suggest + run: composer install --prefer-dist --no-progress --no-interaction --no-suggest - name: Run test suite run: | diff --git a/composer.json b/composer.json index 71d51b5..60325ea 100644 --- a/composer.json +++ b/composer.json @@ -17,8 +17,8 @@ "require": { "php": ">=5.6.0 <8.0", "guzzlehttp/guzzle": "^6.3.0|^7.0.0", - "codeception/lib-innerbrowser": "^1.0", - "codeception/codeception": "^4.0" + "codeception/lib-innerbrowser": "^1.3.2", + "codeception/codeception": "*@dev" }, "require-dev": { "codeception/util-robohelpers": "dev-master", diff --git a/src/Codeception/Lib/Connector/Guzzle.php b/src/Codeception/Lib/Connector/Guzzle.php index fddcf2c..7d68629 100644 --- a/src/Codeception/Lib/Connector/Guzzle.php +++ b/src/Codeception/Lib/Connector/Guzzle.php @@ -15,7 +15,6 @@ use GuzzleHttp\Psr7\Response as Psr7Response; use GuzzleHttp\Psr7\Uri as Psr7Uri; use Symfony\Component\BrowserKit\AbstractBrowser as Client; -use Symfony\Component\BrowserKit\Cookie; use Symfony\Component\BrowserKit\Request as BrowserKitRequest; use Symfony\Component\BrowserKit\Response as BrowserKitResponse; @@ -27,10 +26,10 @@ class Guzzle extends Client ]; protected $refreshMaxInterval = 0; - protected $awsCredentials = null; - protected $awsSignature = null; + protected $awsCredentials; + protected $awsSignature; - /** @var \GuzzleHttp\Client */ + /** @var GuzzleClient */ protected $client; /** @@ -49,7 +48,7 @@ public function setRefreshMaxInterval($seconds) $this->refreshMaxInterval = $seconds; } - public function setClient(GuzzleClient &$client) + public function setClient(GuzzleClient $client) { $this->client = $client; } @@ -66,7 +65,7 @@ public function setClient(GuzzleClient &$client) */ public function setHeader($name, $value) { - if (strval($value) === '') { + if ((string)$value === '') { $this->deleteHeader($name); } else { $this->requestOptions['headers'][$name] = $value; @@ -101,9 +100,9 @@ public function setAuth($username, $password, $type = 'basic') /** * Taken from Mink\BrowserKitDriver * - * @param Response $response + * @param Psr7Response $response * - * @return \Symfony\Component\BrowserKit\Response + * @return BrowserKitResponse */ protected function createResponse(Psr7Response $response) { @@ -120,7 +119,7 @@ protected function createResponse(Psr7Response $response) } if (strpos($contentType, 'charset=') === false) { - if (preg_match('/\]+charset *= *["\']?([a-zA-Z\-0-9]+)/i', $body, $matches)) { + if (preg_match('/]+charset *= *["\']?([a-zA-Z\-0-9]+)/i', $body, $matches)) { $contentType .= ';charset=' . $matches[1]; } $headers['Content-Type'] = [$contentType]; @@ -131,7 +130,7 @@ protected function createResponse(Psr7Response $response) $matches = []; $matchesMeta = preg_match( - '/\]+http-equiv="refresh" content="\s*(\d*)\s*;\s*url=(.*?)"/i', + '/]+http-equiv="refresh" content="\s*(\d*)\s*;\s*url=(.*?)"/i', $body, $matches ); @@ -149,7 +148,7 @@ protected function createResponse(Psr7Response $response) $uri = new Psr7Uri($this->getAbsoluteUri($matches[2])); $currentUri = new Psr7Uri($this->getHistory()->current()->getUri()); - if ($uri->withFragment('') != $currentUri->withFragment('')) { + if ($uri->withFragment('') !== $currentUri->withFragment('')) { $status = 302; $headers['Location'] = $matchesMeta ? htmlspecialchars_decode($uri) : (string)$uri; } @@ -196,7 +195,7 @@ protected function doRequest($request) } $formData = $this->extractFormData($request); - if (empty($multipartData) and $formData) { + if (empty($multipartData) && $formData) { $options['form_params'] = $formData; } @@ -292,7 +291,7 @@ protected function mapFiles($requestFiles, $arrayName = '') if (is_array($info)) { if (isset($info['tmp_name'])) { if ($info['tmp_name']) { - $handle = fopen($info['tmp_name'], 'r'); + $handle = fopen($info['tmp_name'], 'rb'); $filename = isset($info['name']) ? $info['name'] : null; $file = [ 'name' => $name, @@ -312,7 +311,7 @@ protected function mapFiles($requestFiles, $arrayName = '') } else { $files[] = [ 'name' => $name, - 'contents' => fopen($info, 'r') + 'contents' => fopen($info, 'rb') ]; } } @@ -325,7 +324,6 @@ protected function extractCookies($host) $jar = []; $cookies = $this->getCookieJar()->all(); foreach ($cookies as $cookie) { - /** @var $cookie Cookie **/ $setCookie = SetCookie::fromString((string)$cookie); if (!$setCookie->getDomain()) { $setCookie->setDomain($host); diff --git a/src/Codeception/Module/PhpBrowser.php b/src/Codeception/Module/PhpBrowser.php index 72a07cb..bbf2ce8 100644 --- a/src/Codeception/Module/PhpBrowser.php +++ b/src/Codeception/Module/PhpBrowser.php @@ -1,11 +1,11 @@ '"guzzlehttp/guzzle": ">=6.3.0 <7.0"']; - } - public function _initialize() { $this->_initializeSession(); @@ -175,8 +170,8 @@ public function amOnUrl($url) public function amOnSubdomain($subdomain) { $url = $this->config['url']; - $url = preg_replace('~(https?:\/\/)(.*\.)(.*\.)~', "$1$3", $url); // removing current subdomain - $url = preg_replace('~(https?:\/\/)(.*)~', "$1$subdomain.$2", $url); // inserting new + $url = preg_replace('~(https?://)(.*\.)(.*\.)~', "$1$3", $url); // removing current subdomain + $url = preg_replace('~(https?://)(.*)~', "$1$subdomain.$2", $url); // inserting new $config = $this->config; $config['url'] = $url; $this->_reconfigure($config); @@ -204,9 +199,10 @@ protected function onReconfigure() * It is not recommended to use this command on a regular basis. * If Codeception lacks important Guzzle Client methods, implement them and submit patches. * - * @param callable $function + * @param Closure $function + * @return mixed */ - public function executeInGuzzle(\Closure $function) + public function executeInGuzzle(Closure $function) { return $function($this->guzzle); } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy