diff --git a/.gitignore b/.gitignore index 9c0294d..100af41 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ composer.lock dev/ build/ .vscode -tests/coverage \ No newline at end of file +tests/coverage +.phpunit.result.cache \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 941e1cb..6520f85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [4.0.0] - 2025-11-03 + +### Changed + +- Updated minimum PHP version from 5.5 to 7.2.5 +- Updated Guzzle HTTP client from 6.0 to 7.0 + +### Fixed + +- Removed ` \ No newline at end of file +} \ No newline at end of file diff --git a/tests/PerimeterxConfigurationValidatorTest.php b/tests/PerimeterxConfigurationValidatorTest.php index a475d26..f7f9241 100644 --- a/tests/PerimeterxConfigurationValidatorTest.php +++ b/tests/PerimeterxConfigurationValidatorTest.php @@ -3,7 +3,7 @@ use PHPUnit\Framework\TestCase; use Perimeterx\Perimeterx; -class PerimeterxConfigurationValidatorTest extends PHPUnit_Framework_TestCase +class PerimeterxConfigurationValidatorTest extends PHPUnit\Framework\TestCase { protected $params; diff --git a/tests/PerimeterxCookieV3ValidatorTest.php b/tests/PerimeterxCookieV3ValidatorTest.php index de029dd..cf90a9e 100644 --- a/tests/PerimeterxCookieV3ValidatorTest.php +++ b/tests/PerimeterxCookieV3ValidatorTest.php @@ -6,7 +6,7 @@ use PHPUnit\Framework\TestCase; use Psr\Log\AbstractLogger; -class PerimeterxCookieV3ValidatorTest extends PHPUnit_Framework_TestCase +class PerimeterxCookieV3ValidatorTest extends PHPUnit\Framework\TestCase { // randomly generated fake values @@ -524,9 +524,9 @@ public function testMobileHeaderCookieVerificationFailedOnSensitiveRoute() { } public function testEncryptedTokenDecryption() { - // far future encrypted cookie + // far future encrypted cookie (expires 2030) $cookie_origin="header"; - $pxCookie = "8d4a0f41e65af5088266f1eb0db7bd4266309d3c471c097aea538e17c1ebe82d:mmjSIpdOpbZYsDjXe0vAieBbrG7k8JVJO2+9itMXUoZfugSlvRIqK4BUKPDAd2gftZtbwU0eA5LZXHf8VURI/w==:1000:KFCP3EU4qtGhRab+OgIYeg0SXhXWWfmSvmTK6+4J5vwN73/IVx/BkcRzC1inFxJ2jCHr+KqcQxEpcqyO1E91l2Wk38ddADYzuog3KhbsV9j2wXldnX0zWkc7dgnRHc8xJuck4NfrZivdfQNA0AC4k+z0sasqwRWQ5Eq1mjnIwf8="; + $pxCookie = "03f5ed4e3a66cfbebfb6ef038863f26640ef1c2ff6a511bfa1f4ee58feadd95c:SkpI+K6uJQw=:1000:FxDFLxnIdE+u+4bgEZA9/1jaI9AkY5lLpPvqAhLpVyZm1PfL8BKCYmDHK/Q0OwyBG4D3Cm2GubexSrdfb6mDuw4ucjqfgxtfbgF2LLn+DkgNLYvErnkALH22tGU9UGje"; $userAgent = self::USER_AGENT; $pxCtx = $this->getPxContext($pxCookie, $userAgent, false, $cookie_origin); $pxConfig = [ @@ -616,7 +616,7 @@ private function getPxContext($pxCookie, $userAgent, $sensitive_route = false, $ { $pxCtx = $this->getMockBuilder(PerimeterxContext::class) ->disableOriginalConstructor() - ->setMethods(['getPxCookie', 'getUserAgent', 'getIp','isSensitiveRoute', 'getCookieOrigin', 'getPxCookies']) + ->setMethods(['getPxCookie', 'getUserAgent', 'getIp','isSensitiveRoute', 'getCookieOrigin', 'getPxCookies', 'getCookieVersion', 'getUri', 'getLoginCredentials', 'getPxhdCookie', 'getOriginalToken']) ->getMock(); $pxCtx->expects($this->any()) ->method('getPxCookie') @@ -633,6 +633,21 @@ private function getPxContext($pxCookie, $userAgent, $sensitive_route = false, $ $pxCtx->expects($this->any()) ->method("getPxCookies") ->willReturn(array('v3' => 'aaaaa')); // mocking an entry to cookies array that will trigger V3 cookie/token + $pxCtx->expects($this->any()) + ->method('getCookieVersion') + ->willReturn('v3'); + $pxCtx->expects($this->any()) + ->method('getUri') + ->willReturn('/'); + $pxCtx->expects($this->any()) + ->method('getLoginCredentials') + ->willReturn(null); + $pxCtx->expects($this->any()) + ->method('getPxhdCookie') + ->willReturn(null); + $pxCtx->expects($this->any()) + ->method('getOriginalToken') + ->willReturn(null); return $pxCtx; } diff --git a/tests/PerimeterxCookieValidatorTest.php b/tests/PerimeterxCookieValidatorTest.php index 8e8c9b5..8e5cb34 100644 --- a/tests/PerimeterxCookieValidatorTest.php +++ b/tests/PerimeterxCookieValidatorTest.php @@ -6,7 +6,7 @@ use PHPUnit\Framework\TestCase; use Psr\Log\AbstractLogger; -class PerimeterxCookieValidatorTest extends PHPUnit_Framework_TestCase +class PerimeterxCookieValidatorTest extends PHPUnit\Framework\TestCase { // randomly generated fake values diff --git a/tests/PerimeterxDataEnrichmentTest.php b/tests/PerimeterxDataEnrichmentTest.php index 9f23491..ae8360d 100644 --- a/tests/PerimeterxDataEnrichmentTest.php +++ b/tests/PerimeterxDataEnrichmentTest.php @@ -8,7 +8,7 @@ use PHPUnit\Framework\TestCase; use Psr\Log\AbstractLogger; -class PerimeterxDataEnrichmentTest extends PHPUnit_Framework_TestCase { +class PerimeterxDataEnrichmentTest extends PHPUnit\Framework\TestCase { const COOKIE_KEY = '549Z5UsasvfmVS6kAR3r4ydPnQdnnW4Gcwk35hj5tatZ5B2dqjrQvMMyLAJN5de3'; public function testNoPxdeCookie() { diff --git a/tests/PerimeterxFieldExtractorManagerTest.php b/tests/PerimeterxFieldExtractorManagerTest.php index 2011d8a..090a5b7 100644 --- a/tests/PerimeterxFieldExtractorManagerTest.php +++ b/tests/PerimeterxFieldExtractorManagerTest.php @@ -5,7 +5,7 @@ use Perimeterx\CredentialsIntelligence\PerimeterxFieldExtractorManager; use Perimeterx\CredentialsIntelligence\Protocol\V1CredentialsIntelligenceProtocol; -class PerimeterxFieldExtractorManagerTest extends PHPUnit_Framework_TestCase +class PerimeterxFieldExtractorManagerTest extends PHPUnit\Framework\TestCase { const LOGIN_REQUEST_URI = "/login"; const LOGIN_REQUEST_METHOD = "POST"; diff --git a/tests/PerimeterxFirstPartyClientTest.php b/tests/PerimeterxFirstPartyClientTest.php index 07f9d7b..6f39cc8 100644 --- a/tests/PerimeterxFirstPartyClientTest.php +++ b/tests/PerimeterxFirstPartyClientTest.php @@ -7,7 +7,7 @@ use PerimeterxTests\MockHttpClient; use PerimeterxTests\TestUtils; -class PerimeterxFirstPartyClientTest extends PHPUnit_Framework_TestCase { +class PerimeterxFirstPartyClientTest extends PHPUnit\Framework\TestCase { private function getTestPxConfig() { $pxConfig = [ 'app_id' => 'PX_APP_ID', diff --git a/tests/PerimeterxOriginalTokenValidatorTest.php b/tests/PerimeterxOriginalTokenValidatorTest.php index b0c814a..a7ca257 100644 --- a/tests/PerimeterxOriginalTokenValidatorTest.php +++ b/tests/PerimeterxOriginalTokenValidatorTest.php @@ -6,7 +6,7 @@ use PHPUnit\Framework\TestCase; use Psr\Log\AbstractLogger; -class PerimeterxOriginalTokenValidatorTest extends PHPUnit_Framework_TestCase +class PerimeterxOriginalTokenValidatorTest extends PHPUnit\Framework\TestCase { // randomly generated fake values const COOKIE_KEY = '549Z5UsasvfmVS6kAR3r4ydPnQdnnW4Gcwk35hj5tatZ5B2dqjrQvMMyLAJN5de3'; diff --git a/tests/PerimeterxS2SValidatorTest.php b/tests/PerimeterxS2SValidatorTest.php index dbd6f34..a215fc6 100644 --- a/tests/PerimeterxS2SValidatorTest.php +++ b/tests/PerimeterxS2SValidatorTest.php @@ -6,7 +6,7 @@ use Perimeterx\PerimeterxHttpClient; use Psr\Log\AbstractLogger; -class PerimeterxS2SValidatorTest extends PHPUnit_Framework_TestCase +class PerimeterxS2SValidatorTest extends PHPUnit\Framework\TestCase { // randomly generated fake values const COOKIE_KEY = '549Z5UsasvfmVS6kAR3r4ydPnQdnnW4Gcwk35hj5tatZ5B2dqjrQvMMyLAJN5de3'; @@ -43,7 +43,8 @@ public function testAttachPxOrigCookie() { $invocations = $spy->getInvocations(); $last = end($invocations); - $this->assertEquals($pxCookie, $last->parameters[2]["additional"]["px_cookie_orig"]); + $params = $last->getParameters(); + $this->assertEquals($pxCookie, $params[2]["additional"]["px_cookie_orig"]); } /** diff --git a/tests/PerimeterxUtilsTest.php b/tests/PerimeterxUtilsTest.php index 585924c..29277bb 100644 --- a/tests/PerimeterxUtilsTest.php +++ b/tests/PerimeterxUtilsTest.php @@ -9,7 +9,7 @@ public static function setInputStreamName($inputStreamName) { } } -class PerimeterxUtilsTest extends PHPUnit_Framework_TestCase { +class PerimeterxUtilsTest extends PHPUnit\Framework\TestCase { const TEMP_STREAM_NAME = "file://" . __DIR__ . "/tmp.txt"; public function setUp() {