sonarrradarrplexorganizrnginxdashboardhtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelanding
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							143 lines
						
					
					
						
							5.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							143 lines
						
					
					
						
							5.5 KiB
						
					
					
				| <?php | |
| 
 | |
| /* | |
|  * This file is part of the Symfony package. | |
|  * | |
|  * (c) Fabien Potencier <fabien@symfony.com> | |
|  * | |
|  * For the full copyright and license information, please view the LICENSE | |
|  * file that was distributed with this source code. | |
|  */ | |
| 
 | |
| namespace Symfony\Component\HttpFoundation\Tests; | |
| 
 | |
| use PHPUnit\Framework\TestCase; | |
| use Symfony\Component\HttpFoundation\Request; | |
| use Symfony\Component\HttpFoundation\RequestStack; | |
| use Symfony\Component\HttpFoundation\UrlHelper; | |
| use Symfony\Component\Routing\RequestContext; | |
| 
 | |
| class UrlHelperTest extends TestCase | |
| { | |
|     /** | |
|      * @dataProvider getGenerateAbsoluteUrlData() | |
|      */ | |
|     public function testGenerateAbsoluteUrl($expected, $path, $pathinfo) | |
|     { | |
|         $stack = new RequestStack(); | |
|         $stack->push(Request::create($pathinfo)); | |
|         $helper = new UrlHelper($stack); | |
| 
 | |
|         $this->assertEquals($expected, $helper->getAbsoluteUrl($path)); | |
|     } | |
| 
 | |
|     public function getGenerateAbsoluteUrlData() | |
|     { | |
|         return [ | |
|             ['http://localhost/foo.png', '/foo.png', '/foo/bar.html'], | |
|             ['http://localhost/foo/foo.png', 'foo.png', '/foo/bar.html'], | |
|             ['http://localhost/foo/foo.png', 'foo.png', '/foo/bar'], | |
|             ['http://localhost/foo/bar/foo.png', 'foo.png', '/foo/bar/'], | |
| 
 | |
|             ['http://example.com/baz', 'http://example.com/baz', '/'], | |
|             ['https://example.com/baz', 'https://example.com/baz', '/'], | |
|             ['//example.com/baz', '//example.com/baz', '/'], | |
| 
 | |
|             ['http://localhost/foo/bar?baz', '?baz', '/foo/bar'], | |
|             ['http://localhost/foo/bar?baz=1', '?baz=1', '/foo/bar?foo=1'], | |
|             ['http://localhost/foo/baz?baz=1', 'baz?baz=1', '/foo/bar?foo=1'], | |
| 
 | |
|             ['http://localhost/foo/bar#baz', '#baz', '/foo/bar'], | |
|             ['http://localhost/foo/bar?0#baz', '#baz', '/foo/bar?0'], | |
|             ['http://localhost/foo/bar?baz=1#baz', '?baz=1#baz', '/foo/bar?foo=1'], | |
|             ['http://localhost/foo/baz?baz=1#baz', 'baz?baz=1#baz', '/foo/bar?foo=1'], | |
|         ]; | |
|     } | |
| 
 | |
|     /** | |
|      * @dataProvider getGenerateAbsoluteUrlRequestContextData | |
|      */ | |
|     public function testGenerateAbsoluteUrlWithRequestContext($path, $baseUrl, $host, $scheme, $httpPort, $httpsPort, $expected) | |
|     { | |
|         if (!class_exists('Symfony\Component\Routing\RequestContext')) { | |
|             $this->markTestSkipped('The Routing component is needed to run tests that depend on its request context.'); | |
|         } | |
| 
 | |
|         $requestContext = new RequestContext($baseUrl, 'GET', $host, $scheme, $httpPort, $httpsPort, $path); | |
|         $helper = new UrlHelper(new RequestStack(), $requestContext); | |
| 
 | |
|         $this->assertEquals($expected, $helper->getAbsoluteUrl($path)); | |
|     } | |
| 
 | |
|     /** | |
|      * @dataProvider getGenerateAbsoluteUrlRequestContextData | |
|      */ | |
|     public function testGenerateAbsoluteUrlWithoutRequestAndRequestContext($path) | |
|     { | |
|         if (!class_exists('Symfony\Component\Routing\RequestContext')) { | |
|             $this->markTestSkipped('The Routing component is needed to run tests that depend on its request context.'); | |
|         } | |
| 
 | |
|         $helper = new UrlHelper(new RequestStack()); | |
| 
 | |
|         $this->assertEquals($path, $helper->getAbsoluteUrl($path)); | |
|     } | |
| 
 | |
|     public function getGenerateAbsoluteUrlRequestContextData() | |
|     { | |
|         return [ | |
|             ['/foo.png', '/foo', 'localhost', 'http', 80, 443, 'http://localhost/foo.png'], | |
|             ['foo.png', '/foo', 'localhost', 'http', 80, 443, 'http://localhost/foo/foo.png'], | |
|             ['foo.png', '/foo/bar/', 'localhost', 'http', 80, 443, 'http://localhost/foo/bar/foo.png'], | |
|             ['/foo.png', '/foo', 'localhost', 'https', 80, 443, 'https://localhost/foo.png'], | |
|             ['foo.png', '/foo', 'localhost', 'https', 80, 443, 'https://localhost/foo/foo.png'], | |
|             ['foo.png', '/foo/bar/', 'localhost', 'https', 80, 443, 'https://localhost/foo/bar/foo.png'], | |
|             ['/foo.png', '/foo', 'localhost', 'http', 443, 80, 'http://localhost:443/foo.png'], | |
|             ['/foo.png', '/foo', 'localhost', 'https', 443, 80, 'https://localhost:80/foo.png'], | |
|         ]; | |
|     } | |
| 
 | |
|     public function testGenerateAbsoluteUrlWithScriptFileName() | |
|     { | |
|         $request = Request::create('http://localhost/app/web/app_dev.php'); | |
|         $request->server->set('SCRIPT_FILENAME', '/var/www/app/web/app_dev.php'); | |
| 
 | |
|         $stack = new RequestStack(); | |
|         $stack->push($request); | |
|         $helper = new UrlHelper($stack); | |
| 
 | |
|         $this->assertEquals( | |
|             'http://localhost/app/web/bundles/framework/css/structure.css', | |
|             $helper->getAbsoluteUrl('/app/web/bundles/framework/css/structure.css') | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * @dataProvider getGenerateRelativePathData() | |
|      */ | |
|     public function testGenerateRelativePath($expected, $path, $pathinfo) | |
|     { | |
|         if (!method_exists('Symfony\Component\HttpFoundation\Request', 'getRelativeUriForPath')) { | |
|             $this->markTestSkipped('Your version of Symfony HttpFoundation is too old.'); | |
|         } | |
| 
 | |
|         $stack = new RequestStack(); | |
|         $stack->push(Request::create($pathinfo)); | |
|         $urlHelper = new UrlHelper($stack); | |
| 
 | |
|         $this->assertEquals($expected, $urlHelper->getRelativePath($path)); | |
|     } | |
| 
 | |
|     public function getGenerateRelativePathData() | |
|     { | |
|         return [ | |
|             ['../foo.png', '/foo.png', '/foo/bar.html'], | |
|             ['../baz/foo.png', '/baz/foo.png', '/foo/bar.html'], | |
|             ['baz/foo.png', 'baz/foo.png', '/foo/bar.html'], | |
| 
 | |
|             ['http://example.com/baz', 'http://example.com/baz', '/'], | |
|             ['https://example.com/baz', 'https://example.com/baz', '/'], | |
|             ['//example.com/baz', '//example.com/baz', '/'], | |
|         ]; | |
|     } | |
| }
 | |
| 
 |