diff --git a/tests/PHPUnit/BaseFixture.php b/tests/PHPUnit/BaseFixture.php index b94dbabd6c925d66bd7baa64ac002ebdeb462bf0..fffe2aa4a4ac0855dab381830fb37514767a78a5 100644 --- a/tests/PHPUnit/BaseFixture.php +++ b/tests/PHPUnit/BaseFixture.php @@ -400,4 +400,14 @@ abstract class Test_Piwik_BaseFixture extends PHPUnit_Framework_Assert return $output; } -} + + public static function siteCreated($idSite) + { + return Db::fetchOne("SELECT COUNT(*) FROM " . Common::prefixTable('site') . " WHERE idsite = ?", array($idSite)) != 0; + } + + public static function goalExists($idSite, $idGoal) + { + return Db::fetchOne("SELECT COUNT(*) FROM " . Common::prefixTable('goal') . " WHERE idgoal = ? AND idsite = ?", array($idGoal, $idSite)) != 0; + } +} \ No newline at end of file diff --git a/tests/PHPUnit/Fixtures/FewVisitsWithSetVisitorId.php b/tests/PHPUnit/Fixtures/FewVisitsWithSetVisitorId.php index 2284a14aa98d4e9f48a457931b89b6fb2effa567..189a5ce1d377e4b50d4e30c712eefa1bff03370d 100644 --- a/tests/PHPUnit/Fixtures/FewVisitsWithSetVisitorId.php +++ b/tests/PHPUnit/Fixtures/FewVisitsWithSetVisitorId.php @@ -30,7 +30,9 @@ class Test_Piwik_Fixture_FewVisitsWithSetVisitorId extends Test_Piwik_BaseFixtur private function setUpWebsitesAndGoals() { // tests run in UTC, the Tracker in UTC - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/InvalidVisits.php b/tests/PHPUnit/Fixtures/InvalidVisits.php index b2938b6b2dc56eb41e4d834d2b5b8dec84a10479..14aafc79114c203dbf26e75f5218d671e297d05a 100644 --- a/tests/PHPUnit/Fixtures/InvalidVisits.php +++ b/tests/PHPUnit/Fixtures/InvalidVisits.php @@ -32,7 +32,9 @@ class Test_Piwik_Fixture_InvalidVisits extends Test_Piwik_BaseFixture private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php b/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php index eb3ee16ed9b6cd2971ea9976a10518e299606887..d4f66a67d0dcfbad5f8f57ff755e489cb0ca8441 100644 --- a/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php +++ b/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php @@ -47,10 +47,18 @@ class Test_Piwik_Fixture_ManySitesImportedLogs extends Test_Piwik_BaseFixture public function setUpWebsitesAndGoals() { // for conversion testing - self::createWebsite($this->dateTime); - APIGoals::getInstance()->addGoal($this->idSite, 'all', 'url', 'http', 'contains', false, 5); - self::createWebsite($this->dateTime, $ecommerce = 0, $siteName = 'Piwik test two', - $siteUrl = 'http://example-site-two.com'); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } + + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + APIGoals::getInstance()->addGoal($this->idSite, 'all', 'url', 'http', 'contains', false, 5); + } + + if (!self::siteCreated($idSite = 2)) { + self::createWebsite($this->dateTime, $ecommerce = 0, $siteName = 'Piwik test two', + $siteUrl = 'http://example-site-two.com'); + } } public function getDefaultSegments() diff --git a/tests/PHPUnit/Fixtures/ManySitesImportedLogsWithXssAttempts.php b/tests/PHPUnit/Fixtures/ManySitesImportedLogsWithXssAttempts.php index 1f268e0f396a7e7302ecf09c0ca7600d1aed0df8..ea78fba9c10b10633ca52b4216f62e33d5a7b738 100644 --- a/tests/PHPUnit/Fixtures/ManySitesImportedLogsWithXssAttempts.php +++ b/tests/PHPUnit/Fixtures/ManySitesImportedLogsWithXssAttempts.php @@ -49,13 +49,20 @@ class Test_Piwik_Fixture_ManySitesImportedLogsWithXssAttempts extends Test_Piwik public function setUpWebsitesAndGoals() { // for conversion testing - $siteName = self::makeXssContent("site name", $sanitize = true); - self::createWebsite($this->dateTime, $ecommerce = 1, $siteName); - APIGoals::getInstance()->addGoal( - $this->idSite, self::makeXssContent("goal name"), 'url', 'http', 'contains', false, 5); - - self::createWebsite($this->dateTime, $ecommerce = 0, $siteName = 'Piwik test two', - $siteUrl = 'http://example-site-two.com'); + if (!self::siteCreated($idSite = 1)) { + $siteName = self::makeXssContent("site name", $sanitize = true); + self::createWebsite($this->dateTime, $ecommerce = 1, $siteName); + } + + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + APIGoals::getInstance()->addGoal( + $this->idSite, self::makeXssContent("goal name"), 'url', 'http', 'contains', false, 5); + } + + if (!self::siteCreated($idSite = 2)) { + self::createWebsite($this->dateTime, $ecommerce = 0, $siteName = 'Piwik test two', + $siteUrl = 'http://example-site-two.com'); + } } /** Creates two dashboards that split the widgets up into different groups. */ diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php index 29176789d67c4b2115e3a768dc7fa0b1d8a360f3..524c92bdd1c0726674e544aab57f76d20c5794b9 100644 --- a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php +++ b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php @@ -65,9 +65,17 @@ class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Test_Piwik_BaseFixture private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime, 0, "Site 1"); - $this->idGoal = API::getInstance()->addGoal($this->idSite, 'all', 'url', 'http', 'contains', false, 5); - $this->idGoal2 = API::getInstance()->addGoal($this->idSite, 'two', 'url', 'xxxxxxxxxxxxx', 'contains', false, 5); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime, 0, "Site 1"); + } + + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + $this->idGoal = API::getInstance()->addGoal($this->idSite, 'all', 'url', 'http', 'contains', false, 5); + } + + if (!self::goalExists($idSite = 1, $idGoal = 2)) { + $this->idGoal2 = API::getInstance()->addGoal($this->idSite, 'two', 'url', 'xxxxxxxxxxxxx', 'contains', false, 5); + } } private function trackVisits($visitorCount, $setIp = false, $useLocal = true, $doBulk = false) diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php b/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php index b34cca1ad349e0d503da8a895281acd8f8e5a3f1..9a4a228f47adb551c3d89ad0ec2d9584fbb19481 100644 --- a/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php +++ b/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php @@ -39,7 +39,9 @@ class Test_Piwik_Fixture_ManyVisitsWithMockLocationProvider extends Test_Piwik_B private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php b/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php index abbe2b13ee8708b6559f1d7ed8b5ba3723563dcb..f933df190dbe5281e97511f4b6d2c220a12e3028 100644 --- a/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php +++ b/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php @@ -30,7 +30,9 @@ class Test_Piwik_Fixture_ManyVisitsWithSubDirReferrersAndCustomVars extends Test private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/OmniFixture.php b/tests/PHPUnit/Fixtures/OmniFixture.php new file mode 100644 index 0000000000000000000000000000000000000000..061f2f4e4b7160df721b99399c0088bd2cb793c6 --- /dev/null +++ b/tests/PHPUnit/Fixtures/OmniFixture.php @@ -0,0 +1,81 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +use Piwik\Date; +use Piwik\Tracker\Visit; + +/** + * This fixture is the combination of every other fixture defined by Piwik. Should be used + * with year periods. + */ +class Test_Piwik_Fixture_OmniFixture extends Test_Piwik_BaseFixture +{ + public $month = '2012-01'; + public $idSite = 'all'; + public $dateTime = '2012-02-01'; + public $now = null; + + public $fixtures = array(); + + /** + * Constructor. + */ + public function __construct() + { + $date = $this->month . '-01'; + + $classes = get_declared_classes(); + foreach ($classes as $className) { + if (is_subclass_of($className, 'Test_Piwik_BaseFixture') + && $className != __CLASS__ + ) { + $fixture = new $className(); + if (!property_exists($fixture, 'dateTime')) { + continue; + } + + $fixture->dateTime = $this->adjustDateTime($fixture->dateTime, $date); + + $this->fixtures[$className] = $fixture; + + $date = Date::factory($date)->addDay(1)->toString(); + } + } + + $this->now = $this->fixtures['Test_Piwik_Fixture_ManySitesImportedLogsWithXssAttempts']->now; + + // make sure Test_Piwik_Fixture_ManySitesImportedLogsWithXssAttempts is the first fixture + $fixture = $this->fixtures['Test_Piwik_Fixture_ManySitesImportedLogsWithXssAttempts']; + unset($this->fixtures['Test_Piwik_Fixture_ManySitesImportedLogsWithXssAttempts']); + $this->fixtures = array_merge(array('Test_Piwik_Fixture_ManySitesImportedLogsWithXssAttempts' => $fixture), $this->fixtures); + } + + private function adjustDateTime($dateTime, $adjustToDate) + { + $parts = explode(' ', $dateTime); + + $result = $adjustToDate . ' '; + $result .= isset($parts[1]) ? $parts[1] : '11:22:33'; + + return $result; + } + + public function setUp() + { + foreach ($this->fixtures as $name => $fixture) { + $fixture->setUp(); + } + } + + public function tearDown() + { + foreach ($this->fixtures as $fixture) { + $fixture->tearDown(); + } + } +} \ No newline at end of file diff --git a/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php b/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php index 2f2341dd821777c278be9d31566427bb8225056f..f4268ee911e14d02153d80f17b15935ff5115f55 100644 --- a/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php +++ b/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php @@ -28,7 +28,9 @@ class Test_Piwik_Fixture_OneVisitSeveralPageViews extends Test_Piwik_BaseFixture private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/OneVisitWithAbnormalPageviewUrls.php b/tests/PHPUnit/Fixtures/OneVisitWithAbnormalPageviewUrls.php index 638a35d5b2886bd789ef21fd55607d2a1f7c4b0d..ab3fe5278a6dfc594b193843b2f2c439da9d0e81 100644 --- a/tests/PHPUnit/Fixtures/OneVisitWithAbnormalPageviewUrls.php +++ b/tests/PHPUnit/Fixtures/OneVisitWithAbnormalPageviewUrls.php @@ -29,7 +29,9 @@ class Test_Piwik_Fixture_OneVisitWithAbnormalPageviewUrls extends Test_Piwik_Bas private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/OneVisitorTwoVisits.php b/tests/PHPUnit/Fixtures/OneVisitorTwoVisits.php index cc150e448263c8e7aae1db91c73654c8f400dc94..955abedf56ea0d32c5518af0e031d86acc26f5a3 100644 --- a/tests/PHPUnit/Fixtures/OneVisitorTwoVisits.php +++ b/tests/PHPUnit/Fixtures/OneVisitorTwoVisits.php @@ -36,10 +36,17 @@ class Test_Piwik_Fixture_OneVisitorTwoVisits extends Test_Piwik_BaseFixture private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } + + if (!self::siteCreated($idSite = 2)) { + $this->idSiteEmptyBis = $this->createWebsite($this->dateTime); + } - $this->idSiteEmptyBis = $this->createWebsite($this->dateTime); - $this->idSiteEmptyTer = $this->createWebsite($this->dateTime); + if (!self::siteCreated($idStie = 3)) { + $this->idSiteEmptyTer = $this->createWebsite($this->dateTime); + } } private function trackVisits() @@ -109,7 +116,11 @@ class Test_Piwik_Fixture_OneVisitorTwoVisits extends Test_Piwik_BaseFixture self::checkResponse($t->doTrackAction('http://dev.piwik.org/svn', 'link')); // Create Goal 1: Triggered by JS, after 18 minutes - $idGoal = APIGoals::getInstance()->addGoal($idSite, 'triggered js', 'manually', '', ''); + $idGoal = 1; + if (!self::goalExists($idSite, $idGoal)) { + $idGoal = APIGoals::getInstance()->addGoal($idSite, 'triggered js', 'manually', '', ''); + } + $t->setForceVisitDateTime(Date::factory($dateTime)->addHour(0.3)->getDatetime()); // Change to Thai browser to ensure the conversion is credited to FR instead (the visitor initial country) @@ -146,7 +157,9 @@ class Test_Piwik_Fixture_OneVisitorTwoVisits extends Test_Piwik_BaseFixture // End of first visit: 24min // Create Goal 2: Matching on URL - APIGoals::getInstance()->addGoal($idSite, 'matching purchase.htm', 'url', '(.*)store\/purchase\.(.*)', 'regex', false, $revenue = 1); + if (!self::goalExists($idSite, $idGoal = 2)) { + APIGoals::getInstance()->addGoal($idSite, 'matching purchase.htm', 'url', '(.*)store\/purchase\.(.*)', 'regex', false, $revenue = 1); + } // - // Start of returning visit, 1 hour after first page view diff --git a/tests/PHPUnit/Fixtures/SomeVisitsAllConversions.php b/tests/PHPUnit/Fixtures/SomeVisitsAllConversions.php index 272a80915405eb7ea5f01048d29d4903a6811e16..6fef9443d582bd7e5a483ddb184e4da501c23723 100644 --- a/tests/PHPUnit/Fixtures/SomeVisitsAllConversions.php +++ b/tests/PHPUnit/Fixtures/SomeVisitsAllConversions.php @@ -31,19 +31,25 @@ class Piwik_Test_Fixture_SomeVisitsAllConversions extends Test_Piwik_BaseFixture private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } // First, a goal that is only recorded once per visit - API::getInstance()->addGoal( - $this->idSite, 'triggered js ONCE', 'title', 'Thank you', 'contains', $caseSensitive = false, - $revenue = 10, $allowMultipleConversions = false - ); + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + API::getInstance()->addGoal( + $this->idSite, 'triggered js ONCE', 'title', 'Thank you', 'contains', $caseSensitive = false, + $revenue = 10, $allowMultipleConversions = false + ); + } // Second, a goal allowing multiple conversions - API::getInstance()->addGoal( - $this->idSite, 'triggered js MULTIPLE ALLOWED', 'manually', '', '', $caseSensitive = false, - $revenue = 10, $allowMultipleConversions = true - ); + if (!self::goalExists($idSite = 1, $idGoal = 2)) { + API::getInstance()->addGoal( + $this->idSite, 'triggered js MULTIPLE ALLOWED', 'manually', '', '', $caseSensitive = false, + $revenue = 10, $allowMultipleConversions = true + ); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php b/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php index bd15390b10192d13b9b655c648934c15995fc9b5..70c8bb3f494628fe15343ad7407f81500b80f619 100644 --- a/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php +++ b/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php @@ -31,8 +31,13 @@ class Test_Piwik_Fixture_SomeVisitsCustomVariablesCampaignsNotHeuristics extends private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); - API::getInstance()->addGoal($this->idSite, 'triggered js', 'manually', '', ''); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } + + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + API::getInstance()->addGoal($this->idSite, 'triggered js', 'manually', '', ''); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php b/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php index ba7032f177701e47e90844d5a97ff612febd51ee..68f09c06e002970a1a1a9c20c10ca71c07a5d46d 100644 --- a/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php +++ b/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php @@ -31,8 +31,10 @@ class Test_Piwik_Fixture_SomeVisitsManyPageviewsWithTransitions extends Test_Piw private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime, $ecommerce = 0, $siteName = 'Piwik test', $siteUrl = false, - $siteSearch = 1); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime, $ecommerce = 0, $siteName = 'Piwik test', $siteUrl = false, + $siteSearch = 1); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/SomeVisitsWithLongUrls.php b/tests/PHPUnit/Fixtures/SomeVisitsWithLongUrls.php index c78a3fb9da0a6222074ce37518a888da5c89e743..0284ff05ea02c63dfc9c73c2b03e13f88faddc82 100644 --- a/tests/PHPUnit/Fixtures/SomeVisitsWithLongUrls.php +++ b/tests/PHPUnit/Fixtures/SomeVisitsWithLongUrls.php @@ -29,7 +29,9 @@ class Test_Piwik_Fixture_SomeVisitsWithLongUrls extends Test_Piwik_BaseFixture private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/SomeVisitsWithNonUnicodePageTitles.php b/tests/PHPUnit/Fixtures/SomeVisitsWithNonUnicodePageTitles.php index 23819ec4e30aaca63c9087363cd85db05f7a53f2..96758636a90722da2fe7c80080daeef67e330d92 100644 --- a/tests/PHPUnit/Fixtures/SomeVisitsWithNonUnicodePageTitles.php +++ b/tests/PHPUnit/Fixtures/SomeVisitsWithNonUnicodePageTitles.php @@ -35,7 +35,10 @@ class Test_Piwik_Fixture_SomeVisitsWithNonUnicodePageTitles extends Test_Piwik_B private function setUpWebsites() { API::getInstance()->setGlobalSearchParameters($searchKeywordParameters = 'gkwd', $searchCategoryParameters = 'gcat'); - self::createWebsite(Date::factory($this->dateTime)->getDatetime(), 0, "Site 1 - Site search", $siteurl = false, $search = 1, $searchKwd = 'q,mykwd,p', $searchCat = 'cats'); + + if (!self::siteCreated($idSite = 1)) { + self::createWebsite(Date::factory($this->dateTime)->getDatetime(), 0, "Site 1 - Site search", $siteurl = false, $search = 1, $searchKwd = 'q,mykwd,p', $searchCat = 'cats'); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/ThreeGoalsOnePageview.php b/tests/PHPUnit/Fixtures/ThreeGoalsOnePageview.php index 71d0be9fb0b4b779ce2b5f9250304080b1bb45e6..fbb3579c393153268fdf97b33b0e48eabf964f1c 100644 --- a/tests/PHPUnit/Fixtures/ThreeGoalsOnePageview.php +++ b/tests/PHPUnit/Fixtures/ThreeGoalsOnePageview.php @@ -33,18 +33,27 @@ class Test_Piwik_Fixture_ThreeGoalsOnePageview extends Test_Piwik_BaseFixture private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime, $ecommerce = 1); - API::getInstance()->addGoal( - $this->idSite, 'Goal 1 - Thank you', 'title', 'Thank you', 'contains', $caseSensitive = false, - $revenue = 10, $allowMultipleConversions = 1 - ); - - API::getInstance()->addGoal( - $this->idSite, 'Goal 2 - Hello', 'url', 'hellow', 'contains', $caseSensitive = false, - $revenue = 10, $allowMultipleConversions = 0 - ); - - API::getInstance()->addGoal($this->idSite, 'triggered js', 'manually', '', ''); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime, $ecommerce = 1); + } + + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + API::getInstance()->addGoal( + $this->idSite, 'Goal 1 - Thank you', 'title', 'Thank you', 'contains', $caseSensitive = false, + $revenue = 10, $allowMultipleConversions = 1 + ); + } + + if (!self::goalExists($idSite = 1, $idGoal = 2)) { + API::getInstance()->addGoal( + $this->idSite, 'Goal 2 - Hello', 'url', 'hellow', 'contains', $caseSensitive = false, + $revenue = 10, $allowMultipleConversions = 0 + ); + } + + if (!self::goalExists($idSite = 1, $idGoal = 3)) { + API::getInstance()->addGoal($this->idSite, 'triggered js', 'manually', '', ''); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/ThreeSitesWithManyVisitsWithSiteSearch.php b/tests/PHPUnit/Fixtures/ThreeSitesWithManyVisitsWithSiteSearch.php index 353ad4ec31292d6969b8cb51eecbaf0e7fcf347e..7fe98161735ca105b769dc9359eb5486dd828496 100644 --- a/tests/PHPUnit/Fixtures/ThreeSitesWithManyVisitsWithSiteSearch.php +++ b/tests/PHPUnit/Fixtures/ThreeSitesWithManyVisitsWithSiteSearch.php @@ -38,9 +38,18 @@ class Test_Piwik_Fixture_ThreeSitesWithManyVisitsWithSiteSearch extends Test_Piw protected function setUpWebsites() { API::getInstance()->setGlobalSearchParameters($searchKeywordParameters = 'gkwd', $searchCategoryParameters = 'gcat'); - self::createWebsite(Date::factory($this->dateTime)->subHour(200)->getDatetime(), 0, "Site 1 - Site search", $siteurl = false, $search = 1, $searchKwd = 'q,mykwd,p', $searchCat = 'cats'); - self::createWebsite(Date::factory($this->dateTime)->subHour(400)->getDatetime(), 0, "Site 2 - Site search use default", $siteurl = false, $search = 1, $searchKwd = '', $searchCat = ''); - self::createWebsite(Date::factory($this->dateTime)->subHour(600)->getDatetime(), 0, "Site 3 - No site search", $siteurl = false, $search = 0); + + if (!self::siteCreated($idSite = 1)) { + self::createWebsite(Date::factory($this->dateTime)->subHour(200)->getDatetime(), 0, "Site 1 - Site search", $siteurl = false, $search = 1, $searchKwd = 'q,mykwd,p', $searchCat = 'cats'); + } + + if (!self::siteCreated($idSite = 2)) { + self::createWebsite(Date::factory($this->dateTime)->subHour(400)->getDatetime(), 0, "Site 2 - Site search use default", $siteurl = false, $search = 1, $searchKwd = '', $searchCat = ''); + } + + if (!self::siteCreated($idSite = 3)) { + self::createWebsite(Date::factory($this->dateTime)->subHour(600)->getDatetime(), 0, "Site 3 - No site search", $siteurl = false, $search = 0); + } } protected function trackVisits() diff --git a/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php b/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php index 0402a163253025437430551541e37adb72b5ca59..d83a2018095b898cb8c57b62e032854e85722678 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php +++ b/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php @@ -34,12 +34,20 @@ class Test_Piwik_Fixture_TwoSitesEcommerceOrderWithItems extends Test_Piwik_Base private function setUpWebsitesAndGoals() { - $this->idSite = self::createWebsite($this->dateTime, $ecommerce = 1); - $this->idSite2 = self::createWebsite($this->dateTime); - API::getInstance()->addGoal( - $this->idSite, 'title match, triggered ONCE', 'title', 'incredible', 'contains', - $caseSensitive = false, $revenue = 10, $allowMultipleConversions = true - ); + if (!self::siteCreated($idSite = 1)) { + $this->idSite = self::createWebsite($this->dateTime, $ecommerce = 1); + } + + if (!self::siteCreated($idSite = 2)) { + $this->idSite2 = self::createWebsite($this->dateTime); + } + + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + API::getInstance()->addGoal( + $this->idSite, 'title match, triggered ONCE', 'title', 'incredible', 'contains', + $caseSensitive = false, $revenue = 10, $allowMultipleConversions = true + ); + } } protected function trackVisitsSite1($url, $orderId = '937nsjusu 3894', $orderId2 = '1037nsjusu4s3894', $orderId3 = '666', $orderId4 = '777') diff --git a/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php b/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php index 29a29c39c82acef86c7083394a54197f61582bf4..318b18594c2b41c1e36cd62e56767cbd99331a62 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php +++ b/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php @@ -14,7 +14,7 @@ use Piwik\Plugins\Goals\API; */ class Test_Piwik_Fixture_TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers extends Test_Piwik_BaseFixture { - public $today = '2010-03-06 11:22:33'; + public $dateTime = '2010-02-01 11:22:33'; public $idSite = 1; public $idSite2 = 2; public $keywords = array( @@ -36,19 +36,29 @@ class Test_Piwik_Fixture_TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferr private function setUpWebsitesAndGoals() { - $siteCreated = '2010-02-01 11:22:33'; + $siteCreated = $this->dateTime; - self::createWebsite($siteCreated); - API::getInstance()->addGoal($this->idSite, 'triggered php', 'manually', '', ''); - API::getInstance()->addGoal( - $this->idSite, 'another triggered php', 'manually', '', '', false, false, true); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($siteCreated); + } + + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + API::getInstance()->addGoal($this->idSite, 'triggered php', 'manually', '', ''); + } - self::createWebsite($siteCreated); + if (!self::goalExists($idSite = 1, $idGoal = 2)) { + API::getInstance()->addGoal( + $this->idSite, 'another triggered php', 'manually', '', '', false, false, true); + } + + if (!self::siteCreated($idSite = 2)) { + self::createWebsite($siteCreated); + } } private function trackVisits() { - $dateTime = $this->today; + $dateTime = Date::factory($this->dateTime)->addPeriod(1, 'MONTH')->addDay(5)->getDatetime(); $idSite = $this->idSite; $idSite2 = $this->idSite2; diff --git a/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php b/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php index 36b384d97804290e75df2e7a3f4c488e84647be5..bb4071b1cbce6b882d39f004033f23f03055a6cf 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php +++ b/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php @@ -39,12 +39,22 @@ class Test_Piwik_Fixture_TwoSitesTwoVisitorsDifferentDays extends Test_Piwik_Bas $ecommerce = $this->allowConversions ? 1 : 0; // tests run in UTC, the Tracker in UTC - self::createWebsite($this->dateTime, $ecommerce, "Site 1"); - self::createWebsite($this->dateTime, 0, "Site 2"); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime, $ecommerce, "Site 1"); + } + + if (!self::siteCreated($idSite = 2)) { + self::createWebsite($this->dateTime, 0, "Site 2"); + } if ($this->allowConversions) { - APIGoals::getInstance()->addGoal($this->idSite1, 'all', 'url', 'http', 'contains', false, 5); - APIGoals::getInstance()->addGoal($this->idSite2, 'all', 'url', 'http', 'contains'); + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + APIGoals::getInstance()->addGoal($this->idSite1, 'all', 'url', 'http', 'contains', false, 5); + } + + if (!self::goalExists($idSite = 1, $idGoal = 2)) { + APIGoals::getInstance()->addGoal($this->idSite2, 'all', 'url', 'http', 'contains'); + } } APISitesManager::getInstance()->updateSite( diff --git a/tests/PHPUnit/Fixtures/TwoSitesVisitsInPast.php b/tests/PHPUnit/Fixtures/TwoSitesVisitsInPast.php index eae1b9749f7232c8cd7bfde429c0cfe7ea6c71f2..5b1ddfc0a0663e8d58eabb9ba4c8fb5c7b901bf0 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesVisitsInPast.php +++ b/tests/PHPUnit/Fixtures/TwoSitesVisitsInPast.php @@ -32,8 +32,13 @@ class Test_Piwik_Fixture_TwoSitesVisitsInPast extends Test_Piwik_BaseFixture public function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTimeFirstDateWebsite1); - self::createWebsite($this->dateTimeFirstDateWebsite2); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTimeFirstDateWebsite1); + } + + if (!self::siteCreated($idSite = 2)) { + self::createWebsite($this->dateTimeFirstDateWebsite2); + } } protected function trackVisits() diff --git a/tests/PHPUnit/Fixtures/TwoSitesWithAnnotations.php b/tests/PHPUnit/Fixtures/TwoSitesWithAnnotations.php index 29f9d75da8a9fd8340e2ec442979a836b7637611..26cd3a2092eaa60b230546df1680fedda6c26e3f 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesWithAnnotations.php +++ b/tests/PHPUnit/Fixtures/TwoSitesWithAnnotations.php @@ -67,7 +67,12 @@ class Test_Piwik_Fixture_TwoSitesWithAnnotations extends Test_Piwik_BaseFixture private function setUpWebsitesAndGoals() { // add two websites - self::createWebsite($this->dateTime, $ecommerce = 1); - self::createWebsite($this->dateTime, $ecommerce = 1); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime, $ecommerce = 1); + } + + if (!self::siteCreated($idSite = 2)) { + self::createWebsite($this->dateTime, $ecommerce = 1); + } } } diff --git a/tests/PHPUnit/Fixtures/TwoVisitsNoKeywordWithBot.php b/tests/PHPUnit/Fixtures/TwoVisitsNoKeywordWithBot.php index 2e69bacded2b6659a6ad8c63560e9ad268cbf1bc..51a9ef8651252c0f2f1b463919cf52a3085cbf47 100644 --- a/tests/PHPUnit/Fixtures/TwoVisitsNoKeywordWithBot.php +++ b/tests/PHPUnit/Fixtures/TwoVisitsNoKeywordWithBot.php @@ -30,7 +30,9 @@ class Test_Piwik_Fixture_TwoVisitsNoKeywordWithBot extends Test_Piwik_BaseFixtur private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } } private function trackVisits() @@ -50,7 +52,10 @@ class Test_Piwik_Fixture_TwoVisitsNoKeywordWithBot extends Test_Piwik_BaseFixtur $t->setUrlReferrer('http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC&url=http%3A%2F%2Fpiwik.org%2F&ei=&usg='); $t->setUrl('http://example.org/this%20is%20cool!'); self::checkResponse($t->doTrackPageView('incredible title!')); - $idGoal = API::getInstance()->addGoal($idSite, 'triggered js', 'manually', '', ''); + $idGoal = 1; + if (!self::goalExists($idSite, $idGoal)) { + $idGoal = API::getInstance()->addGoal($idSite, 'triggered js', 'manually', '', ''); + } $t->setForceVisitDateTime(Date::factory($dateTime)->addHour(0.3)->getDatetime()); self::checkResponse($t->doTrackGoal($idGoal, $revenue = 42)); diff --git a/tests/PHPUnit/Fixtures/TwoVisitsWithCustomEvents.php b/tests/PHPUnit/Fixtures/TwoVisitsWithCustomEvents.php index 303d32c3e6a9cc1d24dbaebb878818b99217c710..88ba17670c17e98f73f2f71c49bdae4eb535d827 100644 --- a/tests/PHPUnit/Fixtures/TwoVisitsWithCustomEvents.php +++ b/tests/PHPUnit/Fixtures/TwoVisitsWithCustomEvents.php @@ -26,8 +26,13 @@ class Test_Piwik_Fixture_TwoVisitsWithCustomEvents extends Test_Piwik_BaseFixtur private function setUpWebsitesAndGoals() { // tests run in UTC, the Tracker in UTC - self::createWebsite($this->dateTime); - APIGoals::getInstance()->addGoal($this->idSite, 'triggered js', 'manually', '', ''); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } + + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + APIGoals::getInstance()->addGoal($this->idSite, 'triggered js', 'manually', '', ''); + } } public function trackVisits() diff --git a/tests/PHPUnit/Fixtures/TwoVisitsWithCustomVariables.php b/tests/PHPUnit/Fixtures/TwoVisitsWithCustomVariables.php index 46ef24c36d783f3cc0556d9a3fecfe6c2609573f..a707b22ef2e76b226d30fe885220380910489815 100644 --- a/tests/PHPUnit/Fixtures/TwoVisitsWithCustomVariables.php +++ b/tests/PHPUnit/Fixtures/TwoVisitsWithCustomVariables.php @@ -39,9 +39,17 @@ class Test_Piwik_Fixture_TwoVisitsWithCustomVariables extends Test_Piwik_BaseFix private function setUpWebsitesAndGoals() { // tests run in UTC, the Tracker in UTC - self::createWebsite($this->dateTime); - API::getInstance()->addGoal($this->idSite, 'triggered js', 'manually', '', ''); - API::getInstance()->addGoal($this->idSite, 'second goal', 'manually', '', ''); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } + + if (!self::goalExists($idSite = 1, $idGoal = 1)) { + API::getInstance()->addGoal($this->idSite, 'triggered js', 'manually', '', ''); + } + + if (!self::goalExists($idSite = 1, $idGoal = 2)) { + API::getInstance()->addGoal($this->idSite, 'second goal', 'manually', '', ''); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/VisitOverSeveralDaysImportedLogs.php b/tests/PHPUnit/Fixtures/VisitOverSeveralDaysImportedLogs.php index f6fd4a223fcc71d26c09d5153d77b23ee5a10d31..6a4ad7393a38845f002e4164db7440192f65d26c 100644 --- a/tests/PHPUnit/Fixtures/VisitOverSeveralDaysImportedLogs.php +++ b/tests/PHPUnit/Fixtures/VisitOverSeveralDaysImportedLogs.php @@ -29,7 +29,9 @@ class Test_Piwik_Fixture_VisitOverSeveralDaysImportedLogs extends Test_Piwik_Bas public function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTime); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTime); + } } private function trackVisits() diff --git a/tests/PHPUnit/Fixtures/VisitsOverSeveralDays.php b/tests/PHPUnit/Fixtures/VisitsOverSeveralDays.php index c845fabbf1dbfafa3b86fcb7def6234cbff11efe..90f01e35472cab6d66380618882708f3cf67452a 100644 --- a/tests/PHPUnit/Fixtures/VisitsOverSeveralDays.php +++ b/tests/PHPUnit/Fixtures/VisitsOverSeveralDays.php @@ -52,8 +52,13 @@ class Test_Piwik_Fixture_VisitsOverSeveralDays extends Test_Piwik_BaseFixture private function setUpWebsitesAndGoals() { - self::createWebsite($this->dateTimes[0], $ecommerce = 0, $siteName = 'Site AAAAAA'); - self::createWebsite($this->dateTimes[0], $ecommerce = 0, $siteName = 'SITE BBbbBB'); + if (!self::siteCreated($idSite = 1)) { + self::createWebsite($this->dateTimes[0], $ecommerce = 0, $siteName = 'Site AAAAAA'); + } + + if (!self::siteCreated($idSite = 2)) { + self::createWebsite($this->dateTimes[0], $ecommerce = 0, $siteName = 'SITE BBbbBB'); + } } private function trackVisits() diff --git a/tests/PHPUnit/Integration/RowEvolutionTest.php b/tests/PHPUnit/Integration/RowEvolutionTest.php index 5d34aeced6af8ee890ed087815e2657e37e96397..a3cb49569204aceb3b56c1a77cfc439d3394ca3c 100755 --- a/tests/PHPUnit/Integration/RowEvolutionTest.php +++ b/tests/PHPUnit/Integration/RowEvolutionTest.php @@ -26,7 +26,7 @@ class Test_Piwik_Integration_RowEvolution extends IntegrationTestCase { $idSite = self::$fixture->idSite; $idSite2 = self::$fixture->idSite2; - $today = self::$fixture->today; + $dateTime = self::$fixture->dateTime; $keywords = self::$fixture->keywords; $return = array(); @@ -34,7 +34,7 @@ class Test_Piwik_Integration_RowEvolution extends IntegrationTestCase $config = array( 'testSuffix' => '_referrer1', 'idSite' => $idSite, - 'date' => $today, + 'date' => $dateTime, 'otherRequestParameters' => array( 'date' => '2010-02-06,2010-03-06', 'period' => 'day', @@ -138,7 +138,7 @@ class Test_Piwik_Integration_RowEvolution extends IntegrationTestCase 'testSuffix' => '_multipleDates_lastNoData', 'periods' => 'month', 'idSite' => $idSite, - 'date' => $today, + 'date' => $dateTime, 'otherRequestParameters' => array( 'date' => '2010-02-01,2010-04-08', 'period' => 'month', @@ -153,7 +153,7 @@ class Test_Piwik_Integration_RowEvolution extends IntegrationTestCase 'testSuffix' => '_processedRowLabel', 'periods' => 'day', 'idSite' => $idSite2, - 'date' => $today, + 'date' => $dateTime, 'otherRequestParameters' => array( 'date' => '2010-03-01,2010-03-06', 'period' => 'month', @@ -168,7 +168,7 @@ class Test_Piwik_Integration_RowEvolution extends IntegrationTestCase 'testSuffix' => '_mobileDesktop', 'periods' => 'day', 'idSite' => $idSite2, - 'date' => $today, + 'date' => $dateTime, 'otherRequestParameters' => array( 'date' => '2010-03-01,2010-03-06', 'period' => 'month', @@ -183,7 +183,7 @@ class Test_Piwik_Integration_RowEvolution extends IntegrationTestCase 'testSuffix' => '_multiWithFilterLimit', 'periods' => 'day', 'idSite' => $idSite, - 'date' => $today, + 'date' => $dateTime, 'otherRequestParameters' => array( 'date' => '2010-03-01,2010-03-06', 'period' => 'day', @@ -198,7 +198,7 @@ class Test_Piwik_Integration_RowEvolution extends IntegrationTestCase 'testSuffix' => '_multiWithNoData', 'periods' => 'day', 'idSite' => $idSite, - 'date' => $today, + 'date' => $dateTime, 'otherRequestParameters' => array( 'date' => '2010-04-01,2010-04-06', 'period' => 'day', diff --git a/tests/PHPUnit/UI b/tests/PHPUnit/UI index 673d21c6a750d8280f4e9ab9d203072dd8d844d2..c316d4b07f69cb153605b095eb74279ed7aad218 160000 --- a/tests/PHPUnit/UI +++ b/tests/PHPUnit/UI @@ -1 +1 @@ -Subproject commit 673d21c6a750d8280f4e9ab9d203072dd8d844d2 +Subproject commit c316d4b07f69cb153605b095eb74279ed7aad218 diff --git a/tests/PHPUnit/UITest.php b/tests/PHPUnit/UITest.php index da6811205f12ff663f337972c39d37fdd3e648e6..5d7c555a321205f0b6e15096e08b360a426f217e 100644 --- a/tests/PHPUnit/UITest.php +++ b/tests/PHPUnit/UITest.php @@ -11,6 +11,7 @@ use Piwik\Date; use Piwik\Db; use Piwik\DbHelper; use Piwik\Plugins\VisitsSummary\API; +use Piwik\ArchiveProcessor\Rules; abstract class UITest extends IntegrationTestCase { @@ -51,6 +52,7 @@ abstract class UITest extends IntegrationTestCase AssetManager::removeMergedAssets(); // launch archiving so tests don't run out of time + Rules::$purgeDisabledByTests = true; $date = Date::factory(static::$fixture->dateTime)->toString(); API::getInstance()->get(static::$fixture->idSite, 'year', $date);