1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\CustomJsTracker\tests\Integration;
use PHPUnit\Framework\MockObject\MockObject;
use Piwik\Piwik;
use Piwik\Plugins\CustomJsTracker\TrackingCode\PluginTrackerFiles;
use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
/**
* @group CustomJsTracker
* @group PluginTrackerFilesTest
* @group PluginTrackerFiles
* @group Plugins
*/
class PluginTrackerFilesTest extends IntegrationTestCase
{
public function testFindIfAPluginDefinesAMinifiedAndARegularTrackerItShouldPreferTheMinifiedVersion()
{
$trackerFiles = $this->getMockedTrackerFiles();
$foundFiles = $trackerFiles->find();
$this->assertCount(1, $foundFiles);
$this->assertTrue(isset($foundFiles['CustomJsTracker']));
$this->assertEquals('tracker.min.js', $foundFiles['CustomJsTracker']->getName());
}
public function testFindShouldIgnoreMinifiedVersionIfRequested()
{
$trackerFiles = $this->getMockedTrackerFiles();
$trackerFiles->ignoreMinified();
$foundFiles = $trackerFiles->find();
$this->assertCount(1, $foundFiles);
$this->assertTrue(isset($foundFiles['CustomJsTracker']));
$this->assertEquals('tracker.js', $foundFiles['CustomJsTracker']->getName());
}
public function testFindEventsCanIgnoreFiles()
{
$trackerFiles = $this->getMockedTrackerFiles();
$foundFiles = $trackerFiles->find();
$this->assertCount(1, $foundFiles);
Piwik::addAction('CustomJsTracker.shouldAddTrackerFile', function (&$shouldAdd, $pluginName) {
if ($pluginName === 'CustomJsTracker') {
$shouldAdd = false;
}
});
$foundFiles = $trackerFiles->find();
$this->assertCount(0, $foundFiles);
}
/**
* @return PluginTrackerFiles|MockObject
*/
private function getMockedTrackerFiles(): MockObject
{
$mock = self::getMockBuilder(PluginTrackerFiles::class)->onlyMethods(['getDirectoriesToLook']);
$trackerFiles = $mock->getMock();
$trackerFiles->method('getDirectoriesToLook')->willReturn([
'CustomJsTracker' => PIWIK_DOCUMENT_ROOT . '/plugins/CustomJsTracker/tests/resources/',
]);
return $trackerFiles;
}
}
|