Download plugins/CustomDimensions/tests/Unit/Dimension/ExtractionsTest.php from Leon4gr45/matomo: direct link, hf CLI and curl.
- Browser
- Download file 2.84 kB
-
https://huggingface.co/spaces/Leon4gr45/matomo/resolve/main/plugins/CustomDimensions/tests/Unit/Dimension/ExtractionsTest.php
- Command line
-
hf download hf://spaces/Leon4gr45/matomo/plugins/CustomDimensions/tests/Unit/Dimension/ExtractionsTest.php
-
curl -L -o ExtractionsTest.php https://huggingface.co/spaces/Leon4gr45/matomo/resolve/main/plugins/CustomDimensions/tests/Unit/Dimension/ExtractionsTest.php
2.84 kB
| /** | |
| * 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\CustomDimensions\tests\Unit\Dimension; | |
| use Piwik\Plugins\CustomDimensions\Dimension\Extractions; | |
| /** | |
| * @group CustomDimensions | |
| * @group ExtractionsTest | |
| * @group Extractions | |
| * @group Plugins | |
| */ | |
| class ExtractionsTest extends \PHPUnit\Framework\TestCase | |
| { | |
| public function testCheckShouldFailWhenExtractionsIsNotAnArray() | |
| { | |
| $this->expectException(\Exception::class); | |
| $this->expectExceptionMessage("extractions has to be an array"); | |
| $this->buildExtractions('')->check(); | |
| } | |
| public function testCheckShouldFailWhenExtractionsDoesNotContainArrays() | |
| { | |
| $this->expectException(\Exception::class); | |
| $this->expectExceptionMessage("Each extraction within extractions has to be an array"); | |
| $this->buildExtractions(array('5'))->check(); | |
| } | |
| /** | |
| * @dataProvider getInvalidExtraction | |
| */ | |
| public function testCheckShouldFailWhenExtractionsDoesNotContainValidExtraction($extraction) | |
| { | |
| $this->expectException(\Exception::class); | |
| $this->expectExceptionMessage('Each extraction within extractions must have a key "dimension" and "pattern" only'); | |
| $this->buildExtractions(array($extraction))->check(); | |
| } | |
| public function getInvalidExtraction() | |
| { | |
| return array( | |
| array(array()), | |
| array(array('dimension' => 'url')), | |
| array(array('pattern' => 'index(.+).html')), | |
| array(array('dimension' => 'url', 'anything' => 'invalid')), | |
| array(array('dimension' => 'url', 'pattern' => 'index(.+).html', 'anything' => 'invalid')), | |
| ); | |
| } | |
| public function testCheckShouldAlsoCheckExtractionAndFailIfValueIsInvalid() | |
| { | |
| $this->expectException(\Exception::class); | |
| $this->expectExceptionMessage("Invald dimension 'invalId' used in an extraction. Available dimensions are: url, urlparam, action_name"); | |
| $extraction1 = array('dimension' => 'url', 'pattern' => 'index(.+).html'); | |
| $extraction2 = array('dimension' => 'invalId', 'pattern' => 'index'); | |
| $this->buildExtractions(array($extraction1, $extraction2))->check(); | |
| } | |
| public function testCheckShouldNotFailWhenExtractionsDefinitionIsValid() | |
| { | |
| $extraction1 = array('dimension' => 'url', 'pattern' => 'index(.+).html'); | |
| $extraction2 = array('dimension' => 'urlparam', 'pattern' => 'index'); | |
| $ex = $this->buildExtractions(array($extraction1, $extraction2)); | |
| $ex->check(); | |
| self::assertInstanceOf(Extractions::class, $ex); | |
| } | |
| private function buildExtractions($extractions) | |
| { | |
| return new Extractions($extractions); | |
| } | |
| } | |