public function testFromModGeoIp() { $cubex = $this->newCubexInstace(); $request = new Request(); $server = ['REMOTE_ADDR' => '123.123.123.123', 'GEOIP_ADDR' => '123.123.123.123', 'GEOIP_COUNTRY_CODE' => 'US', 'GEOIP_CITY' => 'Mountain View', 'GEOIP_REGION_NAME' => 'CA']; $request->initialize([], [], [], [], [], $server); $cubex->instance('request', $request); $visitor = new Visitor($request, $cubex); $this->assertEquals('US', $visitor->getCountry()); $this->assertEquals('Mountain View', $visitor->getCity()); $this->assertEquals('CA', $visitor->getRegion()); }
/** * @param $remoteAddr * @param $country * @param $city * @param $region * @param null $config * * @dataProvider visitorProvider */ public function testVisitor($remoteAddr, $country, $city, $region, $config = null) { if (!file_exists($this->_geoipdb)) { $this->markTestSkipped("GeoIP Database Not Downloaded"); return; } $cubex = $this->newCubexInstace(); $request = new Request(); $server = ['REMOTE_ADDR' => $remoteAddr]; $request->initialize([], [], [], [], [], $server); $cubex->instance('request', $request); if ($config === null) { $config = new ConfigSection('http_visitor', ['database' => $this->_geoipdb]); } $config->addItem('database', $config->getItem('database', $this->_geoipdb)); $cubex->getConfiguration()->addSection($config); $visitor = new MaxmindVisitor(); $visitor->configure($config); $visitor->setClientIp($remoteAddr); $this->assertEquals($country, $visitor->getCountry()); $this->assertEquals($city, $visitor->getCity()); $this->assertEquals($region, $visitor->getRegion()); }
public function testXForwardedFor() { //http://en.wikipedia.org/wiki/X-Forwarded-For#Format $request = new Request(); //8.8.8.8 = client IP //4.4.4.4 = proxy1 $server = ['HTTP_X_FORWARDED_FOR' => '8.8.8.8, 4.4.4.4', 'REMOTE_ADDR' => '8.8.4.4']; $request->initialize([], [], [], [], [], $server); $request->setTrustedProxies(['8.8.4.4']); $this->assertEquals('8.8.8.8', $request->getClientIp()); }