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.
- Adjusted UriIntegrationTest to not violate RFC3986 (see #82).
- Support for PHPUnit 11 & 12.
- Build with the fatfree PSR7 client as well.
- Support for PHPUnit 10.
- Support for PHP 7.2 and PHPUnit 9.
-
Adds
UriIntegrationTest::testSpecialCharsInUserInfoandUriIntegrationTest::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
InvalidArgumentExceptionpreviously 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