51 lines
1.2 KiB
PHP
51 lines
1.2 KiB
PHP
|
<?php
|
||
|
|
||
|
class UserAgentParserTest extends \PHPUnit_Framework_TestCase {
|
||
|
|
||
|
/**
|
||
|
* @dataProvider userAgentDataProvider
|
||
|
*/
|
||
|
public function test_parse_user_agent( $string, $expected ) {
|
||
|
$result = parse_user_agent($string);
|
||
|
$this->assertSame($expected, $result, $string . " test failed!");
|
||
|
}
|
||
|
|
||
|
public function userAgentDataProvider() {
|
||
|
$out = array();
|
||
|
$uas = json_decode(file_get_contents(__DIR__ . '/user_agents.json'), true);
|
||
|
foreach( $uas as $string => $parts ) {
|
||
|
$out[] = array( $string, $parts );
|
||
|
}
|
||
|
|
||
|
return $out;
|
||
|
}
|
||
|
|
||
|
public function test_parse_user_agent_empty() {
|
||
|
$expected = array(
|
||
|
'platform' => null,
|
||
|
'browser' => null,
|
||
|
'version' => null,
|
||
|
);
|
||
|
|
||
|
$result = parse_user_agent('');
|
||
|
$this->assertSame($result, $expected);
|
||
|
|
||
|
$result = parse_user_agent('Mozilla (asdjkakljasdkljasdlkj) BlahBlah');
|
||
|
$this->assertSame($result, $expected);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @expectedException \InvalidArgumentException
|
||
|
*/
|
||
|
public function test_no_user_agent_exception() {
|
||
|
unset($_SERVER['HTTP_USER_AGENT']);
|
||
|
parse_user_agent();
|
||
|
}
|
||
|
|
||
|
public function test_global_user_agent() {
|
||
|
$_SERVER['HTTP_USER_AGENT'] = 'Test/1.0';
|
||
|
$this->assertSame(array( 'platform' => null, 'browser' => 'Test', 'version' => '1.0' ), parse_user_agent());
|
||
|
}
|
||
|
|
||
|
}
|