74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Tests\Unit\Utilities;
 | 
						|
 | 
						|
use App\Utilities\Formatter;
 | 
						|
use Tests\TestCase;
 | 
						|
 | 
						|
class FormatterTest extends TestCase
 | 
						|
{
 | 
						|
    public function testNormalizeUrlWithoutQuery()
 | 
						|
    {
 | 
						|
        $formatter = new Formatter();
 | 
						|
 | 
						|
        $url = 'http://example.com/path/to';
 | 
						|
        $this->assertEquals($url, $formatter->normalizeUrl($url));
 | 
						|
    }
 | 
						|
 | 
						|
    public function testNormalizeUrlWithSortedQuery()
 | 
						|
    {
 | 
						|
        $formatter = new Formatter();
 | 
						|
 | 
						|
        $url = 'http://example.com/path/to?foo=bar&hoge=fuga';
 | 
						|
        $this->assertEquals($url, $formatter->normalizeUrl($url));
 | 
						|
    }
 | 
						|
 | 
						|
    public function testNormalizeUrlWithUnsortedQuery()
 | 
						|
    {
 | 
						|
        $formatter = new Formatter();
 | 
						|
 | 
						|
        $url = 'http://example.com/path/to?hoge=fuga&foo=bar';
 | 
						|
        $this->assertEquals('http://example.com/path/to?foo=bar&hoge=fuga', $formatter->normalizeUrl($url));
 | 
						|
    }
 | 
						|
 | 
						|
    public function testNormalizeUrlWithSortedQueryAndFragment()
 | 
						|
    {
 | 
						|
        $formatter = new Formatter();
 | 
						|
 | 
						|
        $url = 'http://example.com/path/to?foo=bar&hoge=fuga#fragment';
 | 
						|
        $this->assertEquals($url, $formatter->normalizeUrl($url));
 | 
						|
    }
 | 
						|
 | 
						|
    public function testNormalizeUrlWithFragment()
 | 
						|
    {
 | 
						|
        $formatter = new Formatter();
 | 
						|
 | 
						|
        $url = 'http://example.com/path/to#fragment';
 | 
						|
        $this->assertEquals($url, $formatter->normalizeUrl($url));
 | 
						|
    }
 | 
						|
 | 
						|
    public function testNormalizeUrlWithSortedQueryAndZeroLengthFragment()
 | 
						|
    {
 | 
						|
        $formatter = new Formatter();
 | 
						|
 | 
						|
        $url = 'http://example.com/path/to?foo=bar&hoge=fuga#';
 | 
						|
        $this->assertEquals('http://example.com/path/to?foo=bar&hoge=fuga', $formatter->normalizeUrl($url));
 | 
						|
    }
 | 
						|
 | 
						|
    public function testProfileImageSrcSet()
 | 
						|
    {
 | 
						|
        $formatter = new Formatter();
 | 
						|
        $profileImageProvider = new class() {
 | 
						|
            public function getProfileImageUrl(int $size)
 | 
						|
            {
 | 
						|
                return "https://example.com/$size.png";
 | 
						|
            }
 | 
						|
        };
 | 
						|
 | 
						|
        $this->assertSame(
 | 
						|
            'https://example.com/128.png 1x,https://example.com/256.png 2x',
 | 
						|
            $formatter->profileImageSrcSet($profileImageProvider, 128, 2)
 | 
						|
        );
 | 
						|
    }
 | 
						|
}
 |