assertInstanceOf('Piwik\\Tracker\\Visit', $visit); } public function testMakeShouldTriggerEventOnce() { $called = 0; $self = $this; Piwik::addAction('Tracker.makeNewVisitObject', function ($visit) use (&$called, $self) { $called++; $self->assertNull($visit); }); Factory::make(); $this->assertSame(1, $called); } public function testMakeShouldPreferManuallyCreatedHandlerInstanceInEventOverDefaultHandler() { $visitToUse = new Visit(); Piwik::addAction('Tracker.makeNewVisitObject', function (&$visit) use ($visitToUse) { $visit = $visitToUse; }); $visit = Factory::make(); $this->assertSame($visitToUse, $visit); } public function testMakeShouldTriggerExceptionInCaseWrongInstanceCreatedInHandler() { $this->expectException(\Exception::class); $this->expectExceptionMessage('The Visit object set in the plugin'); Piwik::addAction('Tracker.makeNewVisitObject', function (&$visit) { $visit = new Tracker(); }); Factory::make(); } }