All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for PHPUnit 10.
- Support for PHP 7.2 and PHPUnit 9.
-
Adds
UriIntegrationTest::testSpecialCharsInUserInfo
andUriIntegrationTest::testAlreadyEncodedUserInfo
. These validate that usernames and passwords which contain reserved characters (defined by RFC3986) are being encoded so that the URI does not contain these reserved characters at any time. -
Adds support for testing against PSR-7 1.1 and 2.0. In particular, it adapts tests that were verifying invalid parameters threw
InvalidArgumentException
previously now either throw that OR (more correctly) raise aTypeError
.
- Adds
UriIntegrationTest::testGetPathNormalizesMultipleLeadingSlashesToSingleSlashToPreventXSS()
,UriIntegrationTest::testStringRepresentationWithMultipleSlashes(array $test)
, andRequestIntegrationTest::testGetRequestTargetInOriginFormNormalizesUriWithMultipleLeadingSlashesInPath()
. These validate that a path containing multiple leading slashes is (a) represented with a single slash when callingUriInterface::getPath()
, and (b) represented without changes when callingUriInterface::__toString()
, including when callingRequestInterface::getRequestTarget()
(which returns the path without the URI authority by default, to comply with origin-form). This is done to validate mitigations for CVE-2015-3257.
- Modifies
UriIntegrationTest::testPathWithMultipleSlashes()
to only validate multiple slashes in the middle of a path. Multiple leading slashes are covered with the newly introduced tests.
- Replace deprecated assertRegExp() with assertMatchesRegularExpression()
- Support for PHP8 and PHPUnit 8 and 9
- Compatible with PHP5