public function testParsingAcceptHeader() {
$chrome = array(
'application/xml',
'application/xhtml+xml',
'text/html;q=0.9',
'text/plain;q=0.8',
'image/png',
'*/*;q=0.5'
);
$firefox = array(
'text/html',
'application/xhtml+xml',
'application/xml;q=0.9',
'*/*;q=0.8'
);
$safari = array(
'application/xml',
'application/xhtml+xml',
'text/html;q=0.9',
'text/plain;q=0.8',
'image/png',
'*/*;q=0.5'
);
$opera = array(
'text/html',
'application/xml;q=0.9',
'application/xhtml+xml',
'image/png',
'image/jpeg',
'image/gif',
'image/x-xbitmap',
'*/*;q=0.1'
);
$android = array(
'application/xml',
'application/xhtml+xml',
'text/html;q=0.9',
'text/plain;q=0.8',
'image/png',
'*/*;q=0.5',
'application/youtube-client'
);
$request = new Request(array('env' => array('HTTP_ACCEPT' => join(',', $chrome))));
$this->assertEqual('html', $request->accepts());
$this->assertTrue(array_search('text/plain', $request->accepts(true)), 4);
$request = new Request(array('env' => array('HTTP_ACCEPT' => join(',', $safari))));
$this->assertEqual('html', $request->accepts());
$request = new Request(array('env' => array('HTTP_ACCEPT' => join(',', $firefox))));
$this->assertEqual('html', $request->accepts());
$request = new Request(array('env' => array('HTTP_ACCEPT' => join(',', $opera))));
$this->assertEqual('html', $request->accepts());
$request = new Request(array('env' => array('HTTP_ACCEPT' => join(',', $chrome))));
$request->params['type'] = 'txt';
$result = $request->accepts(true);
$this->assertEqual('text/plain', $result[0]);
$request = new Request(array('env' => array('HTTP_ACCEPT' => join(',', $android))));
$this->assertEqual('html', $request->accepts());
}