Skip to content
Extraits de code Groupes Projets
BackwardsCompatibility1XTest.php 4,27 ko
Newer Older
  • Learn to ignore specific revisions
  • <?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\Plugins\VisitFrequency\API as VisitFrequencyApi;
    
    use Piwik\Updater;
    use Piwik\Plugins\CoreUpdater\CoreUpdater;
    
     * Tests that Piwik 2.0 works w/ data from Piwik 1.12.
    
     */
    class Test_Piwik_Integration_BackwardsCompatibility1XTest extends IntegrationTestCase
    {
    
        const FIXTURE_LOCATION = '/tests/resources/piwik-1.13-dump.sql';
    
    
        public static $fixture = null; // initialized below class
    
        public static function setUpBeforeClass()
        {
            parent::setUpBeforeClass();
    
    
    
            // truncate log tables so old data won't be re-archived
            foreach (array('log_visit', 'log_link_visit_action', 'log_conversion', 'log_conversion_item') as $table) {
                Db::query("TRUNCATE TABLE " . Common::prefixTable($table));
            }
    
    
            // add two visits from same visitor on dec. 29
    
            $t = Fixture::getTracker(1, '2012-12-29 01:01:30', $defaultInit = true);
            $t->setUrl('http://site.com/index.htm');
    
            Fixture::checkResponse($t->doTrackPageView('incredible title!'));
    
            $t->setForceVisitDateTime('2012-12-29 03:01:30');
            $t->setUrl('http://site.com/other/index.htm');
    
            $t->DEBUG_APPEND_URL = '&_idvc=2'; // make sure visit is marked as returning
    
            Fixture::checkResponse($t->doTrackPageView('other incredible title!'));
    
            VisitFrequencyApi::getInstance()->get(1, 'year', '2012-12-29');
        }
    
        private static function updateDatabase()
        {
            $updater = new Updater();
            $componentsWithUpdateFile = CoreUpdater::getComponentUpdates($updater);
            if (empty($componentsWithUpdateFile)) {
                throw new \Exception("Failed to update pre-2.0 database (nothing to update).");
            }
    
            $result = CoreUpdater::updateComponents($updater, $componentsWithUpdateFile);
            if (!empty($result['coreError'])
                && !empty($result['warnings'])
                && !empty($result['errors'])
            ) {
                throw new \Exception("Failed to update pre-2.0 database (errors or warnings found): " . print_r($result, true));
            }
    
        public function setUp()
        {
            parent::setUp();
    
            $this->defaultApiNotToCall[] = 'Referrers';
    
    diosmosis's avatar
    diosmosis a validé
            // changes made to SQL dump to test VisitFrequency change the day of week
    
            $this->defaultApiNotToCall[] = 'VisitTime.getByDayOfWeek';
    
    
            // we test VisitFrequency explicitly
            $this->defaultApiNotToCall[] = 'VisitFrequency.get';
    
    
        /**
         * @dataProvider getApiForTesting
         * @group        Integration
         */
        public function testApi($api, $params)
        {
            $this->runApiTests($api, $params);
        }
    
        public function getApiForTesting()
        {
            $idSite = 1;
    
                array('all', array('idSite' => $idSite, 'date' => $dateTime,
                                   'compareAgainst' => 'OneVisitorTwoVisits',
    
                array('VisitFrequency.get', array('idSite' => $idSite, 'date' => '2012-03-03', 'setDateLastN' => true,
    
                                                  'disableArchiving' => true, 'testSuffix' => '_multipleDates')),
    
                array('VisitFrequency.get', array('idSite' => $idSite, 'date' => $dateTime,
                                                  'periods' => array('day', 'week', 'month', 'year'),
                                                  'disableArchiving' => false)),
    
    
                array('VisitFrequency.get', array('idSite' => $idSite, 'date' => '2012-03-06,2012-12-31',
                                                  'periods' => array('range'), 'disableArchiving' => true))
    
            );
        }
    }
    
    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_';