Skip to content
Extraits de code Groupes Projets
Valider cefbc7f8 rédigé par Benaka Moorthi's avatar Benaka Moorthi
Parcourir les fichiers

Refs #4125, make Referers_... blob test less useless and move out of OneVisitorTwoVisitsTest.

parent 9b897504
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 262 ajouts et 71 suppressions
...@@ -7,12 +7,6 @@ ...@@ -7,12 +7,6 @@
*/ */
use Piwik\API\Proxy; use Piwik\API\Proxy;
use Piwik\Archive; 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. * This use case covers many simple tracking features.
...@@ -26,48 +20,15 @@ use Piwik\ArchiveProcessor\Rules; ...@@ -26,48 +20,15 @@ use Piwik\ArchiveProcessor\Rules;
*/ */
class Test_Piwik_Integration_OneVisitorTwoVisits extends IntegrationTestCase 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 $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() public function setUp()
{ {
Rules::$archivingDisabledByTests = false;
Proxy::getInstance()->setHideIgnoredFunctions(false); Proxy::getInstance()->setHideIgnoredFunctions(false);
} }
public function tearDown() public function tearDown()
{ {
Rules::$archivingDisabledByTests = false;
Proxy::getInstance()->setHideIgnoredFunctions(true); Proxy::getInstance()->setHideIgnoredFunctions(true);
} }
...@@ -240,36 +201,6 @@ class Test_Piwik_Integration_OneVisitorTwoVisits extends IntegrationTestCase ...@@ -240,36 +201,6 @@ class Test_Piwik_Integration_OneVisitorTwoVisits extends IntegrationTestCase
// pass // 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 = new Test_Piwik_Fixture_OneVisitorTwoVisits();
......
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
<testcol3>testdata3</testcol3>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
</row>
</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
<testcol3>testdata3</testcol3>
<label>Keyword not defined</label>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
<label>Keyword not defined</label>
</row>
</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<result>5</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<result>5</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<result>5</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<result>5</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<result>5</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
<testcol3>testdata3</testcol3>
<label>Others</label>
<subtable>
<row>
<testcol3>testdata3</testcol3>
<label>Others</label>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
<label>Others</label>
</row>
</subtable>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
<label>Others</label>
<subtable>
<row>
<testcol3>testdata3</testcol3>
<label>Others</label>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
<label>Others</label>
</row>
</subtable>
</row>
</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
<testcol3>testdata3</testcol3>
<url>URL unknown!</url>
<logo>plugins/Referers/images/searchEngines/xx.png</logo>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
<url>URL unknown!</url>
<logo>plugins/Referers/images/searchEngines/xx.png</logo>
</row>
</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
<testcol3>testdata3</testcol3>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
</row>
</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<results>
<result idSite="1">
<result date="2010-05-06">
<row>
<testcol3>testdata3</testcol3>
<label>Keyword not defined</label>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
<label>Keyword not defined</label>
</row>
</result>
<result date="2010-05-07">
<row>
<testcol3>testdata3</testcol3>
<label>Keyword not defined</label>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
<label>Keyword not defined</label>
</row>
</result>
</result>
<result idSite="2">
<result date="2010-05-06">
<row>
<testcol3>testdata3</testcol3>
<label>Keyword not defined</label>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
<label>Keyword not defined</label>
</row>
</result>
<result date="2010-05-07">
<row>
<testcol3>testdata3</testcol3>
<label>Keyword not defined</label>
</row>
<row>
<testcol1>testdata1</testcol1>
<testcol2>testdata2</testcol2>
<label>Keyword not defined</label>
</row>
</result>
</result>
</results>
\ No newline at end of file
...@@ -7,8 +7,82 @@ ...@@ -7,8 +7,82 @@
*/ */
require_once 'Referers/Referers.php'; require_once 'Referers/Referers.php';
class ReferersTest extends PHPUnit_Framework_TestCase use Piwik\Date;
use Piwik\Period;
use Piwik\Segment;
use Piwik\DataTable;
use Piwik\DataTable\Row;
use Piwik\DataAccess\ArchiveWriter;
use Piwik\ArchiveProcessor\Rules;
class ReferersTest extends IntegrationTestCase
{ {
public static $oldReferrerRecordNames = array(
'Referers_keywordBySearchEngine',
'Referers_searchEngineByKeyword',
'Referers_keywordByCampaign',
'Referers_urlByWebsite',
'Referers_type',
);
public static $oldReferrerMetricNames = array(
'Referers_distinctSearchEngines',
'Referers_distinctKeywords',
'Referers_distinctCampaigns',
'Referers_distinctWebsites',
'Referers_distinctWebsitesUrls',
);
public static function setUpBeforeClass()
{
parent::setUpBeforeClass();
Test_Piwik_BaseFixture::createWebsite('2010-01-01', $ecommerce = 0, $name = 'Site #1');
Test_Piwik_BaseFixture::createWebsite('2010-01-01', $ecommerce = 0, $name = 'Site #2');
$testDataTable = new DataTable();
$testDataTable->addRow(new Row(array(
Row::COLUMNS => array(
'testcol1' => 'testdata1',
'testcol2' => 'testdata2'
)
)));
$testDataTable->addRow(new Row(array(
Row::COLUMNS => array(
'testcol3' => 'testdata3',
)
)));
$testDataTableBlob = $testDataTable->getSerialized();
$testDataTableBlob = @gzcompress($testDataTableBlob[0]);
foreach (array(1, 2) as $idSite) {
foreach (array('2010-05-06', '2010-05-07') as $date) {
$period = Period::factory('day', Date::factory($date));
$archiveWriter = new ArchiveWriter($idSite, new Segment('', array($idSite)), $period, 'Referers', $temp = false);
$archiveWriter->initNewArchive();
$archiveWriter->insertRecord('nb_visits', 1); // records are ignored if visits is absent or == 0
foreach (self::$oldReferrerRecordNames as $recordName) {
$archiveWriter->insertRecord($recordName, $testDataTableBlob);
}
foreach (self::$oldReferrerMetricNames as $recordName) {
$archiveWriter->insertRecord($recordName, 5);
}
$archiveWriter->finalizeArchive();
}
}
}
public function setUp()
{
Rules::$archivingDisabledByTests = false;
}
public function tearDown()
{
Rules::$archivingDisabledByTests = false;
}
/** /**
* Dataprovider serving all search engine data * Dataprovider serving all search engine data
*/ */
...@@ -140,4 +214,49 @@ class ReferersTest extends PHPUnit_Framework_TestCase ...@@ -140,4 +214,49 @@ class ReferersTest extends PHPUnit_Framework_TestCase
include PIWIK_PATH_TEST_TO_ROOT . '/core/DataFiles/SearchEngines.php'; include PIWIK_PATH_TEST_TO_ROOT . '/core/DataFiles/SearchEngines.php';
$this->assertEquals($expected, \Piwik\Plugins\Referers\getSearchEngineUrlFromUrlAndKeyword($url, $keyword)); $this->assertEquals($expected, \Piwik\Plugins\Referers\getSearchEngineUrlFromUrlAndKeyword($url, $keyword));
} }
}
public function getReferrerReportsToTest()
{
$idSite = 1;
$referrersApi = array(
'Referers.getRefererType',
'Referers.getKeywords',
'Referers.getSearchEngines',
'Referers.getCampaigns',
'Referers.getWebsites',
'Referers.getNumberOfDistinctSearchEngines',
'Referers.getNumberOfDistinctKeywords',
'Referers.getNumberOfDistinctCampaigns',
'Referers.getNumberOfDistinctWebsites',
'Referers.getNumberOfDistinctWebsitesUrls'
);
return array(
// test all Referrers reports alone
array($referrersApi, array('idSite' => $idSite,
'date' => '2010-05-06',
'period' => 'day',
'testSuffix' => '_referrerOldName')),
// test one Referrers report with multiple sites + dates
array('Referers.getKeywords', array('idSite' => 'all',
'date' => '2010-05-06,2010-05-07',
'period' => 'day',
'testSuffix' => '_referrerOldName_multiple')),
);
}
/**
* 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 getReferrerReportsToTest
*/
public function testReferrersReportsWhenOldBlobNameInDB($api, $params)
{
$this->runApiTests($api, $params);
}
}
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter