Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authordiosmosis <diosmosis@users.noreply.github.com>2019-11-18 10:08:16 +0300
committerGitHub <noreply@github.com>2019-11-18 10:08:16 +0300
commit60009312a44f1aa728a0f9f6f7e0a8a59068544d (patch)
tree2b037e8abdf08ed024946a6a841757162ea9443f /tests
parent12011166e3934f1d76f2d183a63cfe2ff9bde8e6 (diff)
Add product name, product category, product sku, product price segments (#15144)
* Add product category segment. * Fix productCategory action, add productName, productSku, productPrice segments. * Hide productCategory1...5 segments in UI/API. * fix tests * Do not select conversion items that are deleted in segments + fix bug in ecommerce item insert (do not fail whole insert if one duplicate primary key is found). * update expected files * Fix unit test.
Diffstat (limited to 'tests')
-rw-r--r--tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php9
-rw-r--r--tests/PHPUnit/Integration/Tracker/ModelTest.php43
-rw-r--r--tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml31
-rw-r--r--tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php2
4 files changed, 80 insertions, 5 deletions
diff --git a/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php b/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php
index 85753eacb1..9c24915796 100644
--- a/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php
+++ b/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php
@@ -114,6 +114,15 @@ class TwoSitesEcommerceOrderWithItems extends Fixture
$t->setCustomVariable(3, 'VisitorName', 'Great name!', 'visit');
$t->addEcommerceItem($sku = 'SKU VERY nice indeed', $name = 'PRODUCT name', $category = 'Electronics & Cameras', $price = 500, $quantity = 1);
$t->addEcommerceItem($sku = 'SKU VERY nice indeed', $name = 'PRODUCT name', $category = 'Electronics & Cameras', $price = 500, $quantity = 2);
+ $t->addEcommerceItem($sku = 'SKU VERY nice indeed REMOVED', $name = 'PRODUCT name REMOVED', $category = 'Electronics & Cameras REMOVED', $price = 300, $quantity = 1);
+ $t->addEcommerceItem($sku = 'SKU WILL BE DELETED', $name = 'BLABLA DELETED', $category = '', $price = 5000000, $quantity = 20);
+ self::checkResponse($t->doTrackEcommerceCartUpdate($grandTotal = 1300));
+
+ // REMOVE FROM CART
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(1.95)->getDatetime());
+ $t->setCustomVariable(3, 'VisitorName', 'Great name!', 'visit');
+ $t->addEcommerceItem($sku = 'SKU VERY nice indeed', $name = 'PRODUCT name', $category = 'Electronics & Cameras', $price = 500, $quantity = 1);
+ $t->addEcommerceItem($sku = 'SKU VERY nice indeed', $name = 'PRODUCT name', $category = 'Electronics & Cameras', $price = 500, $quantity = 2);
$t->addEcommerceItem($sku = 'SKU WILL BE DELETED', $name = 'BLABLA DELETED', $category = '', $price = 5000000, $quantity = 20);
self::checkResponse($t->doTrackEcommerceCartUpdate($grandTotal = 1000));
diff --git a/tests/PHPUnit/Integration/Tracker/ModelTest.php b/tests/PHPUnit/Integration/Tracker/ModelTest.php
index 7023cd502f..b14c066afc 100644
--- a/tests/PHPUnit/Integration/Tracker/ModelTest.php
+++ b/tests/PHPUnit/Integration/Tracker/ModelTest.php
@@ -124,7 +124,7 @@ class ModelTest extends IntegrationTestCase
public function test_createEcommerceItems_shouldNotFail_IfWritingSameItemTwice()
{
- $item = array(array(
+ $item = array(
'idsite' => '1',
'idvisitor' => 'test',
'server_time' => '2014-01-01 00:00:00',
@@ -140,9 +140,44 @@ class ModelTest extends IntegrationTestCase
'price' => '10.00',
'quantity' => '1',
'deleted' => '0'
- ));
- $this->model->createEcommerceItems($item);
- $this->model->createEcommerceItems($item);
+ );
+ $item2 = [
+ 'idsite' => '1',
+ 'idvisitor' => 'test',
+ 'server_time' => '2014-01-01 00:00:00',
+ 'idvisit' => '1',
+ 'idorder' => '12',
+ 'idaction_sku' => '2',
+ 'idaction_name' => '2',
+ 'idaction_category' => '3',
+ 'idaction_category2' => '4',
+ 'idaction_category3' => '5',
+ 'idaction_category4' => '6',
+ 'idaction_category5' => '7',
+ 'price' => '20.00',
+ 'quantity' => '1',
+ 'deleted' => '0'
+ ];
+ $this->model->createEcommerceItems([$item]);
+ $this->model->createEcommerceItems([$item, $item2]);
+
+ $itemsInDb = Db::fetchAll("SELECT idsite, HEX(idvisitor) as idvisitor, idorder, idaction_sku FROM " . Common::prefixTable('log_conversion_item'));
+ $expectedItemsInDb = [
+ [
+ 'idsite' => '1',
+ 'idvisitor' => '7465737400000000',
+ 'idorder' => '12',
+ 'idaction_sku' => '1',
+ ],
+ [
+ 'idsite' => '1',
+ 'idvisitor' => '7465737400000000',
+ 'idorder' => '12',
+ 'idaction_sku' => '2',
+ ],
+ ];
+
+ $this->assertEquals($expectedItemsInDb, $itemsInDb);
}
private function assertLogActionTableContainsTestAction($idaction)
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
index df3871e875..f9dd89dce7 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
@@ -723,4 +723,35 @@
<name>Order ID</name>
<segment>orderId</segment>
</row>
+ <row>
+ <type>metric</type>
+ <category>Ecommerce</category>
+ <name>Product Price</name>
+ <segment>productPrice</segment>
+ </row>
+ <row>
+ <type>dimension</type>
+ <category>Ecommerce</category>
+ <name>Product Category</name>
+ <segment>productCategory</segment>
+ <unionOfSegments>
+ <row>productCategory1</row>
+ <row>productCategory2</row>
+ <row>productCategory3</row>
+ <row>productCategory4</row>
+ <row>productCategory5</row>
+ </unionOfSegments>
+ </row>
+ <row>
+ <type>dimension</type>
+ <category>Ecommerce</category>
+ <name>Product Name</name>
+ <segment>productName</segment>
+ </row>
+ <row>
+ <type>dimension</type>
+ <category>Ecommerce</category>
+ <name>Product SKU</name>
+ <segment>productSku</segment>
+ </row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php b/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php
index bc476d30bf..0e2d305aff 100644
--- a/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php
+++ b/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php
@@ -261,7 +261,7 @@ class JoinGeneratorTest extends \PHPUnit_Framework_TestCase
$expected .= 'LEFT JOIN log_link_visit_action AS log_link_visit_action ON log_link_visit_action.idaction_url = log_action.idaction ';
$expected .= 'LEFT JOIN log_visit AS log_visit ON log_visit.idvisit = log_link_visit_action.idvisit ';
$expected .= 'LEFT JOIN log_conversion AS log_conversion ON log_conversion.idvisit = log_link_visit_action.idvisit ';
- $expected .= 'LEFT JOIN log_conversion_item AS log_conversion_item ON log_conversion_item.idvisit = log_link_visit_action.idvisit';
+ $expected .= 'LEFT JOIN log_conversion_item AS log_conversion_item ON log_conversion_item.idvisit = log_link_visit_action.idvisit AND `log_conversion_item`.deleted = 0';
$this->assertEquals($expected, $generator->getJoinString());
}