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