transformString( 'Visit https://example.test/about for details.', $mappings ) ); } public function test_it_rewrites_html_attribute_urls(): void { $transformer = new UrlTransformer(); $mappings = new UrlMappingCollection( array( new UrlMapping( 'https://example.test', 'https://staging.example.test' ), ) ); self::assertSame( '', $transformer->transformString( '', $mappings ) ); } public function test_it_rewrites_escaped_urls(): void { $transformer = new UrlTransformer(); $mappings = new UrlMappingCollection( array( new UrlMapping( 'https://example.test/path?a=1&b=2', 'https://staging.example.test/path?a=1&b=2' ), ) ); self::assertSame( 'https://staging.example.test/path?a=1&b=2', $transformer->transformString( 'https://example.test/path?a=1&b=2', $mappings ) ); } public function test_it_rewrites_protocol_relative_urls(): void { $transformer = new UrlTransformer(); $mappings = new UrlMappingCollection( array( new UrlMapping( 'https://example.test', 'https://staging.example.test' ), ) ); self::assertSame( '//staging.example.test/uploads/file.pdf', $transformer->transformString( '//example.test/uploads/file.pdf', $mappings ) ); } public function test_it_supports_multiple_mappings(): void { $transformer = new UrlTransformer(); $mappings = new UrlMappingCollection( array( new UrlMapping( 'https://example.test', 'https://staging.example.test' ), new UrlMapping( 'https://cdn.example.test', 'https://cdn.staging.example.test' ), ) ); self::assertSame( 'https://staging.example.test https://cdn.staging.example.test/image.jpg', $transformer->transformString( 'https://example.test https://cdn.example.test/image.jpg', $mappings ) ); } }