alltube/tests/LocaleMiddlewareTest.php
Pierre Rudloff e64bb9b9f5 Fix tests
2017-05-29 22:09:33 +02:00

91 lines
1.9 KiB
PHP

<?php
/**
* LocaleMiddlewareTest class.
*/
namespace Alltube\Test;
use Alltube\LocaleMiddleware;
use Slim\Http\Environment;
use Slim\Http\Request;
use Slim\Http\Response;
/**
* Unit tests for the FrontController class.
*/
class LocaleMiddlewareTest extends \PHPUnit_Framework_TestCase
{
/**
* Original locale.
*
* @var string
*/
private $locale;
/**
* Prepare tests.
*/
protected function setUp()
{
$this->locale = getenv('LANG');
$this->middleware = new LocaleMiddleware();
}
/**
* Restore environment after the tests.
*
* @return void
*/
protected function tearDown()
{
putenv('LANG='.$this->locale);
setlocale(LC_ALL, $this->locale);
}
/**
* Test the testLocale() function.
*
* @return void
*/
public function testTestLocale()
{
$locale = [
'language'=> 'fr',
'region' => 'FR',
];
$this->assertEquals('fr_FR', $this->middleware->testLocale($locale));
}
/**
* Test the testLocale() function with an unsupported locale.
*
* @return void
*/
public function testLocaleWithWrongLocale()
{
$locale = [
'language'=> 'foo',
'region' => 'BAR',
];
$this->assertNull($this->middleware->testLocale($locale));
$this->assertNull($this->middleware->testLocale([]));
}
/**
* Test the __invoke() function.
*
* @return void
*/
public function testInvoke()
{
$request = Request::createFromEnvironment(Environment::mock());
$this->middleware->__invoke(
$request->withHeader('Accept-Language', 'fr-FR'),
new Response(),
function () {
}
);
$this->assertEquals('fr_FR', getenv('LANG'));
$this->assertEquals('fr_FR', setlocale(LC_ALL, null));
}
}