protected function runTests()
{
// Environment::get('ip') needs the request stack
System::setContainer($this->mockContainerWithContaoScopes());
$agent = Environment::get('agent');
$this->assertEquals('mac', $agent->os);
$this->assertEquals('mac chrome webkit ch33', $agent->class);
$this->assertEquals('chrome', $agent->browser);
$this->assertEquals('ch', $agent->shorty);
$this->assertEquals(33, $agent->version);
$this->assertEquals('webkit', $agent->engine);
$this->assertEquals([33, 0, 1750, 149], $agent->versions);
$this->assertFalse($agent->mobile);
$this->assertEquals('HTTP/1.1', Environment::get('serverProtocol'));
$this->assertEquals($this->getRootDir() . '/core/index.php', Environment::get('scriptFilename'));
$this->assertEquals('/core/index.php', Environment::get('scriptName'));
$this->assertEquals($this->getRootDir(), Environment::get('documentRoot'));
$this->assertEquals('/core/en/academy.html?do=test', Environment::get('requestUri'));
$this->assertEquals(['de-DE', 'de', 'en-GB', 'en'], Environment::get('httpAcceptLanguage'));
$this->assertEquals(['gzip', 'deflate', 'sdch'], Environment::get('httpAcceptEncoding'));
$this->assertEquals('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.149 Safari/537.36', Environment::get('httpUserAgent'));
$this->assertEquals('localhost', Environment::get('httpHost'));
$this->assertEmpty(Environment::get('httpXForwardedHost'));
$this->assertFalse(Environment::get('ssl'));
$this->assertEquals('http://localhost', Environment::get('url'));
$this->assertEquals('http://localhost/core/en/academy.html?do=test', Environment::get('uri'));
$this->assertEquals('123.456.789.0', Environment::get('ip'));
$this->assertEquals('127.0.0.1', Environment::get('server'));
$this->assertEquals('index.php', Environment::get('script'));
$this->assertEquals('en/academy.html?do=test', Environment::get('request'));
$this->assertEquals('en/academy.html?do=test', Environment::get('indexFreeRequest'));
$this->assertEquals('http://localhost' . Environment::get('path') . '/', Environment::get('base'));
$this->assertFalse(Environment::get('isAjaxRequest'));
}