GeoIP2-php/tests/GeoIp2/Test/Database/ReaderTest.php

155 lines
4.9 KiB
PHP
Raw Normal View History

2013-07-15 22:52:07 +00:00
<?php
namespace GeoIp2\Test\WebService;
use GeoIp2\Database\Reader;
class ReaderTest extends \PHPUnit_Framework_TestCase
{
public function testDefaultLocale()
2013-07-15 22:52:07 +00:00
{
foreach (array('City', 'Country') as $type) {
$reader = new Reader("maxmind-db/test-data/GeoIP2-$type-Test.mmdb");
$method = lcfirst($type);
$record = $reader->$method('81.2.69.160');
$this->assertEquals('United Kingdom', $record->country->name);
}
2013-07-15 22:52:07 +00:00
$reader->close();
}
public function testLocaleList()
2013-07-15 22:52:07 +00:00
{
foreach (array('City', 'Country') as $type) {
$reader = new Reader(
"maxmind-db/test-data/GeoIP2-$type-Test.mmdb",
array('xx', 'ru', 'pt-BR', 'es', 'en')
);
$method = lcfirst($type);
$record = $reader->$method('81.2.69.160');
$this->assertEquals('Великобритания', $record->country->name);
}
2013-07-15 22:52:07 +00:00
$reader->close();
}
public function testHasIpAddress()
{
foreach (array('City', 'Country') as $type) {
$reader = new Reader("maxmind-db/test-data/GeoIP2-$type-Test.mmdb");
$method = lcfirst($type);
$record = $reader->$method('81.2.69.160');
$this->assertEquals('81.2.69.160', $record->traits->ipAddress);
}
2013-07-15 22:52:07 +00:00
$reader->close();
}
/**
* @expectedException GeoIp2\Exception\AddressNotFoundException
* @expectedExceptionMessage The address 10.10.10.10 is not in the database.
*/
public function testUnknownAddress()
{
2013-07-15 23:10:05 +00:00
$reader = new Reader('maxmind-db/test-data/GeoIP2-City-Test.mmdb');
2013-07-15 22:52:07 +00:00
$reader->city('10.10.10.10');
$reader->close();
}
2013-07-15 23:05:08 +00:00
/**
* @expectedException BadMethodCallException
* @expectedExceptionMessage The country method cannot be used to open a GeoIP2-City database
*/
public function testIncorrectDatabase()
{
$reader = new Reader('maxmind-db/test-data/GeoIP2-City-Test.mmdb');
$reader->country('10.10.10.10');
$reader->close();
}
/**
* @expectedException BadMethodCallException
* @expectedExceptionMessage The domain method cannot be used to open a GeoIP2-City database
*/
public function testIncorrectDatabaseFlat()
{
$reader = new Reader('maxmind-db/test-data/GeoIP2-City-Test.mmdb');
$reader->domain('10.10.10.10');
$reader->close();
}
2013-07-15 23:05:08 +00:00
/**
* @expectedException InvalidArgumentException
2013-10-21 18:09:27 +00:00
* @expectedExceptionMessage is not a valid IP address
2013-07-15 23:05:08 +00:00
*/
public function testInvalidAddress()
{
2013-07-15 23:10:05 +00:00
$reader = new Reader('maxmind-db/test-data/GeoIP2-City-Test.mmdb');
2013-07-15 23:05:08 +00:00
$reader->city('invalid');
$reader->close();
}
2013-07-16 16:44:30 +00:00
2014-10-27 21:30:40 +00:00
public function testAnonymousIp()
{
$reader = new Reader('maxmind-db/test-data/GeoIP2-Anonymous-IP-Test.mmdb');
$ipAddress = '1.2.0.1';
$record = $reader->anonymousIp($ipAddress);
$this->assertSame(true, $record->isAnonymous);
$this->assertSame(true, $record->isAnonymousVpn);
$this->assertSame(null, $record->isHostingProvider);
$this->assertSame(null, $record->isPublicProxy);
$this->assertSame(null, $record->isTorExitNode);
2014-10-27 21:30:40 +00:00
$this->assertEquals($ipAddress, $record->ipAddress);
$reader->close();
}
public function testConnectionType()
{
$reader = new Reader('maxmind-db/test-data/GeoIP2-Connection-Type-Test.mmdb');
$ipAddress = '1.0.1.0';
$record = $reader->connectionType($ipAddress);
$this->assertEquals('Cable/DSL', $record->connectionType);
$this->assertEquals($ipAddress, $record->ipAddress);
$reader->close();
}
public function testDomain()
{
$reader = new Reader('maxmind-db/test-data/GeoIP2-Domain-Test.mmdb');
$ipAddress = '1.2.0.0';
$record = $reader->domain($ipAddress);
$this->assertEquals('maxmind.com', $record->domain);
$this->assertEquals($ipAddress, $record->ipAddress);
$reader->close();
}
public function testIsp()
{
2014-06-18 17:29:54 +00:00
$reader = new Reader('maxmind-db/test-data/GeoIP2-ISP-Test.mmdb');
2014-06-18 17:29:54 +00:00
$ipAddress = '1.128.0.0';
$record = $reader->isp($ipAddress);
2014-06-18 17:29:54 +00:00
$this->assertEquals(1221, $record->autonomousSystemNumber);
$this->assertEquals(
2014-06-18 17:29:54 +00:00
'Telstra Pty Ltd',
$record->autonomousSystemOrganization
);
2014-06-18 17:29:54 +00:00
$this->assertEquals('Telstra Internet', $record->isp);
$this->assertEquals('Telstra Internet', $record->organization);
$this->assertEquals($ipAddress, $record->ipAddress);
$reader->close();
}
public function testMetadata()
2013-07-16 16:44:30 +00:00
{
$reader = new Reader('maxmind-db/test-data/GeoIP2-City-Test.mmdb');
$this->assertEquals('GeoIP2-City', $reader->metadata()->databaseType);
$reader->close();
2013-07-16 16:44:30 +00:00
}
2013-07-15 22:52:07 +00:00
}