Your IP : 216.73.216.97


Current Path : /var/www/clients/client3/web2/web/vendor/donatj/phpuseragentparser/tests/
Upload File :
Current File : /var/www/clients/client3/web2/web/vendor/donatj/phpuseragentparser/tests/UserAgentParserTest.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.dist.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);
	}

	/**
	 * I'm no longer using expectedException/setExpectedException because the
	 * semantics around expecting exceptions have changed so many times I can't
	 * reliably do it across as wide of a PHP version history as I wish to
	 * support
	 *
	 * @see https://thephp.cc/news/2016/02/questioning-phpunit-best-practices
	 */
	public function test_no_user_agent_exception() {
		unset($_SERVER['HTTP_USER_AGENT']);
		try {
			parse_user_agent();
		} catch(\InvalidArgumentException $ex) {
			$this->assertTrue(true); // quiet warning
			return;
		}

		$this->fail("Expected \InvalidArgumentException");
	}

	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());
	}

}