update for OC 3

This commit is contained in:
Akolzin Dmitry 2020-02-20 15:26:18 +03:00
parent b921bc8c37
commit 14e6584abf
12 changed files with 90 additions and 13 deletions

2
.gitignore vendored
View File

@ -6,4 +6,4 @@
/vendor /vendor
/www /www
/bin /bin
tests/.env .env

View File

@ -14,7 +14,7 @@ env:
- OC_USERNAME=admin - OC_USERNAME=admin
- OC_PASSWORD=admin - OC_PASSWORD=admin
- OC_EMAIL=test@test.com - OC_EMAIL=test@test.com
- SERVER_PORT=8000 - SERVER_PORT=80
- SERVER_URL=http://localhost - SERVER_URL=http://localhost
stages: stages:

View File

@ -21,7 +21,7 @@ before_script:
composer require --dev opencart/opencart $(OPENCART) composer require --dev opencart/opencart $(OPENCART)
composer setup composer setup
bin/robo --load-from tests/RoboFile.php project:deploy bin/robo --load-from tests/RoboFile.php project:deploy
(php -S localhost:8000 -t www &) 2> /dev/null > /dev/null (php -S localhost:80 -t www &) 2> /dev/null > /dev/null
sleep 2 sleep 2
coverage: coverage:

View File

@ -19,7 +19,7 @@
</testsuites> </testsuites>
<php> <php>
<env name="OC_ROOT" value="./www/" /> <env name="OC_ROOT" value="./www/" />
<env name="HTTP_SERVER" value="http://localhost:8000/" /> <env name="HTTP_SERVER" value="http://localhost:80/" />
<env name="TEST_CONFIG" value="test-config" /> <env name="TEST_CONFIG" value="test-config" />
</php> </php>
<filter> <filter>

View File

@ -469,7 +469,6 @@ class ControllerExtensionModuleRetailcrm extends Controller
$this->response->setOutput( $this->response->setOutput(
$this->load->view('extension/module/retailcrm', $_data) $this->load->view('extension/module/retailcrm', $_data)
); );
} }
/** /**

View File

@ -1,9 +1,6 @@
<?php <?php
require_once(__DIR__.'/../vendor/autoload.php'); require_once(__DIR__.'/../vendor/autoload.php');
if (file_exists(__DIR__ . '/.env')) {
Dotenv::load(__DIR__);
}
class RoboFile extends \Robo\Tasks class RoboFile extends \Robo\Tasks
{ {
@ -96,6 +93,13 @@ class RoboFile extends \Robo\Tasks
->chmod($this->root_dir . 'www', 0777, 0000, true) ->chmod($this->root_dir . 'www', 0777, 0000, true)
->run(); ->run();
if (getenv('TEST_SUITE') === '3.0') {
$this->taskFileSystemStack()->copy(
$this->root_dir . 'vendor/beyondit/opencart-test-suite/src/upload/system/library/session/test.php',
$this->root_dir . 'www/system/library/session/test.php'
)->run();
}
// Create new database, drop if exists already // Create new database, drop if exists already
try { try {
$conn = new PDO("mysql:host=".$this->opencart_config['db_hostname'], $this->opencart_config['db_username'], $this->opencart_config['db_password']); $conn = new PDO("mysql:host=".$this->opencart_config['db_hostname'], $this->opencart_config['db_username'], $this->opencart_config['db_password']);
@ -175,7 +179,11 @@ class RoboFile extends \Robo\Tasks
private function restoreSampleData($conn) private function restoreSampleData($conn)
{ {
if (getenv('TEST_SUITE') === '2.3') {
$sql = file_get_contents($this->root_dir . 'tests/opencart_sample_data.sql'); $sql = file_get_contents($this->root_dir . 'tests/opencart_sample_data.sql');
} else {
$sql = file_get_contents($this->root_dir . 'tests/opencart_sample_data_3.sql');
}
$conn->exec("USE " . $this->opencart_config['db_database']); $conn->exec("USE " . $this->opencart_config['db_database']);

View File

@ -8,10 +8,12 @@ class ControllerRetailcrmAdminTest extends TestCase
public function setUp() public function setUp()
{ {
parent::setUp();
$query = $this->db->query("SELECT permission from ".DB_PREFIX."user_group WHERE name = 'Administrator'"); $query = $this->db->query("SELECT permission from ".DB_PREFIX."user_group WHERE name = 'Administrator'");
$permissions = json_decode($query->row['permission'],true); $permissions = json_decode($query->row['permission'],true);
if (!in_array('extension/module/retailcrm',$permissions['access'])) { if (!in_array('extension/module/retailcrm', $permissions['access'])) {
$permissions['access'][] = 'extension/module/retailcrm'; $permissions['access'][] = 'extension/module/retailcrm';
$this->db->query("UPDATE ".DB_PREFIX."user_group SET permission='".$this->db->escape(json_encode($permissions))."' WHERE name = 'Administrator'"); $this->db->query("UPDATE ".DB_PREFIX."user_group SET permission='".$this->db->escape(json_encode($permissions))."' WHERE name = 'Administrator'");
} }
@ -56,4 +58,8 @@ class ControllerRetailcrmAdminTest extends TestCase
$this->assertRegExp('/Connection settings/', $response->getOutput()); $this->assertRegExp('/Connection settings/', $response->getOutput());
} }
public function tearDown()
{
}
} }

View File

@ -10,7 +10,12 @@ class ModelRetailcrmEventAdminTest extends TestCase
{ {
parent::setUp(); parent::setUp();
if (getenv('TEST_SUITE') === '3.0') {
$eventModel = $this->loadModel('setting/event');
} else {
$eventModel = $this->loadModel('extension/event'); $eventModel = $this->loadModel('extension/event');
}
$eventModel->addEvent(self::CODE, 'test', 'test'); $eventModel->addEvent(self::CODE, 'test', 'test');
} }

View File

@ -8,6 +8,7 @@ class ControllerRetailcrmApiCatalogTest extends TestCase
private $retailcrm; private $retailcrm;
const ORDER_ID = 1; const ORDER_ID = 1;
const USERNAME = 'Default';
public function setUp() public function setUp()
{ {
@ -25,8 +26,9 @@ class ControllerRetailcrmApiCatalogTest extends TestCase
) )
); );
if (isset($this->request->get['key'])) { if (isset($this->request->get['key']) && isset($this->request->get['username'])) {
unset($this->request->get['key']); unset($this->request->get['key']);
unset($this->request->get['username']);
} }
} }
@ -38,6 +40,7 @@ class ControllerRetailcrmApiCatalogTest extends TestCase
$this->assertEquals('Not found api key', $data->error); $this->assertEquals('Not found api key', $data->error);
$this->request->get['key'] = $this->apiKey; $this->request->get['key'] = $this->apiKey;
$this->request->get['username'] = static::USERNAME;
$response = $this->dispatchAction('api/retailcrm/getDeliveryTypes'); $response = $this->dispatchAction('api/retailcrm/getDeliveryTypes');
$data = json_decode($response->getOutput()); $data = json_decode($response->getOutput());
@ -52,6 +55,7 @@ class ControllerRetailcrmApiCatalogTest extends TestCase
$this->assertEquals('Not found api key', $data->error); $this->assertEquals('Not found api key', $data->error);
$this->request->get['key'] = $this->apiKey; $this->request->get['key'] = $this->apiKey;
$this->request->get['username'] = static::USERNAME;
$response = $this->dispatchAction('api/retailcrm/addOrderHistory'); $response = $this->dispatchAction('api/retailcrm/addOrderHistory');
$data = json_decode($response->getOutput()); $data = json_decode($response->getOutput());

View File

@ -1,5 +1,5 @@
TRUNCATE TABLE `oc_customer`; TRUNCATE TABLE `oc_customer`;
INSERT INTO `oc_customer` (`customer_id`, `customer_group_id`, `store_id`, `language_id`, `firstname`, `lastname`, `email`, `telephone`, `fax`, `password`, `salt`, `cart`, `wishlist`, `newsletter`, `address_id`, `custom_field`, `ip`, `status`, `safe`, `token`, `code`, `date_added`) VALUES ('1', '1', '0', '1', 'Test', 'Test', 'test@mail.ru', '+7 (000) 000-00-00', '', 'ed3798da75d6cdd695e99e87a60d587a10aa95ff', '51TalnrgH', '', '', '0', '1', '', '172.21.0.1', '1', '0', '', '', '2018-06-07 13:50:08'); INSERT INTO `oc_customer` (`customer_id`, `customer_group_id`, `store_id`, `language_id`, `firstname`, `lastname`, `email`, `telephone`, `fax`, `password`, `salt`, `cart`, `wishlist`, `newsletter`, `address_id`, `custom_field`, `ip`, `status`, `approved`, `safe`, `token`, `code`, `date_added`) VALUES ('1', '1', '0', '1', 'Test', 'Test', 'test@mail.ru', '+7 (000) 000-00-00', '', 'ed3798da75d6cdd695e99e87a60d587a10aa95ff', '51TalnrgH', '', '', '0', '1', '', '172.21.0.1', '1', '1', '0', '', '', '2018-06-07 13:50:08');
TRUNCATE TABLE `oc_customer_activity`; TRUNCATE TABLE `oc_customer_activity`;
TRUNCATE TABLE `oc_customer_group`; TRUNCATE TABLE `oc_customer_group`;

View File

@ -0,0 +1,55 @@
TRUNCATE TABLE `oc_customer`;
INSERT INTO `oc_customer` (`customer_id`, `customer_group_id`, `store_id`, `language_id`, `firstname`, `lastname`, `email`, `telephone`, `fax`, `password`, `salt`, `cart`, `wishlist`, `newsletter`, `address_id`, `custom_field`, `ip`, `status`, `safe`, `token`, `code`, `date_added`) VALUES ('1', '1', '0', '1', 'Test', 'Test', 'test@mail.ru', '+7 (000) 000-00-00', '', 'ed3798da75d6cdd695e99e87a60d587a10aa95ff', '51TalnrgH', '', '', '0', '1', '', '172.21.0.1', '1', '0', '', '', '2018-06-07 13:50:08');
TRUNCATE TABLE `oc_customer_activity`;
TRUNCATE TABLE `oc_customer_group`;
INSERT INTO `oc_customer_group` (`customer_group_id`, `approval`, `sort_order`) VALUES ('1', '0', '1');
INSERT INTO `oc_customer_group` (`customer_group_id`, `approval`, `sort_order`) VALUES ('2', '0', '1');
INSERT INTO `oc_customer_group` (`customer_group_id`, `approval`, `sort_order`) VALUES ('3', '0', '0');
TRUNCATE TABLE `oc_customer_group_description`;
INSERT INTO `oc_customer_group_description` (`customer_group_id`, `language_id`, `name`, `description`) VALUES ('1', '1', 'Default', 'test');
INSERT INTO `oc_customer_group_description` (`customer_group_id`, `language_id`, `name`, `description`) VALUES ('2', '1', 'Test2', 'test2');
INSERT INTO `oc_customer_group_description` (`customer_group_id`, `language_id`, `name`, `description`) VALUES ('3', '1', 'test3', 'test3');
TRUNCATE TABLE `oc_customer_history`;
TRUNCATE TABLE `oc_customer_ip`;
INSERT INTO `oc_customer_ip` (`customer_ip_id`, `customer_id`, `ip`, `date_added`) VALUES ('4', '1', '172.21.0.1', '2018-06-07 13:50:29');
TRUNCATE TABLE `oc_customer_login`;
TRUNCATE TABLE `oc_customer_online`;
TRUNCATE TABLE `oc_customer_reward`;
TRUNCATE TABLE `oc_customer_search`;
TRUNCATE TABLE `oc_customer_transaction`;
TRUNCATE TABLE `oc_customer_wishlist`;
TRUNCATE TABLE `oc_order`;
INSERT INTO `oc_order` (`order_id`, `invoice_no`, `invoice_prefix`, `store_id`, `store_name`, `store_url`, `customer_id`, `customer_group_id`, `firstname`, `lastname`, `email`, `telephone`, `fax`, `custom_field`, `payment_firstname`, `payment_lastname`, `payment_company`, `payment_address_1`, `payment_address_2`, `payment_city`, `payment_postcode`, `payment_country`, `payment_country_id`, `payment_zone`, `payment_zone_id`, `payment_address_format`, `payment_custom_field`, `payment_method`, `payment_code`, `shipping_firstname`, `shipping_lastname`, `shipping_company`, `shipping_address_1`, `shipping_address_2`, `shipping_city`, `shipping_postcode`, `shipping_country`, `shipping_country_id`, `shipping_zone`, `shipping_zone_id`, `shipping_address_format`, `shipping_custom_field`, `shipping_method`, `shipping_code`, `comment`, `total`, `order_status_id`, `affiliate_id`, `commission`, `marketing_id`, `tracking`, `language_id`, `currency_id`, `currency_code`, `currency_value`, `ip`, `forwarded_ip`, `user_agent`, `accept_language`, `date_added`, `date_modified`) VALUES ('1', '0', 'INV-2016-00', '0', 'Opencart', 'http://localhost:8000/', '1', '1', 'Test', 'Test', 'test@mail.ru', '+7 (000) 000-00-00', '', '', 'Test', 'Test', '', 'Address', 'Address 2', 'Test', '111111', 'Russian Federation', '176', 'Rostov-na-Donu', '99', '', '[]', 'Cash on delivery', 'cod', 'Test', 'Test', '', 'Address', 'Address 2', 'Test', '111111', 'Russian Federation', '176', 'Rostov-na-Donu', '99', '', '[]', 'Flat Rate', 'flat.flat', 'test comment', '106.0000', '1', '0', '0.0000', '0', '', '1', '1', 'USD', '1.00000000', '172.21.0.1', '', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36', 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', '2018-06-07 13:51:10', '2018-06-07 13:51:23');
INSERT INTO `oc_order` (`order_id`, `invoice_no`, `invoice_prefix`, `store_id`, `store_name`, `store_url`, `customer_id`, `customer_group_id`, `firstname`, `lastname`, `email`, `telephone`, `fax`, `custom_field`, `payment_firstname`, `payment_lastname`, `payment_company`, `payment_address_1`, `payment_address_2`, `payment_city`, `payment_postcode`, `payment_country`, `payment_country_id`, `payment_zone`, `payment_zone_id`, `payment_address_format`, `payment_custom_field`, `payment_method`, `payment_code`, `shipping_firstname`, `shipping_lastname`, `shipping_company`, `shipping_address_1`, `shipping_address_2`, `shipping_city`, `shipping_postcode`, `shipping_country`, `shipping_country_id`, `shipping_zone`, `shipping_zone_id`, `shipping_address_format`, `shipping_custom_field`, `shipping_method`, `shipping_code`, `comment`, `total`, `order_status_id`, `affiliate_id`, `commission`, `marketing_id`, `tracking`, `language_id`, `currency_id`, `currency_code`, `currency_value`, `ip`, `forwarded_ip`, `user_agent`, `accept_language`, `date_added`, `date_modified`) VALUES ('2', '0', 'INV-2016-00', '0', 'Opencart', 'http://localhost:8000/', '0', '1', 'Test', 'Test', 'test@mail.ru', '+7 (000) 000-00-00', '', '[]', 'Test', 'Test', '', 'Address', 'Address 2', 'Test', '111111', 'Russian Federation', '176', 'Rostov-na-Donu', '99', '', '[]', 'Cash on delivery', 'cod', 'Test', 'Test', '', 'Address', 'Address 2', 'Test', '111111', 'Russian Federation', '176', 'Rostov-na-Donu', '99', '', '[]', 'Flat Rate', 'flat.flat', 'test comment', '85.0000', '1', '0', '0.0000', '0', '', '1', '1', 'USD', '1.00000000', '172.21.0.1', '', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36', 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', '2018-06-07 13:53:50', '2018-06-07 13:54:00');
TRUNCATE TABLE `oc_order_history`;
INSERT INTO `oc_order_history` (`order_history_id`, `order_id`, `order_status_id`, `notify`, `comment`, `date_added`) VALUES ('19', '2', '1', '0', '', '2018-06-07 13:54:00');
INSERT INTO `oc_order_history` (`order_history_id`, `order_id`, `order_status_id`, `notify`, `comment`, `date_added`) VALUES ('18', '1', '1', '0', '', '2018-06-07 13:51:23');
TRUNCATE TABLE `oc_order_option`;
INSERT INTO `oc_order_option` (`order_option_id`, `order_id`, `order_product_id`, `product_option_id`, `product_option_value_id`, `name`, `value`, `type`) VALUES ('15', '2', '55', '226', '15', 'Select', 'Red', 'select');
TRUNCATE TABLE `oc_order_product`;
INSERT INTO `oc_order_product` (`order_product_id`, `order_id`, `product_id`, `name`, `model`, `quantity`, `price`, `total`, `tax`, `reward`) VALUES ('54', '1', '40', 'iPhone', 'product 11', '1', '101.0000', '101.0000', '18.0000', '20');
INSERT INTO `oc_order_product` (`order_product_id`, `order_id`, `product_id`, `name`, `model`, `quantity`, `price`, `total`, `tax`, `reward`) VALUES ('55', '2', '30', 'Canon EOS 5D', 'Product 3', '1', '80.0000', '80.0000', '18.0000', '200');
TRUNCATE TABLE `oc_order_recurring`;
TRUNCATE TABLE `oc_order_recurring_transaction`;
TRUNCATE TABLE `oc_order_total`;
INSERT INTO `oc_order_total` (`order_total_id`, `order_id`, `code`, `title`, `value`, `sort_order`) VALUES ('162', '1', 'shipping', 'Flat Rate', '5.0000', '3');
INSERT INTO `oc_order_total` (`order_total_id`, `order_id`, `code`, `title`, `value`, `sort_order`) VALUES ('161', '1', 'sub_total', 'Sub-Total', '101.0000', '1');
INSERT INTO `oc_order_total` (`order_total_id`, `order_id`, `code`, `title`, `value`, `sort_order`) VALUES ('164', '2', 'sub_total', 'Sub-Total', '80.0000', '1');
INSERT INTO `oc_order_total` (`order_total_id`, `order_id`, `code`, `title`, `value`, `sort_order`) VALUES ('165', '2', 'shipping', 'Flat Rate', '5.0000', '3');
INSERT INTO `oc_order_total` (`order_total_id`, `order_id`, `code`, `title`, `value`, `sort_order`) VALUES ('163', '1', 'total', 'Total', '106.0000', '9');
INSERT INTO `oc_order_total` (`order_total_id`, `order_id`, `code`, `title`, `value`, `sort_order`) VALUES ('166', '2', 'total', 'Total', '85.0000', '9');
INSERT INTO `oc_product_special` (`product_id`, `customer_group_id`, `priority`, `price`,`date_start`, `date_end`) values ('42', '2', '1', '110.000', CURDATE(), ADDDATE(CURDATE(),INTERVAL 10 DAY));
INSERT INTO `oc_product_special` (`product_id`, `customer_group_id`, `priority`, `price`,`date_start`, `date_end`) values ('40', '1', '1', '50.000', CURDATE(), ADDDATE(CURDATE(),INTERVAL 10 DAY));
TRUNCATE TABLE `oc_order_voucher`;