Skip to content

Commit

Permalink
Refs #4125, add test case that makes sure blobs w/ Referers_ prefix a…
Browse files Browse the repository at this point in the history
…re used if found.
  • Loading branch information
Benaka Moorthi committed Oct 4, 2013
1 parent ec7e908 commit 1b2cf69
Showing 1 changed file with 72 additions and 4 deletions.
76 changes: 72 additions & 4 deletions tests/PHPUnit/Integration/OneVisitorTwoVisitsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
*/
use Piwik\API\Proxy;
use Piwik\Archive;
use Piwik\Db;
use Piwik\Date;
use Piwik\Period;
use Piwik\Segment;
use Piwik\DataAccess\ArchiveWriter;
use Piwik\ArchiveProcessor\Rules;

/**
* This use case covers many simple tracking features.
Expand All @@ -20,15 +26,48 @@
*/
class Test_Piwik_Integration_OneVisitorTwoVisits extends IntegrationTestCase
{
const DUMMY_BLOB_VALUE = 'dummyblobvalue';

public static $oldReferrerRecordNames = array(
'Referers_keywordBySearchEngine',
'Referers_searchEngineByKeyword',
'Referers_keywordByCampaign',
'Referers_urlByWebsite',
'Referers_type',
'Referers_distinctSearchEngines',
'Referers_distinctKeywords',
'Referers_distinctCampaigns',
'Referers_distinctWebsites',
'Referers_distinctWebsitesUrls',
);

public static $fixture = null; // initialized below class

public static function setUpBeforeClass()
{
parent::setUpBeforeClass();

$idSite = self::$fixture->idSite;
$period = Period::factory('day', Date::factory('2010-05-06'));
$archiveWriter = new ArchiveWriter($idSite, new Segment('', array($idSite)), $period, 'Referers', $temp = false);

$archiveWriter->initNewArchive();
foreach (self::$oldReferrerRecordNames as $recordName) {
$archiveWriter->insertRecord('nb_visits', 1); // records are ignored if visits is absent or == 0
$archiveWriter->insertRecord($recordName, self::DUMMY_BLOB_VALUE);
}
$archiveWriter->finalizeArchive();
}

public function setUp()
{
Rules::$archivingDisabledByTests = false;
Proxy::getInstance()->setHideIgnoredFunctions(false);
}

public function tearDown()
{
Rules::$archivingDisabledByTests = false;
Proxy::getInstance()->setHideIgnoredFunctions(true);
}

Expand Down Expand Up @@ -157,12 +196,12 @@ public function getApiForTesting()
}

/**
* Test that Archive_Single::preFetchBlob won't fetch extra unnecessary blobs.
* Test that Archive::getBlob won't fetch extra unnecessary blobs.
*
* @group Integration
* @group OneVisitorTwoVisits
*/
public function testArchiveSinglePreFetchBlob()
public function testArchiveSingleGetBlob()
{
$archive = Archive::build(self::$fixture->idSite, 'day', self::$fixture->dateTime);
$cache = $archive->getBlob('Actions_actions', 'all');
Expand Down Expand Up @@ -201,8 +240,37 @@ public function testArchiveSitesWhenRestrictingToLogin()
// pass
}
}

/**
* Returns the old mispelled Referrer blob record names. Used as data provider for
* testReferrersReportsWhenOldBlobNameInDB.
*/
public function getOldReferrerRecordNames()
{
$result = array();
foreach (self::$oldReferrerRecordNames as $name) {
$result[] = array($name);
}
return $result;
}

/**
* Test that if old Referrer blob names (Referrer_...) are found in the DB, they will be
* used instead of launching archiving.
*
* @group Integration
* @group OneVisitorTwoVisits
* @dataProvider getOldReferrerRecordNames
*/
public function testReferrersReportsWhenOldBlobNameInDB($recordName)
{
Rules::$archivingDisabledByTests = true;

$archive = Archive::build(self::$fixture->idSite, 'day', '2010-05-06');
$blob = $archive->getBlob($recordName);
$this->assertNotEmpty($blob);
}
}

Test_Piwik_Integration_OneVisitorTwoVisits::$fixture = new Test_Piwik_Fixture_OneVisitorTwoVisits();
Test_Piwik_Integration_OneVisitorTwoVisits::$fixture->excludeMozilla = true;

Test_Piwik_Integration_OneVisitorTwoVisits::$fixture->excludeMozilla = true;

0 comments on commit 1b2cf69

Please sign in to comment.