File size: 4,475 Bytes
1f0da20 | 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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | <?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\CustomVariables\tests\System;
use Piwik\Tests\Framework\TestCase\SystemTestCase;
use Piwik\Plugins\CustomVariables\tests\Fixtures\TwoVisitsWithCustomVariables;
use Piwik\Version;
/**
* Tests use of custom variable segments.
*
* @group Plugins
* @group CustomVariables
* @group TwoVisitsWithCustomVariablesSegmentContainsTest
*/
class TwoVisitsWithCustomVariablesSegmentContainsTest extends SystemTestCase
{
public static $fixture = null; // initialized below class definition
public static function getOutputPrefix()
{
return 'twoVisitsWithCustomVariables';
}
/**
* @dataProvider getApiForTesting
*/
public function testApi($api, $params)
{
$this->runApiTests($api, $params);
}
public function getApiForTesting()
{
$idSite = self::$fixture->idSite;
$dateTime = self::$fixture->dateTime;
$return = [];
$api = ['VisitsSummary.get'];
if (version_compare(Version::VERSION, '4.13.1-rc1', '>=')) {
// goals for pages reports had been changed in 4.13.1, so we don't perform this tests before
$api[] = 'Actions.getPageUrls';
$api[] = 'Actions.getPageTitles';
}
$olderThanMatomo5110b1 = version_compare(Version::VERSION, '5.11.0-b1', '<');
$segmentsToTest = [
// array( SegmentString , TestSuffix , Array of API to test)
["pageTitle=@*_)%", '_SegmentPageTitleContainsStrangeCharacters', ['VisitsSummary.get']],
["pageUrl!@user/profile", '_SegmentPageUrlExcludes', $api],
["pageTitle!@Profile pa", '_SegmentPageTitleExcludes', $api],
];
if (version_compare(Version::VERSION, '4.13.1-rc1', '>=')) {
$segmentsToTest[] = ["pageUrl=@user/profile", '_SegmentPageUrlContains', ['VisitsSummary.get', 'Actions.getPageTitles']];
$segmentsToTest[] = ["pageUrl=@user/profile", '_SegmentPageUrlContains' . ($olderThanMatomo5110b1 ? '_old' : ''), ['Actions.getPageUrls']];
$segmentsToTest[] = ["pageTitle=@Profile pa", '_SegmentPageTitleContains', ['VisitsSummary.get', 'Actions.getPageTitles']];
$segmentsToTest[] = ["pageTitle=@Profile pa", '_SegmentPageTitleContains' . ($olderThanMatomo5110b1 ? '_old' : ''), ['Actions.getPageUrls']];
} else {
$segmentsToTest[] = ["pageUrl=@user/profile", '_SegmentPageUrlContains', $api];
$segmentsToTest[] = ["pageTitle=@Profile pa", '_SegmentPageTitleContains', $api];
}
if (version_compare(Version::VERSION, '4.13.1-rc1', '>=')) {
// goals for pages reports had been changed in 4.13.1, so we don't perform this tests before
$segmentsToTest[] = ["pageTitle=@*_)%", '_SegmentPageTitleContainsStrangeCharacters', ['Actions.getPageTitles']];
// starts with
$segmentsToTest[] = ['pageUrl=^example.org/home', '_SegmentPageUrlStartsWith' . ($olderThanMatomo5110b1 ? '_old' : ''), ['Actions.getPageUrls']];
$segmentsToTest[] = ['pageTitle=^Profile pa', '_SegmentPageTitleStartsWith', ['Actions.getPageTitles']];
// ends with
$segmentsToTest[] = ['pageUrl=$er/profile', '_SegmentPageUrlEndsWith' . ($olderThanMatomo5110b1 ? '_old' : ''), ['Actions.getPageUrls']];
$segmentsToTest[] = ['pageTitle=$page', '_SegmentPageTitleEndsWith', ['Actions.getPageTitles']];
}
foreach ($segmentsToTest as $segment) {
// Also test "Page URL / Page title CONTAINS string" feature
$return[] = [
$segment[2],
[
'idSite' => $idSite,
'date' => $dateTime,
'periods' => ['day'],
'setDateLastN' => false,
'segment' => $segment[0],
'testSuffix' => $segment[1],
],
];
}
return $return;
}
public static function getPathToTestDirectory()
{
return dirname(__FILE__);
}
}
TwoVisitsWithCustomVariablesSegmentContainsTest::$fixture = new TwoVisitsWithCustomVariables();
TwoVisitsWithCustomVariablesSegmentContainsTest::$fixture->doExtraQuoteTests = false;
|