mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 14:46:19 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * @link http://www.yiiframework.com/
 | 
						|
 * @copyright Copyright (c) 2008 Yii Software LLC
 | 
						|
 * @license http://www.yiiframework.com/license/
 | 
						|
 */
 | 
						|
 | 
						|
namespace yiiunit\framework\web;
 | 
						|
 | 
						|
use yii\web\Request;
 | 
						|
use yiiunit\TestCase;
 | 
						|
 | 
						|
/**
 | 
						|
 * @group web
 | 
						|
 */
 | 
						|
class RequestTest extends TestCase
 | 
						|
{
 | 
						|
    public function testParseAcceptHeader()
 | 
						|
    {
 | 
						|
        $request = new Request;
 | 
						|
 | 
						|
        $this->assertEquals([], $request->parseAcceptHeader(' '));
 | 
						|
 | 
						|
        $this->assertEquals([
 | 
						|
            'audio/basic' => ['q' => 1],
 | 
						|
            'audio/*' => ['q' => 0.2],
 | 
						|
        ], $request->parseAcceptHeader('audio/*; q=0.2, audio/basic'));
 | 
						|
 | 
						|
        $this->assertEquals([
 | 
						|
            'application/json' => ['q' => 1, 'version' => '1.0'],
 | 
						|
            'application/xml' => ['q' => 1, 'version' => '2.0', 'x'],
 | 
						|
            'text/x-c' => ['q' => 1],
 | 
						|
            'text/x-dvi' => ['q' => 0.8],
 | 
						|
            'text/plain' => ['q' => 0.5],
 | 
						|
        ], $request->parseAcceptHeader('text/plain; q=0.5,
 | 
						|
            application/json; version=1.0,
 | 
						|
            application/xml; version=2.0; x,
 | 
						|
            text/x-dvi; q=0.8, text/x-c'));
 | 
						|
    }
 | 
						|
 | 
						|
    public function testPrefferedLanguage()
 | 
						|
    {
 | 
						|
        $this->mockApplication([
 | 
						|
            'language' => 'en',
 | 
						|
        ]);
 | 
						|
 | 
						|
        $request = new Request();
 | 
						|
        $request->acceptableLanguages = [];
 | 
						|
        $this->assertEquals('en', $request->getPreferredLanguage());
 | 
						|
 | 
						|
        $request = new Request();
 | 
						|
        $request->acceptableLanguages = ['de'];
 | 
						|
        $this->assertEquals('en', $request->getPreferredLanguage());
 | 
						|
 | 
						|
        $request = new Request();
 | 
						|
        $request->acceptableLanguages = ['en-us', 'de', 'ru-RU'];
 | 
						|
        $this->assertEquals('en', $request->getPreferredLanguage(['en']));
 | 
						|
 | 
						|
        $request = new Request();
 | 
						|
        $request->acceptableLanguages = ['en-us', 'de', 'ru-RU'];
 | 
						|
        $this->assertEquals('de', $request->getPreferredLanguage(['ru', 'de']));
 | 
						|
        $this->assertEquals('de-DE', $request->getPreferredLanguage(['ru', 'de-DE']));
 | 
						|
 | 
						|
        $request = new Request();
 | 
						|
        $request->acceptableLanguages = ['en-us', 'de', 'ru-RU'];
 | 
						|
        $this->assertEquals('de', $request->getPreferredLanguage(['de', 'ru']));
 | 
						|
 | 
						|
        $request = new Request();
 | 
						|
        $request->acceptableLanguages = ['en-us', 'de', 'ru-RU'];
 | 
						|
        $this->assertEquals('ru-ru', $request->getPreferredLanguage(['ru-ru']));
 | 
						|
 | 
						|
        $request = new Request();
 | 
						|
        $request->acceptableLanguages = ['en-us', 'de'];
 | 
						|
        $this->assertEquals('ru-ru', $request->getPreferredLanguage(['ru-ru', 'pl']));
 | 
						|
        $this->assertEquals('ru-RU', $request->getPreferredLanguage(['ru-RU', 'pl']));
 | 
						|
 | 
						|
        $request = new Request();
 | 
						|
        $request->acceptableLanguages = ['en-us', 'de'];
 | 
						|
        $this->assertEquals('pl', $request->getPreferredLanguage(['pl', 'ru-ru']));
 | 
						|
    }
 | 
						|
}
 |