setTokenAuth(Fixture::getTokenAuth()); Fixture::checkResponse($tracker->doTrackPageView('test')); $this->assertEquals(1, Db::fetchOne('SELECT count(*) FROM ' . Common::prefixTable('log_visit'))); } public function test_unauthenticatedRequest_ShouldWorkWhenAuthenticationNotRequired() { $tracker = Fixture::getTracker(1, date('Y-m-d H:i:s'), $defaultInit = false, $useLocalTracker = false); Fixture::checkResponse($tracker->doTrackPageView('test')); $this->assertEquals(1, Db::fetchOne('SELECT count(*) FROM ' . Common::prefixTable('log_visit'))); } public function test_unauthenticatedRequest_ShouldNotWorkWhenAuthenticationRequired() { // authentication required due to an older date $tracker = Fixture::getTracker(1, '2021-02-02 16:00:00', $defaultInit = false, $useLocalTracker = false); Fixture::checkTrackingFailureResponse($tracker->doTrackPageView('test')); $this->assertEquals(0, Db::fetchOne('SELECT count(*) FROM ' . Common::prefixTable('log_visit'))); } public static function provideContainerConfigBeforeClass() { return [ 'observers.global' => \DI\add(array( array('Environment.bootstrapped', \DI\value(function () { // ensure tracking request uses an IP that is not local or on allow list $_SERVER['REMOTE_ADDR'] = '3.3.3.3'; })) )), Config::class => \DI\decorate(function (Config $config) { $config->General['login_allowlist_ip'] = ['1.1.1.1']; return $config; }), ]; } }