Download plugins/Goals/tests/System/CalculateConversionPagesCommandTest.php from Leon4gr45/matomo: direct link, hf CLI and curl.
- Browser
- Download file 3.45 kB
-
https://huggingface.co/spaces/Leon4gr45/matomo/resolve/main/plugins/Goals/tests/System/CalculateConversionPagesCommandTest.php
- Command line
-
hf download hf://spaces/Leon4gr45/matomo/plugins/Goals/tests/System/CalculateConversionPagesCommandTest.php
-
curl -L -o CalculateConversionPagesCommandTest.php https://huggingface.co/spaces/Leon4gr45/matomo/resolve/main/plugins/Goals/tests/System/CalculateConversionPagesCommandTest.php
3.45 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\Goals\tests\System; | |
| use Piwik\Common; | |
| use Piwik\Date; | |
| use Piwik\Db; | |
| use Piwik\Tests\Fixtures\SomePageGoalVisitsWithConversions; | |
| use Piwik\Tests\Framework\TestCase\ConsoleCommandTestCase; | |
| /** | |
| * @group CalculateConversionPagesCommandTest | |
| * @group Goals | |
| * @group Plugins | |
| */ | |
| class CalculateConversionPagesCommandTest extends ConsoleCommandTestCase | |
| { | |
| /** | |
| * @var SomePageGoalVisitsWithConversions | |
| */ | |
| public static $fixture = null; | |
| public function testCommandSuccessfullyCalculatesForDateRange() | |
| { | |
| $this->unsetPageviewsBefore(); | |
| $this->applicationTester->setInputs(["N\n"]); | |
| $result = $this->applicationTester->run([ | |
| 'command' => 'core:calculate-conversion-pages', | |
| '--dates' => '2009-01-05,2009-01-31', | |
| '--idsite' => self::$fixture->idSite, | |
| '-vvv' => true, | |
| ]); | |
| // Check command completed ok | |
| $this->assertEquals(0, $result, $this->getCommandDisplayOutputErrorMessage()); | |
| // Check conversions have been calculated | |
| $this->checkPageviewsBeforeValid(); | |
| } | |
| public function testCommandSuccessfullyCalculatesForLastN() | |
| { | |
| $this->unsetPageviewsBefore(); | |
| $this->applicationTester->setInputs(["N\n"]); | |
| $result = $this->applicationTester->run([ | |
| 'command' => 'core:calculate-conversion-pages', | |
| '--last-n' => 2, | |
| '--idsite' => self::$fixture->idSite, | |
| '-vvv' => true, | |
| ]); | |
| // Check command completed ok | |
| $this->assertEquals(0, $result, $this->getCommandDisplayOutputErrorMessage()); | |
| // Check conversions have been calculated | |
| $this->checkPageviewsBeforeValid('2009-01-06 07:54:00'); | |
| } | |
| /** | |
| * Set all pageviews before value to null | |
| * | |
| * @throws \Exception | |
| */ | |
| private function unsetPageviewsBefore(): void | |
| { | |
| Db::query( | |
| 'UPDATE ' . Common::prefixTable('log_conversion') . ' SET pageviews_before = NULL WHERE idsite = ?', | |
| [self::$fixture->idSite] | |
| ); | |
| } | |
| /** | |
| * Check that the log_conversion.pageviews_before column was correctly calculated | |
| * | |
| * @throws \Exception | |
| */ | |
| public function checkPageviewsBeforeValid(?string $onlyToDate = null): void | |
| { | |
| $expectedValues = TrackGoalsPagesTest::getConversionPagesBeforeExpected(); | |
| foreach ($expectedValues as $expected) { | |
| $values = Db::get()->fetchAssoc('SELECT server_time, pageviews_before FROM ' . Common::prefixTable('log_conversion') . | |
| ' WHERE idlink_va = ?', [$expected['id']]); | |
| $row = reset($values); | |
| // If the 'only to date' parameter is passed then expect only conversions up to that date to be have been | |
| // processed | |
| if ($onlyToDate === null || Date::factory($row['server_time'])->getTimestamp() >= Date::factory($onlyToDate)->getTimestamp()) { | |
| $this->assertEquals($expected['expected'], $row['pageviews_before']); | |
| } else { | |
| $this->assertEquals(null, $row['pageviews_before']); | |
| } | |
| } | |
| } | |
| } | |
| CalculateConversionPagesCommandTest::$fixture = new SomePageGoalVisitsWithConversions(); | |