File size: 2,468 Bytes
bf8c0ce | 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 | <?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\Tests\Integration;
use Piwik\Plugin\Segment;
use Piwik\Segment\SegmentsList;
use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
/**
* @group SegmentsListTest
* @group Segment
*/
class SegmentsListTest extends IntegrationTestCase
{
public function testSegmentsList()
{
$list = new SegmentsList();
// add a segment
$segment = $this->getDummySegment('seg1');
$list->addSegment($segment);
$this->assertEquals([$segment], $list->getSegments());
$this->assertEquals($segment, $list->getSegment('seg1'));
// add another segment
$segment2 = $this->getDummySegment('seg2');
$list->addSegment($segment2);
$this->assertEquals([$segment, $segment2], $list->getSegments());
$this->assertEquals($segment, $list->getSegment('seg1'));
$this->assertEquals($segment2, $list->getSegment('seg2'));
// remove a segment
$list->remove($segment->getCategoryId(), $segment->getSegment());
$this->assertEquals([1 => $segment2], $list->getSegments());
$this->assertNull($list->getSegment('seg1'));
$this->assertEquals($segment2, $list->getSegment('seg2'));
// remove segment by category
$list->remove($segment2->getCategoryId());
$this->assertEquals([], $list->getSegments());
$this->assertNull($list->getSegment('seg1'));
$this->assertNull($list->getSegment('seg2'));
}
public function testGlobalSegmentsList()
{
$list = SegmentsList::get();
$segments = $list->getSegments();
// there should be at least 100 segments in core
$this->assertGreaterThan(99, count($segments));
// check some specific segments exists
$this->assertNotNull($list->getSegment('pageUrl'));
$this->assertNotNull($list->getSegment('countryCode'));
$this->assertNotNull($list->getSegment('countryName'));
$this->assertNotNull($list->getSegment('actions'));
}
/**
* @param $expr
* @return Segment
*/
protected function getDummySegment($expr)
{
$segment = new Segment();
$segment->setName('Dummy');
$segment->setCategory('Dummy Cat');
$segment->setSegment($expr);
return $segment;
}
}
|