18 protected function _before()
20 $this->parser = new \Udger\Parser(
21 \Codeception\Util\Stub::makeEmpty(
"Psr\Log\LoggerInterface"),
22 \Codeception\Util\Stub::makeEmpty(
"Udger\Helper\IP"));
23 $this->parser->setDataFile(dirname(__DIR__) .
"/fixtures/udgercache/udgerdb_v3.dat");
26 protected function _after()
31 public function testParse()
33 $useragent =
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36';
34 $this->parser->setUA($useragent);
35 $result = $this->parser->parse();
37 $this->arrayHasKey(
"user_agent", $result);
38 $this->assertEquals(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36", $result[
"user_agent"][
"ua_string"]);
39 $this->assertEquals(
"Browser", $result[
"user_agent"][
"ua_class"]);
40 $this->assertEquals(
"browser", $result[
"user_agent"][
"ua_class_code"]);
41 $this->assertEquals(
"Chrome 39.0.2171.71", $result[
"user_agent"][
"ua"]);
42 $this->assertEquals(
"39.0.2171.71", $result[
"user_agent"][
"ua_version"]);
43 $this->assertEquals(
"39", $result[
"user_agent"][
"ua_version_major"]);
44 $this->assertEquals(
"50", $result[
"user_agent"][
"ua_uptodate_current_version"]);
45 $this->assertEquals(
"Chrome", $result[
"user_agent"][
"ua_family"]);
46 $this->assertEquals(
"chrome", $result[
"user_agent"][
"ua_family_code"]);
47 $this->assertEquals(
"http://www.google.com/chrome/", $result[
"user_agent"][
"ua_family_homepage"]);
48 $this->assertEquals(
"Google Inc.", $result[
"user_agent"][
"ua_family_vendor"]);
49 $this->assertEquals(
"google_inc", $result[
"user_agent"][
"ua_family_vendor_code"]);
50 $this->assertEquals(
"https://www.google.com/about/company/", $result[
"user_agent"][
"ua_family_vendor_homepage"]);
51 $this->assertEquals(
"chrome.png", $result[
"user_agent"][
"ua_family_icon"]);
52 $this->assertEquals(
"chrome_big.png", $result[
"user_agent"][
"ua_family_icon_big"]);
53 $this->assertEquals(
"https://udger.com/resources/ua-list/browser-detail?browser=Chrome", $result[
"user_agent"][
"ua_family_info_url"]);
54 $this->assertEquals(
"WebKit/Blink", $result[
"user_agent"][
"ua_engine"]);
55 $this->assertEquals(
"OS X", $result[
"user_agent"][
"os"]);
56 $this->assertEquals(
"osx", $result[
"user_agent"][
"os_code"]);
57 $this->assertEquals(
"https://en.wikipedia.org/wiki/Mac_OS_X", $result[
"user_agent"][
"os_homepage"]);
58 $this->assertEquals(
"macosx.png", $result[
"user_agent"][
"os_icon"]);
59 $this->assertEquals(
"macosx_big.png", $result[
"user_agent"][
"os_icon_big"]);
60 $this->assertEquals(
"https://udger.com/resources/ua-list/os-detail?os=OS X", $result[
"user_agent"][
"os_info_url"]);
61 $this->assertEquals(
"OS X", $result[
"user_agent"][
"os_family"]);
62 $this->assertEquals(
"osx", $result[
"user_agent"][
"os_family_code"]);
63 $this->assertEquals(
"Apple Computer, Inc.", $result[
"user_agent"][
"os_family_vendor"]);
64 $this->assertEquals(
"apple_inc", $result[
"user_agent"][
"os_family_vendor_code"]);
65 $this->assertEquals(
"http://www.apple.com/", $result[
"user_agent"][
"os_family_vendor_homepage"]);
66 $this->assertEquals(
"Desktop", $result[
"user_agent"][
"device_class"]);
67 $this->assertEquals(
"desktop", $result[
"user_agent"][
"device_class_code"]);
68 $this->assertEquals(
"desktop.png", $result[
"user_agent"][
"device_class_icon"]);
69 $this->assertEquals(
"desktop_big.png", $result[
"user_agent"][
"device_class_icon_big"]);
70 $this->assertEquals(
"https://udger.com/resources/ua-list/device-detail?device=Desktop", $result[
"user_agent"][
"device_class_info_url"]);
71 $this->arrayHasKey(
"crawler_last_seen", $result[
"user_agent"]);
72 $this->arrayHasKey(
"crawler_category", $result[
"user_agent"]);
73 $this->arrayHasKey(
"crawler_category_code", $result[
"user_agent"]);
74 $this->arrayHasKey(
"crawler_respect_robotstxt", $result[
"user_agent"]);
77 public function testParseMiss()
79 $useragent =
'Lynx/2.8.6rel.5 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/1.0.0a';
80 $result = $this->parser->parse($useragent);
84 public function testParseRandomString()
87 $result = $this->parser->parse(
"loremlipsum");
91 public function testParseEmpty()
93 $this->parser->setUA(
"");
95 $result = $this->parser->parse();
96 $this->assertArrayHasKey(
"user_agent", $result);
97 $this->assertArrayHasKey(
"ip_address", $result);
100 public function testParseNull()
102 $this->parser->setUA(
null);
104 $result = $this->parser->parse();
105 $this->assertArrayHasKey(
"user_agent", $result);
106 $this->assertArrayHasKey(
"ip_address", $result);