diff --git a/core/Access.php b/core/Access.php index 8e4337b7c592669a4d4b3e7e86678d1676b0b577..67ebe2ddd364ae6f401dc7531abcca8aaf472c42 100644 --- a/core/Access.php +++ b/core/Access.php @@ -232,6 +232,7 @@ class Access { if ($bool) { $this->previousLogin = self::getLogin(); + $this->login = $this->getSuperUserLogin(); $this->reloadAccessSuperUser(); } else { $this->hasSuperUserAccess = false; diff --git a/plugins/ExamplePlugin/tests/fixtures/SimpleFixtureTrackFewVisits.php b/plugins/ExamplePlugin/tests/fixtures/SimpleFixtureTrackFewVisits.php index 71adfea92a464f7f5cafa9408ec01f8a52252c56..5578a13621998ef58924d50080dcbf1ef843ff29 100644 --- a/plugins/ExamplePlugin/tests/fixtures/SimpleFixtureTrackFewVisits.php +++ b/plugins/ExamplePlugin/tests/fixtures/SimpleFixtureTrackFewVisits.php @@ -14,7 +14,7 @@ use Piwik\Date; * * This Simple fixture adds one website and tracks one visit with couple pageviews and an ecommerce conversion */ -class SimpleFixtureTrackFewVisits extends \Test_Piwik_BaseFixture +class SimpleFixtureTrackFewVisits extends \Fixture { public $dateTime = '2013-01-23 01:23:45'; public $idSite = 1; diff --git a/tests/PHPUnit/BenchmarkTestCase.php b/tests/PHPUnit/BenchmarkTestCase.php index 2cd13cf675e5ea94142f6af175f566d368658231..703a51255c599dfddc261efef3bdc763dcf0340c 100755 --- a/tests/PHPUnit/BenchmarkTestCase.php +++ b/tests/PHPUnit/BenchmarkTestCase.php @@ -78,14 +78,14 @@ abstract class BenchmarkTestCase extends IntegrationTestCase */ public static function getLocalTracker($idSite) { - $t = new Piwik_LocalTracker($idSite, Test_Piwik_BaseFixture::getTrackerUrl()); + $t = new Piwik_LocalTracker($idSite, Fixture::getTrackerUrl()); $t->setUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)"); $t->setBrowserLanguage('fr'); $t->setLocalTime('12:34:06'); $t->setResolution(1024, 768); $t->setBrowserHasCookies(true); $t->setPlugins($flash = true, $java = true, $director = false); - $t->setTokenAuth(Test_Piwik_BaseFixture::getTokenAuth()); + $t->setTokenAuth(Fixture::getTokenAuth()); return $t; } } @@ -102,7 +102,7 @@ class Piwik_Test_Fixture_EmptyOneSite public function setUp() { // add one site - Test_Piwik_BaseFixture::createWebsite( + Fixture::createWebsite( $this->date, $ecommerce = 1, $siteName = "Site #0", $siteUrl = "http://whatever.com/"); // add two goals diff --git a/tests/PHPUnit/Benchmarks/Fixtures/ManyThousandSitesOneVisitEach.php b/tests/PHPUnit/Benchmarks/Fixtures/ManyThousandSitesOneVisitEach.php index 8f8fb4ef02a31407e0eaa225fb16facce8087265..444c4261881da838eb14af96ec0960f35f92c860 100644 --- a/tests/PHPUnit/Benchmarks/Fixtures/ManyThousandSitesOneVisitEach.php +++ b/tests/PHPUnit/Benchmarks/Fixtures/ManyThousandSitesOneVisitEach.php @@ -21,7 +21,7 @@ class Piwik_Test_Fixture_ManyThousandSitesOneVisitEach public function setUp() { for ($i = 0; $i != $this->siteCount; ++$i) { - $idSite = Test_Piwik_BaseFixture::createWebsite( + $idSite = Fixture::createWebsite( $this->date, $ecommerce = 1, $siteName = "Site #$i", $siteUrl = "http://site$i.com/"); API::getInstance()->addGoal($idSite, 'all', 'url', 'http', 'contains', false, 5); diff --git a/tests/PHPUnit/Benchmarks/Fixtures/OneSiteThousandsOfDistinctUrlsOverMonth.php b/tests/PHPUnit/Benchmarks/Fixtures/OneSiteThousandsOfDistinctUrlsOverMonth.php index 42b3718212eb8a6f4d571eaa5f9774ff30ec89bd..7cf01a3d80b15b327b06d65dd1419df06a9e2bac 100644 --- a/tests/PHPUnit/Benchmarks/Fixtures/OneSiteThousandsOfDistinctUrlsOverMonth.php +++ b/tests/PHPUnit/Benchmarks/Fixtures/OneSiteThousandsOfDistinctUrlsOverMonth.php @@ -22,7 +22,7 @@ class Piwik_Test_Fixture_OneSiteThousandsOfDistinctUrlsOverMonth public function setUp() { // add one site - Test_Piwik_BaseFixture::createWebsite( + Fixture::createWebsite( $this->date, $ecommerce = 1, $siteName = "Site #0", $siteUrl = "http://whatever.com/"); // add two goals @@ -56,7 +56,7 @@ class Piwik_Test_Fixture_OneSiteThousandsOfDistinctUrlsOverMonth $t->setUrl($url); $t->setUrlReferrer($referrerUrl); - Test_Piwik_BaseFixture::checkResponse($t->doTrackPageView($title)); + Fixture::checkResponse($t->doTrackPageView($title)); ++$actionNum; } } diff --git a/tests/PHPUnit/Benchmarks/Fixtures/OneSiteTwelveThousandVisitsOneYear.php b/tests/PHPUnit/Benchmarks/Fixtures/OneSiteTwelveThousandVisitsOneYear.php index 1d7ea0462bfaddc6e6d9b9d28f380764de92767d..6646db1d4afb88c08f47dc15fd780b752e8f969d 100755 --- a/tests/PHPUnit/Benchmarks/Fixtures/OneSiteTwelveThousandVisitsOneYear.php +++ b/tests/PHPUnit/Benchmarks/Fixtures/OneSiteTwelveThousandVisitsOneYear.php @@ -22,7 +22,7 @@ class Piwik_Test_Fixture_OneSiteTwelveThousandVisitsOneYear public function setUp() { // add one site - Test_Piwik_BaseFixture::createWebsite( + Fixture::createWebsite( $this->date, $ecommerce = 1, $siteName = "Site #0", $siteUrl = "http://whatever.com/"); // add two goals diff --git a/tests/PHPUnit/Benchmarks/Fixtures/SqlDump.php b/tests/PHPUnit/Benchmarks/Fixtures/SqlDump.php index 3bba39cc861da34d22c10aacb761a65e61de1248..9c6c201548ec6dc26b82b62b6e4886c0171d9468 100755 --- a/tests/PHPUnit/Benchmarks/Fixtures/SqlDump.php +++ b/tests/PHPUnit/Benchmarks/Fixtures/SqlDump.php @@ -13,7 +13,7 @@ use Piwik\DbHelper; /** * Reusable fixture. Loads a SQL dump into the DB. */ -class Piwik_Test_Fixture_SqlDump +class Piwik_Test_Fixture_SqlDump extends Fixture { public $date = '2012-09-03'; public $dateTime = '2012-09-03'; @@ -59,10 +59,9 @@ class Piwik_Test_Fixture_SqlDump // load the data into the correct database $user = Config::getInstance()->database['username']; $password = Config::getInstance()->database['password']; - $dbName = Config::getInstance()->database['dbname']; Config::getInstance()->database['tables_prefix'] = $this->tablesPrefix; - $cmd = "mysql -u \"$user\" \"--password=$password\" $dbName < \"" . $deflatedDumpPath . "\" 2>&1"; + $cmd = "mysql -u \"$user\" \"--password=$password\" {$this->dbName} < \"" . $deflatedDumpPath . "\" 2>&1"; exec($cmd, $output, $return); if ($return !== 0) { throw new Exception("Failed to load sql dump: " . implode("\n", $output)); @@ -71,4 +70,9 @@ class Piwik_Test_Fixture_SqlDump // make sure archiving will be called Rules::setBrowserTriggerArchiving(true); } + + public function tearDown() + { + // empty + } } \ No newline at end of file diff --git a/tests/PHPUnit/Benchmarks/Fixtures/ThousandSitesTwelveVisitsEachOneDay.php b/tests/PHPUnit/Benchmarks/Fixtures/ThousandSitesTwelveVisitsEachOneDay.php index 6f4c9c35b9f28f0ef21c8fe628f48c804dd98760..cb9c069936c4b51be9de5455f5dc146fb7d058d3 100755 --- a/tests/PHPUnit/Benchmarks/Fixtures/ThousandSitesTwelveVisitsEachOneDay.php +++ b/tests/PHPUnit/Benchmarks/Fixtures/ThousandSitesTwelveVisitsEachOneDay.php @@ -24,7 +24,7 @@ class Piwik_Test_Fixture_ThousandSitesTwelveVisitsEachOneDay // add one thousand sites $allIdSites = array(); for ($i = 0; $i < 1000; ++$i) { - $allIdSites[] = Test_Piwik_BaseFixture::createWebsite($this->date, $ecommerce = 1, $siteName = "Site #$i"); + $allIdSites[] = Fixture::createWebsite($this->date, $ecommerce = 1, $siteName = "Site #$i"); } // add goals to 500 sites diff --git a/tests/PHPUnit/Core/JsProxyTest.php b/tests/PHPUnit/Core/JsProxyTest.php index d6b2566b8d9bd30505819ffdb8b1910a1e928682..2f2dcb9b9c83b06db0e1b3e6ecc5e86dfa7d9b14 100644 --- a/tests/PHPUnit/Core/JsProxyTest.php +++ b/tests/PHPUnit/Core/JsProxyTest.php @@ -49,6 +49,6 @@ class Test_Piwik_JsProxy extends PHPUnit_Framework_TestCase */ private function getStaticSrvUrl() { - return Test_Piwik_BaseFixture::getRootUrl(); + return Fixture::getRootUrl(); } } diff --git a/tests/PHPUnit/Core/ServeStaticFileTest.php b/tests/PHPUnit/Core/ServeStaticFileTest.php index d97fa4a6cfe62a0f7ab7cfe28a1a13ad133972a3..b3536b7aa3dfdd35c193311e409eca2bfd369695 100644 --- a/tests/PHPUnit/Core/ServeStaticFileTest.php +++ b/tests/PHPUnit/Core/ServeStaticFileTest.php @@ -393,7 +393,7 @@ class Test_Piwik_ServeStaticFile extends PHPUnit_Framework_TestCase */ private function getStaticSrvUrl() { - $url = Test_Piwik_BaseFixture::getRootUrl(); + $url = Fixture::getRootUrl(); $url .= '/tests/resources/'; return $url . "staticFileServer.php?" . FILE_MODE_REQUEST_VAR . "=" . STATIC_SERVER_MODE . diff --git a/tests/PHPUnit/DatabaseTestCase.php b/tests/PHPUnit/DatabaseTestCase.php index 1c0968539c2098018f39f4dda80181100c80d011..b9d4bcaa41658fffc8222a714ccab4f037b16a51 100644 --- a/tests/PHPUnit/DatabaseTestCase.php +++ b/tests/PHPUnit/DatabaseTestCase.php @@ -14,6 +14,7 @@ use Piwik\Option; use Piwik\Plugins\ScheduledReports\API; use Piwik\Site; use Piwik\Tracker\Cache; +use Piwik\Piwik; /** * Tests extending DatabaseTestCase are much slower to run: the setUp will @@ -25,6 +26,7 @@ use Piwik\Tracker\Cache; */ class DatabaseTestCase extends PHPUnit_Framework_TestCase { + protected $fixture = null; /** * Setup the database and create the base tables for all tests @@ -32,35 +34,11 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase public function setUp() { parent::setUp(); - try { - Config::getInstance()->setTestEnvironment(); - $dbConfig = Config::getInstance()->database; - $dbName = $dbConfig['dbname']; - $dbConfig['dbname'] = null; - - Db::createDatabaseObject($dbConfig); - - DbHelper::dropDatabase(); - DbHelper::createDatabase($dbName); - DbHelper::disconnectDatabase(); - - Db::createDatabaseObject(); - DbHelper::createTables(); - -// \Piwik\Manager::getInstance()->loadPlugins(array()); - IntegrationTestCase::loadAllPlugins(); - - } catch (Exception $e) { - $this->fail("TEST INITIALIZATION FAILED: " . $e->getMessage()); - } - - include "DataFiles/SearchEngines.php"; - include "DataFiles/Socials.php"; - include "DataFiles/Languages.php"; - include "DataFiles/Countries.php"; - include "DataFiles/Currencies.php"; - include "DataFiles/LanguageToCountry.php"; + $this->fixture = new Fixture(); + $this->fixture->loadTranslations = false; + $this->fixture->createSuperUser = false; + $this->fixture->setUpEnvironment(); } /** @@ -69,16 +47,6 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase public function tearDown() { parent::tearDown(); - IntegrationTestCase::unloadAllPlugins(); - DbHelper::dropDatabase(); - Manager::getInstance()->deleteAll(); - Option::clearCache(); - API::$cache = array(); - Site::clearCache(); - Cache::deleteTrackerCache(); - Config::getInstance()->clear(); - ArchiveTableCreator::clear(); - \Piwik\Registry::unsetInstance(); + $this->fixture->tearDownEnvironment(); } - } diff --git a/tests/PHPUnit/BaseFixture.php b/tests/PHPUnit/Fixture.php similarity index 72% rename from tests/PHPUnit/BaseFixture.php rename to tests/PHPUnit/Fixture.php index 18d0d9bfb1959f02bc25e5846343fa7d5c7b9ffc..54e054587b112e87d22d8fa9f72c86dfae4b4dd4 100644 --- a/tests/PHPUnit/BaseFixture.php +++ b/tests/PHPUnit/Fixture.php @@ -16,9 +16,18 @@ use Piwik\Plugins\ScheduledReports\ScheduledReports; use Piwik\Plugins\SitesManager\API as APISitesManager; use Piwik\Plugins\UserCountry\LocationProvider; use Piwik\Plugins\UsersManager\API as APIUsersManager; +use Piwik\Plugins\LanguagesManager\API as APILanguageManager; use Piwik\ReportRenderer; use Piwik\Site; use Piwik\Url; +use Piwik\Log; +use Piwik\DbHelper; +use Piwik\Piwik; +use Piwik\Tracker\Cache; +use Piwik\Translate; +use Piwik\Option; +use Piwik\DataTable\Manager as DataTableManager; +use Piwik\DataAccess\ArchiveTableCreator; /** * Base type for all integration test fixtures. Integration test fixtures @@ -34,18 +43,159 @@ use Piwik\Url; * Related TODO: we should try and reduce the amount of existing fixtures by * merging some together. */ -abstract class Test_Piwik_BaseFixture extends PHPUnit_Framework_Assert +// TODO: rename to Fixture +class Fixture extends PHPUnit_Framework_Assert { const IMAGES_GENERATED_ONLY_FOR_OS = 'linux'; const IMAGES_GENERATED_FOR_PHP = '5.5'; const IMAGES_GENERATED_FOR_GD = '2.1.1'; const DEFAULT_SITE_NAME = 'Piwik test'; + const ADMIN_USER_LOGIN = 'admin'; + const ADMIN_USER_PASSWORD = '098f6bcd4621d373cade4e832627b4f6'; + + public $dbName = false; + public $createEmptyDatabase = true; + public $createConfig = true; + public $dropDatabaseInTearDown = true; + public $loadTranslations = true; + public $createSuperUser = true; + /** Adds data to Piwik. Creates sites, tracks visits, imports log files, etc. */ - public abstract function setUp(); + public function setUp() + { + // empty + } /** Does any clean up. Most of the time there will be no need to clean up. */ - public abstract function tearDown(); + public function tearDown() + { + // empty + } + + public function setUpEnvironment() + { + try { + \Piwik\SettingsPiwik::$piwikUrlCache = ''; + + if ($this->createConfig) { + Config::getInstance()->setTestEnvironment(); + } + + if ($this->dbName === false) { // must be after test config is created + $this->dbName = Config::getInstance()->database['dbname']; + } + + static::connectWithoutDatabase(); + if ($this->createEmptyDatabase) { + DbHelper::dropDatabase(); + } + DbHelper::createDatabase($this->dbName); + DbHelper::disconnectDatabase(); + + // reconnect once we're sure the database exists + Config::getInstance()->database['dbname'] = $this->dbName; + Db::createDatabaseObject(); + + DbHelper::createTables(); + + \Piwik\Plugin\Manager::getInstance()->loadPlugins(array()); + } catch (Exception $e) { + static::fail("TEST INITIALIZATION FAILED: " . $e->getMessage() . "\n" . $e->getTraceAsString()); + } + + include "DataFiles/SearchEngines.php"; + include "DataFiles/Socials.php"; + include "DataFiles/Languages.php"; + include "DataFiles/Countries.php"; + include "DataFiles/Currencies.php"; + include "DataFiles/LanguageToCountry.php"; + include "DataFiles/Providers.php"; + + static::createAccessInstance(); + + // We need to be SU to create websites for tests + Piwik::setUserHasSuperUserAccess(); + + Cache::deleteTrackerCache(); + + static::loadAllPlugins(); + + $_GET = $_REQUEST = array(); + $_SERVER['HTTP_REFERER'] = ''; + + // Make sure translations are loaded to check messages in English + if ($this->loadTranslations) { + Translate::reloadLanguage('en'); + APILanguageManager::getInstance()->setLanguageForUser('superUserLogin', 'en'); + } + + FakeAccess::$superUserLogin = 'superUserLogin'; + + \Piwik\SettingsPiwik::$cachedKnownSegmentsToArchive = null; + \Piwik\CacheFile::$invalidateOpCacheBeforeRead = true; + + \Piwik\Plugins\PrivacyManager\IPAnonymizer::deactivate(); + \Piwik\Plugins\PrivacyManager\DoNotTrackHeaderChecker::deactivate(); + + if ($this->createSuperUser) { + self::createSuperUser(); + } + } + + public function tearDownEnvironment() + { + \Piwik\SettingsPiwik::$piwikUrlCache = null; + self::unloadAllPlugins(); + + if ($this->dropDatabaseInTearDown) { + DbHelper::dropDatabase(); + } + + DataTableManager::getInstance()->deleteAll(); + Option::clearCache(); + Site::clearCache(); + Cache::deleteTrackerCache(); + Config::getInstance()->clear(); + ArchiveTableCreator::clear(); + \Piwik\Plugins\ScheduledReports\API::$cache = array(); + \Piwik\Registry::unsetInstance(); + + $_GET = $_REQUEST = array(); + Translate::unloadEnglishTranslation(); + } + + public static function loadAllPlugins() + { + $plugins = \Piwik\Plugin\Manager::$pluginsToLoadForTests; + $pluginsManager = \Piwik\Plugin\Manager::getInstance(); + + // Load all plugins + $pluginsManager->loadPlugins($plugins); + + // Install plugins + $messages = $pluginsManager->installLoadedPlugins(); + Log::info("Plugin loading messages: %s", implode(" --- ", $messages)); + + // Activate them + foreach($plugins as $name) { + if (!$pluginsManager->isPluginActivated($name)) { + $pluginsManager->activatePlugin($name); + } + } + } + + public static function unloadAllPlugins() + { + try { + $plugins = \Piwik\Plugin\Manager::getInstance()->getLoadedPlugins(); + foreach ($plugins AS $plugin) { + $plugin->uninstall(); + } + \Piwik\Plugin\Manager::getInstance()->unloadPlugins(); + } catch (Exception $e) { + } + } /** * Creates a website, then sets its creation date to a day earlier than specified dateTime @@ -216,17 +366,14 @@ abstract class Test_Piwik_BaseFixture extends PHPUnit_Framework_Assert */ public static function getTokenAuth() { - $user = self::createSuperUser(); - - return $user['token_auth']; + return APIUsersManager::getInstance()->getTokenAuth(self::ADMIN_USER_LOGIN, self::ADMIN_USER_PASSWORD); } public static function createSuperUser() { - $login = 'admin'; - $password = '098f6bcd4621d373cade4e832627b4f6'; - - $token = APIUsersManager::getInstance()->getTokenAuth($login, $password); + $login = self::ADMIN_USER_LOGIN; + $password = self::ADMIN_USER_PASSWORD; + $token = self::getTokenAuth(); $model = new \Piwik\Plugins\UsersManager\Model(); $user = $model->getUserByTokenAuth($token); @@ -386,8 +533,9 @@ abstract class Test_Piwik_BaseFixture extends PHPUnit_Framework_Assert // unzip the dump exec("gunzip -c \"" . $outfileName . "\" > \"$deflatedOut\"", $output, $return); if ($return !== 0) { - \Piwik\Log::info("gunzip failed with file that has following contents:"); - \Piwik\Log::info(file_get_contents($outfile)); + Log::info("gunzip failed with file that has following contents:"); + Log::info(file_get_contents($outfile)); + throw new Exception("gunzip failed($return): " . implode("\n", $output)); } } @@ -431,4 +579,29 @@ abstract class Test_Piwik_BaseFixture extends PHPUnit_Framework_Assert { return Db::fetchOne("SELECT COUNT(*) FROM " . Common::prefixTable('goal') . " WHERE idgoal = ? AND idsite = ?", array($idGoal, $idSite)) != 0; } + + + /** + * Connects to MySQL w/o specifying a database. + */ + public static function connectWithoutDatabase() + { + $dbConfig = Config::getInstance()->database; + $oldDbName = $dbConfig['dbname']; + $dbConfig['dbname'] = null; + + Db::createDatabaseObject($dbConfig); + + $dbConfig['dbname'] = $oldDbName; + } + + /** + * Sets up access instance. + */ + public static function createAccessInstance() + { + Access::setSingletonInstance(null); + Access::getInstance(); + Piwik::postEvent('Request.initAuthenticationObject'); + } } \ No newline at end of file diff --git a/tests/PHPUnit/Fixtures/FewVisitsWithSetVisitorId.php b/tests/PHPUnit/Fixtures/FewVisitsWithSetVisitorId.php index 189a5ce1d377e4b50d4e30c712eefa1bff03370d..4136dc8de924af19d7c659afa131fe377446b3a6 100644 --- a/tests/PHPUnit/Fixtures/FewVisitsWithSetVisitorId.php +++ b/tests/PHPUnit/Fixtures/FewVisitsWithSetVisitorId.php @@ -11,7 +11,7 @@ use Piwik\Tracker\Visit; /** * Adds one site and tracks a couple visits using a custom visitor ID. */ -class Test_Piwik_Fixture_FewVisitsWithSetVisitorId extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_FewVisitsWithSetVisitorId extends Fixture { public $idSite = 1; public $dateTime = '2010-03-06 11:22:33'; diff --git a/tests/PHPUnit/Fixtures/InvalidVisits.php b/tests/PHPUnit/Fixtures/InvalidVisits.php index 14aafc79114c203dbf26e75f5218d671e297d05a..0fe5b81d74973989f4b9c7d308044a6643d01d6e 100644 --- a/tests/PHPUnit/Fixtures/InvalidVisits.php +++ b/tests/PHPUnit/Fixtures/InvalidVisits.php @@ -12,7 +12,7 @@ use Piwik\Plugins\SitesManager\API; * Adds one site and sends several invalid tracking requests. The result should be * one website with no visits. */ -class Test_Piwik_Fixture_InvalidVisits extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_InvalidVisits extends Fixture { public $idSite = 1; public $dateTime = '2009-01-04 00:11:42'; diff --git a/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php b/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php index 1f9fc232b7b62a5ebae52192ba02910f741de5d4..1bed83aa160ae8f2a1165d6b2c7e62f1bf1e3ff9 100644 --- a/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php +++ b/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php @@ -14,7 +14,7 @@ use Piwik\Plugins\UserCountry\LocationProvider\GeoIp; /** * Imports visits from several log files using the python log importer. */ -class Test_Piwik_Fixture_ManySitesImportedLogs extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_ManySitesImportedLogs extends Fixture { public $dateTime = '2012-08-09 11:22:33'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php index 524c92bdd1c0726674e544aab57f76d20c5794b9..928d8ce3903256680e8e3bbbf98b87ba331bcef5 100644 --- a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php +++ b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php @@ -17,7 +17,7 @@ require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/MockLocationProvider.php'; * Adds one new website and tracks 35 visits from 18 visitors with geolocation using * free GeoIP databases. The GeoIP databases are downloaded if they do not exist already. */ -class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Fixture { const GEOIP_IMPL_TO_TEST = 'geoip_php'; diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php b/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php index 9a4a228f47adb551c3d89ad0ec2d9584fbb19481..eacb8fdc6d84bb52f4e40e2b3eaa50f5c12df15b 100644 --- a/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php +++ b/tests/PHPUnit/Fixtures/ManyVisitsWithMockLocationProvider.php @@ -14,7 +14,7 @@ require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/MockLocationProvider.php'; /** * Adds one site and tracks 60 visits (15 visitors, one action per visit). */ -class Test_Piwik_Fixture_ManyVisitsWithMockLocationProvider extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_ManyVisitsWithMockLocationProvider extends Fixture { public $idSite = 1; public $dateTime = '2010-01-03 01:22:33'; diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php b/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php index f933df190dbe5281e97511f4b6d2c220a12e3028..97557b2dcaf778a45b950cdcbd03d3caa85f2b14 100644 --- a/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php +++ b/tests/PHPUnit/Fixtures/ManyVisitsWithSubDirReferrersAndCustomVars.php @@ -12,7 +12,7 @@ use Piwik\Date; * Adds one site and tracks 13 visits all with custom variables and referrer URLs * w/ sub-dirs (ie, /path/to/page/has/many/dirs.htm). */ -class Test_Piwik_Fixture_ManyVisitsWithSubDirReferrersAndCustomVars extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_ManyVisitsWithSubDirReferrersAndCustomVars extends Fixture { public $dateTime = '2010-03-05 11:22:33'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/OmniFixture.php b/tests/PHPUnit/Fixtures/OmniFixture.php index e3c33b3db36a5792a7791c688f6e612dada6c197..0de85898310f28532ae56b4e50aff8d566b52e1c 100644 --- a/tests/PHPUnit/Fixtures/OmniFixture.php +++ b/tests/PHPUnit/Fixtures/OmniFixture.php @@ -13,7 +13,7 @@ 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 +class Test_Piwik_Fixture_OmniFixture extends Fixture { public $month = '2012-01'; public $idSite = 'all'; @@ -35,7 +35,7 @@ class Test_Piwik_Fixture_OmniFixture extends Test_Piwik_BaseFixture $classes = get_declared_classes(); foreach ($classes as $className) { - if (is_subclass_of($className, 'Test_Piwik_BaseFixture') + if (is_subclass_of($className, 'Fixture') && $className != __CLASS__ ) { $fixture = new $className(); diff --git a/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php b/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php index f4268ee911e14d02153d80f17b15935ff5115f55..782813f7921daa1b2382bcb52d0df7994236f923 100644 --- a/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php +++ b/tests/PHPUnit/Fixtures/OneVisitSeveralPageViews.php @@ -10,7 +10,7 @@ use Piwik\Date; /** * Adds one site and tracks one visit with several pageviews. */ -class Test_Piwik_Fixture_OneVisitSeveralPageViews extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_OneVisitSeveralPageViews extends Fixture { public $dateTime = '2010-03-06 11:22:33'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/OneVisitWithAbnormalPageviewUrls.php b/tests/PHPUnit/Fixtures/OneVisitWithAbnormalPageviewUrls.php index ab3fe5278a6dfc594b193843b2f2c439da9d0e81..6e7934c650a1c7de2263bf90a3b453d3148adb94 100644 --- a/tests/PHPUnit/Fixtures/OneVisitWithAbnormalPageviewUrls.php +++ b/tests/PHPUnit/Fixtures/OneVisitWithAbnormalPageviewUrls.php @@ -11,7 +11,7 @@ use Piwik\Date; * Adds one site and tracks one visit w/ pageview URLs that are not normalized. * These URLs use different protocols and a mix of lowercase & uppercase letters. */ -class Test_Piwik_Fixture_OneVisitWithAbnormalPageviewUrls extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_OneVisitWithAbnormalPageviewUrls extends Fixture { public $dateTime = '2010-03-06 11:22:33'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/OneVisitorTwoVisits.php b/tests/PHPUnit/Fixtures/OneVisitorTwoVisits.php index 73ed360287c699d4cc3a9c7319fb821cff20f13b..b8d5756a7e545f53765e18343504ecd338627abb 100644 --- a/tests/PHPUnit/Fixtures/OneVisitorTwoVisits.php +++ b/tests/PHPUnit/Fixtures/OneVisitorTwoVisits.php @@ -12,7 +12,7 @@ use Piwik\Plugins\SitesManager\API as APISitesManager; /** * This fixture adds one website and tracks two visits by one visitor. */ -class Test_Piwik_Fixture_OneVisitorTwoVisits extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_OneVisitorTwoVisits extends Fixture { public $idSite = 1; public $idSiteEmptyBis; diff --git a/tests/PHPUnit/Fixtures/SomeVisitsAllConversions.php b/tests/PHPUnit/Fixtures/SomeVisitsAllConversions.php index 6fef9443d582bd7e5a483ddb184e4da501c23723..508f0aee1c3e9086323c2c8bd347f6c2e27e579f 100644 --- a/tests/PHPUnit/Fixtures/SomeVisitsAllConversions.php +++ b/tests/PHPUnit/Fixtures/SomeVisitsAllConversions.php @@ -11,7 +11,7 @@ use Piwik\Plugins\Goals\API; /** * Adds one site and tracks a couple conversions. */ -class Piwik_Test_Fixture_SomeVisitsAllConversions extends Test_Piwik_BaseFixture +class Piwik_Test_Fixture_SomeVisitsAllConversions extends Fixture { public $dateTime = '2009-01-04 00:11:42'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php b/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php index d25506ba22bdcbdfe26f66ec572790b715fa7f89..def3ceb65d10359c46054dff60e914922cd7c9d3 100644 --- a/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php +++ b/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php @@ -12,7 +12,7 @@ use Piwik\Plugins\Goals\API; * Add one site and track many visits with custom variables & campaign IDs and * use visit ID instead of heuristics. */ -class Test_Piwik_Fixture_SomeVisitsCustomVariablesCampaignsNotHeuristics extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_SomeVisitsCustomVariablesCampaignsNotHeuristics extends Fixture { public $dateTime = '2009-01-04 00:11:42'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php b/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php index 68f09c06e002970a1a1a9c20c10ca71c07a5d46d..29620dd0416bf9c7f750b04d6218ea2992d18591 100644 --- a/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php +++ b/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php @@ -11,7 +11,7 @@ use Piwik\Date; * Adds one site and tracks a couple visits with many pageviews. The * pageviews are designed to have many transitions between pages. */ -class Test_Piwik_Fixture_SomeVisitsManyPageviewsWithTransitions extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_SomeVisitsManyPageviewsWithTransitions extends Fixture { public $dateTime = '2010-03-06 11:22:33'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/SomeVisitsWithLongUrls.php b/tests/PHPUnit/Fixtures/SomeVisitsWithLongUrls.php index 0284ff05ea02c63dfc9c73c2b03e13f88faddc82..80f950b586f90a0ee05c87b51a3995ba73160a54 100644 --- a/tests/PHPUnit/Fixtures/SomeVisitsWithLongUrls.php +++ b/tests/PHPUnit/Fixtures/SomeVisitsWithLongUrls.php @@ -11,7 +11,7 @@ use Piwik\Date; * Adds one site and tracks 7 visits w/ some long-ish urls (as page urls and * referrer urls). */ -class Test_Piwik_Fixture_SomeVisitsWithLongUrls extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_SomeVisitsWithLongUrls extends Fixture { public $dateTime = '2010-03-06 01:22:33'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/SomeVisitsWithNonUnicodePageTitles.php b/tests/PHPUnit/Fixtures/SomeVisitsWithNonUnicodePageTitles.php index 96758636a90722da2fe7c80080daeef67e330d92..9548a2c4526ebb17b7e7731902824b9785c9341c 100644 --- a/tests/PHPUnit/Fixtures/SomeVisitsWithNonUnicodePageTitles.php +++ b/tests/PHPUnit/Fixtures/SomeVisitsWithNonUnicodePageTitles.php @@ -11,7 +11,7 @@ use Piwik\Plugins\SitesManager\API; /** * Adds one website and some visits with non unicode page titles. */ -class Test_Piwik_Fixture_SomeVisitsWithNonUnicodePageTitles extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_SomeVisitsWithNonUnicodePageTitles extends Fixture { public $idSite1 = 1; public $dateTime = '2010-01-03 11:22:33'; diff --git a/tests/PHPUnit/Fixtures/ThreeGoalsOnePageview.php b/tests/PHPUnit/Fixtures/ThreeGoalsOnePageview.php index fbb3579c393153268fdf97b33b0e48eabf964f1c..31962ff292d22a46efc7ce89b90f69f4ce646593 100644 --- a/tests/PHPUnit/Fixtures/ThreeGoalsOnePageview.php +++ b/tests/PHPUnit/Fixtures/ThreeGoalsOnePageview.php @@ -12,7 +12,7 @@ use Piwik\Plugins\Goals\API; * Fixture that adds one site with three goals and tracks one pageview & one manual * goal conversion. */ -class Test_Piwik_Fixture_ThreeGoalsOnePageview extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_ThreeGoalsOnePageview extends Fixture { public $dateTime = '2009-01-04 00:11:42'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/ThreeSitesWithManyVisitsWithSiteSearch.php b/tests/PHPUnit/Fixtures/ThreeSitesWithManyVisitsWithSiteSearch.php index 7fe98161735ca105b769dc9359eb5486dd828496..7805b64d750955e7c991cd6a2d9c5fe51ea2a3ba 100644 --- a/tests/PHPUnit/Fixtures/ThreeSitesWithManyVisitsWithSiteSearch.php +++ b/tests/PHPUnit/Fixtures/ThreeSitesWithManyVisitsWithSiteSearch.php @@ -12,7 +12,7 @@ use Piwik\Plugins\SitesManager\API; * Adds three websites with different site search configurations and adds * several visits to each of them. */ -class Test_Piwik_Fixture_ThreeSitesWithManyVisitsWithSiteSearch extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_ThreeSitesWithManyVisitsWithSiteSearch extends Fixture { public $idSite1 = 1; public $idSite2 = 2; diff --git a/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php b/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php index d83a2018095b898cb8c57b62e032854e85722678..fc10c679bd186bdcfeacb033656c215e5b544f2a 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php +++ b/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php @@ -11,7 +11,7 @@ use Piwik\Plugins\Goals\API; /** * Adds two sites and tracks some visits with ecommerce orders. */ -class Test_Piwik_Fixture_TwoSitesEcommerceOrderWithItems extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_TwoSitesEcommerceOrderWithItems extends Fixture { public $dateTime = '2011-04-05 00:11:42'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php b/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php index 318b18594c2b41c1e36cd62e56767cbd99331a62..f94f220354234279c0f32b34f29b2dfb26e70d88 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php +++ b/tests/PHPUnit/Fixtures/TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers.php @@ -12,7 +12,7 @@ use Piwik\Plugins\Goals\API; * Adds one website and tracks visits on different days over a month * using referrer URLs with search engines. */ -class Test_Piwik_Fixture_TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_TwoSitesManyVisitsOverSeveralDaysWithSearchEngineReferrers extends Fixture { public $dateTime = '2010-02-01 11:22:33'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php b/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php index f69ce939e636fb093c0d816c850d954f0af357a9..8f6ae42a57b063ce7a3f747adb0715e3db1b40a7 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php +++ b/tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php @@ -12,7 +12,7 @@ use Piwik\Plugins\SitesManager\API as APISitesManager; /** * Adds two websites and tracks visits from two visitors on different days. */ -class Test_Piwik_Fixture_TwoSitesTwoVisitorsDifferentDays extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_TwoSitesTwoVisitorsDifferentDays extends Fixture { public $idSite1 = 1; public $idSite2 = 2; diff --git a/tests/PHPUnit/Fixtures/TwoSitesVisitsInPast.php b/tests/PHPUnit/Fixtures/TwoSitesVisitsInPast.php index 5b1ddfc0a0663e8d58eabb9ba4c8fb5c7b901bf0..b327e9be0e525e04932d04e235a490b079536dfc 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesVisitsInPast.php +++ b/tests/PHPUnit/Fixtures/TwoSitesVisitsInPast.php @@ -10,7 +10,7 @@ use Piwik\Date; /** * Adds two sites and tracks several visits all in the past. */ -class Test_Piwik_Fixture_TwoSitesVisitsInPast extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_TwoSitesVisitsInPast extends Fixture { public $dateTimeFirstDateWebsite1 = '2010-03-06 01:22:33'; public $dateTimeDateInPastWebsite1 = '2010-01-06 01:22:33'; diff --git a/tests/PHPUnit/Fixtures/TwoSitesWithAnnotations.php b/tests/PHPUnit/Fixtures/TwoSitesWithAnnotations.php index 26cd3a2092eaa60b230546df1680fedda6c26e3f..58d9967e963f3e4a2f809e8df34ea4c4ccdc5518 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesWithAnnotations.php +++ b/tests/PHPUnit/Fixtures/TwoSitesWithAnnotations.php @@ -12,7 +12,7 @@ use Piwik\Plugins\Annotations\API; /** * A fixture that adds two websites and annotations for each website. */ -class Test_Piwik_Fixture_TwoSitesWithAnnotations extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_TwoSitesWithAnnotations extends Fixture { public $dateTime = '2011-01-01 00:11:42'; public $idSite1 = 1; diff --git a/tests/PHPUnit/Fixtures/TwoVisitsNoKeywordWithBot.php b/tests/PHPUnit/Fixtures/TwoVisitsNoKeywordWithBot.php index 51a9ef8651252c0f2f1b463919cf52a3085cbf47..076e9d3c503c4d35ff8bfeefdfd4c42647fffdf2 100644 --- a/tests/PHPUnit/Fixtures/TwoVisitsNoKeywordWithBot.php +++ b/tests/PHPUnit/Fixtures/TwoVisitsNoKeywordWithBot.php @@ -12,7 +12,7 @@ use Piwik\Plugins\Goals\API; * Adds one site and tracks two visits. One visit is a bot and one has no keyword * but is from a search engine. */ -class Test_Piwik_Fixture_TwoVisitsNoKeywordWithBot extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_TwoVisitsNoKeywordWithBot extends Fixture { public $dateTime = '2010-03-06 11:22:33'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/TwoVisitsWithCustomEvents.php b/tests/PHPUnit/Fixtures/TwoVisitsWithCustomEvents.php index 88ba17670c17e98f73f2f71c49bdae4eb535d827..d9c1c8ab62dd96ca40bc2943d0404ae4af2dc04b 100644 --- a/tests/PHPUnit/Fixtures/TwoVisitsWithCustomEvents.php +++ b/tests/PHPUnit/Fixtures/TwoVisitsWithCustomEvents.php @@ -11,7 +11,7 @@ use Piwik\Plugins\Goals\API as APIGoals; /** * Tracks custom events */ -class Test_Piwik_Fixture_TwoVisitsWithCustomEvents extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_TwoVisitsWithCustomEvents extends Fixture { public $dateTime = '2010-01-03 11:22:33'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/TwoVisitsWithCustomVariables.php b/tests/PHPUnit/Fixtures/TwoVisitsWithCustomVariables.php index a707b22ef2e76b226d30fe885220380910489815..676e97b89bd564af27e74b01675d8d50b043465d 100644 --- a/tests/PHPUnit/Fixtures/TwoVisitsWithCustomVariables.php +++ b/tests/PHPUnit/Fixtures/TwoVisitsWithCustomVariables.php @@ -11,7 +11,7 @@ use Piwik\Plugins\Goals\API; /** * Adds one site with two goals and tracks two visits with custom variables. */ -class Test_Piwik_Fixture_TwoVisitsWithCustomVariables extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_TwoVisitsWithCustomVariables extends Fixture { public $dateTime = '2010-01-03 11:22:33'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/VisitOverSeveralDaysImportedLogs.php b/tests/PHPUnit/Fixtures/VisitOverSeveralDaysImportedLogs.php index 6a4ad7393a38845f002e4164db7440192f65d26c..71de9886944ba6f97f191e372f87caa3bc9832e0 100644 --- a/tests/PHPUnit/Fixtures/VisitOverSeveralDaysImportedLogs.php +++ b/tests/PHPUnit/Fixtures/VisitOverSeveralDaysImportedLogs.php @@ -11,7 +11,7 @@ * useful to test there are three visits are created for this visitor, as expected * */ -class Test_Piwik_Fixture_VisitOverSeveralDaysImportedLogs extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_VisitOverSeveralDaysImportedLogs extends Fixture { public $dateTime = '2013-04-07 19:00:00'; public $idSite = 1; diff --git a/tests/PHPUnit/Fixtures/VisitsInDifferentTimezones.php b/tests/PHPUnit/Fixtures/VisitsInDifferentTimezones.php index fe419b233ff854a7bd3d46fa40f1b159ac0be764..8df71672fb43bc9816d6f40ca93d70258ed7315e 100644 --- a/tests/PHPUnit/Fixtures/VisitsInDifferentTimezones.php +++ b/tests/PHPUnit/Fixtures/VisitsInDifferentTimezones.php @@ -10,7 +10,7 @@ use Piwik\Date; /** * Adds one site with a non UTC timezone and tracks a couple visits near the end of the day. */ -class Test_Piwik_Fixture_VisitsInDifferentTimezones extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_VisitsInDifferentTimezones extends Fixture { public $idSite = 1; public $dateTime = '2010-03-06'; diff --git a/tests/PHPUnit/Fixtures/VisitsOverSeveralDays.php b/tests/PHPUnit/Fixtures/VisitsOverSeveralDays.php index 90f01e35472cab6d66380618882708f3cf67452a..08d7e3dbcdaa29982fcc722dff7c67cdda211a87 100644 --- a/tests/PHPUnit/Fixtures/VisitsOverSeveralDays.php +++ b/tests/PHPUnit/Fixtures/VisitsOverSeveralDays.php @@ -11,7 +11,7 @@ use Piwik\Date; * Adds one website and tracks several visits from one visitor on * different days that span about a month apart. */ -class Test_Piwik_Fixture_VisitsOverSeveralDays extends Test_Piwik_BaseFixture +class Test_Piwik_Fixture_VisitsOverSeveralDays extends Fixture { public $dateTimes = array( '2010-12-14 01:00:00', diff --git a/tests/PHPUnit/Integration/ArchiveCronTest.php b/tests/PHPUnit/Integration/ArchiveCronTest.php index 91e2353c7ec8f2cd13c096819f9b05ba20e54f77..719ed350ea91007e4f14bd4c373c7d7f9e059196 100644 --- a/tests/PHPUnit/Integration/ArchiveCronTest.php +++ b/tests/PHPUnit/Integration/ArchiveCronTest.php @@ -124,7 +124,7 @@ class Test_Piwik_Integration_ArchiveCronTest extends IntegrationTestCase private function runArchivePhpCron($options) { $archivePhpScript = PIWIK_INCLUDE_PATH . '/tests/PHPUnit/proxy/archive.php'; - $urlToProxy = Test_Piwik_BaseFixture::getRootUrl() . 'tests/PHPUnit/proxy/index.php'; + $urlToProxy = Fixture::getRootUrl() . 'tests/PHPUnit/proxy/index.php'; // create the command $cmd = "php \"$archivePhpScript\" --url=\"$urlToProxy\" "; diff --git a/tests/PHPUnit/Integration/AutoSuggestAPITest.php b/tests/PHPUnit/Integration/AutoSuggestAPITest.php index 87d58b901298ddbb48e3e61e590827c4eb4824ea..d86814e125ee6ba5b0c89c463f4deac6032e2dbb 100644 --- a/tests/PHPUnit/Integration/AutoSuggestAPITest.php +++ b/tests/PHPUnit/Integration/AutoSuggestAPITest.php @@ -32,11 +32,10 @@ class Test_Piwik_Integration_AutoSuggestAPITest extends IntegrationTestCase $this->runApiTests($api, $params); } - public function getApiForTesting() { // we will test all segments from all plugins - self::loadAllPlugins(); + Fixture::loadAllPlugins(); $idSite = self::$fixture->idSite; $apiForTesting = array(); @@ -47,7 +46,7 @@ class Test_Piwik_Integration_AutoSuggestAPITest extends IntegrationTestCase } // Skip the test on Mysqli as it fails due to rounding Float errors on latitude/longitude - if(getenv('MYSQL_ADAPTER') != 'MYSQLI') { + if (getenv('MYSQL_ADAPTER') != 'MYSQLI') { $apiForTesting[] = array('Live.getLastVisitsDetails', array('idSite' => $idSite, 'date' => '1998-07-12,today', diff --git a/tests/PHPUnit/Integration/BackwardsCompatibility1XTest.php b/tests/PHPUnit/Integration/BackwardsCompatibility1XTest.php index ab7a68ed17f8fa33d69c6cb67cd4549cc2f3a072..a0a8e37881fd35db9fd462f15e800db8bc47e79c 100644 --- a/tests/PHPUnit/Integration/BackwardsCompatibility1XTest.php +++ b/tests/PHPUnit/Integration/BackwardsCompatibility1XTest.php @@ -16,7 +16,16 @@ class Test_Piwik_Integration_BackwardsCompatibility1XTest extends IntegrationTes const FIXTURE_LOCATION = '/tests/resources/piwik-1.13-dump.sql'; public static $fixture = null; // initialized below class - public static $defaultApiNotToCall = null; // initialized below class + + public function setUp() + { + parent::setUp(); + + // NOTE: VisitFrequency.get cannot be tested since it now uses a segment and thus requires archiving + // to be enabled. + $this->defaultApiNotToCall[] = 'Referrers'; + $this->defaultApiNotToCall[] = 'VisitFrequency.get'; + } /** * @dataProvider getApiForTesting @@ -42,9 +51,4 @@ class Test_Piwik_Integration_BackwardsCompatibility1XTest extends IntegrationTes Test_Piwik_Integration_BackwardsCompatibility1XTest::$fixture = new Piwik_Test_Fixture_SqlDump(); Test_Piwik_Integration_BackwardsCompatibility1XTest::$fixture->dumpUrl = PIWIK_INCLUDE_PATH . Test_Piwik_Integration_BackwardsCompatibility1XTest::FIXTURE_LOCATION; -Test_Piwik_Integration_BackwardsCompatibility1XTest::$fixture->tablesPrefix = 'piwiktests_'; - -// NOTE: VisitFrequency.get cannot be tested since it now uses a segment and thus requires archiving -// to be enabled. -Test_Piwik_Integration_BackwardsCompatibility1XTest::$defaultApiNotToCall = - array_merge(IntegrationTestCase::$defaultApiNotToCall, array('Referrers', 'VisitFrequency.get')); \ No newline at end of file +Test_Piwik_Integration_BackwardsCompatibility1XTest::$fixture->tablesPrefix = 'piwiktests_'; \ No newline at end of file diff --git a/tests/PHPUnit/Integration/BlobReportLimitingTest.php b/tests/PHPUnit/Integration/BlobReportLimitingTest.php index a1ca74377b2559b8848c2bdaefd7e8f71c552943..3762ef4b403aa1bd467f9202b4f38853b23a4394 100755 --- a/tests/PHPUnit/Integration/BlobReportLimitingTest.php +++ b/tests/PHPUnit/Integration/BlobReportLimitingTest.php @@ -22,8 +22,7 @@ class Test_Piwik_Integration_BlobReportLimitingTest extends IntegrationTestCase public static function setUpBeforeClass() { self::setUpConfigOptions(); - parent::_setUpBeforeClass($dbName = false, $createEmptyDatabase = true, $createConfig = false); - parent::setUpFixture(self::$fixture); + parent::setUpBeforeClass(); } public function getApiForTesting() @@ -150,7 +149,8 @@ class Test_Piwik_Integration_BlobReportLimitingTest extends IntegrationTestCase protected static function setUpConfigOptions() { - self::createTestConfig(); + Config::getInstance()->setTestEnvironment(); + $generalConfig =& Config::getInstance()->General; $generalConfig['datatable_archiving_maximum_rows_referers'] = 3; $generalConfig['datatable_archiving_maximum_rows_subtable_referers'] = 2; @@ -164,4 +164,4 @@ class Test_Piwik_Integration_BlobReportLimitingTest extends IntegrationTestCase } Test_Piwik_Integration_BlobReportLimitingTest::$fixture = new Test_Piwik_Fixture_ManyVisitsWithMockLocationProvider(); - +Test_Piwik_Integration_BlobReportLimitingTest::$fixture->createConfig = false; \ No newline at end of file diff --git a/tests/PHPUnit/Integration/Core/CliMultiTest.php b/tests/PHPUnit/Integration/Core/CliMultiTest.php index 30569eab319573936f0a82dedbfa5e19d43ecbe9..5a1ef6338a215ac1c630449e8a5f5875786338a5 100644 --- a/tests/PHPUnit/Integration/Core/CliMultiTest.php +++ b/tests/PHPUnit/Integration/Core/CliMultiTest.php @@ -41,7 +41,7 @@ class Core_CliMultiTest extends IntegrationTestCase parent::setUp(); $this->cliMulti = new CliMulti(); - $this->authToken = Test_Piwik_BaseFixture::getTokenAuth(); + $this->authToken = Fixture::getTokenAuth(); $this->urls = array( 'getAnswerToLife' => $this->completeUrl('?module=API&method=ExampleAPI.getAnswerToLife&format=JSON'), @@ -130,7 +130,7 @@ class Core_CliMultiTest extends IntegrationTestCase public function test_request_shouldBeAbleToRenderARegularPageInPiwik() { - Test_Piwik_BaseFixture::createWebsite('2014-01-01 00:00:00'); + Fixture::createWebsite('2014-01-01 00:00:00'); $urls = array($this->completeUrl('/?module=Widgetize&idSite=1&period=day&date=today')); @@ -204,7 +204,7 @@ class Core_CliMultiTest extends IntegrationTestCase private function completeUrl($query) { - $host = Test_Piwik_BaseFixture::getRootUrl(); + $host = Fixture::getRootUrl(); if (false === strpos($query, '?')) { $query .= '?'; @@ -224,5 +224,4 @@ class Core_CliMultiTest extends IntegrationTestCase return $numFilesInTmp + $numFilesInSubfolders; } - -} +} \ No newline at end of file diff --git a/tests/PHPUnit/Integration/Core/TrackerTest.php b/tests/PHPUnit/Integration/Core/TrackerTest.php index 97e9cdd294b60cd015234311f6a206520deb802f..3fd6a34d286a0b8d021f66d77c6b1f8af1ed667c 100644 --- a/tests/PHPUnit/Integration/Core/TrackerTest.php +++ b/tests/PHPUnit/Integration/Core/TrackerTest.php @@ -15,8 +15,8 @@ class Core_TrackerTest extends DatabaseTestCase { parent::setUp(); \Piwik\Piwik::setUserHasSuperUserAccess(true); - Test_Piwik_BaseFixture::createWebsite('2014-02-04'); - + Fixture::createWebsite('2014-02-04'); + Fixture::createSuperUser(); } /** * Test the Bulk tracking API as documented in: http://developer.piwik.org/api-reference/tracking-api#bulk-tracking @@ -31,14 +31,14 @@ class Core_TrackerTest extends DatabaseTestCase public function test_trackingApiWithBulkRequests_viaCurl_withCorrectTokenAuth() { - $token_auth = Test_Piwik_BaseFixture::getTokenAuth(); + $token_auth = Fixture::getTokenAuth(); \Piwik\Filesystem::deleteAllCacheOnUpdate(); $this->issueBulkTrackingRequest($token_auth, $expectTrackingToSucceed = true); } protected function issueBulkTrackingRequest($token_auth, $expectTrackingToSucceed) { - $piwikHost = Test_Piwik_BaseFixture::getRootUrl() . 'tests/PHPUnit/proxy/piwik.php'; + $piwikHost = Fixture::getRootUrl() . 'tests/PHPUnit/proxy/piwik.php'; $command = 'curl -s -X POST -d \'{"requests":["?idsite=1&url=http://example.org&action_name=Test bulk log Pageview&rec=1","?idsite=1&url=http://example.net/test.htm&action_name=Another bulk page view&rec=1"],"token_auth":"' . $token_auth . '"}\' ' . $piwikHost; diff --git a/tests/PHPUnit/Integration/Core/WidgetsListTest.php b/tests/PHPUnit/Integration/Core/WidgetsListTest.php index 451c84274d9f97cc3fc1cece7d0cfc1f564d67e8..f779409d42b1fac6bdd51094f4da923eb93c8866 100644 --- a/tests/PHPUnit/Integration/Core/WidgetsListTest.php +++ b/tests/PHPUnit/Integration/Core/WidgetsListTest.php @@ -27,12 +27,10 @@ class Core_WidgetsListTest extends DatabaseTestCase FakeAccess::$superUser = true; Access::setSingletonInstance($pseudoMockAccess); - Test_Piwik_BaseFixture::createWebsite('2009-01-04 00:11:42'); + Fixture::createWebsite('2009-01-04 00:11:42'); $_GET['idSite'] = 1; - IntegrationTestCase::loadAllPlugins(); - WidgetsList::_reset(); $widgets = WidgetsList::get(); WidgetsList::_reset(); @@ -59,7 +57,6 @@ class Core_WidgetsListTest extends DatabaseTestCase foreach ($numberOfWidgets AS $category => $widgetCount) { $this->assertEquals($widgetCount, count($widgets[$category]), sprintf("Widget: %s", $category)); } - IntegrationTestCase::unloadAllPlugins(); } /** @@ -72,13 +69,11 @@ class Core_WidgetsListTest extends DatabaseTestCase FakeAccess::$superUser = true; Access::setSingletonInstance($pseudoMockAccess); - Test_Piwik_BaseFixture::createWebsite('2009-01-04 00:11:42'); + Fixture::createWebsite('2009-01-04 00:11:42'); API::getInstance()->addGoal(1, 'Goal 1 - Thank you', 'title', 'Thank you', 'contains', $caseSensitive = false, $revenue = 10, $allowMultipleConversions = 1); $_GET['idSite'] = 1; - IntegrationTestCase::loadAllPlugins(); - WidgetsList::_reset(); $widgets = WidgetsList::get(); WidgetsList::_reset(); @@ -107,13 +102,11 @@ class Core_WidgetsListTest extends DatabaseTestCase FakeAccess::$superUser = true; Access::setSingletonInstance($pseudoMockAccess); - Test_Piwik_BaseFixture::createWebsite('2009-01-04 00:11:42', true); + Fixture::createWebsite('2009-01-04 00:11:42', true); API::getInstance()->addGoal(1, 'Goal 1 - Thank you', 'title', 'Thank you', 'contains', $caseSensitive = false, $revenue = 10, $allowMultipleConversions = 1); $_GET['idSite'] = 1; - IntegrationTestCase::loadAllPlugins(); - WidgetsList::_reset(); $widgets = WidgetsList::get(); WidgetsList::_reset(); @@ -142,13 +135,11 @@ class Core_WidgetsListTest extends DatabaseTestCase FakeAccess::$superUser = true; Access::setSingletonInstance($pseudoMockAccess); - Test_Piwik_BaseFixture::createWebsite('2009-01-04 00:11:42', true); + Fixture::createWebsite('2009-01-04 00:11:42', true); API::getInstance()->addGoal(1, 'Goal 1 - Thank you', 'title', 'Thank you', 'contains', $caseSensitive = false, $revenue = 10, $allowMultipleConversions = 1); $_GET['idSite'] = 1; - IntegrationTestCase::loadAllPlugins(); - WidgetsList::_reset(); $widgets = WidgetsList::get(); @@ -187,7 +178,7 @@ class Core_WidgetsListTest extends DatabaseTestCase \Piwik\Translate::loadEnglishTranslation(); - Test_Piwik_BaseFixture::createWebsite('2009-01-04 00:11:42', true); + Fixture::createWebsite('2009-01-04 00:11:42', true); $_GET['idSite'] = 1; diff --git a/tests/PHPUnit/Integration/Plugins/UsersManagerTest.php b/tests/PHPUnit/Integration/Plugins/UsersManagerTest.php index 99e25217c826c2882e3bb6ebb1a830bc3c279496..a13e616eb69c8610465f64117edbcebab78a4016 100644 --- a/tests/PHPUnit/Integration/Plugins/UsersManagerTest.php +++ b/tests/PHPUnit/Integration/Plugins/UsersManagerTest.php @@ -3,6 +3,7 @@ use Piwik\Access; use Piwik\Plugins\SitesManager\API as APISitesManager; use Piwik\Plugins\UsersManager\API; use Piwik\Plugins\UsersManager\Model; +use Piwik\Translate; /** * Piwik - Open source web analytics diff --git a/tests/PHPUnit/Integration/PrivacyManagerTest.php b/tests/PHPUnit/Integration/PrivacyManagerTest.php index c0f22b78bb1caeb57185f6024dde566385b7aa51..58fd3b6f5a4873a7ffb0fade60e3a805a81c27c7 100644 --- a/tests/PHPUnit/Integration/PrivacyManagerTest.php +++ b/tests/PHPUnit/Integration/PrivacyManagerTest.php @@ -632,12 +632,12 @@ class PrivacyManagerTest extends IntegrationTestCase // - http://whatever.com/42/{$daysSinceLastVisit} $start = Date::factory(self::$dateTime); - self::$idSite = Test_Piwik_BaseFixture::createWebsite('2012-01-01', $ecommerce = 1); + self::$idSite = Fixture::createWebsite('2012-01-01', $ecommerce = 1); $idGoal = APIGoals::getInstance()->addGoal(self::$idSite, 'match all', 'url', 'http', 'contains'); - $t = Test_Piwik_BaseFixture::getTracker(self::$idSite, $start, $defaultInit = true); + $t = Fixture::getTracker(self::$idSite, $start, $defaultInit = true); $t->enableBulkTracking(); - $t->setTokenAuth(Test_Piwik_BaseFixture::getTokenAuth()); + $t->setTokenAuth(Fixture::getTokenAuth()); for ($daysAgo = self::$daysAgoStart; $daysAgo >= 0; $daysAgo -= 5) // one visit every 5 days { @@ -665,7 +665,7 @@ class PrivacyManagerTest extends IntegrationTestCase $t->doTrackEcommerceOrder($orderId = '937nsjusu ' . $dateTime, $grandTotal = 1111.11, $subTotal = 1000, $tax = 111, $shipping = 0.11, $discount = 666); } - Test_Piwik_BaseFixture::checkBulkTrackingResponse($t->doBulkTrack()); + Fixture::checkBulkTrackingResponse($t->doBulkTrack()); } protected static function _addReportData() diff --git a/tests/PHPUnit/Integration/TwoVisitsWithCustomVariables_SegmentMatchNONETest.php b/tests/PHPUnit/Integration/TwoVisitsWithCustomVariables_SegmentMatchNONETest.php index 96ecc2879179e932b0d87b0ffa6a6ecaf163b6ef..3b87220e27c7744456e2f21ecf9b9702272246ee 100755 --- a/tests/PHPUnit/Integration/TwoVisitsWithCustomVariables_SegmentMatchNONETest.php +++ b/tests/PHPUnit/Integration/TwoVisitsWithCustomVariables_SegmentMatchNONETest.php @@ -25,7 +25,8 @@ class Test_Piwik_Integration_TwoVisitsWithCustomVariables_SegmentMatchNONE exten public function getApiForTesting() { - IntegrationTestCase::loadAllPlugins(); + // we will test all segments from all plugins + Fixture::loadAllPlugins(); $apiToCall = array('VisitsSummary.get', 'CustomVariables.getCustomVariables'); diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php index b7a5829fff55cabe0edea190cc12eb4386f586d9..f3bd65923c51cbd328d594bf54dfbabf18a3f52c 100755 --- a/tests/PHPUnit/IntegrationTestCase.php +++ b/tests/PHPUnit/IntegrationTestCase.php @@ -35,224 +35,7 @@ require_once PIWIK_INCLUDE_PATH . '/libs/PiwikTracker/PiwikTracker.php'; */ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase { - /** - * Identifies the last language used in an API/Controller call. - * - * @var string - */ - protected $lastLanguage; - - /** - * Creates a config object for use w/ tests. - */ - public static function createTestConfig() - { - Config::getInstance()->setTestEnvironment(); - } - - /** - * Sets up access instance. - */ - public static function createAccessInstance() - { - Access::setSingletonInstance(null); - Access::getInstance(); - Piwik::postEvent('Request.initAuthenticationObject'); - } - - /** - * Connects to MySQL w/o specifying a database. - */ - public static function connectWithoutDatabase() - { - $dbConfig = Config::getInstance()->database; - $oldDbName = $dbConfig['dbname']; - $dbConfig['dbname'] = null; - - Db::createDatabaseObject($dbConfig); - - $dbConfig['dbname'] = $oldDbName; - } - - public static function setUpBeforeClass() - { - static::_setUpBeforeClass(); - - if (isset(static::$fixture)) { - static::setupFixture(static::$fixture); - } - } - - public static function loadAllPlugins() - { - $plugins = static::getPluginsToLoadDuringTests(); - $pluginsManager = \Piwik\Plugin\Manager::getInstance(); - - // Load all plugins - $pluginsManager->loadPlugins($plugins); - - // Install plugins - $messages = $pluginsManager->installLoadedPlugins(); - if(!empty($messages)) { -// echo implode(" ---- ", $messages); - } - - // Activate them - foreach($plugins as $name) { - if(!$pluginsManager->isPluginActivated($name)) { - $pluginsManager->activatePlugin($name); - } - } - } - - public static function unloadAllPlugins() - { - try { - $plugins = \Piwik\Plugin\Manager::getInstance()->getLoadedPlugins(); - foreach ($plugins AS $plugin) { - $plugin->uninstall(); - } - \Piwik\Plugin\Manager::getInstance()->unloadPlugins(); - } catch (Exception $e) { - } - } - - protected static function setupFixture($fixture) - { - try { - $fixture->setUp(); - } catch (Exception $e) { - static::fail("Failed to setup fixture: " . $e->getMessage() . "\n" . $e->getTraceAsString()); - } - } - - protected static function teardownFixture($fixture) - { - if (isset(static::$fixture)) { - static::tearDownFixture(static::$fixture); - } - - $fixture->tearDown(); - } - - /** - * setupBeforeClass' implementation. Can be called by derived classes in case - * they need to do some custom setup procedure. - */ - public static function _setUpBeforeClass($dbName = false, $createEmptyDatabase = true, $createConfig = true, $installPlugins = null) - { - try { - \Piwik\SettingsPiwik::$piwikUrlCache = ''; - - if ($createConfig) { - static::createTestConfig(); - } - - if ($dbName === false) // must be after test config is created - { - $dbName = Config::getInstance()->database['dbname']; - } - - static::connectWithoutDatabase(); - if ($createEmptyDatabase) { - DbHelper::dropDatabase(); - } - DbHelper::createDatabase($dbName); - DbHelper::disconnectDatabase(); - - // reconnect once we're sure the database exists - Config::getInstance()->database['dbname'] = $dbName; - Db::createDatabaseObject(); - - DbHelper::createTables(); - - \Piwik\Plugin\Manager::getInstance()->loadPlugins(array()); - } catch (Exception $e) { - static::fail("TEST INITIALIZATION FAILED: " . $e->getMessage() . "\n" . $e->getTraceAsString()); - } - - include "DataFiles/SearchEngines.php"; - include "DataFiles/Socials.php"; - include "DataFiles/Languages.php"; - include "DataFiles/Countries.php"; - include "DataFiles/Currencies.php"; - include "DataFiles/LanguageToCountry.php"; - include "DataFiles/Providers.php"; - - static::createAccessInstance(); - - // We need to be SU to create websites for tests - Piwik::setUserHasSuperUserAccess(); - - Cache::deleteTrackerCache(); - - static::loadAllPlugins(); - - - $_GET = $_REQUEST = array(); - $_SERVER['HTTP_REFERER'] = ''; - - // Make sure translations are loaded to check messages in English - Translate::reloadLanguage('en'); - API::getInstance()->setLanguageForUser('superUserLogin', 'en'); - - // List of Modules, or Module.Method that should not be called as part of the XML output compare - // Usually these modules either return random changing data, or are already tested in specific unit tests. - static::setApiNotToCall(static::$defaultApiNotToCall); - static::setApiToCall(array()); - - FakeAccess::$superUserLogin = 'superUserLogin'; - - \Piwik\SettingsPiwik::$cachedKnownSegmentsToArchive = null; - \Piwik\CacheFile::$invalidateOpCacheBeforeRead = true; - - \Piwik\Plugins\PrivacyManager\IPAnonymizer::deactivate(); - \Piwik\Plugins\PrivacyManager\DoNotTrackHeaderChecker::deactivate(); - } - - public static function tearDownAfterClass() - { - static::_tearDownAfterClass(); - } - - public static function _tearDownAfterClass($dropDatabase = true) - { - \Piwik\SettingsPiwik::$piwikUrlCache = null; - IntegrationTestCase::unloadAllPlugins(); - - if ($dropDatabase) { - DbHelper::dropDatabase(); - } - Manager::getInstance()->deleteAll(); - Option::clearCache(); - Site::clearCache(); - Cache::deleteTrackerCache(); - Config::getInstance()->clear(); - ArchiveTableCreator::clear(); - \Piwik\Plugins\ScheduledReports\API::$cache = array(); - \Piwik\Registry::unsetInstance(); - - $_GET = $_REQUEST = array(); - Translate::unloadEnglishTranslation(); - } - - protected static function getPluginsToLoadDuringTests() - { - return \Piwik\Plugin\Manager::$pluginsToLoadForTests; - } - - public function setUp() - { - // Make sure the browser running the test does not influence the Country detection code - $_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'en'; - - $this->changeLanguage('en'); - } - - protected static $apiToCall = array(); - protected static $apiNotToCall = array(); - - public static $defaultApiNotToCall = array( + public $defaultApiNotToCall = array( 'LanguagesManager', 'DBStats', 'Dashboard', @@ -276,55 +59,67 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase 'CustomAlerts' ); - const DEFAULT_USER_PASSWORD = 'nopass'; - - protected $missingExpectedFiles = array(); - protected $comparisonFailures = array(); + /** + * List of Modules, or Module.Method that should not be called as part of the XML output compare + * Usually these modules either return random changing data, or are already tested in specific unit tests. + */ + public $apiNotToCall = array(); + public $apiToCall = array(); /** - * Forces the test to only call and fetch XML for the specified plugins, - * or exact API methods. - * If not called, all default tests will be executed. - * - * @param array $apiToCall array( 'ExampleAPI', 'Plugin.getData' ) + * Identifies the last language used in an API/Controller call. * - * @throws Exception - * @return void + * @var string */ - protected static function setApiToCall($apiToCall) + protected $lastLanguage; + + protected $missingExpectedFiles = array(); + protected $comparisonFailures = array(); + + public static function setUpBeforeClass() { - if (func_num_args() != 1) { - throw new Exception('setApiToCall expects an array'); + if (!isset(static::$fixture)) { + $fixture = new Fixture(); + } else { + $fixture = static::$fixture; } - if (!is_array($apiToCall)) { - $apiToCall = array($apiToCall); + + try { + $fixture->setUpEnvironment(); + $fixture->setUp(); + } catch (Exception $e) { + static::fail("Failed to setup fixture: " . $e->getMessage() . "\n" . $e->getTraceAsString()); } - static::$apiToCall = $apiToCall; } - /** - * Sets a list of API methods to not call during the test - * - * @param string $apiNotToCall eg. 'ExampleAPI.getPiwikVersion' - * - * @return void - */ - protected static function setApiNotToCall($apiNotToCall) + public static function tearDownAfterClass() { - if (!is_array($apiNotToCall)) { - $apiNotToCall = array($apiNotToCall); + if (!isset(static::$fixture)) { + $fixture = new Fixture(); + } else { + $fixture = static::$fixture; } - static::$apiNotToCall = $apiNotToCall; + + $fixture->tearDown(); + $fixture->tearDownEnvironment(); + } + + public function setUp() + { + // Make sure the browser running the test does not influence the Country detection code + $_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'en'; + + $this->changeLanguage('en'); } protected function alertWhenImagesExcludedFromTests() { - if (!Test_Piwik_BaseFixture::canImagesBeIncludedInScheduledReports()) { + if (!Fixture::canImagesBeIncludedInScheduledReports()) { $this->markTestSkipped( 'Scheduled reports generated during integration tests will not contain the image graphs. ' . 'For tests to generate images, use a machine with the following specifications : ' . - 'OS = '.Test_Piwik_BaseFixture::IMAGES_GENERATED_ONLY_FOR_OS.', PHP = '.Test_Piwik_BaseFixture::IMAGES_GENERATED_FOR_PHP . - ' and GD = ' . Test_Piwik_BaseFixture::IMAGES_GENERATED_FOR_GD + 'OS = '.Fixture::IMAGES_GENERATED_ONLY_FOR_OS.', PHP = '.Fixture::IMAGES_GENERATED_FOR_PHP . + ' and GD = ' . Fixture::IMAGES_GENERATED_FOR_GD ); } } @@ -384,7 +179,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ) ); - if(Test_Piwik_BaseFixture::canImagesBeIncludedInScheduledReports()) { + if(Fixture::canImagesBeIncludedInScheduledReports()) { // PDF Scheduled Report // tests/PHPUnit/Integration/processed/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf array_push( @@ -445,7 +240,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ) ); - if (Test_Piwik_BaseFixture::canImagesBeIncludedInScheduledReports()) { + if (Fixture::canImagesBeIncludedInScheduledReports()) { // HTML Scheduled Report with images array_push( $apiCalls, @@ -491,7 +286,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase /** * Given a list of default parameters to set, returns the URLs of APIs to call - * If any API was specified in setApiToCall() we ensure only these are tested. + * If any API was specified in $this->apiNotToCall we ensure only these are tested. * If any API is set as excluded (see list below) then it will be ignored. * * @param array $parametersToSet Parameters to set in api call @@ -517,25 +312,22 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase $apiId = $moduleName . '.' . $methodName; // If Api to test were set, we only test these - if (!empty(static::$apiToCall) - && in_array($moduleName, static::$apiToCall) === false - && in_array($apiId, static::$apiToCall) === false + if (!empty($this->apiToCall) + && in_array($moduleName, $this->apiToCall) === false + && in_array($apiId, $this->apiToCall) === false ) { -// echo "Skipped $apiId... \n"; $skipped[] = $apiId; continue; - } // Excluded modules from test - elseif ( + } elseif ( ((strpos($methodName, 'get') !== 0 && $methodName != 'generateReport') - || in_array($moduleName, static::$apiNotToCall) === true - || in_array($apiId, static::$apiNotToCall) === true + || in_array($moduleName, $this->apiNotToCall) === true + || in_array($apiId, $this->apiNotToCall) === true || $methodName == 'getLogoUrl' || $methodName == 'getSVGLogoUrl' || $methodName == 'hasSVGLogo' || $methodName == 'getHeaderLogoUrl' ) - ) { -// echo "Skipped $apiId... \n"; + ) { // Excluded modules from test $skipped[] = $apiId; continue; } @@ -718,12 +510,12 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase protected function checkEnoughUrlsAreTested($requestUrls) { $countUrls = count($requestUrls); - $approximateCountApiToCall = count(static::$apiToCall); + $approximateCountApiToCall = count($this->apiToCall); if (empty($requestUrls) || $approximateCountApiToCall > $countUrls ) { throw new Exception("Only generated $countUrls API calls to test but was expecting more for this test.\n" . - "Want to test APIs: " . implode(", ", static::$apiToCall) . ")\n" . + "Want to test APIs: " . implode(", ", $this->apiToCall) . ")\n" . "But only generated these URLs: \n" . implode("\n", $requestUrls) . ")\n" ); } @@ -979,22 +771,20 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase protected function _setCallableApi($api) { if ($api == 'all') { - static::setApiToCall(array()); - static::setApiNotToCall(static::$defaultApiNotToCall); + $this->apiToCall = array(); + $this->apiNotToCall = $this->defaultApiNotToCall; } else { if (!is_array($api)) { $api = array($api); } - static::setApiToCall($api); + $this->apiToCall = $api; if (!in_array('UserCountry.getLocationFromIP', $api)) { - static::setApiNotToCall(array( - 'API.getPiwikVersion', - 'UserCountry.getLocationFromIP' - )); + $this->apiNotToCall = array('API.getPiwikVersion', + 'UserCountry.getLocationFromIP'); } else { - static::setApiNotToCall(array()); + $this->apiNotToCall = array(); } } } @@ -1215,5 +1005,4 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase $response = $this->removeXmlElement($response, "xmpMM:InstanceID"); return $response; } - -} +} \ No newline at end of file diff --git a/tests/PHPUnit/UI b/tests/PHPUnit/UI index 3becb2be2543e1266ded7b7e5a6d5db5bef0eac5..4a235856531eb4642a7c8abe8bdf0f6e60fccac9 160000 --- a/tests/PHPUnit/UI +++ b/tests/PHPUnit/UI @@ -1 +1 @@ -Subproject commit 3becb2be2543e1266ded7b7e5a6d5db5bef0eac5 +Subproject commit 4a235856531eb4642a7c8abe8bdf0f6e60fccac9 diff --git a/tests/PHPUnit/UITest.php b/tests/PHPUnit/UITest.php index 604b7ba2847a968c53316138cc302cadfdd91b5d..1c6cfdda431db4fdc0ea766f75abf7ecff643a25 100644 --- a/tests/PHPUnit/UITest.php +++ b/tests/PHPUnit/UITest.php @@ -50,7 +50,6 @@ abstract class UITest extends IntegrationTestCase parent::setUpBeforeClass(); DbHelper::createAnonymousUser(); - //UsersManagerApi::getInstance()->addUser('superUserLogin', 'testtest', 'hello2@example.org'); UsersManagerApi::getInstance()->setSuperUserAccess('superUserLogin', true); AssetManager::getInstance()->removeMergedAssets(); @@ -256,7 +255,7 @@ abstract class UITest extends IntegrationTestCase public static function getProxyUrl() { - return Test_Piwik_BaseFixture::getRootUrl() . 'tests/PHPUnit/proxy/index.php'; + return Fixture::getRootUrl() . 'tests/PHPUnit/proxy/index.php'; } private static function makeDirsAndLinks() diff --git a/tests/PHPUnit/bootstrap.php b/tests/PHPUnit/bootstrap.php index 963faf0843be38219ac0961d2a43397ac64e6685..e133221e7fb4261dd483903332b18c482d0d821f 100644 --- a/tests/PHPUnit/bootstrap.php +++ b/tests/PHPUnit/bootstrap.php @@ -48,7 +48,7 @@ require_once file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php') \Piwik\Profiler::setupProfilerXHProf( $mainRun = true ); // require test fixtures -require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/BaseFixture.php'; +require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/Fixture.php'; $fixturesToLoad = array( '/tests/PHPUnit/Fixtures/*.php', @@ -79,7 +79,7 @@ Try again. -> If you still get this message, you can work around it by specifying Host + Request_Uri at the top of this file tests/PHPUnit/bootstrap.php. <-"; exit(1); } - $baseUrl = Test_Piwik_BaseFixture::getRootUrl(); + $baseUrl = Fixture::getRootUrl(); \Piwik\SettingsPiwik::checkPiwikServerWorking($baseUrl); }