diff --git a/.htaccess.sample b/.htaccess.sample index ed07a267d1f764c0cb750ac33920404a8ac3e316..47944ce310559c42972741d1459ed4e98a332b0f 100644 --- a/.htaccess.sample +++ b/.htaccess.sample @@ -31,7 +31,7 @@ ############################################ ## adjust memory limit - php_value memory_limit 128M + php_value memory_limit 256M php_value max_execution_time 18000 ############################################ diff --git a/CHANGELOG.md b/CHANGELOG.md index 21c3e686cc208bb9e2913c0415d8e638519c9421..cd6fbcb839b46af4fa31afcd74fbfd4e69aad2bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,44 @@ +0.1.0-alpha93 +============= + * Price template refactoring + * Refactored order item templates in the Sales, Bundle and Downloadable modules + * Eliminated the unused PHTML templates and removed the direct dependencies on the TaxHelper module in the Catalog module + * Service layer implementation: + * Created service layer for Order creation + * Created service layer for Invoice + * Created service layer for Credit Memo + * Created service layer for Shipment + * Introduce the Search library: + * Created adapter interfaces for the Search library + * Created response structure + * Created parsing of XML declaration and creation of library objects (Queries, Filters, Aggregations) + * Refactored Framework\Stdlib\Cookie to use CookieManager + * Added the ability to prevent the backend cookie from going to the storefront + * Fixed bugs: + * Fixed an issue where taxes were not added in some orders + * Fixed an issue were the Add New Address button did not work if the default address was already set + * Fixed a Google Chrome and Internet Explorer specific issue when a JavaScript error made it impossible to register during checkout downloadable product + * Fixed an issue when the credit card iframe (PayPal or 3D secure) was absent on the Order Review step during Onepage Checkout + * Fixed an issue with the Tax Rate, Customer Tax Class and Product Tax Class multiselects on the Tax Rule Information page + * Fixed JavaScript issues which prevented saving a newsletter template. + * Modified the Button component behavior + * Fixed an issue where it was impossible for a guest customer to register during Onepage checkout when the Require Customer To Be Logged In To Checkout option was set to Yes + * Fixed an issue where the Calendar icons were not displayed on the storefront + * Fixed an AJAX loader issue in the Admin panel + * Fixed an issue where it was impossible to upload images for variations of a configurable product on product form + * Fixed an issue where clicking on a row in the Search Terms Report Grid leads to 404 page + * Fixed an issue where configurable products fixture creates out of stock products + * Fixed an issue where Magento crashed when invalid cookie domain was set + * Fixed an issue where the Change checkbox label overlapped the text message for a recurring profile attribute on the attribute mass update page + * Fixed an issue where integrity test determined normal dependencies as redundant + * Fixed an issue where Catalog\Service\V1\Product\Attribute\ReadService::search returned an error + * Fixed an issue where Magento\Catalog\Service\V1\Category\Attribute\ReadService::options returned empty results + * GitHub requests: + * [#160] (https://github.com/magento/bugathon_march_2013/issues/160) -- Wrong default value for memory_limit in .htaccess.sample + * [#480] (https://github.com/magento/magento2/pull/480) -- Provide instructions on adding memcache support for Magento 2 + * [#612] (https://github.com/magento/magento2/issues/612) -- Category Layered Navigation : Selection of disabled entity + * [#626] (https://github.com/magento/magento2/issues/626) -- Unable to install under IIS / FastCGI + 0.1.0-alpha92 ============= * Implemented API services: @@ -10,7 +51,7 @@ * Framework Improvements: * Ability to drop/regenerate access for native mobile apps * Ability to support extensible service data objects - * No Code Duplication in Root Templates (MAGETWO-26278) + * No Code Duplication in Root Templates * Fixed bugs: * Persistance session application. Loggin out the customer * Placing the order with two terms and conditions @@ -20,7 +61,7 @@ * Validation for country_id/region_id and percentage_rate during Tax Rate creation * Declaration of getSortOrders in Magento\Framework\Service\V1\Data\SearchCriteria * Order cancellation for online payment methods - * Order online processing for Authorize.net Direct Post + * Order online processing for Authorize.net Direct Post * Backend grids while search * Adding of downlodable sample block on product page * Variations on duplicated configurable product diff --git a/app/code/Magento/AdminNotification/composer.json b/app/code/Magento/AdminNotification/composer.json index 43db83e7a6c80476dc5b926643c62ea6fdeea173..0ad3d3ae0fe3f1a2f13ae22233d159c46401fbb8 100644 --- a/app/code/Magento/AdminNotification/composer.json +++ b/app/code/Magento/AdminNotification/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Authorization/composer.json b/app/code/Magento/Authorization/composer.json index 7d69a31075309780d367ede6cb682797518cb62d..90884f26feda32edc76ce45b4dc0f7181a56f40c 100644 --- a/app/code/Magento/Authorization/composer.json +++ b/app/code/Magento/Authorization/composer.json @@ -3,12 +3,12 @@ "description": "Authorization module provides access to Magento ACL functionality.", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Authorizenet/Model/Directpost/Session.php b/app/code/Magento/Authorizenet/Model/Directpost/Session.php index f52da08f852415430c185c1ba6a0325ea5b7c004..06709106c962420c2e2800d43ae9245a7c9c646a 100644 --- a/app/code/Magento/Authorizenet/Model/Directpost/Session.php +++ b/app/code/Magento/Authorizenet/Model/Directpost/Session.php @@ -35,6 +35,8 @@ class Session extends \Magento\Framework\Session\SessionManager * @param \Magento\Framework\Session\SaveHandlerInterface $saveHandler * @param \Magento\Framework\Session\ValidatorInterface $validator * @param \Magento\Framework\Session\StorageInterface $storage + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param string|null $sessionName * @internal param array $data */ @@ -45,9 +47,20 @@ class Session extends \Magento\Framework\Session\SessionManager \Magento\Framework\Session\SaveHandlerInterface $saveHandler, \Magento\Framework\Session\ValidatorInterface $validator, \Magento\Framework\Session\StorageInterface $storage, + \Magento\Framework\Stdlib\CookieManager $cookieManager, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, $sessionName = null ) { - parent::__construct($request, $sidResolver, $sessionConfig, $saveHandler, $validator, $storage); + parent::__construct( + $request, + $sidResolver, + $sessionConfig, + $saveHandler, + $validator, + $storage, + $cookieManager, + $cookieMetadataFactory + ); $this->start($sessionName); } diff --git a/app/code/Magento/Authorizenet/composer.json b/app/code/Magento/Authorizenet/composer.json index 3afe9a4cc5a53205be0e48cd30d65dd91481114b..dfc68dcc5c4431a44d732147bf84f6f6a9eef75d 100644 --- a/app/code/Magento/Authorizenet/composer.json +++ b/app/code/Magento/Authorizenet/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-payment": "0.1.0-alpha92", - "magento/module-centinel": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-payment": "0.1.0-alpha93", + "magento/module-centinel": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Backend/AdminConfig.php b/app/code/Magento/Backend/AdminConfig.php new file mode 100644 index 0000000000000000000000000000000000000000..01c298023082f5c83832e4e6d3184a9bb95475e0 --- /dev/null +++ b/app/code/Magento/Backend/AdminConfig.php @@ -0,0 +1,111 @@ +<?php +/** + * Backend Session configuration object + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Backend; + +use Magento\Backend\App\Area\FrontNameResolver; +use Magento\Framework\Session\Config; + +/** + * Magento Backend session configuration + * + * @method Config setSaveHandler() + */ +class AdminConfig extends Config +{ + /** + * @var FrontNameResolver $frontNameResolver + */ + protected $frontNameResolver; + + /** + * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig + * @param \Magento\Framework\Stdlib\String $stringHelper + * @param \Magento\Framework\App\RequestInterface $request + * @param \Magento\Framework\App\State $appState + * @param \Magento\Framework\App\Filesystem $filesystem + * @param string $scopeType + * @param FrontNameResolver $frontNameResolver + * @param string $saveMethod + * @param null|string $savePath + * @param null|string $cacheLimiter + * @param string $lifetimePath + * @SuppressWarnings(PHPMD.ExcessiveParameterList) + */ + public function __construct( + \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, + \Magento\Framework\Stdlib\String $stringHelper, + \Magento\Framework\App\RequestInterface $request, + \Magento\Framework\App\State $appState, + \Magento\Framework\App\Filesystem $filesystem, + $scopeType, + FrontNameResolver $frontNameResolver, + $saveMethod = \Magento\Framework\Session\SaveHandlerInterface::DEFAULT_HANDLER, + $savePath = null, + $cacheLimiter = null, + $lifetimePath = self::XML_PATH_COOKIE_LIFETIME + ) { + parent::__construct( + $scopeConfig, + $stringHelper, + $request, + $appState, + $filesystem, + $scopeType, + $saveMethod, + $savePath, + $cacheLimiter, + $lifetimePath + ); + + $this->frontNameResolver = $frontNameResolver; + + $baseUrl = $this->_httpRequest->getBaseUrl(); + $adminPath = $this->extractAdminPath($baseUrl); + $this->setCookiePath($adminPath); + } + + /** + * Determine the admin path + * + * @param string $baseUrl + * @return string + * @throws \InvalidArgumentException + */ + private function extractAdminPath($baseUrl) + { + if (!is_string($baseUrl)) { + throw new \InvalidArgumentException('Cookie path is not a string.'); + } + + $adminPath = $this->frontNameResolver->getFrontName(); + + if (!substr($baseUrl, -1) || ('/' != substr($baseUrl, -1))) { + $baseUrl = $baseUrl . '/'; + } + + return $baseUrl . $adminPath; + } +} diff --git a/app/code/Magento/Backend/Model/Auth/Session.php b/app/code/Magento/Backend/Model/Auth/Session.php index 42b75dd1e62b5c8250685942203235715ee9a303..b30534c6f72c540c0ffdde04d126056836043df6 100644 --- a/app/code/Magento/Backend/Model/Auth/Session.php +++ b/app/code/Magento/Backend/Model/Auth/Session.php @@ -23,6 +23,9 @@ */ namespace Magento\Backend\Model\Auth; +use \Magento\Framework\Stdlib\CookieManager; +use \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory; + /** * Backend Auth session model * @@ -44,7 +47,7 @@ class Session extends \Magento\Framework\Session\SessionManager implements \Mage const XML_PATH_SESSION_LIFETIME = 'admin/security/session_lifetime'; /** - * Whether it is the first page after successfull login + * Whether it is the first page after successful login * * @var boolean */ @@ -67,11 +70,6 @@ class Session extends \Magento\Framework\Session\SessionManager implements \Mage */ protected $_config; - /** - * @var \Magento\Framework\Stdlib\Cookie - */ - protected $_cookie; - /** * @param \Magento\Framework\App\Request\Http $request * @param \Magento\Framework\Session\SidResolverInterface $sidResolver @@ -79,10 +77,11 @@ class Session extends \Magento\Framework\Session\SessionManager implements \Mage * @param \Magento\Framework\Session\SaveHandlerInterface $saveHandler * @param \Magento\Framework\Session\ValidatorInterface $validator * @param \Magento\Framework\Session\StorageInterface $storage + * @param CookieManager $cookieManager + * @param CookieMetadataFactory $cookieMetadataFactory * @param \Magento\Framework\Acl\Builder $aclBuilder * @param \Magento\Backend\Model\UrlInterface $backendUrl * @param \Magento\Backend\App\ConfigInterface $config - * @param \Magento\Framework\Stdlib\Cookie $cookie */ public function __construct( \Magento\Framework\App\Request\Http $request, @@ -91,16 +90,25 @@ class Session extends \Magento\Framework\Session\SessionManager implements \Mage \Magento\Framework\Session\SaveHandlerInterface $saveHandler, \Magento\Framework\Session\ValidatorInterface $validator, \Magento\Framework\Session\StorageInterface $storage, + CookieManager $cookieManager, + CookieMetadataFactory $cookieMetadataFactory, \Magento\Framework\Acl\Builder $aclBuilder, \Magento\Backend\Model\UrlInterface $backendUrl, - \Magento\Backend\App\ConfigInterface $config, - \Magento\Framework\Stdlib\Cookie $cookie + \Magento\Backend\App\ConfigInterface $config ) { $this->_config = $config; $this->_aclBuilder = $aclBuilder; $this->_backendUrl = $backendUrl; - $this->_cookie = $cookie; - parent::__construct($request, $sidResolver, $sessionConfig, $saveHandler, $validator, $storage); + parent::__construct( + $request, + $sidResolver, + $sessionConfig, + $saveHandler, + $validator, + $storage, + $cookieManager, + $cookieMetadataFactory + ); $this->start(); } @@ -187,22 +195,20 @@ class Session extends \Magento\Framework\Session\SessionManager implements \Mage $currentTime = time(); $this->setUpdatedAt($currentTime); - $cookieValue = $this->_cookie->get($this->getName()); + $cookieValue = $this->cookieManager->getCookie($this->getName()); if ($cookieValue) { - $this->_cookie->set( - $this->getName(), - $cookieValue, - $lifetime, - $this->sessionConfig->getCookiePath(), - $this->sessionConfig->getCookieDomain(), - $this->sessionConfig->getCookieSecure(), - $this->sessionConfig->getCookieHttpOnly() - ); + $cookieMetadata = $this->cookieMetadataFactory->createPublicCookieMetadata() + ->setDuration($lifetime) + ->setPath($this->sessionConfig->getCookiePath()) + ->setDomain($this->sessionConfig->getCookieDomain()) + ->setSecure($this->sessionConfig->getCookieSecure()) + ->setHttpOnly($this->sessionConfig->getCookieHttpOnly()); + $this->cookieManager->setPublicCookie($this->getName(), $cookieValue, $cookieMetadata); } } /** - * Check if it is the first page after successfull login + * Check if it is the first page after successful login * * @return bool */ diff --git a/app/code/Magento/Backend/Model/Config/Backend/Domain.php b/app/code/Magento/Backend/Model/Config/Backend/Domain.php new file mode 100644 index 0000000000000000000000000000000000000000..ccc46d9ba9a1816c0f621aaa6b136a2cf2e00fd2 --- /dev/null +++ b/app/code/Magento/Backend/Model/Config/Backend/Domain.php @@ -0,0 +1,50 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Backend\Model\Config\Backend; + +/** + * Backend model for domain config value + */ +class Domain extends \Magento\Framework\App\Config\Value +{ + /** + * Validate a domain name value + * + * @return void + * @throws \Magento\Framework\Model\Exception + */ + protected function _beforeSave() + { + $value = $this->getValue(); + + $validator = new \Zend\Validator\Hostname(\Zend\Validator\Hostname::ALLOW_ALL); + + // Empty value is treated valid and will be handled when read the value out + if (!empty($value) && !$validator->isValid($value)) { + throw new \Magento\Framework\Model\Exception( + 'Invalid domain name: ' . join('; ', $validator->getMessages()) + ); + } + } +} diff --git a/app/code/Magento/Backend/Model/Session.php b/app/code/Magento/Backend/Model/Session.php index 94769838c3285609239453cb848de16d9779284e..d36bb06c32d6bc380888e1b7789d845b945c6098 100644 --- a/app/code/Magento/Backend/Model/Session.php +++ b/app/code/Magento/Backend/Model/Session.php @@ -34,6 +34,8 @@ class Session extends \Magento\Framework\Session\SessionManager * @param \Magento\Framework\Session\SaveHandlerInterface $saveHandler * @param \Magento\Framework\Session\ValidatorInterface $validator * @param \Magento\Framework\Session\StorageInterface $storage + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory */ public function __construct( \Magento\Framework\App\Request\Http $request, @@ -41,9 +43,20 @@ class Session extends \Magento\Framework\Session\SessionManager \Magento\Framework\Session\Config\ConfigInterface $sessionConfig, \Magento\Framework\Session\SaveHandlerInterface $saveHandler, \Magento\Framework\Session\ValidatorInterface $validator, - \Magento\Framework\Session\StorageInterface $storage + \Magento\Framework\Session\StorageInterface $storage, + \Magento\Framework\Stdlib\CookieManager $cookieManager, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory ) { - parent::__construct($request, $sidResolver, $sessionConfig, $saveHandler, $validator, $storage); + parent::__construct( + $request, + $sidResolver, + $sessionConfig, + $saveHandler, + $validator, + $storage, + $cookieManager, + $cookieMetadataFactory + ); $this->start('adminhtml'); } diff --git a/app/code/Magento/Backend/Model/Session/Quote.php b/app/code/Magento/Backend/Model/Session/Quote.php index d7acbf2752f95860bc5a9e9736ba2710ea68dc27..68d49ce4dbd7b6257a91aa411d23ed106069ee18 100644 --- a/app/code/Magento/Backend/Model/Session/Quote.php +++ b/app/code/Magento/Backend/Model/Session/Quote.php @@ -95,6 +95,8 @@ class Quote extends \Magento\Framework\Session\SessionManager * @param \Magento\Framework\Session\SaveHandlerInterface $saveHandler * @param \Magento\Framework\Session\ValidatorInterface $validator * @param \Magento\Framework\Session\StorageInterface $storage + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param \Magento\Sales\Model\QuoteFactory $quoteFactory * @param \Magento\Customer\Service\V1\CustomerAccountServiceInterface $customerService * @param \Magento\Sales\Model\OrderFactory $orderFactory @@ -108,6 +110,8 @@ class Quote extends \Magento\Framework\Session\SessionManager \Magento\Framework\Session\SaveHandlerInterface $saveHandler, \Magento\Framework\Session\ValidatorInterface $validator, \Magento\Framework\Session\StorageInterface $storage, + \Magento\Framework\Stdlib\CookieManager $cookieManager, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, \Magento\Sales\Model\QuoteFactory $quoteFactory, \Magento\Customer\Service\V1\CustomerAccountServiceInterface $customerService, \Magento\Sales\Model\OrderFactory $orderFactory, @@ -119,7 +123,16 @@ class Quote extends \Magento\Framework\Session\SessionManager $this->_orderFactory = $orderFactory; $this->_storeManager = $storeManager; $this->_scopeConfig = $scopeConfig; - parent::__construct($request, $sidResolver, $sessionConfig, $saveHandler, $validator, $storage); + parent::__construct( + $request, + $sidResolver, + $sessionConfig, + $saveHandler, + $validator, + $storage, + $cookieManager, + $cookieMetadataFactory + ); $this->start(); if ($this->_storeManager->hasSingleStore()) { $this->setStoreId($this->_storeManager->getStore(true)->getId()); diff --git a/app/code/Magento/Backend/Model/Url.php b/app/code/Magento/Backend/Model/Url.php index ca5f3dff77ff2bdd865e10028e0eb974f453e27a..88d13211ba8cb6e07db18074907153578992716c 100644 --- a/app/code/Magento/Backend/Model/Url.php +++ b/app/code/Magento/Backend/Model/Url.php @@ -129,7 +129,7 @@ class Url extends \Magento\Framework\Url implements \Magento\Backend\Model\UrlIn \Magento\Framework\Encryption\EncryptorInterface $encryptor, \Magento\Store\Model\StoreFactory $storeFactory, \Magento\Framework\Data\Form\FormKey $formKey, - array $data = array() + array $data = [] ) { $this->_encryptor = $encryptor; parent::__construct( @@ -207,11 +207,11 @@ class Url extends \Magento\Framework\Url implements \Magento\Backend\Model\UrlIn $controllerName = $this->_getControllerName(self::DEFAULT_CONTROLLER_NAME); $actionName = $this->_getActionName(self::DEFAULT_ACTION_NAME); if ($cacheSecretKey) { - $secret = array(self::SECRET_KEY_PARAM_NAME => "\${$routeName}/{$controllerName}/{$actionName}\$"); + $secret = [self::SECRET_KEY_PARAM_NAME => "\${$routeName}/{$controllerName}/{$actionName}\$"]; } else { - $secret = array( + $secret = [ self::SECRET_KEY_PARAM_NAME => $this->getSecretKey($routeName, $controllerName, $actionName) - ); + ]; } if (is_array($routeParams)) { $routeParams = array_merge($secret, $routeParams); @@ -300,7 +300,7 @@ class Url extends \Magento\Framework\Url implements \Magento\Backend\Model\UrlIn */ public function renewSecretUrls() { - $this->_cache->clean(array(\Magento\Backend\Block\Menu::CACHE_TAGS)); + $this->_cache->clean([\Magento\Backend\Block\Menu::CACHE_TAGS]); } /** @@ -416,10 +416,10 @@ class Url extends \Magento\Framework\Url implements \Magento\Backend\Model\UrlIn { if (!$this->_scope) { $this->_scope = $this->_storeFactory->create( - array( + [ 'url' => $this, - 'data' => array('code' => 'admin', 'force_disable_rewrites' => true, 'disable_store_in_url' => true) - ) + 'data' => ['code' => 'admin', 'force_disable_rewrites' => false, 'disable_store_in_url' => true] + ] ); } return $this->_scope; diff --git a/app/code/Magento/Backend/composer.json b/app/code/Magento/Backend/composer.json index d09b2f14a6f6ac5405e63a839b145876ae42338d..b294e2b0dd6df3982a082c08d13c495e5b3f0a15 100644 --- a/app/code/Magento/Backend/composer.json +++ b/app/code/Magento/Backend/composer.json @@ -3,32 +3,32 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-cron": "0.1.0-alpha92", - "magento/module-sendfriend": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-weee": "0.1.0-alpha92", - "magento/module-reports": "0.1.0-alpha92", - "magento/module-catalog-search": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-user": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/module-backup": "0.1.0-alpha92", - "magento/module-email": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-url-rewrite": "0.1.0-alpha92", - "magento/module-translation": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-cron": "0.1.0-alpha93", + "magento/module-sendfriend": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-weee": "0.1.0-alpha93", + "magento/module-reports": "0.1.0-alpha93", + "magento/module-catalog-search": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-user": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/module-backup": "0.1.0-alpha93", + "magento/module-email": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-url-rewrite": "0.1.0-alpha93", + "magento/module-translation": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Backend/etc/adminhtml/di.xml b/app/code/Magento/Backend/etc/adminhtml/di.xml index 781422eebdd061e738f84ac79865db01e0d67b56..09512c7ec5a636b14b9c66e51c2e38c511a96211 100644 --- a/app/code/Magento/Backend/etc/adminhtml/di.xml +++ b/app/code/Magento/Backend/etc/adminhtml/di.xml @@ -36,7 +36,8 @@ <preference for="Magento\Framework\App\Response\Http\FileFactory" type="Magento\Backend\App\Response\Http\FileFactory" /> <preference for="Magento\Framework\App\View" type="Magento\Backend\Model\View" /> <preference for="Magento\Framework\Model\ActionValidator\RemoveAction" type="Magento\Framework\Model\ActionValidator\RemoveAction\Allowed" /> - <type name="Magento\Backend\App\Action\Context"> + <preference for="Magento\Framework\Session\Config\ConfigInterface" type="Magento\Backend\AdminConfig" /> + <type name="Magento\Backend\App\Action\Context"> <arguments> <argument name="helper" xsi:type="object">Magento\Backend\Helper\Data</argument> </arguments> @@ -97,7 +98,7 @@ <argument name="locale" xsi:type="object">Magento\Backend\Model\Locale\Resolver\Proxy</argument> </arguments> </type> - <type name="Magento\Core\Model\Session\Config"> + <type name="Magento\Backend\AdminConfig"> <arguments> <argument name="lifetimePath" xsi:type="const">Magento\Backend\Model\Auth\Session::XML_PATH_SESSION_LIFETIME</argument> </arguments> diff --git a/app/code/Magento/Backend/etc/adminhtml/system.xml b/app/code/Magento/Backend/etc/adminhtml/system.xml index cc52c30d4f06442cdfadcdb01cfc0637d798d2ed..5314894c08395d64f4fd24c98bdb40425ef88e27 100644 --- a/app/code/Magento/Backend/etc/adminhtml/system.xml +++ b/app/code/Magento/Backend/etc/adminhtml/system.xml @@ -595,6 +595,7 @@ </field> <field id="cookie_domain" translate="label" type="text" sortOrder="30" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Cookie Domain</label> + <backend_model>Magento\Backend\Model\Config\Backend\Domain</backend_model> </field> <field id="cookie_httponly" translate="label" type="select" sortOrder="40" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Use HTTP Only</label> diff --git a/app/code/Magento/Backend/view/adminhtml/layout/default.xml b/app/code/Magento/Backend/view/adminhtml/layout/default.xml index cbe4ae2e7bba1be142628ea265b0c10e9151d302..cc535e0a52ca859fc2aefc20d6a4ab09f28f1a9c 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/default.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/default.xml @@ -159,6 +159,11 @@ <argument name="file" xsi:type="string">requirejs/require.js</argument> </arguments> </block> + <block class="Magento\Theme\Block\Html\Head\Script" name="mage-requirejs-resolver"> + <arguments> + <argument name="file" xsi:type="string">mage/requirejs/resolver.js</argument> + </arguments> + </block> <block class="Magento\Theme\Block\Html\Head\Script" name="app-config" after="jquery"> <arguments> <argument name="file" xsi:type="string">app-config.js</argument> diff --git a/app/code/Magento/Backup/composer.json b/app/code/Magento/Backup/composer.json index 36a9cad902e4565c305fd08694a5e7437a25d19e..74bcb2589acbfa127474f3b4aa4682eb9d885606 100644 --- a/app/code/Magento/Backup/composer.json +++ b/app/code/Magento/Backup/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-cron": "0.1.0-alpha92", - "magento/module-index": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-cron": "0.1.0-alpha93", + "magento/module-index": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Bundle/Block/Sales/Order/Items/Renderer.php b/app/code/Magento/Bundle/Block/Sales/Order/Items/Renderer.php index ac0fb075fd5c5f0c48e5228a4806a63c32a72329..2a542e6d53c99c88241f6eaae7f3d392f2610da5 100644 --- a/app/code/Magento/Bundle/Block/Sales/Order/Items/Renderer.php +++ b/app/code/Magento/Bundle/Block/Sales/Order/Items/Renderer.php @@ -185,4 +185,17 @@ class Renderer extends \Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer } return false; } + + /** + * Get the html for item price + * + * @param OrderItem|InvoiceItem|CreditmemoItem $item + * @return string + */ + public function getItemPrice($item) + { + $block = $this->getLayout()->getBlock('item_price'); + $block->setItem($item); + return $block->toHtml(); + } } diff --git a/app/code/Magento/Bundle/Service/V1/Data/Product/Option/TypeConverter.php b/app/code/Magento/Bundle/Service/V1/Data/Product/Option/TypeConverter.php index b64fecdbd27fc5daaf93aeead71e07adcb1d8c01..220b87e23409a6f1b22e85782ca0a8149330ca64 100644 --- a/app/code/Magento/Bundle/Service/V1/Data/Product/Option/TypeConverter.php +++ b/app/code/Magento/Bundle/Service/V1/Data/Product/Option/TypeConverter.php @@ -24,7 +24,9 @@ namespace Magento\Bundle\Service\V1\Data\Product\Option; - +/** + * @codeCoverageIgnore + */ class TypeConverter { /** diff --git a/app/code/Magento/Bundle/Service/V1/Product/Link/Data/ProductLink.php b/app/code/Magento/Bundle/Service/V1/Product/Link/Data/ProductLink.php index 9568d0b1e30f3e444171e3247e1dda26327bbd24..ab265ef51598f26d199e01ba6e25ccc57d7726e9 100644 --- a/app/code/Magento/Bundle/Service/V1/Product/Link/Data/ProductLink.php +++ b/app/code/Magento/Bundle/Service/V1/Product/Link/Data/ProductLink.php @@ -26,6 +26,8 @@ namespace Magento\Bundle\Service\V1\Product\Link\Data; /** * Bundle ProductLink Service Data Object + * + * @codeCoverageIgnore */ class ProductLink extends \Magento\Framework\Service\Data\Eav\AbstractObject { diff --git a/app/code/Magento/Bundle/Service/V1/Product/Link/Data/ProductLinkBuilder.php b/app/code/Magento/Bundle/Service/V1/Product/Link/Data/ProductLinkBuilder.php index d646232c2da5373f37a055f26735da68fca4095f..9c26d51c295e8f0647719016c7761f346d453f71 100644 --- a/app/code/Magento/Bundle/Service/V1/Product/Link/Data/ProductLinkBuilder.php +++ b/app/code/Magento/Bundle/Service/V1/Product/Link/Data/ProductLinkBuilder.php @@ -30,6 +30,7 @@ use Magento\Framework\Service\Data\Eav\AttributeValueBuilder; * Builder for the ProductLink Service Data Object * * @method ProductLink create() + * @codeCoverageIgnore */ class ProductLinkBuilder extends \Magento\Framework\Service\Data\Eav\AbstractObjectBuilder { diff --git a/app/code/Magento/Bundle/composer.json b/app/code/Magento/Bundle/composer.json index 0427ebbc87b2cdad600f153df0a88e4512f9b3b2..8b8afe8452b635e616850b534ccc92642bc485f4 100644 --- a/app/code/Magento/Bundle/composer.json +++ b/app/code/Magento/Bundle/composer.json @@ -3,26 +3,25 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-catalog-rule": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-weee": "0.1.0-alpha92", - "magento/module-gift-message": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", - "magento/module-webapi": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-catalog-rule": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-gift-message": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", + "magento/module-webapi": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Bundle/etc/module.xml b/app/code/Magento/Bundle/etc/module.xml index d91076fb651caba4325311453fff37cb8af74c01..3af545dbed1b735036063f6ad75beba5631241ec 100644 --- a/app/code/Magento/Bundle/etc/module.xml +++ b/app/code/Magento/Bundle/etc/module.xml @@ -40,7 +40,6 @@ <module name="Magento_Customer"/> <module name="Magento_CatalogRule"/> <module name="Magento_Eav"/> - <module name="Magento_Weee"/> <module name="Magento_GiftMessage"/> <module name="Magento_Theme"/> <module name="Magento_Webapi"/> diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml index dd71a1ff87ce357556bff17cdd91cfad37acf35e..a6d3871b3183570a2a167a679d5b49de2108aab3 100644 --- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml @@ -26,6 +26,7 @@ /** * @see \Magento\Bundle\Block\Adminhtml\Sales\Order\Items\Renderer */ +/** @var $this \Magento\Bundle\Block\Adminhtml\Sales\Order\Items\Renderer */ ?> <?php $_item = $this->getItem() ?> @@ -74,100 +75,7 @@ <?php endif; ?> <td class="col-price"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price'); ?> <?php else: ?> <?php endif; ?> @@ -245,100 +153,7 @@ </td> <td class="col-subtotal"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /><span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - </span> + <?php echo $this->getColumnHtml($_item, 'subtotal'); ?> <?php else: ?> <?php endif; ?> @@ -359,10 +174,7 @@ </td> <td class="col-total last"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseTaxAmount()-$_item->getBaseDiscountAmount()+$_item->getBaseWeeeTaxAppliedRowAmnt(), - $_item->getRowTotal()+$_item->getTaxAmount()-$_item->getDiscountAmount()+$_item->getWeeeTaxAppliedRowAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total'); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/view/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/view/items/renderer.phtml index 08bfb2833ec21e793bc4fe5cef0bb1777ad8f662..fd2ace92881c71c2bcc342b0a27adca0491fc308 100644 --- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/view/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/view/items/renderer.phtml @@ -26,6 +26,7 @@ /** * @see \Magento\Bundle\Block\Adminhtml\Sales\Order\Items\Renderer */ +/** @var $this \Magento\Bundle\Block\Adminhtml\Sales\Order\Items\Renderer */ ?> <?php $_item = $this->getItem() ?> @@ -72,100 +73,7 @@ <?php endif; ?> <td class="col-price"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price'); ?> <?php else: ?> <?php endif; ?> @@ -179,97 +87,7 @@ </td> <td class="col-subtotal"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /><span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - </span> + <?php echo $this->getColumnHtml($_item, 'subtotal'); ?> <?php else: ?> <?php endif; ?> @@ -290,10 +108,7 @@ </td> <td class="col-total last"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal()-$_item->getBaseDiscountAmount()+$_item->getBaseTaxAmount()+$_item->getBaseWeeeTaxAppliedRowAmnt(), - $_item->getRowTotal()-$_item->getDiscountAmount()+$_item->getTaxAmount()+$_item->getWeeeTaxAppliedRowAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total'); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/create/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/create/items/renderer.phtml index e2cb0a835e6566d294e1d43da97a1e41cb9c874c..01159d1009f1103eb475193d9df19f2d703cf023 100644 --- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/create/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/create/items/renderer.phtml @@ -26,6 +26,7 @@ /** * @see \Magento\Bundle\Block\Adminhtml\Sales\Order\Items\Renderer */ +/** @var $this \Magento\Bundle\Block\Adminhtml\Sales\Order\Items\Renderer */ ?> <?php $_item = $this->getItem() ?> @@ -75,100 +76,7 @@ <?php endif; ?> <td class="col-price"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price'); ?> <?php else: ?> <?php endif; ?> @@ -235,100 +143,7 @@ </td> <td class="col-subtotal"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /><span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - </span> + <?php echo $this->getColumnHtml($_item, 'subtotal'); ?> <?php else: ?> <?php endif; ?> @@ -349,10 +164,7 @@ </td> <td class="col-total last"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseTaxAmount()-$_item->getBaseDiscountAmount()+$_item->getBaseWeeeTaxAppliedRowAmnt(), - $_item->getRowTotal()+$_item->getTaxAmount()-$_item->getDiscountAmount()+$_item->getWeeeTaxAppliedRowAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total'); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/view/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/view/items/renderer.phtml index 1e424aa4ca2a4caa238bb31c1ec1d7e6c10e33c1..bfac0a122128dfa8523de803d7b8b406b685f896 100644 --- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/view/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/view/items/renderer.phtml @@ -26,6 +26,7 @@ /** * @see \Magento\Bundle\Block\Adminhtml\Sales\Order\Items\Renderer */ +/** @var $this \Magento\Bundle\Block\Adminhtml\Sales\Order\Items\Renderer */ ?> <?php $_item = $this->getItem() ?> @@ -73,100 +74,7 @@ <?php endif; ?> <td class="col-price"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price'); ?> <?php else: ?> <?php endif; ?> @@ -180,100 +88,7 @@ </td> <td class="col-subtotal"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /><span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - </span> + <?php echo $this->getColumnHtml($_item, 'subtotal'); ?> <?php else: ?> <?php endif; ?> @@ -294,10 +109,7 @@ </td> <td class="col-total last"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseTaxAmount()-$_item->getBaseDiscountAmount()+$_item->getBaseWeeeTaxAppliedRowAmnt(), - $_item->getRowTotal()+$_item->getTaxAmount()-$_item->getDiscountAmount()+$_item->getWeeeTaxAppliedRowAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total'); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/order/view/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/order/view/items/renderer.phtml index 0524cf9c580722980ce4ba213cd73872bfc0738b..5f09f440506f9cc4a82aeb942df285311aa264e4 100644 --- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/order/view/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/order/view/items/renderer.phtml @@ -26,6 +26,7 @@ /** * @see \Magento\Bundle\Block\Adminhtml\Sales\Order\View\Items\Renderer */ +/** @var $this \Magento\Bundle\Block\Adminhtml\Sales\Order\View\Items\Renderer */ ?> <?php $_item = $this->getItem() ?> @@ -93,100 +94,7 @@ </td> <td class="col-price"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price'); ?> <?php else: ?> <?php endif; ?> @@ -242,99 +150,7 @@ </td> <td class="col-subtotal"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /><span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'subtotal'); ?> <?php else: ?> <?php endif; ?> @@ -362,10 +178,7 @@ </td> <td class="col-total last"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php echo $this->displayPrices( - max(0, $_item->getBaseRowTotal() - $_item->getBaseDiscountAmount() + $_item->getBaseTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmnt()), - max(0, $_item->getRowTotal() - $_item->getDiscountAmount() + $_item->getTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()) - ); ?> + <?php echo $this->getColumnHtml($_item, 'total'); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/creditmemo/default.phtml b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/creditmemo/default.phtml index d1ec525d1d18110996812a050494098432a8ff40..68a1033c49c6b67c3f131d7887c1b6317ef2a1e9 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/creditmemo/default.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/creditmemo/default.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Bundle\Block\Sales\Order\Items\Renderer */ ?> <?php $parentItem = $this->getItem() ?> <?php $_order = $this->getItem()->getOrder(); ?> @@ -65,80 +66,7 @@ </td> <td align="right" valign="top" style="padding:3px 9px"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $_order->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + <?php echo $this->getItemPrice($_item); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/invoice/default.phtml b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/invoice/default.phtml index 11df4cccb14289a86389ff1e41775216093e1006..db254fc363ac181537f73c43e47861a6017b148e 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/invoice/default.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/invoice/default.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Bundle\Block\Sales\Order\Items\Renderer */ ?> <?php $parentItem = $this->getItem() ?> <?php $items = $this->getChilds($parentItem) ?> @@ -66,80 +67,7 @@ </td> <td align="right" valign="top" style="padding:3px 9px"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $_order->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + <?php echo $this->getItemPrice($_item); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/order/default.phtml b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/order/default.phtml index 0643e61ecd789e99295baa5268f19a18da12fb94..01d0eb97def1ca5d1ad539c13c7bea3b1fdf0ea5 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/email/order/items/order/default.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/email/order/items/order/default.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Bundle\Block\Sales\Order\Items\Renderer */ ?> <?php $_item = $this->getItem() ?> <?php $_order=$this->getOrder() ?> @@ -66,80 +67,7 @@ </td> <td align="right" valign="top" style="padding:3px 9px"> <?php if (!$_item->getParentItem()): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $_order->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + <?php echo $this->getItemPrice($_item); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/sales/order/creditmemo/items/renderer.phtml b/app/code/Magento/Bundle/view/frontend/templates/sales/order/creditmemo/items/renderer.phtml index f59849e66d53f2c7b910b98df53c8a4ea9f6a603..528866f9e92494acdb2b0fdab75625397a05ec72 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/sales/order/creditmemo/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/sales/order/creditmemo/items/renderer.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Bundle\Block\Sales\Order\Items\Renderer */ ?> <?php $parentItem = $this->getItem() ?> <?php $items = $this->getChilds($parentItem) ?> @@ -59,91 +60,7 @@ <td class="col sku" data-th="<?php echo $this->escapeHtml(__('SKU')); ?>"><?php echo $this->escapeHtml($_item->getSku()) ?></td> <td class="col price" data-th="<?php echo $this->escapeHtml(__('Price')); ?>"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart tax info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl + $this->getItem()->getWeeeTaxAppliedAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemPriceHtml($_item); ?> <?php else: ?> <?php endif; ?> @@ -157,58 +74,7 @@ </td> <td class="col subtotal" data-th="<?php echo $this->escapeHtml(__('Subtotal')); ?>"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <?php echo $this->getOrder()->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <?php endif; ?> - </span> - <?php else: ?> - - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal() + $this->getItem()->getWeeeTaxAppliedRowAmount() + $this->getItem()->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - - <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal() + $this->getItem()->getWeeeTaxAppliedRowAmount() + $this->getItem()->getWeeeTaxRowDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemRowTotalHtml($_item); ?> <?php else: ?> <?php endif; ?> @@ -222,7 +88,7 @@ </td> <td class="col rowtotal" data-th="<?php echo $this->escapeHtml(__('Row Total')); ?>"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php echo $this->getOrder()->formatPrice($_item->getRowTotal()-$_item->getDiscountAmount()+$_item->getTaxAmount()+$_item->getWeeeTaxAppliedRowAmount()) ?> + <?php echo $this->getItemRowTotalAfterDiscountHtml($_item); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/sales/order/invoice/items/renderer.phtml b/app/code/Magento/Bundle/view/frontend/templates/sales/order/invoice/items/renderer.phtml index 20b29c9f31724e56ec3a413c181e255f3a4e2926..8ce1ef4cb7c7f1ba1c20a9b9a609e006bee917d5 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/sales/order/invoice/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/sales/order/invoice/items/renderer.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Bundle\Block\Sales\Order\Items\Renderer */ ?> <?php $parentItem = $this->getItem() ?> <?php $_order = $this->getItem()->getOrderItem()->getOrder() ?> @@ -58,92 +59,7 @@ <td class="col sku" data-th="<?php echo $this->escapeHtml(__('SKU')); ?>"><?php echo $this->escapeHtml($_item->getSku()) ?></td> <td class="col price" data-th="<?php echo $this->escapeHtml(__('Price')); ?>"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemPriceHtml($_item); ?> <?php else: ?> <?php endif; ?> @@ -157,89 +73,7 @@ </td> <td class="col subtotal" data-th="<?php echo $this->escapeHtml(__('Subtotal')); ?>"> <?php if ($this->canShowPriceInfo($_item)): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemRowTotalHtml($_item); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Bundle/view/frontend/templates/sales/order/items/renderer.phtml b/app/code/Magento/Bundle/view/frontend/templates/sales/order/items/renderer.phtml index b1908e1964b73b6e6d79a68082193c9ab168d9e0..c7d8dc29e27aad7f9959fd3cde00917b5629d60d 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/sales/order/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/sales/order/items/renderer.phtml @@ -59,89 +59,7 @@ <td class="col sku" data-th="<?php echo $this->escapeHtml(__('SKU')); ?>"><?php echo $this->prepareSku($_item->getSku()) ?></td> <td class="col price" data-th="<?php echo $this->escapeHtml(__('Price')); ?>"> <?php if (!$_item->getParentItem()): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> - <?php endif; ?> - </span> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemPriceHtml(); ?> <?php else: ?> <?php endif; ?> @@ -194,93 +112,7 @@ </td> <td class="col subtotal" data-th="<?php echo $this->escapeHtml(__('Subtotal')); ?>"> <?php if (!$_item->getParentItem()): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" - id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart tax total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemRowTotalHtml(); ?> <?php else: ?> <?php endif; ?> diff --git a/app/code/Magento/Captcha/composer.json b/app/code/Magento/Captcha/composer.json index 53f5e302ccd9c73448d4b2be358192d68a915e40..62a1c56b511e65441071e6a7defcca2e3e369fdf 100644 --- a/app/code/Magento/Captcha/composer.json +++ b/app/code/Magento/Captcha/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Action/Attribute.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Action/Attribute.php index 7600fbd7bdaff6461aea306eff32e60b49f658ae..d859d594af3e51054ede1af8198e536f54b8bfbc 100644 --- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Action/Attribute.php +++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Action/Attribute.php @@ -61,7 +61,7 @@ class Attribute extends \Magento\Backend\Block\Widget */ protected function _prepareLayout() { - $this->addChild( + $this->getToolbar()->addChild( 'back_button', 'Magento\Backend\Block\Widget\Button', array( @@ -74,7 +74,7 @@ class Attribute extends \Magento\Backend\Block\Widget ) ); - $this->addChild( + $this->getToolbar()->addChild( 'reset_button', 'Magento\Backend\Block\Widget\Button', array( @@ -84,12 +84,12 @@ class Attribute extends \Magento\Backend\Block\Widget ) ); - $this->addChild( + $this->getToolbar()->addChild( 'save_button', 'Magento\Backend\Block\Widget\Button', array( 'label' => __('Save'), - 'class' => 'save', + 'class' => 'save primary', 'data_attribute' => array( 'mage-init' => array('button' => array('event' => 'save', 'target' => '#attributes-edit-form')) ) diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Action/Attribute/Tab/Attributes.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Action/Attribute/Tab/Attributes.php index 05d7aed24b640093f43d7cc5156eb24a0259884f..1ca7ec7c484f0b17713551eaccf85eb5b3b66621 100644 --- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Action/Attribute/Tab/Attributes.php +++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Action/Attribute/Tab/Attributes.php @@ -147,11 +147,12 @@ class Attributes extends \Magento\Catalog\Block\Adminhtml\Form implements $nameAttributeHtml = $element->getExtType() === 'multiple' ? 'name="' . $element->getId() . '_checkbox"' : ''; $elementId = $element->getId(); $dataAttribute = "data-disable='{$elementId}'"; + $dataCheckboxName = "toggle_"."{$elementId}"; $checkboxLabel = __('Change'); $html = <<<HTML <span class="attribute-change-checkbox"> - <label> - <input type="checkbox" $nameAttributeHtml onclick="toogleFieldEditMode(this, '{$elementId}')" $dataAttribute /> + <input type="checkbox" id="$dataCheckboxName" name="$dataCheckboxName" class="checkbox" $nameAttributeHtml onclick="toogleFieldEditMode(this, '{$elementId}')" $dataAttribute /> + <label class="label" for="$dataCheckboxName"> {$checkboxLabel} </label> </span> diff --git a/app/code/Magento/Catalog/Block/Product/View/Options.php b/app/code/Magento/Catalog/Block/Product/View/Options.php index 982273aa7fcd075db68c2dfcb070e2829f69792c..75424c2e5dba899c65235c3b8b9ceecbcf402e7c 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Options.php +++ b/app/code/Magento/Catalog/Block/Product/View/Options.php @@ -179,7 +179,7 @@ class Options extends \Magento\Framework\View\Element\Template $data['oldPrice'] = $this->_coreData->currency($option->getPrice(false), false, false); $data['priceValue'] = $option->getPrice(false); $data['type'] = $option->getPriceType(); - $data['exclTaxPrice'] = $price = $this->_catalogData->getTaxPrice($option->getProduct(), $data['price']); + $data['exclTaxPrice'] = $price = $this->_catalogData->getTaxPrice($option->getProduct(), $data['price'], false); $data['inclTaxPrice'] = $price = $this->_catalogData->getTaxPrice($option->getProduct(), $data['price'], true); return $data; } diff --git a/app/code/Magento/Catalog/Model/Layer.php b/app/code/Magento/Catalog/Model/Layer.php index 2b104f583883453ca95e47857f58fab3e0bb0907..31badd1789bb9d63e9fbc58706de8b7f074f5ee8 100644 --- a/app/code/Magento/Catalog/Model/Layer.php +++ b/app/code/Magento/Catalog/Model/Layer.php @@ -173,6 +173,8 @@ class Layer extends \Magento\Framework\Object public function prepareProductCollection($collection) { $this->collectionFilter->filter($collection, $this->getCurrentCategory()); + + return $this; } /** @@ -274,14 +276,4 @@ class Layer extends \Magento\Framework\Object return $state; } - - /** - * Get attribute sets identifiers of current product set - * - * @return array - */ - protected function _getSetIds() - { - return $this->getProductCollection()->getSetIds(); - } } diff --git a/app/code/Magento/Catalog/Model/Layer/Filter/Category.php b/app/code/Magento/Catalog/Model/Layer/Filter/Category.php index fb04bd21c91591a986037bf2db960dd15fe8b215..8765e28ce4accaade91abf4f53c3242c1b2028c2 100644 --- a/app/code/Magento/Catalog/Model/Layer/Filter/Category.php +++ b/app/code/Magento/Catalog/Model/Layer/Filter/Category.php @@ -151,7 +151,16 @@ class Category extends \Magento\Catalog\Model\Layer\Filter\AbstractFilter */ protected function _isValidCategory($category) { - return $category->getId(); + if ($category->getId()) { + while ($category->getLevel() != 0) { + if (!$category->getIsActive()) { + return false; + } + $category = $category->getParentCategory(); + } + return true; + } + return false; } /** @@ -194,13 +203,15 @@ class Category extends \Magento\Catalog\Model\Layer\Filter\AbstractFilter $this->getLayer()->getProductCollection()->addCountToCategories($categories); $data = array(); - foreach ($categories as $category) { - if ($category->getIsActive() && $category->getProductCount()) { - $data[] = array( - 'label' => $this->_escaper->escapeHtml($category->getName()), - 'value' => $category->getId(), - 'count' => $category->getProductCount() - ); + if ($category->getIsActive()) { + foreach ($categories as $category) { + if ($category->getIsActive() && $category->getProductCount()) { + $data[] = array( + 'label' => $this->_escaper->escapeHtml($category->getName()), + 'value' => $category->getId(), + 'count' => $category->getProductCount() + ); + } } } return $data; diff --git a/app/code/Magento/Catalog/Model/Product/ProductList/Toolbar.php b/app/code/Magento/Catalog/Model/Product/ProductList/Toolbar.php index 8d9719afa16d9e0c7a2c8eab3a42b805567f59ef..09d0aa5e7569ca5600f137dcd7747631cec776df 100644 --- a/app/code/Magento/Catalog/Model/Product/ProductList/Toolbar.php +++ b/app/code/Magento/Catalog/Model/Product/ProductList/Toolbar.php @@ -23,6 +23,8 @@ */ namespace Magento\Catalog\Model\Product\ProductList; +use Magento\Framework\Stdlib\CookieManager; + /** * Class Toolbar */ @@ -54,11 +56,11 @@ class Toolbar const LIMIT_COOKIE_NAME = 'product_list_limit'; /** - * Cookie + * Cookie manager * - * @var \Magento\Framework\Stdlib\Cookie + * @var CookieManager */ - protected $cookie; + protected $cookieManager; /** * Request @@ -68,14 +70,14 @@ class Toolbar protected $request; /** - * @param \Magento\Framework\Stdlib\Cookie $cookie + * @param CookieManager $cookieManager * @param \Magento\Framework\App\Request\Http $request */ public function __construct( - \Magento\Framework\Stdlib\Cookie $cookie, + CookieManager $cookieManager, \Magento\Framework\App\Request\Http $request ) { - $this->cookie = $cookie; + $this->cookieManager = $cookieManager; $this->request = $request; } @@ -86,7 +88,7 @@ class Toolbar */ public function getOrder() { - return $this->cookie->get(self::ORDER_COOKIE_NAME); + return $this->cookieManager->getCookie(self::ORDER_COOKIE_NAME); } /** @@ -96,7 +98,7 @@ class Toolbar */ public function getDirection() { - return $this->cookie->get(self::DIRECTION_COOKIE_NAME); + return $this->cookieManager->getCookie(self::DIRECTION_COOKIE_NAME); } /** @@ -106,7 +108,7 @@ class Toolbar */ public function getMode() { - return $this->cookie->get(self::MODE_COOKIE_NAME); + return $this->cookieManager->getCookie(self::MODE_COOKIE_NAME); } /** @@ -116,7 +118,7 @@ class Toolbar */ public function getLimit() { - return $this->cookie->get(self::LIMIT_COOKIE_NAME); + return $this->cookieManager->getCookie(self::LIMIT_COOKIE_NAME); } /** * Return current page from request diff --git a/app/code/Magento/Catalog/Service/V1/Category/Attribute/ReadService.php b/app/code/Magento/Catalog/Service/V1/Category/Attribute/ReadService.php index 203b0929fa789c695f7cd98e83d8e86effc5fc09..d87dd83d78b2470ca03a42eaa1772461896d4cc9 100644 --- a/app/code/Magento/Catalog/Service/V1/Category/Attribute/ReadService.php +++ b/app/code/Magento/Catalog/Service/V1/Category/Attribute/ReadService.php @@ -24,7 +24,7 @@ namespace Magento\Catalog\Service\V1\Category\Attribute; use Magento\Catalog\Model\Product\Attribute\Source\InputtypeFactory; -use Magento\Catalog\Service\V1\Product\MetadataServiceInterface; +use Magento\Catalog\Service\V1\Category\MetadataServiceInterface; /** * Class ReadService diff --git a/app/code/Magento/Catalog/Service/V1/Data/Category.php b/app/code/Magento/Catalog/Service/V1/Data/Category.php index ffc879eb60b3dc9f0c7c267d6e18264b87cea8e2..23bfb991365b6e18a44392e28885497acefcde52 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Category.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Category.php @@ -25,6 +25,9 @@ namespace Magento\Catalog\Service\V1\Data; use \Magento\Framework\Service\Data\Eav\AbstractObject; +/** + * @codeCoverageIgnore + */ class Category extends AbstractObject { const ID = 'id'; diff --git a/app/code/Magento/Catalog/Service/V1/Data/CategoryBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/CategoryBuilder.php index 392999218e1551d90ac39388c603bfb3a0cd1b26..0837be16b1d008bf5cef114db9a4535268df1eaf 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/CategoryBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/CategoryBuilder.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Data; use Magento\Framework\Service\Data\Eav\AbstractObjectBuilder; use Magento\Framework\Service\Data\Eav\AttributeValueBuilder; +/** + * @codeCoverageIgnore + */ class CategoryBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Attribute.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Attribute.php index 924bd369d2a86cdbd071e073e100c9a869fbc5c1..c2c85ecde7932468474596cd35017554e9282035 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Attribute.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Attribute.php @@ -25,6 +25,9 @@ namespace Magento\Catalog\Service\V1\Data\Eav; use Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class Attribute extends AbstractObject { const ID = 'id'; diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeBuilder.php index 9729c8b1464fc50c5844fcfd21929f0d179917fd..035195e6705c93949f0d57ba9055ad48fb27453d 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeBuilder.php @@ -25,6 +25,9 @@ namespace Magento\Catalog\Service\V1\Data\Eav; use Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class AttributeBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeGroup.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeGroup.php index 6c171121b09307f23beae613ddaea40f23389b3f..9b53a749fefb2a292bc0b928c2f43211de52df5b 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeGroup.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeGroup.php @@ -25,7 +25,9 @@ namespace Magento\Catalog\Service\V1\Data\Eav; - +/** + * @codeCoverageIgnore + */ class AttributeGroup extends \Magento\Framework\Service\Data\AbstractObject { /**#@+ diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeGroupBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeGroupBuilder.php index 84b2a10e7033a4950d368b20c21604f07a0e76f3..956d1e147f70228c831245d55933dc6f785a05fa 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeGroupBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeGroupBuilder.php @@ -24,6 +24,9 @@ */ namespace Magento\Catalog\Service\V1\Data\Eav; +/** + * @codeCoverageIgnore + */ class AttributeGroupBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeMetadata.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeMetadata.php index b976790286818566fe08ab4f1e6f60ded87e3c35..1c68f0ce64cc1779e423a85f8a18f0378dbedad1 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeMetadata.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeMetadata.php @@ -28,6 +28,8 @@ use Magento\Framework\Service\Data\Eav\MetadataObjectInterface; /** * Class AttributeMetadata + * + * @codeCoverageIgnore */ class AttributeMetadata extends AbstractObject implements MetadataObjectInterface { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeMetadataBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeMetadataBuilder.php index c369b3b9fca1df2517c1ae8c15362fbbe6160314..ee31ce5d88a01e9b3686ddba2ecc5627cf2bc578 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeMetadataBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeMetadataBuilder.php @@ -78,6 +78,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param int $attributeId * @return $this + * @codeCoverageIgnore */ public function setAttributeId($attributeId) { @@ -89,6 +90,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param string $attributeCode * @return $this + * @codeCoverageIgnore */ public function setAttributeCode($attributeCode) { @@ -100,6 +102,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isSystem * @return $this + * @codeCoverageIgnore */ public function setSystem($isSystem) { @@ -111,6 +114,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param string $frontendInput * @return $this + * @codeCoverageIgnore */ public function setFrontendInput($frontendInput) { @@ -122,6 +126,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param \Magento\Catalog\Service\V1\Data\Eav\ValidationRule[] $validationRules * @return $this + * @codeCoverageIgnore */ public function setValidationRules($validationRules) { @@ -133,6 +138,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param \Magento\Catalog\Service\V1\Data\Eav\Option[] $options * @return $this + * @codeCoverageIgnore */ public function setOptions($options) { @@ -144,6 +150,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $visible * @return $this + * @codeCoverageIgnore */ public function setVisible($visible) { @@ -155,6 +162,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $required * @return $this + * @codeCoverageIgnore */ public function setRequired($required) { @@ -166,6 +174,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isUserDefined * @return $this + * @codeCoverageIgnore */ public function setUserDefined($isUserDefined) { @@ -177,6 +186,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param \Magento\Catalog\Service\V1\Data\Eav\Product\Attribute\FrontendLabel[] $frontendLabel * @return $this + * @codeCoverageIgnore */ public function setFrontendLabel($frontendLabel) { @@ -188,6 +198,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param string $note * @return $this + * @codeCoverageIgnore */ public function setNote($note) { @@ -197,6 +208,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut /** * @param string $backendType * @return AttributeMetadataBuilder + * @codeCoverageIgnore */ public function setBackendType($backendType) { @@ -208,6 +220,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param string $value * @return $this + * @codeCoverageIgnore */ public function setBackendModel($value) { @@ -219,6 +232,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param string $value * @return $this + * @codeCoverageIgnore */ public function setSourceModel($value) { @@ -230,6 +244,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param string $value * @return $this + * @codeCoverageIgnore */ public function setDefaultValue($value) { @@ -241,6 +256,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isUnique * @return $this + * @codeCoverageIgnore */ public function setUnique($isUnique) { @@ -291,6 +307,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isConfigurable * @return $this + * @codeCoverageIgnore */ public function setConfigurable($isConfigurable) { @@ -302,6 +319,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isSearchable * @return $this + * @codeCoverageIgnore */ public function setSearchable($isSearchable) { @@ -313,6 +331,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isVisibleInAdvancedSearch * @return $this + * @codeCoverageIgnore */ public function setVisibleInAdvancedSearch($isVisibleInAdvancedSearch) { @@ -324,6 +343,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isComparable * @return $this + * @codeCoverageIgnore */ public function setComparable($isComparable) { @@ -335,6 +355,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isUsedForPromoRules * @return $this + * @codeCoverageIgnore */ public function setUsedForPromoRules($isUsedForPromoRules) { @@ -346,6 +367,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isVisibleOnFront * @return $this + * @codeCoverageIgnore */ public function setVisibleOnFront($isVisibleOnFront) { @@ -357,6 +379,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $usedInProductListing * @return $this + * @codeCoverageIgnore */ public function setUsedInProductListing($usedInProductListing) { @@ -368,6 +391,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param string $scope * @return $this + * @codeCoverageIgnore */ public function setScope($scope) { @@ -379,6 +403,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $usedForSortBy * @return $this + * @codeCoverageIgnore */ public function setUsedForSortBy($usedForSortBy) { @@ -390,6 +415,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isFilterable * @return $this + * @codeCoverageIgnore */ public function setFilterable($isFilterable) { @@ -401,6 +427,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isFilterableInSearch * @return $this + * @codeCoverageIgnore */ public function setFilterableInSearch($isFilterableInSearch) { @@ -412,6 +439,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param int $position * @return $this + * @codeCoverageIgnore */ public function setPosition($position) { @@ -423,6 +451,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isWysiwygEnabled * @return $this + * @codeCoverageIgnore */ public function setWysiwygEnabled($isWysiwygEnabled) { @@ -434,6 +463,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param bool $isHtmlAllowedOnFront * @return $this + * @codeCoverageIgnore */ public function setHtmlAllowedOnFront($isHtmlAllowedOnFront) { @@ -445,6 +475,7 @@ class AttributeMetadataBuilder extends AbstractObjectBuilder implements Attribut * * @param string $frontendClass * @return $this + * @codeCoverageIgnore */ public function setFrontendClass($frontendClass) { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet.php index 5252a88c30ce9bc657153dc56ee60465a21d8b85..0f44e1456985fd4763c418bac4f493d465f1b8af 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet.php @@ -25,6 +25,8 @@ namespace Magento\Catalog\Service\V1\Data\Eav; /** * Contains basic attribute set data + * + * @codeCoverageIgnore */ class AttributeSet extends \Magento\Framework\Service\Data\AbstractObject { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet/Attribute.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet/Attribute.php index 09162ff996916dec46893207e9f88b77046fbe0a..ca5f0d4bb4567c5db93479fe3d74df2c52904bbd 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet/Attribute.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet/Attribute.php @@ -23,6 +23,9 @@ */ namespace Magento\Catalog\Service\V1\Data\Eav\AttributeSet; +/** + * @codeCoverageIgnore + */ class Attribute extends \Magento\Framework\Service\Data\AbstractObject { /** diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet/AttributeBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet/AttributeBuilder.php index e7d5faf8f021fc033c4ff248bd397b55f27515b8..1c6ed7765e024b31a6c04aadbb627d1532dee368 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet/AttributeBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSet/AttributeBuilder.php @@ -23,6 +23,9 @@ */ namespace Magento\Catalog\Service\V1\Data\Eav\AttributeSet; +/** + * @codeCoverageIgnore + */ class AttributeBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSetBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSetBuilder.php index cf90d2ce147d4fd680af70eba7e845e3cfc9f7bf..a0bbf1041c297191167f578c1e1d71e046614323 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSetBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/AttributeSetBuilder.php @@ -25,6 +25,8 @@ namespace Magento\Catalog\Service\V1\Data\Eav; /** * Builder for AttributeSet + * + * @codeCoverageIgnore */ class AttributeSetBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/AttributeMetadata.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/AttributeMetadata.php index 055c6efc5a9b4980f8cb093ac931c7702dd42bd1..e5f30774eea9d92ab498f31c68aa5ecac26cb0b0 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/AttributeMetadata.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/AttributeMetadata.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Data\Eav\Category; use \Magento\Framework\Service\Data\Eav\AbstractObject; use Magento\Framework\Service\Data\Eav\MetadataObjectInterface; +/** + * @codeCoverageIgnore + */ class AttributeMetadata extends AbstractObject implements MetadataObjectInterface { const ATTRIBUTE_ID = 'attribute_id'; diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/AttributeMetadataBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/AttributeMetadataBuilder.php index d6824b2cdb2395a1630aea0ed6e6d32d777c2b80..25d3aecb6f759ef57d2642de2fcfd411c80ff82c 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/AttributeMetadataBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/AttributeMetadataBuilder.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Data\Eav\Category; use Magento\Framework\Service\Data\AbstractObjectBuilder; use Magento\Framework\Service\Data\AttributeMetadataBuilderInterface; +/** + * @codeCoverageIgnore + */ class AttributeMetadataBuilder extends AbstractObjectBuilder implements AttributeMetadataBuilderInterface { /** diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/Tree.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/Tree.php index 087b9798c7fb72374eb0accc49763c54ead92499..e7b565601f26c16e03396b39176255c92716501f 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/Tree.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/Tree.php @@ -23,6 +23,9 @@ */ namespace Magento\Catalog\Service\V1\Data\Eav\Category; +/** + * @codeCoverageIgnore + */ class Tree extends \Magento\Framework\Service\Data\AbstractObject { const ID = 'id'; diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/TreeBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/TreeBuilder.php index f46ca55aaddcf7b06f5893365e0df2ed7840d8d5..7df8edcb3aac92fa4ef893455961440abfb32e65 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/TreeBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Category/TreeBuilder.php @@ -25,6 +25,9 @@ namespace Magento\Catalog\Service\V1\Data\Eav\Category; use Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class TreeBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Option.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Option.php index 19cbe278dcd300cadb19748101adfef253d01dc8..ecaee1ffe46c2e720f598ba1e7804b102609a6d7 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Option.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Option.php @@ -27,6 +27,8 @@ namespace Magento\Catalog\Service\V1\Data\Eav; /** * Class Option + * + * @codeCoverageIgnore */ class Option extends \Magento\Framework\Service\Data\AbstractObject { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Option/Label.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Option/Label.php index 44b449ff673464cd38ebf3366ba7bffead33d538..7243e8ff445ad5dc7c6a7a3cc58d1f20f34d3da7 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Option/Label.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Option/Label.php @@ -27,6 +27,8 @@ namespace Magento\Catalog\Service\V1\Data\Eav\Option; /** * Class Store Scope Label + * + * @codeCoverageIgnore */ class Label extends \Magento\Framework\Service\Data\AbstractObject { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Option/LabelBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Option/LabelBuilder.php index 67b10003e1c3a322512e95ef4bf44f6cd70a45ab..d4a738f43f8003d11f1d420aaeefb7a2c2c530c0 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Option/LabelBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Option/LabelBuilder.php @@ -25,6 +25,8 @@ namespace Magento\Catalog\Service\V1\Data\Eav\Option; /** * Class LabelBuilder + * + * @codeCoverageIgnore */ class LabelBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/OptionBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/OptionBuilder.php index cd7d935cf10acfbc6df2820803807f5eb3b7fa20..ebfdb17e5ed258138d04cfd31e1223ad5b7bafd3 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/OptionBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/OptionBuilder.php @@ -25,6 +25,8 @@ namespace Magento\Catalog\Service\V1\Data\Eav; /** * Class OptionBuilder + * + * @codeCoverageIgnore */ class OptionBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/FrontendLabel.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/FrontendLabel.php index 35fe144767164d1f16e032c696c1c81adf54e99c..800c49c322d1a877ae36219a0da62cf245f94d81 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/FrontendLabel.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/FrontendLabel.php @@ -25,7 +25,9 @@ namespace Magento\Catalog\Service\V1\Data\Eav\Product\Attribute; /** * Class FrontendLabel + * * @package Magento\Catalog\Service\V1\Data\Eav\Product\Attribute + * @codeCoverageIgnore */ class FrontendLabel extends \Magento\Framework\Service\Data\AbstractObject { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/FrontendLabelBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/FrontendLabelBuilder.php index d5760cdc1964b1577c35187b9a1193eab8b4e2ba..4ab427b19aebe8f0a4719c0b889e62db5ddb2099 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/FrontendLabelBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/FrontendLabelBuilder.php @@ -25,7 +25,9 @@ namespace Magento\Catalog\Service\V1\Data\Eav\Product\Attribute; /** * Class FrontendLabelBuilder + * * @package Magento\Catalog\Service\V1\Data\Eav\Product\Attribute + * @codeCoverageIgnore */ class FrontendLabelBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/Type.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/Type.php index dbc20c98100dde9d92f574d418dac94e2b7340bd..56ee3e0a772b93e34d4c2a5bc1736cb38113a41e 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/Type.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/Type.php @@ -25,7 +25,9 @@ namespace Magento\Catalog\Service\V1\Data\Eav\Product\Attribute; /** * Class Type + * * @package Magento\Catalog\Service\V1\Data\Eav\Product\Attribute + * @codeCoverageIgnore */ class Type extends \Magento\Framework\Service\Data\AbstractObject { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/TypeBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/TypeBuilder.php index b10dbb881c62937cf0b7d9b2eaac78f6e89c4d29..ac73f8b2bdc95301e0de8185acb01212a94ab3e6 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/TypeBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/Product/Attribute/TypeBuilder.php @@ -25,7 +25,9 @@ namespace Magento\Catalog\Service\V1\Data\Eav\Product\Attribute; /** * Class TypeBuilder + * * @package Magento\Catalog\Service\V1\Data\Eav\Product\Attribute + * @codeCoverageIgnore */ class TypeBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/ValidationRule.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/ValidationRule.php index 58d5c41db20b240b8741e9926baf11fbbb127ccf..b8bffbe65aaa031144fb4d3012c86cf9e76da964 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/ValidationRule.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/ValidationRule.php @@ -23,6 +23,9 @@ */ namespace Magento\Catalog\Service\V1\Data\Eav; +/** + * @codeCoverageIgnore + */ class ValidationRule extends \Magento\Framework\Service\Data\AbstractObject { /** diff --git a/app/code/Magento/Catalog/Service/V1/Data/Eav/ValidationRuleBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Eav/ValidationRuleBuilder.php index b4b92a4807359479856965a808b30746a6a8d383..3e8e2e8bbbf136c790d29713855490dd4bc1bb55 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Eav/ValidationRuleBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Eav/ValidationRuleBuilder.php @@ -23,6 +23,9 @@ */ namespace Magento\Catalog\Service\V1\Data\Eav; +/** + * @codeCoverageIgnore + */ class ValidationRuleBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Data/Product.php b/app/code/Magento/Catalog/Service/V1/Data/Product.php index a7787e91123348cb88d64c76a7d4a0810fe8ecbd..a145c34a19a0a2246aa6c5153f190a0d6fb56d12 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Product.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Product.php @@ -24,8 +24,7 @@ namespace Magento\Catalog\Service\V1\Data; /** - * Class Product - * @package Magento\Catalog\Service\V1\Data + * @codeCoverageIgnore */ class Product extends \Magento\Framework\Service\Data\Eav\AbstractObject { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Product/Attribute/SearchResults.php b/app/code/Magento/Catalog/Service/V1/Data/Product/Attribute/SearchResults.php index 79f949093450ca19ef7a703242c4cb6e71d75c60..bf20f550096030bbcf9edffce3231f5e6d00eea1 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Product/Attribute/SearchResults.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Product/Attribute/SearchResults.php @@ -26,6 +26,8 @@ namespace Magento\Catalog\Service\V1\Data\Product\Attribute; /** * SearchResults Service Data Object used for the search service requests + * + * @codeCoverageIgnore */ class SearchResults extends \Magento\Framework\Service\V1\Data\SearchResults { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Product/Attribute/SearchResultsBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Product/Attribute/SearchResultsBuilder.php index bca9e55cac657441fa18473a67d92d4ae0de7a26..2b415cd9fc764a59ae04dce39f6815ec85427c4d 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Product/Attribute/SearchResultsBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Product/Attribute/SearchResultsBuilder.php @@ -33,6 +33,7 @@ use Magento\Catalog\Service\V1\Data\Eav\AttributeBuilder; * Builder for the SearchResults Service Data Object * * @method \Magento\Catalog\Service\V1\Data\Product\Attribute\SearchResults create() + * @codeCoverageIgnore */ class SearchResultsBuilder extends \Magento\Framework\Service\V1\Data\AbstractSearchResultsBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Product/GroupPrice.php b/app/code/Magento/Catalog/Service/V1/Data/Product/GroupPrice.php index 83e8212c9e919061dd54b1cad2d5474790b336ec..688280cc154da1ef15bd98cb19c4c324d1e88c91 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Product/GroupPrice.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Product/GroupPrice.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Data\Product; use Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class GroupPrice extends AbstractObject { const CUSTOMER_GROUP_ID = 'customer_group_id'; diff --git a/app/code/Magento/Catalog/Service/V1/Data/Product/GroupPriceBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Product/GroupPriceBuilder.php index 3210e1dc84f71da1488fdccd3c7ccf7874f98a09..f67be6d393a074f412d6e6680aeb5f83a170507a 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Product/GroupPriceBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Product/GroupPriceBuilder.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Data\Product; use Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class GroupPriceBuilder extends AbstractObjectBuilder { /** @@ -36,8 +39,7 @@ class GroupPriceBuilder extends AbstractObjectBuilder */ public function setCustomerGroupId($customerGroupId) { - $this->_set(GroupPrice::CUSTOMER_GROUP_ID, $customerGroupId); - return $this; + return $this->_set(GroupPrice::CUSTOMER_GROUP_ID, $customerGroupId); } /** @@ -48,7 +50,6 @@ class GroupPriceBuilder extends AbstractObjectBuilder */ public function setValue($value) { - $this->_set(GroupPrice::VALUE, $value); - return $this; + return $this->_set(GroupPrice::VALUE, $value); } } diff --git a/app/code/Magento/Catalog/Service/V1/Data/Product/SearchResults.php b/app/code/Magento/Catalog/Service/V1/Data/Product/SearchResults.php index 6061fbe257b7e93cc1caee5cc427986d1de79b42..82d953376fa08d0480679fed33646ef92facf355 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Product/SearchResults.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Product/SearchResults.php @@ -26,6 +26,8 @@ namespace Magento\Catalog\Service\V1\Data\Product; /** * SearchResults Service Data Object used for the search service requests + * + * @codeCoverageIgnore */ class SearchResults extends \Magento\Framework\Service\V1\Data\SearchResults { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Product/SearchResultsBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Product/SearchResultsBuilder.php index 0e6fff2558aa6f349bce1a68cf570ceb2ede33ed..ff3d295ff11da2ff8afd914f60b402966725b0c5 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Product/SearchResultsBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Product/SearchResultsBuilder.php @@ -33,6 +33,7 @@ use Magento\Catalog\Service\V1\Data\ProductBuilder; * Builder for the SearchResults Service Data Object * * @method \Magento\Catalog\Service\V1\Data\Product\SearchResults create() + * @codeCoverageIgnore */ class SearchResultsBuilder extends AbstractSearchResultsBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Data/Product/TierPrice.php b/app/code/Magento/Catalog/Service/V1/Data/Product/TierPrice.php index 75e554ed306e3a39797d449a7f684cfe759b0d63..ec368ff4fc4e476cbe1da56c3a818d76dcc74302 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Product/TierPrice.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Product/TierPrice.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Data\Product; use Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class TierPrice extends AbstractObject { const QTY = 'qty'; diff --git a/app/code/Magento/Catalog/Service/V1/Data/Product/TierPriceBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/Product/TierPriceBuilder.php index 4903056618bd1f070c711a392589b8c0d400f6e8..2f30002783f69180b7e7ccecbd15c8b982119362 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/Product/TierPriceBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/Product/TierPriceBuilder.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Data\Product; use Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class TierPriceBuilder extends AbstractObjectBuilder { /** @@ -36,8 +39,7 @@ class TierPriceBuilder extends AbstractObjectBuilder */ public function setQty($qty) { - $this->_set(TierPrice::QTY, $qty); - return $this; + return $this->_set(TierPrice::QTY, $qty); } /** @@ -48,7 +50,6 @@ class TierPriceBuilder extends AbstractObjectBuilder */ public function setValue($value) { - $this->_set(TierPrice::VALUE, $value); - return $this; + return $this->_set(TierPrice::VALUE, $value); } } diff --git a/app/code/Magento/Catalog/Service/V1/Data/ProductBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/ProductBuilder.php index a4a024726d0d756f787b521aa69ed4cc006b928d..29a1dab4cffce887a903e1caf2c5409500d7b374 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/ProductBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/ProductBuilder.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Data; use Magento\Framework\Service\Data\Eav\AttributeValueBuilder; +/** + * @codeCoverageIgnore + */ class ProductBuilder extends \Magento\Framework\Service\Data\Eav\AbstractObjectBuilder { /** @@ -109,7 +112,6 @@ class ProductBuilder extends \Magento\Framework\Service\Data\Eav\AbstractObjectB /** * Set created time - * * @SuppressWarnings(PHPMD.UnusedFormalParameter) * * @param string|null $value @@ -125,7 +127,6 @@ class ProductBuilder extends \Magento\Framework\Service\Data\Eav\AbstractObjectB /** * Set updated time - * * @SuppressWarnings(PHPMD.UnusedFormalParameter) * * @param string|null $value diff --git a/app/code/Magento/Catalog/Service/V1/Data/ProductMapper.php b/app/code/Magento/Catalog/Service/V1/Data/ProductMapper.php index c3f71253c3c71056aab7e52fdc4c27a2cad07842..a9839d8a83c49ec1efa59da1c5901a87ec5b59a2 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/ProductMapper.php +++ b/app/code/Magento/Catalog/Service/V1/Data/ProductMapper.php @@ -23,7 +23,7 @@ */ namespace Magento\Catalog\Service\V1\Data; -use \Magento\Framework\Service\EavDataObjectConverter; +use Magento\Framework\Service\EavDataObjectConverter; class ProductMapper { @@ -56,14 +56,14 @@ class ProductMapper \Magento\Catalog\Model\Product $productModel = null ) { /** @var \Magento\Catalog\Model\Product $productModel */ - $productModel = $productModel ?: $this->productFactory->create(); + $productModel = $productModel ? : $this->productFactory->create(); $productModel->addData(EavDataObjectConverter::toFlatArray($product)); if (!is_numeric($productModel->getAttributeSetId())) { $productModel->setAttributeSetId($productModel->getDefaultAttributeSetId()); } if (!$productModel->hasTypeId()) { $productModel->setTypeId(\Magento\Catalog\Model\Product\Type::DEFAULT_TYPE); - } else if (!isset($this->productTypes->getTypes()[$productModel->getTypeId()])) { + } elseif (!isset($this->productTypes->getTypes()[$productModel->getTypeId()])) { throw new \RuntimeException('Illegal product type'); } return $productModel; diff --git a/app/code/Magento/Catalog/Service/V1/Data/ProductType.php b/app/code/Magento/Catalog/Service/V1/Data/ProductType.php index b7a4a49e5ecb14eca10fe3bed26e52c57c9bb2eb..3e4db01284a7fd4ac5468a9cc6d1480873f0f3cc 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/ProductType.php +++ b/app/code/Magento/Catalog/Service/V1/Data/ProductType.php @@ -27,6 +27,9 @@ namespace Magento\Catalog\Service\V1\Data; use \Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class ProductType extends AbstractObject { const NAME = 'name'; diff --git a/app/code/Magento/Catalog/Service/V1/Data/ProductTypeBuilder.php b/app/code/Magento/Catalog/Service/V1/Data/ProductTypeBuilder.php index df36d34454c5e949ca7c417114fbe66ecc3cec62..f55af7699621212c5a0f047bb2d7d7cc6488669a 100644 --- a/app/code/Magento/Catalog/Service/V1/Data/ProductTypeBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Data/ProductTypeBuilder.php @@ -27,6 +27,9 @@ namespace Magento\Catalog\Service\V1\Data; use Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class ProductTypeBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/MetadataService.php b/app/code/Magento/Catalog/Service/V1/MetadataService.php index e98cace4823fe514cac1c01eef7f7d4d0a338942..6e0429f3ea6dcb9e181889eabd8f1d6e93ca5a0e 100644 --- a/app/code/Magento/Catalog/Service/V1/MetadataService.php +++ b/app/code/Magento/Catalog/Service/V1/MetadataService.php @@ -118,7 +118,7 @@ class MetadataService implements MetadataServiceInterface { /** @var AbstractAttribute $attribute */ $attribute = $this->eavConfig->getAttribute($entityType, $attributeCode); - if ($attribute) { + if ($attribute->getId()) { $attributeMetadata = $this->createMetadataAttribute($attribute); return $attributeMetadata; } else { @@ -146,7 +146,7 @@ class MetadataService implements MetadataServiceInterface $attributeCollection->join( ['eav_entity_attribute' => $attributeCollection->getTable('eav_entity_attribute')], 'main_table.attribute_id = eav_entity_attribute.attribute_id', - ['attribute_set_id'] + [] ); $attributeCollection->join( array('additional_table' => $attributeCollection->getTable('catalog_eav_attribute')), @@ -164,8 +164,12 @@ class MetadataService implements MetadataServiceInterface ($sortOrder->getDirection() == SearchCriteria::SORT_ASC) ? 'ASC' : 'DESC' ); } + $totalCount = $attributeCollection->getSize(); + // Group attributes by id to prevent duplicates with different attribute sets + $attributeCollection->addAttributeGrouping(); + $attributeCollection->setCurPage($searchCriteria->getCurrentPage()); $attributeCollection->setPageSize($searchCriteria->getPageSize()); diff --git a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntry.php b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntry.php index 489990c592608f6c226c5f7dfdbc2ccfc28d9e22..c64c07cfb2bd8103a9a3bc16a5042edf3af410fd 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntry.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntry.php @@ -27,6 +27,9 @@ namespace Magento\Catalog\Service\V1\Product\Attribute\Media\Data; use \Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class GalleryEntry extends AbstractObject { const ID = 'id'; diff --git a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryBuilder.php b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryBuilder.php index b613592fe078053de3d7bf5d81ac1d0d9699705e..cc8a291c378507e7d4b5068d818dc657ef9f9fde 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryBuilder.php @@ -27,6 +27,9 @@ namespace Magento\Catalog\Service\V1\Product\Attribute\Media\Data; use Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class GalleryEntryBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryContent.php b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryContent.php index 87777694aa15db1ada8636cc787f8c958a6c89ab..06f27e701a3a10c11d28b6ea0beceeb0be9af3dd 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryContent.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryContent.php @@ -27,6 +27,9 @@ namespace Magento\Catalog\Service\V1\Product\Attribute\Media\Data; use \Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class GalleryEntryContent extends AbstractObject { const DATA = 'data'; diff --git a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryContentBuilder.php b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryContentBuilder.php index 16ee223a7ac95fad837a9b0c9167d4399c9a1307..d27987f242c0416c768d950e508bf4b722b0907b 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryContentBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/GalleryEntryContentBuilder.php @@ -27,6 +27,9 @@ namespace Magento\Catalog\Service\V1\Product\Attribute\Media\Data; use Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class GalleryEntryContentBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/MediaImage.php b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/MediaImage.php index 6b4769a693e64290186b16c9628e08371f8fb3db..518344871cdc32bff6f3b0dda00247b3b82acaad 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/MediaImage.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/MediaImage.php @@ -25,6 +25,8 @@ namespace Magento\Catalog\Service\V1\Product\Attribute\Media\Data; /** * Contains media_image attribute info + * + * @codeCoverageIgnore */ class MediaImage extends \Magento\Framework\Service\Data\AbstractObject { diff --git a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/MediaImageBuilder.php b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/MediaImageBuilder.php index 3689228c4731a281708db43d85c21a2aeabe2a13..a259169ac6a3249d494d92cd76ce0c61ba82f8ca 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/MediaImageBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Attribute/Media/Data/MediaImageBuilder.php @@ -25,6 +25,8 @@ namespace Magento\Catalog\Service\V1\Product\Attribute\Media\Data; /** * Builder for media_image + * + * @codeCoverageIgnore */ class MediaImageBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option.php b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option.php index bac5ba32df272979ca33c27d35e3a19c4ab679df..7824a5f6c1661466bdf44a892b695f37f30a8f59 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option.php +++ b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option.php @@ -24,6 +24,9 @@ namespace Magento\Catalog\Service\V1\Product\CustomOptions\Data; +/** + * @codeCoverageIgnore + */ class Option extends \Magento\Framework\Service\Data\AbstractObject { const OPTION_ID = 'option_id'; diff --git a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata.php b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata.php index 9c9a653ea7846072c9b2148c5e38dfadadc0c464..d14864dd2a6b03376f2142dacbecb5830c1925b2 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata.php +++ b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata.php @@ -24,6 +24,9 @@ namespace Magento\Catalog\Service\V1\Product\CustomOptions\Data\Option; +/** + * @codeCoverageIgnore + */ class Metadata extends \Magento\Framework\Service\Data\Eav\AbstractObject { const PRICE = 'price'; diff --git a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata/Reader/File.php b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata/Reader/File.php index e7f36b3b92f6733e64c2f4b6c298bfaaef738e60..c22eccce678bc4a7d2ec536371bc4369816d41eb 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata/Reader/File.php +++ b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata/Reader/File.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Product\CustomOptions\Data\Option\Metadata\ use \Magento\Catalog\Service\V1\Product\CustomOptions\Data\Option\Metadata; +/** + * @codeCoverageIgnore + */ class File extends DefaultReader { /** diff --git a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata/Reader/Text.php b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata/Reader/Text.php index 00264921875a08d9b6709997e2318e9cdd137032..515abff9bb63f81006a2b2be39115d46abd81c55 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata/Reader/Text.php +++ b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/Metadata/Reader/Text.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Product\CustomOptions\Data\Option\Metadata\ use \Magento\Catalog\Service\V1\Product\CustomOptions\Data\Option\Metadata; +/** + * @codeCoverageIgnore + */ class Text extends DefaultReader { /** diff --git a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/MetadataBuilder.php b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/MetadataBuilder.php index c696ab11613819c12470a2041e819d77a83852f1..0099bd2105571b226ef4f297e888f038ab79fd30 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/MetadataBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/Option/MetadataBuilder.php @@ -26,6 +26,9 @@ namespace Magento\Catalog\Service\V1\Product\CustomOptions\Data\Option; use Magento\Framework\Service\Data\Eav\AttributeValueBuilder; +/** + * @codeCoverageIgnore + */ class MetadataBuilder extends \Magento\Framework\Service\Data\Eav\AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionBuilder.php b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionBuilder.php index c56dddae5720a9d5ca5fd2250ee3d4ef8f1ddc19..917c0e9c47a6e119481a3e4421d843d14d3928aa 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionBuilder.php @@ -24,6 +24,9 @@ namespace Magento\Catalog\Service\V1\Product\CustomOptions\Data; +/** + * @codeCoverageIgnore + */ class OptionBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionType.php b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionType.php index e55da5970ac3811d8554fbbfbf5b0b92b3c8c64f..52120dd97232e1ad544c7b9dec24f740b9875008 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionType.php +++ b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionType.php @@ -24,6 +24,9 @@ namespace Magento\Catalog\Service\V1\Product\CustomOptions\Data; +/** + * @codeCoverageIgnore + */ class OptionType extends \Magento\Framework\Service\Data\AbstractObject { const LABEL = 'label'; diff --git a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionTypeBuilder.php b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionTypeBuilder.php index ea08d6857c9d8e10da2b8c155024e48411aac4ea..f8929bbcb8aa6e7997f645e7e27fc8e64f487789 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionTypeBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Product/CustomOptions/Data/OptionTypeBuilder.php @@ -24,6 +24,9 @@ namespace Magento\Catalog\Service\V1\Product\CustomOptions\Data; +/** + * @codeCoverageIgnore + */ class OptionTypeBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { /** diff --git a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkAttribute.php b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkAttribute.php index 3531cbdadfba716b3e6e546ed065b537ba6dba19..d27e016a4776cb5933f96883a90d988baecd7e7b 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkAttribute.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkAttribute.php @@ -26,6 +26,8 @@ namespace Magento\Catalog\Service\V1\Product\Link\Data; /** * LinkAttribute Service Data Object + * + * @codeCoverageIgnore */ class LinkAttribute extends \Magento\Framework\Service\Data\AbstractObject { diff --git a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkAttributeBuilder.php b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkAttributeBuilder.php index 24da159e9b56967cda27e3da24a49bc587a13cb7..e4c1ef236e9be540d38c91e3484f93338bfb2964 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkAttributeBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkAttributeBuilder.php @@ -28,6 +28,7 @@ namespace Magento\Catalog\Service\V1\Product\Link\Data; * Builder for the LinkAttribute Service Data Object * * @method LinkAttribute create() + * @codeCoverageIgnore */ class LinkAttributeBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkType.php b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkType.php index 94269b810145ef9aeb189162a08f661f40fec1fb..ead7b37d93906e21ae44d6c53067d551cbe4602a 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkType.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkType.php @@ -26,6 +26,8 @@ namespace Magento\Catalog\Service\V1\Product\Link\Data; /** * LinkType Service Data Object + * + * @codeCoverageIgnore */ class LinkType extends \Magento\Framework\Service\Data\AbstractObject { diff --git a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkTypeBuilder.php b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkTypeBuilder.php index 3abf3bfb8d268877f7c2e1ebfc066abea910dac2..efabf5457726c28fffe3a2734b57d199592c3bd7 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkTypeBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/LinkTypeBuilder.php @@ -28,6 +28,7 @@ namespace Magento\Catalog\Service\V1\Product\Link\Data; * Builder for the LinkType Service Data Object * * @method LinkType create() + * @codeCoverageIgnore */ class LinkTypeBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLink.php b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLink.php index f809e6c5e1ad3da2a43aab18940fd3dc34038b12..210589037ce80c35eefa76f398ac92ccbf0c4e96 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLink.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLink.php @@ -26,6 +26,8 @@ namespace Magento\Catalog\Service\V1\Product\Link\Data; /** * ProductLink Service Data Object + * + * @codeCoverageIgnore */ class ProductLink extends \Magento\Framework\Service\Data\Eav\AbstractObject { diff --git a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLink/ProductEntity/ConverterPool.php b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLink/ProductEntity/ConverterPool.php index d464e11d1031d4854ea964cd151df967c8860bf7..cfd9e9d166b3256e67922717b5c56b4d6af81d9e 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLink/ProductEntity/ConverterPool.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLink/ProductEntity/ConverterPool.php @@ -24,6 +24,9 @@ namespace Magento\Catalog\Service\V1\Product\Link\Data\ProductLink\ProductEntity; +/** + * @codeCoverageIgnore + */ class ConverterPool { /** diff --git a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLinkBuilder.php b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLinkBuilder.php index 0e6fb868f39d790daa655e84d2cfbfb3bf3210cd..237f37a68d5969a3a210211af5ad2b45116ca066 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLinkBuilder.php +++ b/app/code/Magento/Catalog/Service/V1/Product/Link/Data/ProductLinkBuilder.php @@ -30,6 +30,7 @@ use Magento\Framework\Service\Data\Eav\AttributeValueBuilder; * Builder for the ProductLink Service Data Object * * @method ProductLink create() + * @codeCoverageIgnore */ class ProductLinkBuilder extends \Magento\Framework\Service\Data\Eav\AbstractObjectBuilder { diff --git a/app/code/Magento/Catalog/Service/V1/Product/MetadataService.php b/app/code/Magento/Catalog/Service/V1/Product/MetadataService.php index 9df4a08a1b0067c05a34d4d950e37b8dfed1bc85..4f6760add2ea76df81ee53fc69ce0312048038cd 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/MetadataService.php +++ b/app/code/Magento/Catalog/Service/V1/Product/MetadataService.php @@ -90,12 +90,14 @@ class MetadataService implements MetadataServiceInterface public function getProductAttributesMetadata($attributeSetId = self::DEFAULT_ATTRIBUTE_SET_ID) { /** @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder $searchCriteria */ - $this->searchCriteriaBuilder->addFilter([ - $this->filterBuilder - ->setField('attribute_set_id') - ->setValue($attributeSetId) - ->create() - ]); + $this->searchCriteriaBuilder->addFilter( + [ + $this->filterBuilder + ->setField('attribute_set_id') + ->setValue($attributeSetId) + ->create() + ] + ); return $this->metadataService->getAllAttributeMetadata( MetadataServiceInterface::ENTITY_TYPE, diff --git a/app/code/Magento/Catalog/Service/V1/Product/TierPriceService.php b/app/code/Magento/Catalog/Service/V1/Product/TierPriceService.php index c45a24f22a6294654c1b7f797c6080c082f82e50..e50690efc28af8045741d2147f186ec66ff654a2 100644 --- a/app/code/Magento/Catalog/Service/V1/Product/TierPriceService.php +++ b/app/code/Magento/Catalog/Service/V1/Product/TierPriceService.php @@ -1,6 +1,5 @@ <?php /** - * * Magento * * NOTICE OF LICENSE @@ -26,9 +25,9 @@ namespace Magento\Catalog\Service\V1\Product; use Magento\Catalog\Model\ProductFactory; use Magento\Catalog\Model\ProductRepository; -use Magento\Framework\Exception\InputException; -use Magento\Framework\Exception\CouldNotSaveException; use Magento\Catalog\Service\V1\Data\Product; +use Magento\Framework\Exception\CouldNotSaveException; +use Magento\Framework\Exception\InputException; class TierPriceService implements TierPriceServiceInterface { @@ -88,7 +87,6 @@ class TierPriceService implements TierPriceServiceInterface /** * {@inheritdoc} - * * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) */ @@ -180,10 +178,12 @@ class TierPriceService implements TierPriceServiceInterface if ((is_numeric($customerGroupId) && intval($price['cust_group']) === intval($customerGroupId)) || ($customerGroupId === 'all' && $price['all_groups']) ) { - $this->priceBuilder->populateWithArray(array( - Product\TierPrice::VALUE => $price[$priceKey], - Product\TierPrice::QTY => $price['price_qty'] - )); + $this->priceBuilder->populateWithArray( + array( + Product\TierPrice::VALUE => $price[$priceKey], + Product\TierPrice::QTY => $price['price_qty'] + ) + ); $prices[] = $this->priceBuilder->create(); } } diff --git a/app/code/Magento/Catalog/composer.json b/app/code/Magento/Catalog/composer.json index c07830f16b78a36250e5f6375f30c39023da899c..1a172db36af276d302c28f5df90e037da1500d52 100644 --- a/app/code/Magento/Catalog/composer.json +++ b/app/code/Magento/Catalog/composer.json @@ -3,33 +3,33 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/module-index": "0.1.0-alpha92", - "magento/module-indexer": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-log": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-widget": "0.1.0-alpha92", - "magento/module-wishlist": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-bundle": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-catalog-rule": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-catalog-search": "0.1.0-alpha92", - "magento/module-product-alert": "0.1.0-alpha92", - "magento/module-url-rewrite": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/module-index": "0.1.0-alpha93", + "magento/module-indexer": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-log": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-widget": "0.1.0-alpha93", + "magento/module-wishlist": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-bundle": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-catalog-rule": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-catalog-search": "0.1.0-alpha93", + "magento/module-product-alert": "0.1.0-alpha93", + "magento/module-url-rewrite": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml index a5384dcb686874b690ac484f9c0a4e9332f3d2ab..308ca624099d37db207e8b7772ddcf29ae8a5ead 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml @@ -29,7 +29,7 @@ ?> <?php echo $this->getFormInitScripts() ?> <form id="edit_form" action="<?php echo $this->escapeHtml($this->getSaveUrl()) ?>" method="post"> - <input name="form_key" type="hidden" value="<?php echo $this->escapeHtml($this->getFormKey()) ?>" /> + <input name="form_key" type="hidden" value="<?php echo $this->escapeHtml($this->getFormKey()) ?>" /> <?php echo $this->getChildHtml('form') ?> </form> <div class="page-actions" <?php echo $this->getUiId('content-header') ?>> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/attribute.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/attribute.phtml index 613071e624460ed174d12b22298a2ef3968e4506..f2a35f1688fe621b36f67517a1e2e262e5ab0821 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/attribute.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/attribute.phtml @@ -22,11 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> -<div class="page-actions"> - <?php echo $this->getBackButtonHtml() ?> - <?php echo $this->getCancelButtonHtml() ?> - <?php echo $this->getSaveButtonHtml() ?> -</div> + <form action="<?php echo $this->getSaveUrl() ?>" method="post" id="attributes-edit-form" class="attributes-edit-form" enctype="multipart/form-data"> <?php echo $this->getBlockHtml('formkey')?> </form> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/inventory.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/inventory.phtml index 4a9d9e33cdcf0abcf2272888db9bec8605c3bd24..a771fe1d058fe874d3edcb6874a1a3093c63ba19 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/inventory.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/inventory.phtml @@ -23,24 +23,29 @@ */ ?> <script type="text/javascript"> - function toggleValueElementsWithCheckbox(checkbox) { - var td = $(checkbox).up('.field'); - var checkboxes = td.getElementsBySelector('input[type="checkbox"]'); - var inputs = td.getElementsBySelector('input[type!="checkbox"]', 'select', 'textarea'); - if (checkboxes.size()>1) { - inputs.each(function(input){ - input.disabled = (!checkbox.checked || checkboxes[0].checked); - checkboxes[0].disabled = !checkbox.checked; - }); - } else { - inputs.each(function(input){ - input.disabled = !checkbox.checked; - }); - } - } + require(['jquery'], function($){ + $('[data-role=toggle-editability-all]').change(function(e) { + var toggler = $(this); + var field = toggler.parents('.field'); + var someEditable = $('input[type!="checkbox"], select, textarea', field); + var someEditableCheckboxes = $('input[type="checkbox"]', field).not(toggler); + if(someEditableCheckboxes.length){ + someEditable.prop('disabled', !toggler.prop('checked') || someEditableCheckboxes.prop('checked')); + someEditableCheckboxes.prop('disabled', !toggler.prop('checked')); + } else { + someEditable.prop('disabled', !toggler.prop('checked')); + } + }); + $('[data-role=toggle-editability]').change(function(e) { + var useConfigSettings = $(this); + var field = useConfigSettings.parents('.field'); + var someEditable = $('input[type!="checkbox"], select, textarea', field); + someEditable.prop('disabled', useConfigSettings.prop('checked')); + }); + }); </script> -<div class="fieldset-wrapper form-inline"> +<div class="fieldset-wrapper form-inline advanced-inventory-edit"> <div class="fieldset-wrapper-title"> <strong class="title"> <span><?php echo __('Advanced Inventory') ?></span> @@ -48,203 +53,322 @@ </div> <div class="fieldset-wrapper-content"> <fieldset class="fieldset" id="table_cataloginventory"> - <div class="field"> - <label class="label" for="inventory_manage_stock"> - <span><?php echo __('Manage Stock') ?></span> - </label> - <div class="control"> - <select id="inventory_manage_stock" name="<?php echo $this->getFieldSuffix() ?>[manage_stock]" class="select" disabled="disabled"> - <option value="1"><?php echo __('Yes') ?></option> - <option value="0"<?php if ($this->getConfigFieldValue('manage_stock') == 0): ?> selected="selected"<?php endif; ?>><?php echo __('No') ?></option> - </select> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <input name="<?php echo $this->getFieldSuffix() ?>[use_config_manage_stock]" type="checkbox" id="inventory_use_config_manage_stock" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_manage_stock_checkbox'));" value="1" checked="checked" disabled="disabled" /> - <label for="inventory_use_config_manage_stock" class="normal"><?php echo __('Use Config Settings') ?></label> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_manage_stock_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_manage_stock_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field"> + <label class="label" for="inventory_manage_stock"> + <span><?php echo __('Manage Stock') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <select id="inventory_manage_stock" name="<?php echo $this->getFieldSuffix() ?>[manage_stock]" + class="select" disabled="disabled"> + <option value="1"><?php echo __('Yes') ?></option> + <option + value="0"<?php if ($this->getConfigFieldValue('manage_stock') == 0): ?> selected="selected"<?php endif; ?>><?php echo __('No') ?></option> + </select> + </div> + <div class="field choice"> + <input name="<?php echo $this->getFieldSuffix() ?>[use_config_manage_stock]" type="checkbox" + id="inventory_use_config_manage_stock" data-role="toggle-editability" value="1" + checked="checked" disabled="disabled"/> + <label for="inventory_use_config_manage_stock" + class="label"><span><?php echo __('Use Config Settings') ?></span></label> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_manage_stock_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_manage_stock_checkbox" + class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> - <div class="field required"> - <label class="label" for="inventory_qty"> - <span><?php echo __('Qty') ?></span> - </label> - <div class="control"> - <input type="text" class="input-text required-entry validate-number" id="inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[qty]" value="<?php echo $this->getDefaultConfigValue('qty')*1 ?>" disabled="disabled" /> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_qty_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field required"> + <label class="label" for="inventory_qty"> + <span><?php echo __('Qty') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <input type="text" class="input-text required-entry validate-number" id="inventory_qty" + name="<?php echo $this->getFieldSuffix() ?>[qty]" + value="<?php echo $this->getDefaultConfigValue('qty') * 1 ?>" disabled="disabled"/> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_qty_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_qty_checkbox" + class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> - <div class="field"> - <label class="label" for="inventory_min_qty"> - <span><?php echo __('Minimum Qty for Item\'s Status to be Out of Stock') ?></span> - </label> - <div class="control"> - <input type="text" class="input-text validate-number" id="inventory_min_qty" name="<?php echo $this->getFieldSuffix() ?>[min_qty]" value="<?php echo $this->getDefaultConfigValue('min_qty')*1 ?>" disabled="disabled" /> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <input type="checkbox" id="inventory_use_config_min_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_min_qty]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_min_qty_checkbox'));" checked="checked" disabled="disabled" /> - <label for="inventory_use_config_min_qty" class="normal"><?php echo __('Use Config Settings') ?></label> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_min_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_min_qty_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field with-addon"> + <label class="label" for="inventory_min_qty"> + <span><?php echo __('Minimum Qty for Item\'s Status to be Out of Stock') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <input type="text" class="input-text validate-number" id="inventory_min_qty" + name="<?php echo $this->getFieldSuffix() ?>[min_qty]" + value="<?php echo $this->getDefaultConfigValue('min_qty') * 1 ?>" disabled="disabled"/> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_use_config_min_qty" + name="<?php echo $this->getFieldSuffix() ?>[use_config_min_qty]" value="1" + data-role="toggle-editability" checked="checked" disabled="disabled"/> + <label for="inventory_use_config_min_qty" class="label"> + <span><?php echo __('Use Config Settings') ?></span> + </label> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_min_qty_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_min_qty_checkbox" + class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> - <div class="field"> - <label class="label" for="inventory_min_sale_qty"> - <span><?php echo __('Minimum Qty Allowed in Shopping Cart') ?></span> - </label> - <div class="control"> - <input type="text" class="input-text validate-number" id="inventory_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[min_sale_qty]" value="<?php echo $this->getDefaultConfigValue('min_sale_qty')*1 ?>" disabled="disabled" /> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <input type="checkbox" id="inventory_use_config_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_min_sale_qty]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_min_sale_qty_checkbox'));" checked="checked" disabled="disabled" /> - <label for="inventory_use_config_min_sale_qty" class="normal"><?php echo __('Use Config Settings') ?></label> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_min_sale_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_min_sale_qty_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field"> + <label class="label" for="inventory_min_sale_qty"> + <span><?php echo __('Minimum Qty Allowed in Shopping Cart') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <input type="text" class="input-text validate-number" id="inventory_min_sale_qty" + name="<?php echo $this->getFieldSuffix() ?>[min_sale_qty]" + value="<?php echo $this->getDefaultConfigValue('min_sale_qty') * 1 ?>" + disabled="disabled"/> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_use_config_min_sale_qty" + name="<?php echo $this->getFieldSuffix() ?>[use_config_min_sale_qty]" value="1" data-role="toggle-editability" checked="checked" disabled="disabled"/> + <label for="inventory_use_config_min_sale_qty" + class="label"><span><?php echo __('Use Config Settings') ?></span></label> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_min_sale_qty_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_min_sale_qty_checkbox" + class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> - <div class="field"> - <label class="label" for="inventory_max_sale_qty"> - <span><?php echo __('Maximum Qty Allowed in Shopping Cart') ?></span> - </label> - <div class="control"> - <input type="text" class="input-text validate-number" id="inventory_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[max_sale_qty]" value="<?php echo $this->getDefaultConfigValue('max_sale_qty')*1 ?>" disabled="disabled" /> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <input type="checkbox" id="inventory_use_config_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_max_sale_qty]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_max_sale_checkbox'));" checked="checked" disabled="disabled" /> - <label for="inventory_use_config_max_sale_qty" class="normal"><?php echo __('Use Config Settings') ?></label> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_max_sale_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_max_sale_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field"> + <label class="label" for="inventory_max_sale_qty"> + <span><?php echo __('Maximum Qty Allowed in Shopping Cart') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <input type="text" class="input-text validate-number" id="inventory_max_sale_qty" + name="<?php echo $this->getFieldSuffix() ?>[max_sale_qty]" + value="<?php echo $this->getDefaultConfigValue('max_sale_qty') * 1 ?>" + disabled="disabled"/> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_use_config_max_sale_qty" + name="<?php echo $this->getFieldSuffix() ?>[use_config_max_sale_qty]" value="1" data-role="toggle-editability" checked="checked" disabled="disabled"/> + <label for="inventory_use_config_max_sale_qty" + class="label"><span><?php echo __('Use Config Settings') ?></span></label> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_max_sale_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_max_sale_checkbox" + class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> - <div class="field"> - <label class="label" for="inventory_is_qty_decimal"> - <span><?php echo __('Qty Uses Decimals') ?></span> - </label> - <div class="control"> - <select id="inventory_is_qty_decimal" name="<?php echo $this->getFieldSuffix() ?>[is_qty_decimal]" class="select" disabled="disabled"> - <option value="0"><?php echo __('No') ?></option> - <option value="1"<?php if ($this->getDefaultConfigValue('is_qty_decimal')==1): ?> selected="selected"<?php endif; ?>><?php echo __('Yes') ?></option> - </select> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_is_qty_decimal_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_is_qty_decimal_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field"> + <label class="label" for="inventory_is_qty_decimal"> + <span><?php echo __('Qty Uses Decimals') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <select id="inventory_is_qty_decimal" + name="<?php echo $this->getFieldSuffix() ?>[is_qty_decimal]" class="select" + disabled="disabled"> + <option value="0"><?php echo __('No') ?></option> + <option + value="1"<?php if ($this->getDefaultConfigValue('is_qty_decimal') == 1): ?> selected="selected"<?php endif; ?>><?php echo __('Yes') ?></option> + </select> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_is_qty_decimal_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_is_qty_decimal_checkbox" + class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> - <div class="field"> - <label class="label" for="inventory_backorders"> - <span><?php echo __('Backorders') ?></span> - </label> - <div class="control"> - <select id="inventory_backorders" name="<?php echo $this->getFieldSuffix() ?>[backorders]" class="select" disabled="disabled"> - <?php foreach ($this->getBackordersOption() as $option): ?> - <?php $_selected = ($option['value'] == $this->getDefaultConfigValue('backorders')) ? ' selected="selected"' : '' ?> - <option value="<?php echo $option['value'] ?>"<?php echo $_selected ?>><?php echo $option['label'] ?></option> - <?php endforeach; ?> - </select> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <input type="checkbox" id="inventory_use_config_backorders" name="<?php echo $this->getFieldSuffix() ?>[use_config_backorders]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_backorders_checkbox'));" checked="checked" disabled="disabled" /> - <label for="inventory_use_config_backorders" class="normal"><?php echo __('Use Config Settings') ?></label> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_backorders_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_backorders_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field"> + <label class="label" for="inventory_backorders"> + <span><?php echo __('Backorders') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <select id="inventory_backorders" name="<?php echo $this->getFieldSuffix() ?>[backorders]" + class="select" disabled="disabled"> + <?php foreach ($this->getBackordersOption() as $option): ?> + <?php $_selected = ($option['value'] == $this->getDefaultConfigValue('backorders')) ? ' selected="selected"' : '' ?> + <option + value="<?php echo $option['value'] ?>"<?php echo $_selected ?>><?php echo $option['label'] ?></option> + <?php endforeach; ?> + </select> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_use_config_backorders" + name="<?php echo $this->getFieldSuffix() ?>[use_config_backorders]" value="1" data-role="toggle-editability" checked="checked" disabled="disabled"/> + <label for="inventory_use_config_backorders" + class="label"><span><?php echo __('Use Config Settings') ?></span></label> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_backorders_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_backorders_checkbox" class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> + </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> - <div class="field"> - <label class="label" for="inventory_notify_stock_qty"> - <span><?php echo __('Notify for Quantity Below') ?></span> - </label> - <div class="control"> - <input type="text" class="input-text validate-number" id="inventory_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[notify_stock_qty]" value="<?php echo $this->getDefaultConfigValue('notify_stock_qty')*1 ?>" disabled="disabled" /> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <input type="checkbox" id="inventory_use_config_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_notify_stock_qty]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_notify_stock_qty_checkbox'));" checked="checked" disabled="disabled" /> - <label for="inventory_use_config_notify_stock_qty" class="normal"><?php echo __('Use Config Settings') ?></label> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_notify_stock_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_notify_stock_qty_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field"> + <label class="label" for="inventory_notify_stock_qty"> + <span><?php echo __('Notify for Quantity Below') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <input type="text" class="input-text validate-number" id="inventory_notify_stock_qty" + name="<?php echo $this->getFieldSuffix() ?>[notify_stock_qty]" + value="<?php echo $this->getDefaultConfigValue('notify_stock_qty') * 1 ?>" + disabled="disabled"/> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_use_config_notify_stock_qty" + name="<?php echo $this->getFieldSuffix() ?>[use_config_notify_stock_qty]" value="1" data-role="toggle-editability" checked="checked" disabled="disabled"/> + <label for="inventory_use_config_notify_stock_qty" + class="label"><span><?php echo __('Use Config Settings') ?></span></label> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_notify_stock_qty_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_notify_stock_qty_checkbox" + class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> - <div class="field"> - <label class="label" for="inventory_enable_qty_increments"> - <span><?php echo __('Enable Qty Increments') ?></span> - </label> - <div class="control"> - <select id="inventory_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[enable_qty_increments]" class="select" disabled="disabled"> - <option value="1"><?php echo __('Yes') ?></option> - <option value="0"<?php if ($this->getDefaultConfigValue('enable_qty_increments') == 0): ?> selected="selected"<?php endif; ?>><?php echo __('No') ?></option> - </select> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <input type="checkbox" id="inventory_use_config_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[use_config_enable_qty_increments]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, [$('inventory_enable_qty_increments_checkbox')]);" checked="checked" disabled="disabled" /> - <label for="inventory_use_config_enable_qty_increments" class="normal"><?php echo __('Use Config Settings') ?></label> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_enable_qty_increments_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_enable_qty_increments_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field"> + <label class="label" for="inventory_enable_qty_increments"> + <span><?php echo __('Enable Qty Increments') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <select id="inventory_enable_qty_increments" + name="<?php echo $this->getFieldSuffix() ?>[enable_qty_increments]" class="select" + disabled="disabled"> + <option value="1"><?php echo __('Yes') ?></option> + <option + value="0"<?php if ($this->getDefaultConfigValue('enable_qty_increments') == 0): ?> selected="selected"<?php endif; ?>><?php echo __('No') ?></option> + </select> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_use_config_enable_qty_increments" + name="<?php echo $this->getFieldSuffix() ?>[use_config_enable_qty_increments]" value="1" data-role="toggle-editability" checked="checked" disabled="disabled"/> + <label for="inventory_use_config_enable_qty_increments" + class="label"><span><?php echo __('Use Config Settings') ?></span></label> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_enable_qty_increments_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_enable_qty_increments_checkbox" + class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> - <div class="field"> - <label class="label" for="inventory_qty_increments"> - <span><?php echo __('Qty Increments') ?></span> - </label> - <div class="control"> - <input type="text" class="input-text validate-number" id="inventory_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[qty_increments]" value="<?php echo $this->getDefaultConfigValue('qty_increments')*1 ?>" disabled="disabled" /> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <input type="checkbox" id="inventory_use_config_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[use_config_qty_increments]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, [$('inventory_qty_increments_checkbox')]);" checked="checked" disabled="disabled" /> - <label for="inventory_use_config_qty_increments" class="normal"><?php echo __('Use Config Settings') ?></label> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_qty_increments_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_qty_increments_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field"> + <label class="label" for="inventory_qty_increments"> + <span><?php echo __('Qty Increments') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <input type="text" class="input-text validate-number" id="inventory_qty_increments" + name="<?php echo $this->getFieldSuffix() ?>[qty_increments]" + value="<?php echo $this->getDefaultConfigValue('qty_increments') * 1 ?>" + disabled="disabled"/> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_use_config_qty_increments" + name="<?php echo $this->getFieldSuffix() ?>[use_config_qty_increments]" value="1" data-role="toggle-editability" checked="checked" disabled="disabled"/> + <label for="inventory_use_config_qty_increments" + class="label"><span><?php echo __('Use Config Settings') ?></span></label> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_qty_increments_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_qty_increments_checkbox" + class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> - <div class="field"> - <label class="label" for="inventory_stock_availability"> - <span><?php echo __('Stock Availability') ?></span> - </label> - <div class="control"> - <select id="inventory_stock_availability" name="<?php echo $this->getFieldSuffix() ?>[is_in_stock]" class="select" disabled="disabled"> - <option value="1"><?php echo __('In Stock') ?></option> - <option value="0"<?php if ($this->getDefaultConfigValue('is_in_stock')==0): ?> selected<?php endif; ?>><?php echo __('Out of Stock') ?></option> - </select> - </div> - <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"> - <span class="attribute-change-checkbox"> - <input type="checkbox" id="inventory_stock_availability_checkbox" onclick="toggleValueElementsWithCheckbox(this)" /> - <label for="inventory_stock_availability_checkbox" class="normal"><?php echo __('Change') ?></label> - </span> + <div class="field"> + <label class="label" for="inventory_stock_availability"> + <span><?php echo __('Stock Availability') ?></span> + </label> + + <div class="control"> + <div class="fields-group-2"> + <div class="field"> + <select id="inventory_stock_availability" + name="<?php echo $this->getFieldSuffix() ?>[is_in_stock]" class="select" + disabled="disabled"> + <option value="1"><?php echo __('In Stock') ?></option> + <option + value="0"<?php if ($this->getDefaultConfigValue('is_in_stock') == 0): ?> selected<?php endif; ?>><?php echo __('Out of Stock') ?></option> + </select> + </div> + <div class="field choice"> + <input type="checkbox" id="inventory_stock_availability_checkbox" data-role="toggle-editability-all"/> + <label for="inventory_stock_availability_checkbox" + class="label"><span><?php echo __('Change') ?></span></label> + </div> </div> </div> + <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>"></div> + </div> </fieldset> </div> </div> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml index 38f0a80033ece2fa18d754eb2ce4ab2a8ec3d2e4..ad5804a32c728face4f382ff0cbadd3583be5d54 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/websites.phtml @@ -24,72 +24,72 @@ ?> <div class="fieldset-wrapper" id="add-products-to-website-wrapper"> - <div class="fieldset-wrapper-title"> - <strong class="title"> + <fieldset class="fieldset" id="grop_fields"> + <legend class="legend"> <span><?php echo __('Add Product To Websites') ?></span> - </strong> - </div> - <div class="fieldset-wrapper-content" id="add-products-to-website-content"> - <fieldset class="fieldset" id="grop_fields"> - <?php foreach ($this->getWebsiteCollection() as $_website): ?> - <div class="website-name"> - <input name="add_website_ids[]" value="<?php echo $_website->getId() ?>" <?php if($this->getWebsitesReadonly()): ?>disabled="disabled"<?php endif;?> class="checkbox website-checkbox" id="add_product_website_<?php echo $_website->getId() ?>" type="checkbox" /> - <strong><label for="add_product_website_<?php echo $_website->getId() ?>"><?php echo $this->escapeHtml($_website->getName()) ?></label></strong> - </div> - <div class="webiste-groups" id="add_product_website_<?php echo $_website->getId() ?>_data"> - <?php foreach ($this->getGroupCollection($_website) as $_group): ?> - <h4><?php echo $this->escapeHtml($_group->getName()) ?></h4> - <div class="group-stores"> - <table class="data-table"> + </legend> + <br> + <div class="store-scope"> + <div class="store-tree" id="add-products-to-website-content"> + <?php foreach ($this->getWebsiteCollection() as $_website): ?> + <div class="website-name"> + <input name="add_website_ids[]" value="<?php echo $_website->getId() ?>" <?php if($this->getWebsitesReadonly()): ?>disabled="disabled"<?php endif;?> class="checkbox website-checkbox" id="add_product_website_<?php echo $_website->getId() ?>" type="checkbox" /> + <label for="add_product_website_<?php echo $_website->getId() ?>"><?php echo $this->escapeHtml($_website->getName()) ?></label> + </div> + <dl class="webiste-groups" id="add_product_website_<?php echo $_website->getId() ?>_data"> + <?php foreach ($this->getGroupCollection($_website) as $_group): ?> + <dt><?php echo $this->escapeHtml($_group->getName()) ?></dt> + <dd class="group-stores"> + <ul> <?php foreach ($this->getStoreCollection($_group) as $_store): ?> - <tr> - <td><?php echo $this->escapeHtml($_store->getName()) ?></td> - <td> </td> - </tr> + <li> + <?php echo $this->escapeHtml($_store->getName()) ?> + </li> <?php endforeach; ?> - </table> - </div> - <?php endforeach; ?> - </div> - <?php endforeach; ?> - </fieldset> - </div> + </ul> + </dd> + <?php endforeach; ?> + </dl> + <?php endforeach; ?> + </div> + </div> + </fieldset> </div> <div class="fieldset-wrapper" id="remove-products-to-website-wrapper"> - <div class="fieldset-wrapper-title"> - <strong class="title"> + <fieldset class="fieldset" id="grop_fields"> + <legend class="legend"> <span><?php echo __('Remove Product From Websites') ?></span> - </strong> - </div> - <div class="fieldset-wrapper-content" id="remove-products-to-website-content"> - <fieldset class="fieldset" id="grop_fields"> - <div class="message info"> - <div><?php echo __("Items that you do not want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></div> - </div> - <?php foreach ($this->getWebsiteCollection() as $_website): ?> - <div class="website-name"> - <input name="remove_website_ids[]" value="<?php echo $_website->getId() ?>" <?php if($this->getWebsitesReadonly()): ?>disabled="disabled"<?php endif;?> class="checkbox website-checkbox" id="remove_product_website_<?php echo $_website->getId() ?>" type="checkbox"/> - <strong><label for="remove_product_website_<?php echo $_website->getId() ?>"><?php echo $this->escapeHtml($_website->getName()) ?></label></strong> - </div> - <div class="webiste-groups" id="remove_product_website_<?php echo $_website->getId() ?>_data"> - <?php foreach ($this->getGroupCollection($_website) as $_group): ?> - <h4><?php echo $this->escapeHtml($_group->getName()) ?></h4> - <div class="group-stores"> - <table class="data-table"> + </legend> + <br> + <div class="message info"> + <div><?php echo __("Items that you do not want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></div> + </div> + <div class="store-scope"> + <div class="store-tree" id="remove-products-to-website-content"> + <?php foreach ($this->getWebsiteCollection() as $_website): ?> + <div class="website-name"> + <input name="remove_website_ids[]" value="<?php echo $_website->getId() ?>" <?php if($this->getWebsitesReadonly()): ?>disabled="disabled"<?php endif;?> class="checkbox website-checkbox" id="remove_product_website_<?php echo $_website->getId() ?>" type="checkbox" /> + <label for="remove_product_website_<?php echo $_website->getId() ?>"><?php echo $this->escapeHtml($_website->getName()) ?></label> + </div> + <dl class="webiste-groups" id="remove_product_website_<?php echo $_website->getId() ?>_data"> + <?php foreach ($this->getGroupCollection($_website) as $_group): ?> + <dt><?php echo $this->escapeHtml($_group->getName()) ?></dt> + <dd class="group-stores"> + <ul> <?php foreach ($this->getStoreCollection($_group) as $_store): ?> - <tr> - <td><?php echo $this->escapeHtml($_store->getName()) ?></td> - <td> </td> - </tr> + <li> + <?php echo $this->escapeHtml($_store->getName()) ?> + </li> <?php endforeach; ?> - </table> - </div> - <?php endforeach; ?> - </div> - <?php endforeach; ?> - </fieldset> - </div> + </ul> + </dd> + <?php endforeach; ?> + </dl> + <?php endforeach; ?> + </div> + </div> + </fieldset> </div> <script type="text/javascript"> diff --git a/app/code/Magento/Catalog/view/base/templates/product/price/configured_price.phtml b/app/code/Magento/Catalog/view/base/templates/product/price/configured_price.phtml index 56937eac033e301edfa174e944b2e17d165c53a2..9eb83124fe9597d49b55f53bbaed41226c0c2687 100644 --- a/app/code/Magento/Catalog/view/base/templates/product/price/configured_price.phtml +++ b/app/code/Magento/Catalog/view/base/templates/product/price/configured_price.phtml @@ -26,10 +26,13 @@ /** @var \Magento\Catalog\Pricing\Render\FinalPriceBox $this */ /** @var \Magento\Catalog\Pricing\Price\ConfiguredPrice $configuredPrice */ $configuredPrice = $this->getPrice(); +$priceLabel = ($this->getPriceLabel() !== null) + ? $this->getPriceLabel() + : __('Price as configured:'); ?> <p class="price-as-configured"> <?php echo $this->renderAmount($configuredPrice->getAmount(), [ - 'display_label' => __('Price as configured:'), + 'display_label' => $priceLabel, 'price_id' => $this->getPriceId('product-price-'), 'include_container' => false ]); ?> diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php index b5203bb1b3146643ce2ee88ec48fe38a91893579..2bc539809f5cd3623b90054ff099c18939b859fc 100644 --- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php +++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php @@ -311,7 +311,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity 'use_config_enable_qty_inc' => 1, 'qty_increments' => 0, 'use_config_qty_increments' => 1, - 'is_in_stock' => 0, + 'is_in_stock' => 1, 'low_stock_date' => null, 'stock_status_changed_auto' => 0, 'is_decimal_divided' => 0 @@ -1786,9 +1786,8 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity $row ); - $row = $this->stockItemService->processIsInStock($row); - if ($this->stockItemService->isQty($this->_newSku[$rowData[self::COL_SKU]]['type_id'])) { + $row = $this->stockItemService->processIsInStock($row); if ($this->stockItemService->verifyNotification($row['product_id'])) { $row['low_stock_date'] = $this->_localeDate->date( null, diff --git a/app/code/Magento/CatalogImportExport/composer.json b/app/code/Magento/CatalogImportExport/composer.json index a34245cd89aaa9298133d9ee9ec69d98ce0f4191..7d42c81ef9f459dd3580f2f7e3712328e0ae6ae8 100644 --- a/app/code/Magento/CatalogImportExport/composer.json +++ b/app/code/Magento/CatalogImportExport/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-core": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-import-export": "0.1.0-alpha92", - "magento/module-indexer": "0.1.0-alpha92", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-core": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-import-export": "0.1.0-alpha93", + "magento/module-indexer": "0.1.0-alpha93", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "ext-ctype": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/CatalogInventory/Model/Stock/Item.php b/app/code/Magento/CatalogInventory/Model/Stock/Item.php index 0f0560ec06a5689f9c77b1a0a799a9b249a37b03..14b744233ac1ef33cefbf742e8817dd166d025e4 100644 --- a/app/code/Magento/CatalogInventory/Model/Stock/Item.php +++ b/app/code/Magento/CatalogInventory/Model/Stock/Item.php @@ -903,6 +903,9 @@ class Item extends \Magento\Framework\Model\AbstractModel $isQty = $this->stockItemService->isQty($typeId); if ($isQty) { + if (!$this->getId()) { + $this->processIsInStock(); + } if ($this->getManageStock() && !$this->verifyStock()) { $this->setIsInStock(false)->setStockStatusChangedAutomaticallyFlag(true); } diff --git a/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockCriteria.php b/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockCriteria.php index 9749bd1d0584c020f897130e0f5a890c12ede113..d4eadf3b1753755170c95a59346da02df42e988e 100644 --- a/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockCriteria.php +++ b/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockCriteria.php @@ -27,6 +27,8 @@ use Magento\Framework\Service\Data\AbstractObject; /** * Low stock criteria data object + * + * @codeCoverageIgnore */ class LowStockCriteria extends AbstractObject { diff --git a/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockCriteriaBuilder.php b/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockCriteriaBuilder.php index bd8e901e44b2f9e6f08007ddcaf7b1ad62063dbb..881696e5479b98b71b3a2cde0b8202af7ac3bc5b 100644 --- a/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockCriteriaBuilder.php +++ b/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockCriteriaBuilder.php @@ -25,6 +25,8 @@ namespace Magento\CatalogInventory\Service\V1\Data; /** * Low stock criteria builder + * + * @codeCoverageIgnore */ class LowStockCriteriaBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { diff --git a/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockResult.php b/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockResult.php index 9da2be7298291831be4b5659153aca68b55dd1f9..0da79133f8a9943d88a8e4e89048a4674e92fd04 100644 --- a/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockResult.php +++ b/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockResult.php @@ -27,6 +27,8 @@ use Magento\Framework\Service\Data\AbstractObject; /** * Low stock search result data object + * + * @codeCoverageIgnore */ class LowStockResult extends AbstractObject { diff --git a/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockResultBuilder.php b/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockResultBuilder.php index 1f4e01a9207ef6c2b66e22f80f55c4fd23289dec..06b44cd0063e02938fef8e38676989ff39e33695 100644 --- a/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockResultBuilder.php +++ b/app/code/Magento/CatalogInventory/Service/V1/Data/LowStockResultBuilder.php @@ -25,6 +25,8 @@ namespace Magento\CatalogInventory\Service\V1\Data; /** * Low stock search result builder object + * + * @codeCoverageIgnore */ class LowStockResultBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { diff --git a/app/code/Magento/CatalogInventory/Service/V1/Data/StockItem.php b/app/code/Magento/CatalogInventory/Service/V1/Data/StockItem.php index daaa73998048e9fcda916d74736f836505f564b2..c1c8475dbe7528666b12005bf4b5e5295f6ee908 100644 --- a/app/code/Magento/CatalogInventory/Service/V1/Data/StockItem.php +++ b/app/code/Magento/CatalogInventory/Service/V1/Data/StockItem.php @@ -27,6 +27,8 @@ use Magento\Framework\Service\Data\AbstractObject; /** * Stock item data object + * + * @codeCoverageIgnore */ class StockItem extends AbstractObject { diff --git a/app/code/Magento/CatalogInventory/Service/V1/Data/StockItemDetails.php b/app/code/Magento/CatalogInventory/Service/V1/Data/StockItemDetails.php index d6fa3ad65e9edcde989ea3cd69989b0a718496e9..9850bb0926956d45e024c5e92c4c3d8ff4089be2 100644 --- a/app/code/Magento/CatalogInventory/Service/V1/Data/StockItemDetails.php +++ b/app/code/Magento/CatalogInventory/Service/V1/Data/StockItemDetails.php @@ -27,6 +27,8 @@ use Magento\Framework\Service\Data\AbstractObject; /** * Stock item details data object + * + * @codeCoverageIgnore */ class StockItemDetails extends AbstractObject { diff --git a/app/code/Magento/CatalogInventory/Service/V1/Data/StockItemDetailsBuilder.php b/app/code/Magento/CatalogInventory/Service/V1/Data/StockItemDetailsBuilder.php index 7ee9ae24a2957952c3ff36979914982eb3b1c784..3031efe101bd73b7b5f15381a2c8e2bfe7dc0cd0 100644 --- a/app/code/Magento/CatalogInventory/Service/V1/Data/StockItemDetailsBuilder.php +++ b/app/code/Magento/CatalogInventory/Service/V1/Data/StockItemDetailsBuilder.php @@ -27,6 +27,8 @@ use Magento\Framework\Service\Data\AbstractObjectBuilder; /** * Stock item details data builder + * + * @codeCoverageIgnore */ class StockItemDetailsBuilder extends AbstractObjectBuilder { diff --git a/app/code/Magento/CatalogInventory/Service/V1/Data/StockStatus.php b/app/code/Magento/CatalogInventory/Service/V1/Data/StockStatus.php index 62d942b34a6f45fe14e71b6661e7ba5fc1b237cb..97d83297818c8865942fb9c0f0fb0ef6c1b9dd60 100644 --- a/app/code/Magento/CatalogInventory/Service/V1/Data/StockStatus.php +++ b/app/code/Magento/CatalogInventory/Service/V1/Data/StockStatus.php @@ -27,6 +27,8 @@ use Magento\Framework\Service\Data\AbstractObject; /** * Stock status data object + * + * @codeCoverageIgnore */ class StockStatus extends AbstractObject { diff --git a/app/code/Magento/CatalogInventory/composer.json b/app/code/Magento/CatalogInventory/composer.json index 3dca3ff3f962ecb3aaa9e92558ad6c7160867521..260782670d923c7b7d9d664eed0d246fb2a135c1 100644 --- a/app/code/Magento/CatalogInventory/composer.json +++ b/app/code/Magento/CatalogInventory/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-indexer": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-indexer": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/CatalogRule/composer.json b/app/code/Magento/CatalogRule/composer.json index b2d53a4a92a3d9efd7ea80e716b4722c788d6bcb..c553599dace6ac6d690246449b174c4eda0bb610 100644 --- a/app/code/Magento/CatalogRule/composer.json +++ b/app/code/Magento/CatalogRule/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-rule": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-index": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-rule": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-index": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/CatalogSearch/composer.json b/app/code/Magento/CatalogSearch/composer.json index 2da508b5d13ca13a60102bef90b3bbb57004e5cf..e9e65d38a7410dc22ba83d4b4816522c55eb1126 100644 --- a/app/code/Magento/CatalogSearch/composer.json +++ b/app/code/Magento/CatalogSearch/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-indexer": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-indexer": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/CatalogUrlRewrite/composer.json b/app/code/Magento/CatalogUrlRewrite/composer.json index 62b37171d84ab75b50a0a40ffaa1b556560d6ff3..6b6f62123436df92937a5fabe54512db6c80d736 100644 --- a/app/code/Magento/CatalogUrlRewrite/composer.json +++ b/app/code/Magento/CatalogUrlRewrite/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-store": "0.1.0-alpha92", - "magento/module-url-redirect": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92" + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-store": "0.1.0-alpha93", + "magento/module-url-redirect": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Centinel/composer.json b/app/code/Magento/Centinel/composer.json index 12621985669b1cfcc191e3d5a8edfcb7753c7405..5812e3e21b6eba2276db76f4caf74826ce859cc2 100644 --- a/app/code/Magento/Centinel/composer.json +++ b/app/code/Magento/Centinel/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Centinel/view/frontend/templates/authentication/complete.phtml b/app/code/Magento/Centinel/view/frontend/templates/authentication/complete.phtml index 8d9835501c5819ee6224072a485e66f60ec33e7e..d41533f678039a71ee6d97e39359b85e8b79b97f 100644 --- a/app/code/Magento/Centinel/view/frontend/templates/authentication/complete.phtml +++ b/app/code/Magento/Centinel/view/frontend/templates/authentication/complete.phtml @@ -25,12 +25,10 @@ <?php if ($this->getIsProcessed()):?> <?php if ($this->getIsSuccess()):?> <script type="text/javascript"> -require(['jquery'], function(jQuery){ parent.jQuery('[data-container="body"]').trigger("paymentAuthentication", {state: "success"}); -}); -</script> + </script> <?php else:?> <h4><?php echo __('Verification Failed');?></h4> <p><?php echo __('The card has failed verification with the issuer bank.')?> <strong><?php echo __('Order cannot be placed.')?></strong></p> diff --git a/app/code/Magento/Centinel/view/frontend/templates/authentication/start.phtml b/app/code/Magento/Centinel/view/frontend/templates/authentication/start.phtml index 8a32507a9f0d6edee511cd33f705038bd4800ce3..b52250e44447ff0cde77e3d758b250a5926886ad 100644 --- a/app/code/Magento/Centinel/view/frontend/templates/authentication/start.phtml +++ b/app/code/Magento/Centinel/view/frontend/templates/authentication/start.phtml @@ -30,12 +30,10 @@ </fieldset> </form> <script type="text/javascript"> -require(['jquery'], function(jQuery){ window.onload = function () { parent.jQuery('[data-container="body"]').trigger("paymentAuthentication", {state: "start"}); document.getElementById('validation-form').submit(); } -}); </script> diff --git a/app/code/Magento/Checkout/Model/Session.php b/app/code/Magento/Checkout/Model/Session.php index 8816bc11a37a407e339efc0504b3ff38711cf7ce..e217ec2ef69aa7fcf3ee46301a8d063da765a40b 100644 --- a/app/code/Magento/Checkout/Model/Session.php +++ b/app/code/Magento/Checkout/Model/Session.php @@ -99,6 +99,8 @@ class Session extends \Magento\Framework\Session\SessionManager * @param \Magento\Framework\Session\SaveHandlerInterface $saveHandler * @param \Magento\Framework\Session\ValidatorInterface $validator * @param \Magento\Framework\Session\StorageInterface $storage + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\Sales\Model\QuoteFactory $quoteFactory @@ -114,6 +116,8 @@ class Session extends \Magento\Framework\Session\SessionManager \Magento\Framework\Session\SaveHandlerInterface $saveHandler, \Magento\Framework\Session\ValidatorInterface $validator, \Magento\Framework\Session\StorageInterface $storage, + \Magento\Framework\Stdlib\CookieManager $cookieManager, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Customer\Model\Session $customerSession, \Magento\Sales\Model\QuoteFactory $quoteFactory, @@ -128,7 +132,16 @@ class Session extends \Magento\Framework\Session\SessionManager $this->_remoteAddress = $remoteAddress; $this->_eventManager = $eventManager; $this->_storeManager = $storeManager; - parent::__construct($request, $sidResolver, $sessionConfig, $saveHandler, $validator, $storage); + parent::__construct( + $request, + $sidResolver, + $sessionConfig, + $saveHandler, + $validator, + $storage, + $cookieManager, + $cookieMetadataFactory + ); $this->start($sessionName); } diff --git a/app/code/Magento/Checkout/composer.json b/app/code/Magento/Checkout/composer.json index eb48bc0d8e9492af1c2ccbece6ffc17d439c5238..d16752337e5c450e2985160ac50021b65d8bfabd 100644 --- a/app/code/Magento/Checkout/composer.json +++ b/app/code/Magento/Checkout/composer.json @@ -3,25 +3,25 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-payment": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-gift-message": "0.1.0-alpha92", - "magento/module-wishlist": "0.1.0-alpha92", - "magento/module-page-cache": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-payment": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-gift-message": "0.1.0-alpha93", + "magento/module-wishlist": "0.1.0-alpha93", + "magento/module-page-cache": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Checkout/view/frontend/templates/onepage/login.phtml b/app/code/Magento/Checkout/view/frontend/templates/onepage/login.phtml index 5d50197db264553264b91798f59038dd96830d32..20c2fce40ce6a420ae598fc5d4bcb3c2661ea303 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/onepage/login.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/onepage/login.phtml @@ -114,10 +114,10 @@ <?php if ($this->isAllowedGuestCheckout()): ?> <button data-role="opc-continue" id="onepage-guest-register-button" type="button" class="action continue primary" data-checkout='{"isGuestCheckoutAllowed":true}'><span><?php echo __('Continue') ?></span></button> <?php elseif ($this->helper('Magento\Checkout\Helper\Data')->isCustomerMustBeLogged()): ?> - <input type="hidden" name="checkout_method" id="login:register" value="register" checked="checked" /> + <input type="checkbox" name="checkout_method" id="login:register" value="register" checked="checked" style="display: none"/> <button data-role="opc-continue" id="onepage-guest-register-button" type="button" class="action register primary" data-checkout='{"isGuestCheckoutAllowed":false, "registrationUrl":"<?php echo $this->helper('Magento\Customer\Helper\Data')->getRegisterUrl();?>"}'><span><?php echo __('Register') ?></span></button> <?php else: ?> - <input type="hidden" name="checkout_method" data-role="checkout-method-register" id="login:register" value="register" checked="checked" /> + <input type="checkbox" name="checkout_method" data-role="checkout-method-register" id="login:register" value="register" checked="checked" style="display: none"/> <button data-role="opc-continue" id="onepage-guest-register-button" type="button" class="action register primary" data-checkout='{"isGuestCheckoutAllowed":true}'><span><?php echo __('Register') ?></span></button> <?php endif; ?> </div> diff --git a/app/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.js b/app/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.js index 5b5dfcf568ba1f7264628170326c698e21f0a2c9..e1ab03bfff2be49569a0b9c9ba3e7a8a324b1ccc 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.js @@ -172,7 +172,7 @@ define([ var json = elem.data('checkout'), checkout = this.options.checkout, guestChecked = $( checkout.loginGuestSelector ).is( ':checked' ), - loginRegister = $( checkout.loginRegisterSelector )[0], + registerChecked = $( checkout.loginRegisterSelector ).is( ':checked' ), method = 'register', action = 'show'; @@ -181,7 +181,7 @@ define([ if (json.isGuestCheckoutAllowed) { - if( !guestChecked && !(loginRegister && loginRegister.checked) ){ + if( !guestChecked && !registerChecked ){ alert( $.mage.__('Please choose to register or to checkout as a guest.') ); return false; @@ -200,6 +200,9 @@ define([ this.element.find( checkout.registerCustomerPasswordSelector )[action](); } + else if( json.registrationUrl ){ + window.location = json.registrationUrl; + } this.element.trigger('login'); }, diff --git a/app/code/Magento/CheckoutAgreements/composer.json b/app/code/Magento/CheckoutAgreements/composer.json index 988fcdf04ab544003a5cad88b50b09b815a02fa1..98a24e9fabc9f196bdfeef18fdb149ce638b32f2 100644 --- a/app/code/Magento/CheckoutAgreements/composer.json +++ b/app/code/Magento/CheckoutAgreements/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-store": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-store": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Cms/Block/Adminhtml/Wysiwyg/Images/Content.php b/app/code/Magento/Cms/Block/Adminhtml/Wysiwyg/Images/Content.php index 6798fb562efc65cade62e138f5eba36c4611c46d..cd98b4615eb3a79fde342b9029a2da832e55fad1 100644 --- a/app/code/Magento/Cms/Block/Adminhtml/Wysiwyg/Images/Content.php +++ b/app/code/Magento/Cms/Block/Adminhtml/Wysiwyg/Images/Content.php @@ -62,22 +62,34 @@ class Content extends \Magento\Backend\Block\Widget\Container $this->buttonList->remove('edit'); $this->buttonList->add( 'new_folder', - array('class' => 'save', 'label' => __('Create Folder...'), 'type' => 'button') + array('class' => 'save', 'label' => __('Create Folder...'), 'type' => 'button'), + 0, + 0, + 'header' ); $this->buttonList->add( 'delete_folder', - array('class' => 'delete no-display', 'label' => __('Delete Folder'), 'type' => 'button') + array('class' => 'delete no-display', 'label' => __('Delete Folder'), 'type' => 'button'), + 0, + 0, + 'header' ); $this->buttonList->add( 'delete_files', - array('class' => 'delete no-display', 'label' => __('Delete File'), 'type' => 'button') + array('class' => 'delete no-display', 'label' => __('Delete File'), 'type' => 'button'), + 0, + 0, + 'header' ); $this->buttonList->add( 'insert_files', - array('class' => 'save no-display primary', 'label' => __('Insert File'), 'type' => 'button') + array('class' => 'save no-display primary', 'label' => __('Insert File'), 'type' => 'button'), + 0, + 0, + 'header' ); } diff --git a/app/code/Magento/Cms/composer.json b/app/code/Magento/Cms/composer.json index b5f0105614a1b5dc251cfbce61661eece5da71e2..625b46255ce84be69764bcb5ef5bd07f9b7b2220 100644 --- a/app/code/Magento/Cms/composer.json +++ b/app/code/Magento/Cms/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-widget": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-email": "0.1.0-alpha92", - "magento/module-install": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-widget": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-email": "0.1.0-alpha93", + "magento/module-install": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/CmsUrlRewrite/composer.json b/app/code/Magento/CmsUrlRewrite/composer.json index 063c9c841c1187a0f567100914c131db8ad6b647..79c62328fd406f7781f47754f354da5ae89ed0c5 100644 --- a/app/code/Magento/CmsUrlRewrite/composer.json +++ b/app/code/Magento/CmsUrlRewrite/composer.json @@ -3,12 +3,12 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-url-redirect": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92" + "magento/module-store": "0.1.0-alpha93", + "magento/module-url-redirect": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/ConfigurableImportExport/composer.json b/app/code/Magento/ConfigurableImportExport/composer.json index 08c3e7ac715263d1dd7be9c0f88cc108a9b1ef0b..a49b43a2c92b2db122bc174a670ffe836cbad685 100644 --- a/app/code/Magento/ConfigurableImportExport/composer.json +++ b/app/code/Magento/ConfigurableImportExport/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-catalog-import-export": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-import-export": "0.1.0-alpha92", - "magento/module-configurable-product": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92" + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-catalog-import-export": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-import-export": "0.1.0-alpha93", + "magento/module-configurable-product": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/ConfigurableProduct/Model/Attribute/LockValidator.php b/app/code/Magento/ConfigurableProduct/Model/Attribute/LockValidator.php index e0a0e059ecf6ba9bef12ea6b33db0bae84c93e80..918d24ab6e5d2932c2c7905886203006adaebf6d 100644 --- a/app/code/Magento/ConfigurableProduct/Model/Attribute/LockValidator.php +++ b/app/code/Magento/ConfigurableProduct/Model/Attribute/LockValidator.php @@ -46,7 +46,6 @@ class LockValidator implements LockValidatorInterface * @param \Magento\Framework\Model\AbstractModel $object * @param null $attributeSet * @throws \Magento\Framework\Model\Exception - * * @return void */ public function validate(\Magento\Framework\Model\AbstractModel $object, $attributeSet = null) diff --git a/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option.php b/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option.php index 0a723a8b6f2afcda292b50e95d905f5e4692c83e..ea950836097b67eab8abb2645f6ea064dcb695bb 100644 --- a/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option.php +++ b/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option.php @@ -23,6 +23,9 @@ */ namespace Magento\ConfigurableProduct\Service\V1\Data; +/** + * @codeCoverageIgnore + */ class Option extends \Magento\Framework\Service\Data\AbstractObject { /**#@+ diff --git a/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/Value.php b/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/Value.php index 0ecd1e149249f14f08f983a4cb54857304893e3b..6eecac3726409ab2842f6a71bc207f416f5f8b09 100644 --- a/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/Value.php +++ b/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/Value.php @@ -21,9 +21,11 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ - namespace Magento\ConfigurableProduct\Service\V1\Data\Option; +/** + * @codeCoverageIgnore + */ class Value extends \Magento\Framework\Service\Data\AbstractObject { const INDEX = 'index'; diff --git a/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/ValueBuilder.php b/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/ValueBuilder.php index f113fde85bf72b276abc06bede385d2fd0748180..ddbb23c6beddf93b2640e5e77928b826e3dc493a 100644 --- a/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/ValueBuilder.php +++ b/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/ValueBuilder.php @@ -25,6 +25,9 @@ namespace Magento\ConfigurableProduct\Service\V1\Data\Option; use Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class ValueBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/ValueConverter.php b/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/ValueConverter.php index 202c6f19b1f2c6bfbf716034af7d58de89ad6493..568372a22ebd44c78ef8b0356449428852cd7460 100644 --- a/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/ValueConverter.php +++ b/app/code/Magento/ConfigurableProduct/Service/V1/Data/Option/ValueConverter.php @@ -23,6 +23,9 @@ */ namespace Magento\ConfigurableProduct\Service\V1\Data\Option; +/** + * @codeCoverageIgnore + */ class ValueConverter { /** diff --git a/app/code/Magento/ConfigurableProduct/Service/V1/Data/OptionBuilder.php b/app/code/Magento/ConfigurableProduct/Service/V1/Data/OptionBuilder.php index e720f3e8213fa8f3e9f710dd8aad2fda2a0e67c3..a973df03023fc636830c3434aa8830ab19f419f4 100644 --- a/app/code/Magento/ConfigurableProduct/Service/V1/Data/OptionBuilder.php +++ b/app/code/Magento/ConfigurableProduct/Service/V1/Data/OptionBuilder.php @@ -23,6 +23,9 @@ */ namespace Magento\ConfigurableProduct\Service\V1\Data; +/** + * @codeCoverageIgnore + */ class OptionBuilder extends \Magento\Framework\Service\Data\AbstractObjectBuilder { /** diff --git a/app/code/Magento/ConfigurableProduct/composer.json b/app/code/Magento/ConfigurableProduct/composer.json index b11cab300cbf808ce0405960bb47d495b58afcd9..7895fb7c6310e72920dae3aab977d281c76aacfc 100644 --- a/app/code/Magento/ConfigurableProduct/composer.json +++ b/app/code/Magento/ConfigurableProduct/composer.json @@ -3,25 +3,25 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-catalog-rule": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-weee": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", - "magento/module-webapi": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-catalog-rule": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-weee": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", + "magento/module-webapi": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Contact/composer.json b/app/code/Magento/Contact/composer.json index f81900d3c2d0df74ea649d584da1df479482a1f8..a1ab8a4370995f9aab48ce5b539929b07c25500d 100644 --- a/app/code/Magento/Contact/composer.json +++ b/app/code/Magento/Contact/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Core/Model/File/Storage/Response.php b/app/code/Magento/Core/Model/File/Storage/Response.php index 07fe79274064501e026c8faeb8a79881d0d806a9..34a9bde1a22c2e0dcd126adb951bd3de501f89ae 100644 --- a/app/code/Magento/Core/Model/File/Storage/Response.php +++ b/app/code/Magento/Core/Model/File/Storage/Response.php @@ -23,6 +23,8 @@ */ namespace Magento\Core\Model\File\Storage; +use Magento\Framework\Stdlib\CookieManager; +use Magento\Framework\Stdlib\Cookie\CookieMetadataFactory; use Magento\Framework\App\Response\Http; class Response extends Http implements \Magento\Framework\App\Response\FileInterface @@ -42,16 +44,18 @@ class Response extends Http implements \Magento\Framework\App\Response\FileInter /** * Constructor * - * @param \Magento\Framework\Stdlib\Cookie $cookie - * @param \Magento\Framework\App\Http\Context $context + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory + * @param \Magento\Framework\App\Http\Context $context * @param \Magento\Framework\File\Transfer\Adapter\Http $transferAdapter */ public function __construct( - \Magento\Framework\Stdlib\Cookie $cookie, + CookieManager $cookieManager, + CookieMetadataFactory $cookieMetadataFactory, \Magento\Framework\App\Http\Context $context, \Magento\Framework\File\Transfer\Adapter\Http $transferAdapter ) { - parent::__construct($cookie, $context); + parent::__construct($cookieManager, $cookieMetadataFactory, $context); $this->_transferAdapter = $transferAdapter; } diff --git a/app/code/Magento/Core/composer.json b/app/code/Magento/Core/composer.json index 80b3c122eff41676534478c803131b0849d9ad40..6d823c678f0e60152c29ecc7063efe0488909b7e 100644 --- a/app/code/Magento/Core/composer.json +++ b/app/code/Magento/Core/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-cron": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-page-cache": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-cron": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-page-cache": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Core/etc/di.xml b/app/code/Magento/Core/etc/di.xml index ea46458a942b9a0c127ee2d0f8c64f0f63db427b..9004dd991a1460b9d00083bb468c47d25135aa99 100644 --- a/app/code/Magento/Core/etc/di.xml +++ b/app/code/Magento/Core/etc/di.xml @@ -81,6 +81,7 @@ <preference for="Magento\Framework\App\Config\Resource\ConfigInterface" type="Magento\Core\Model\Resource\Config" /> <preference for="Magento\Framework\App\DesignInterface" type="Magento\Core\Model\Design" /> <preference for="Magento\Framework\Pricing\Amount\AmountInterface" type="Magento\Framework\Pricing\Amount\Base" /> + <preference for="Magento\Framework\Stdlib\CookieManager" type="Magento\Framework\Stdlib\Cookie\PhpCookieManager" /> <type name="Magento\Framework\App\DefaultPath\DefaultPath"> <arguments> <argument name="parts" xsi:type="array"> diff --git a/app/code/Magento/Cron/composer.json b/app/code/Magento/Cron/composer.json index 03e0ba310796c450fa9a2d0b490e913cba8d3c26..3b9ce9020d6524bd2e9951d04b8441626d43050a 100644 --- a/app/code/Magento/Cron/composer.json +++ b/app/code/Magento/Cron/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/CurrencySymbol/composer.json b/app/code/Magento/CurrencySymbol/composer.json index 35f434b91f02aa36d4762fdf2c802e3832f5492d..3e16764643faa8e436bd223d131ac18bcf672faa 100644 --- a/app/code/Magento/CurrencySymbol/composer.json +++ b/app/code/Magento/CurrencySymbol/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-page-cache": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-page-cache": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Customer/Model/Session.php b/app/code/Magento/Customer/Model/Session.php index 1a160afe61635f4349dbd47c5493817538555d33..793aab1e8d6bca23e97294a9a19797d4345f683b 100755 --- a/app/code/Magento/Customer/Model/Session.php +++ b/app/code/Magento/Customer/Model/Session.php @@ -113,6 +113,8 @@ class Session extends \Magento\Framework\Session\SessionManager * @param \Magento\Framework\Session\SaveHandlerInterface $saveHandler * @param \Magento\Framework\Session\ValidatorInterface $validator * @param \Magento\Framework\Session\StorageInterface $storage + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param Share $configShare * @param \Magento\Core\Helper\Url $coreUrl * @param \Magento\Customer\Helper\Data $customerData @@ -133,6 +135,8 @@ class Session extends \Magento\Framework\Session\SessionManager \Magento\Framework\Session\SaveHandlerInterface $saveHandler, \Magento\Framework\Session\ValidatorInterface $validator, \Magento\Framework\Session\StorageInterface $storage, + \Magento\Framework\Stdlib\CookieManager $cookieManager, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, Config\Share $configShare, \Magento\Core\Helper\Url $coreUrl, \Magento\Customer\Helper\Data $customerData, @@ -156,7 +160,16 @@ class Session extends \Magento\Framework\Session\SessionManager $this->_customerAccountService = $customerAccountService; $this->_eventManager = $eventManager; $this->_httpContext = $httpContext; - parent::__construct($request, $sidResolver, $sessionConfig, $saveHandler, $validator, $storage); + parent::__construct( + $request, + $sidResolver, + $sessionConfig, + $saveHandler, + $validator, + $storage, + $cookieManager, + $cookieMetadataFactory + ); $this->start($sessionName); $this->_converter = $converter; $this->_eventManager->dispatch('customer_session_init', array('customer_session' => $this)); diff --git a/app/code/Magento/Customer/composer.json b/app/code/Magento/Customer/composer.json index a81627d618f34ddf39b818f53052c5e62dd39140..f00584bb653066422b04faae8bd89889908df237 100644 --- a/app/code/Magento/Customer/composer.json +++ b/app/code/Magento/Customer/composer.json @@ -3,29 +3,29 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-newsletter": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-wishlist": "0.1.0-alpha92", - "magento/module-index": "0.1.0-alpha92", - "magento/module-log": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-review": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-page-cache": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", - "magento/module-authorization": "0.1.0-alpha92", - "magento/module-integration": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-newsletter": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-wishlist": "0.1.0-alpha93", + "magento/module-index": "0.1.0-alpha93", + "magento/module-log": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-review": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-page-cache": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", + "magento/module-authorization": "0.1.0-alpha93", + "magento/module-integration": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Customer/view/frontend/web/address.js b/app/code/Magento/Customer/view/frontend/web/address.js index c584a11c567a3d2d8a4359953826cd7845065731..20c24279610bbaf42d36155d0a7c39c789865da9 100644 --- a/app/code/Magento/Customer/view/frontend/web/address.js +++ b/app/code/Magento/Customer/view/frontend/web/address.js @@ -43,8 +43,8 @@ define([ * @private */ _create: function() { - $(this.options.addAddress).on('click', $.proxy(this._addAddress, this)); - $(this.options.deleteAddress).on('click', $.proxy(this._deleteAddress, this)); + $(document).on('click', this.options.addAddress, $.proxy(this._addAddress, this)); + $(document).on('click', this.options.deleteAddress, $.proxy(this._deleteAddress, this)); }, /** diff --git a/app/code/Magento/CustomerImportExport/composer.json b/app/code/Magento/CustomerImportExport/composer.json index 1ea7f97d0e05538eb602ebc9b8ac138023e6141e..0bf7781f8bada91e5f565c587c832450ed344dc8 100644 --- a/app/code/Magento/CustomerImportExport/composer.json +++ b/app/code/Magento/CustomerImportExport/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-import-export": "0.1.0-alpha92", - "magento/module-store": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-import-export": "0.1.0-alpha93", + "magento/module-store": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/DesignEditor/composer.json b/app/code/Magento/DesignEditor/composer.json index c58852a9115cd96a573c361f3ac6a2c038373b82..0069c2479c61f0e21de38958401e90edf0981bbc 100644 --- a/app/code/Magento/DesignEditor/composer.json +++ b/app/code/Magento/DesignEditor/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-url-rewrite": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-url-rewrite": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Dhl/composer.json b/app/code/Magento/Dhl/composer.json index f467f32fa98387b6cd58f94f8762ee1fb3f53b4f..84c59de268a0c2a4b1fc4cdeb7de22d12cd44d45 100644 --- a/app/code/Magento/Dhl/composer.json +++ b/app/code/Magento/Dhl/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-shipping": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-shipping": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Directory/composer.json b/app/code/Magento/Directory/composer.json index 3cc0d57ac7eb2e40da8eae378a878f43825c5298..793154d428517a7cdfb5f0b13d34de6c7e0ea894 100644 --- a/app/code/Magento/Directory/composer.json +++ b/app/code/Magento/Directory/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Downloadable/Block/Adminhtml/Sales/Items/Column/Downloadable/Name.php b/app/code/Magento/Downloadable/Block/Adminhtml/Sales/Items/Column/Downloadable/Name.php index df9214d4cb7ef1a50b0679f8e72417fbb7dbdb1f..12a54705574945c7cc640d97c986d7f37978bee0 100644 --- a/app/code/Magento/Downloadable/Block/Adminhtml/Sales/Items/Column/Downloadable/Name.php +++ b/app/code/Magento/Downloadable/Block/Adminhtml/Sales/Items/Column/Downloadable/Name.php @@ -47,6 +47,8 @@ class Name extends \Magento\Sales\Block\Adminhtml\Items\Column\Name /** * @param \Magento\Backend\Block\Template\Context $context + * @param \Magento\CatalogInventory\Service\V1\StockItemService $stockItemService + * @param \Magento\Framework\Registry $registry * @param \Magento\Catalog\Model\Product\OptionFactory $optionFactory * @param \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory * @param \Magento\Downloadable\Model\Resource\Link\Purchased\Item\CollectionFactory $itemsFactory @@ -54,6 +56,8 @@ class Name extends \Magento\Sales\Block\Adminhtml\Items\Column\Name */ public function __construct( \Magento\Backend\Block\Template\Context $context, + \Magento\CatalogInventory\Service\V1\StockItemService $stockItemService, + \Magento\Framework\Registry $registry, \Magento\Catalog\Model\Product\OptionFactory $optionFactory, \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory, \Magento\Downloadable\Model\Resource\Link\Purchased\Item\CollectionFactory $itemsFactory, @@ -61,7 +65,7 @@ class Name extends \Magento\Sales\Block\Adminhtml\Items\Column\Name ) { $this->_purchasedFactory = $purchasedFactory; $this->_itemsFactory = $itemsFactory; - parent::__construct($context, $optionFactory, $data); + parent::__construct($context, $stockItemService, $registry, $optionFactory, $data); } /** diff --git a/app/code/Magento/Downloadable/Service/V1/Data/FileContent.php b/app/code/Magento/Downloadable/Service/V1/Data/FileContent.php index 8b6c6a80df253d548299ba0d8a2ea71572d77c72..53dc0cbfd4d5f05c09bebc8d9591a864f9387b3e 100644 --- a/app/code/Magento/Downloadable/Service/V1/Data/FileContent.php +++ b/app/code/Magento/Downloadable/Service/V1/Data/FileContent.php @@ -25,6 +25,9 @@ namespace Magento\Downloadable\Service\V1\Data; use \Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class FileContent extends AbstractObject { const DATA = 'data'; diff --git a/app/code/Magento/Downloadable/Service/V1/Data/FileContentBuilder.php b/app/code/Magento/Downloadable/Service/V1/Data/FileContentBuilder.php index b0c443c3da917417eb8cc6d28cb564aae7dfe2a0..e87a624c8eaad3e5b83de8502580b268cf7515ab 100644 --- a/app/code/Magento/Downloadable/Service/V1/Data/FileContentBuilder.php +++ b/app/code/Magento/Downloadable/Service/V1/Data/FileContentBuilder.php @@ -25,6 +25,9 @@ namespace Magento\Downloadable\Service\V1\Data; use \Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class FileContentBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkContent.php b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkContent.php index 72de1163db15feeaae8e92ba631d135e2158b14c..59be97dde36747383dc62a7b0df29c9303b4efc9 100644 --- a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkContent.php +++ b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkContent.php @@ -26,6 +26,9 @@ namespace Magento\Downloadable\Service\V1\DownloadableLink\Data; use \Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class DownloadableLinkContent extends AbstractObject { const TITLE = 'title'; diff --git a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkContentBuilder.php b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkContentBuilder.php index f344be1800ead0eb861aff23b316f95e17993c11..176381b6ce3223a00d963996be5477b7c28e0424 100644 --- a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkContentBuilder.php +++ b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkContentBuilder.php @@ -28,6 +28,9 @@ namespace Magento\Downloadable\Service\V1\DownloadableLink\Data; use \Magento\Framework\Service\Data\AbstractObjectBuilder; use \Magento\Downloadable\Service\V1\Data\FileContent; +/** + * @codeCoverageIgnore + */ class DownloadableLinkContentBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkInfo.php b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkInfo.php index 0e841b08e7fb3918de2916f1a153d39161105b29..31a238911911c60db8c688de36508bc68a105936 100644 --- a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkInfo.php +++ b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkInfo.php @@ -26,6 +26,9 @@ namespace Magento\Downloadable\Service\V1\DownloadableLink\Data; use Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class DownloadableLinkInfo extends AbstractObject { const ID = 'id'; diff --git a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkInfoBuilder.php b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkInfoBuilder.php index 28853bfc59b203570c6dbacbb14bbde6503cf152..838c482be9e64330358088e569394ead5b92926b 100644 --- a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkInfoBuilder.php +++ b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableLinkInfoBuilder.php @@ -27,6 +27,9 @@ namespace Magento\Downloadable\Service\V1\DownloadableLink\Data; use Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class DownloadableLinkInfoBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableResourceInfo.php b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableResourceInfo.php index 29959bea145ebb51e6a5a7e5b7b652535e71f654..c08524b581f2bffbfa5c6b4cd34d64d702b06862 100644 --- a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableResourceInfo.php +++ b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableResourceInfo.php @@ -26,6 +26,9 @@ namespace Magento\Downloadable\Service\V1\DownloadableLink\Data; use \Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class DownloadableResourceInfo extends AbstractObject { const FILE = 'file'; diff --git a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableSampleInfo.php b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableSampleInfo.php index 532d15fbf0608e7b090e046520492208c9c7a18c..daab802e77a32dc2169b305b32145f56510a5c31 100644 --- a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableSampleInfo.php +++ b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableSampleInfo.php @@ -26,6 +26,9 @@ namespace Magento\Downloadable\Service\V1\DownloadableLink\Data; use \Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class DownloadableSampleInfo extends AbstractObject { const ID = 'id'; diff --git a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableSampleInfoBuilder.php b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableSampleInfoBuilder.php index 7540f4b11e7cc6065a322570667b679edd0fe5fd..0a7535f7ceb2abd2d27e9fed3b22d6ce2f8b37e1 100644 --- a/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableSampleInfoBuilder.php +++ b/app/code/Magento/Downloadable/Service/V1/DownloadableLink/Data/DownloadableSampleInfoBuilder.php @@ -27,6 +27,9 @@ namespace Magento\Downloadable\Service\V1\DownloadableLink\Data; use Magento\Framework\Service\Data\AbstractObjectBuilder; +/** + * @codeCoverageIgnore + */ class DownloadableSampleInfoBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Downloadable/Service/V1/DownloadableSample/Data/DownloadableSampleContent.php b/app/code/Magento/Downloadable/Service/V1/DownloadableSample/Data/DownloadableSampleContent.php index 349d35f84f736c49b0b0597fecc0357a21c2f388..62beae8ebadba412794d3eb789905c77bbed4ba1 100644 --- a/app/code/Magento/Downloadable/Service/V1/DownloadableSample/Data/DownloadableSampleContent.php +++ b/app/code/Magento/Downloadable/Service/V1/DownloadableSample/Data/DownloadableSampleContent.php @@ -26,6 +26,9 @@ namespace Magento\Downloadable\Service\V1\DownloadableSample\Data; use \Magento\Framework\Service\Data\AbstractObject; +/** + * @codeCoverageIgnore + */ class DownloadableSampleContent extends AbstractObject { const TITLE = 'title'; diff --git a/app/code/Magento/Downloadable/Service/V1/DownloadableSample/Data/DownloadableSampleContentBuilder.php b/app/code/Magento/Downloadable/Service/V1/DownloadableSample/Data/DownloadableSampleContentBuilder.php index 11b7b09c34293b683473318cfc4ae50161f5c529..6d794cba30a48c376973a7fc3d5eb6e5f6cd6420 100644 --- a/app/code/Magento/Downloadable/Service/V1/DownloadableSample/Data/DownloadableSampleContentBuilder.php +++ b/app/code/Magento/Downloadable/Service/V1/DownloadableSample/Data/DownloadableSampleContentBuilder.php @@ -28,6 +28,9 @@ namespace Magento\Downloadable\Service\V1\DownloadableSample\Data; use \Magento\Framework\Service\Data\AbstractObjectBuilder; use \Magento\Downloadable\Service\V1\Data\FileContent; +/** + * @codeCoverageIgnore + */ class DownloadableSampleContentBuilder extends AbstractObjectBuilder { /** diff --git a/app/code/Magento/Downloadable/composer.json b/app/code/Magento/Downloadable/composer.json index 63a02f5615ab02986bb3860af78883af004fe6b8..80d15ba2798103fd819770369f833402aebd28c9 100644 --- a/app/code/Magento/Downloadable/composer.json +++ b/app/code/Magento/Downloadable/composer.json @@ -3,26 +3,25 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-weee": "0.1.0-alpha92", - "magento/module-wishlist": "0.1.0-alpha92", - "magento/module-gift-message": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-wishlist": "0.1.0-alpha93", + "magento/module-gift-message": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Downloadable/etc/module.xml b/app/code/Magento/Downloadable/etc/module.xml index d17b2b48cbd58e256752b7baff59ce7c759c4140..9a0a14069bccd98b045661ebbee89ef465874e37 100644 --- a/app/code/Magento/Downloadable/etc/module.xml +++ b/app/code/Magento/Downloadable/etc/module.xml @@ -40,7 +40,6 @@ <module name="Magento_Sales"/> <module name="Magento_Checkout"/> <module name="Magento_Directory"/> - <module name="Magento_Weee"/> <module name="Magento_Wishlist"/> <module name="Magento_GiftMessage"/> <module name="Magento_CatalogInventory"/> diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/creditmemo/create/items/renderer/downloadable.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/creditmemo/create/items/renderer/downloadable.phtml index 4c5a8eb774fdae6a55311a29c6551fd4682d1493..94908c13403d68e95189514931cac119361617de 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/creditmemo/create/items/renderer/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/creditmemo/create/items/renderer/downloadable.phtml @@ -22,50 +22,13 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var \Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer $this */?> <?php $_item = $this->getItem() ?> <?php $this->setPriceDataObject($_item); ?> <tr class="border"> <td class="col-product"><?php echo $this->getColumnHtml($_item, 'downloadable') ?></td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displayPriceAttribute('price') ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0, 'sales')): // including ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - <?php elseif ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): // incl. + weee ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - <br /> - <small> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)); ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr">+ <?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): // excl. + weee + final ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)); ?> - <br /> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <span class="nobr"> - <?php echo __('Total'); ?>: - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - </span> - <?php else: // excl. ?> - <?php echo $this->displayPriceInclTax($_item); ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price')?> </td> <td class="col-ordered-qty"><?php echo $this->getColumnHtml($_item, 'qty') ?></td> <?php if ($this->canParentReturnToStock($_item)) : ?> @@ -83,53 +46,11 @@ <?php endif; ?> </td> <td class="col-subtotal"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displayPriceAttribute('row_total') ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0, 'sales')): // including ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php elseif ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): // incl. + weee ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - <br /> - <small> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr">+ <?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): // excl. + weee + final ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <br /> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['row_amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <span class="nobr"> - <?php echo __('Total'); ?>: - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - </span> - <?php else: // excl. ?> - <?php echo $this->displaySubtotalInclTax($_item); ?> - <?php endif; ?> - <?php endif; ?> - </span> + <?php echo $this->getColumnHtml($_item, 'subtotal')?> </td> <td class="col-tax-amount"><?php echo $this->displayPriceAttribute('tax_amount') ?></td> <td class="col-discont"><?php echo $this->displayPriceAttribute('discount_amount') ?></td> <td class="col-total last"> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseTaxAmount()-$_item->getBaseDiscountAmount()+$_item->getWeeeTaxAppliedAmount(), - $_item->getRowTotal()+$_item->getTaxAmount()-$_item->getDiscountAmount()+$_item->getWeeeTaxAppliedAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total')?> </td> </tr> diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/creditmemo/view/items/renderer/downloadable.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/creditmemo/view/items/renderer/downloadable.phtml index 60813107eaf0559f1dcd26dc327a9a5315432b51..21e394e3e56ce8a10edc436524743462cc4b1326 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/creditmemo/view/items/renderer/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/creditmemo/view/items/renderer/downloadable.phtml @@ -22,100 +22,21 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $this->setPriceDataObject($_item) ?> <tr class="border"> <td class="col-product"><?php echo $this->getColumnHtml($_item, 'downloadable') ?></td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displayPriceAttribute('price') ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0, 'sales')): // including ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - <?php elseif ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): // incl. + weee ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - <br /> - <small> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)); ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr">+ <?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): // excl. + weee + final ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)); ?> - <br /> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <span class="nobr"> - <?php echo __('Total'); ?>: - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - </span> - <?php else: // excl. ?> - <?php echo $this->displayPriceInclTax($_item); ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price')?> </td> <td class="col-qty"><?php echo $_item->getQty()*1 ?></td> <td class="col-subtotal"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displayPriceAttribute('row_total') ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0, 'sales')): // including ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php elseif ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): // incl. + weee ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - <br /> - <small> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr">+ <?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): // excl. + weee + final ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <br /> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['row_amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <span class="nobr"> - <?php echo __('Total'); ?>: - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - </span> - <?php else: // excl. ?> - <?php echo $this->displaySubtotalInclTax($_item); ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'subtotal')?> </td> <td class="col-tax"><?php echo $this->displayPriceAttribute('tax_amount') ?></td> <td class="col-discount"><?php echo $this->displayPriceAttribute('discount_amount') ?></td> <td class="col-total last"> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal()-$_item->getBaseDiscountAmount()+$_item->getBaseTaxAmount(), - $_item->getRowTotal()-$_item->getDiscountAmount()+$_item->getTaxAmount()+$_item->getWeeeTaxAppliedAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total')?> </td> </tr> diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/invoice/create/items/renderer/downloadable.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/invoice/create/items/renderer/downloadable.phtml index 174e5fb089ee8cb305756d155aca3d3731674f86..6092b89ef9549e7f42ee5631dbede403bc02c36d 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/invoice/create/items/renderer/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/invoice/create/items/renderer/downloadable.phtml @@ -22,50 +22,13 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $this->setPriceDataObject($_item)?> <tr class="border"> <td class="col-product"><?php echo $this->getColumnHtml($_item, 'downloadable') ?></td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displayPriceAttribute('price') ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0, 'sales')): // including ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - <?php elseif ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): // incl. + weee ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - <br /> - <small> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)); ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr">+ <?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): // excl. + weee + final ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)); ?> - <br /> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <span class="nobr"> - <?php echo __('Total'); ?>: - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - </span> - <?php else: // excl. ?> - <?php echo $this->displayPriceInclTax($_item); ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price')?> </td> <td class="col-qty"><?php echo $this->getColumnHtml($_item, 'qty') ?></td> <td class="col-qty-invoice"> @@ -76,53 +39,11 @@ <?php endif; ?> </td> <td class="col-subtotal"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displayPriceAttribute('row_total') ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0, 'sales')): // including ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php elseif ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): // incl. + weee ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - <br /> - <small> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr">+ <?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): // excl. + weee + final ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <br /> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['row_amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <span class="nobr"> - <?php echo __('Total'); ?>: - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - </span> - <?php else: // excl. ?> - <?php echo $this->displaySubtotalInclTax($_item); ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'subtotal')?> </td> <td class="col-tax"><?php echo $this->displayPriceAttribute('tax_amount') ?></td> <td class="col-discount"><?php echo $this->displayPriceAttribute('discount_amount') ?></td> <td class="col-total last"> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseTaxAmount()-$_item->getBaseDiscountAmount(), - $_item->getRowTotal()+$_item->getTaxAmount()-$_item->getDiscountAmount()+$_item->getWeeeTaxAppliedRowAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total')?> </td> </tr> diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/invoice/view/items/renderer/downloadable.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/invoice/view/items/renderer/downloadable.phtml index 21b2455efec7d3a3d940e47eb2c44e1328e4dcc5..21e394e3e56ce8a10edc436524743462cc4b1326 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/invoice/view/items/renderer/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/invoice/view/items/renderer/downloadable.phtml @@ -22,100 +22,21 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $this->setPriceDataObject($_item) ?> <tr class="border"> <td class="col-product"><?php echo $this->getColumnHtml($_item, 'downloadable') ?></td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displayPriceAttribute('price') ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0, 'sales')): // including ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - <?php elseif ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): // incl. + weee ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - <br /> - <small> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)); ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr">+ <?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): // excl. + weee + final ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)); ?> - <br /> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <span class="nobr"> - <?php echo __('Total'); ?>: - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - </span> - <?php else: // excl. ?> - <?php echo $this->displayPriceInclTax($_item); ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price')?> </td> <td class="col-qty"><?php echo $_item->getQty()*1 ?></td> <td class="col-subtotal"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displayPriceAttribute('row_total') ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0, 'sales')): // including ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php elseif ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): // incl. + weee ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - <br /> - <small> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr">+ <?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): // excl. + weee + final ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <br /> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['row_amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <span class="nobr"> - <?php echo __('Total'); ?>: - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - </span> - <?php else: // excl. ?> - <?php echo $this->displaySubtotalInclTax($_item); ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'subtotal')?> </td> <td class="col-tax"><?php echo $this->displayPriceAttribute('tax_amount') ?></td> <td class="col-discount"><?php echo $this->displayPriceAttribute('discount_amount') ?></td> <td class="col-total last"> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseTaxAmount()-$_item->getBaseDiscountAmount()+$_item->getWeeeTaxAppliedAmount(), - $_item->getRowTotal()+$_item->getTaxAmount()-$_item->getDiscountAmount()+$_item->getWeeeTaxAppliedAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total')?> </td> </tr> diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/view/items/renderer/downloadable.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/view/items/renderer/downloadable.phtml index 69c673990eeeb9096db0ced5164f56287ba83855..0ccf9b73fd35763a946fcc950e2a85c549c7d86b 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/view/items/renderer/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/order/view/items/renderer/downloadable.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Sales\Block\Adminhtml\Order\View\Items\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $this->setPriceDataObject($_item) ?> <tr<?php if ($this->canDisplayGiftmessage()): ?> class="border"<?php endif; ?>> @@ -39,103 +40,16 @@ <td class="col-status"><?php echo $_item->getStatus() ?></td> <td class="col-price-original"><?php echo $this->displayPriceAttribute('original_price') ?></td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displayPriceAttribute('price') ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0, 'sales')): // including ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - <?php elseif ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): // incl. + weee ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - <br /> - <small> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)); ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr">+ <?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($_item->getWeeeTaxAppliedAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): // excl. + weee + final ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)); ?> - <br /> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <span class="nobr"> - <?php echo __('Total'); ?>: - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item)+$_item->getWeeeTaxAppliedAmount()); ?> - </span> - <?php else: // excl. ?> - <?php echo $this->displayPriceInclTax($_item); ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price')?> </td> <td class="col-ordered-qty"><?php echo $this->getColumnHtml($_item, 'qty') ?></td> <td class="col-subtotal"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displayPriceAttribute('row_total') ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax() || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="price-incl-tax"> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0, 'sales')): // including ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php elseif ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): // incl. + weee ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - <br /> - <small> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr">+ <?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($_item->getWeeeTaxAppliedRowAmount() && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): // excl. + weee + final ?> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)); ?> - <br /> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($tax['row_amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <span class="nobr"> - <?php echo __('Total'); ?>: - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item)+$_item->getWeeeTaxAppliedRowAmount()); ?> - </span> - <?php else: // excl. ?> - <?php echo $this->displaySubtotalInclTax($_item); ?> - <?php endif; ?> -<!-- - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php echo $this->displaySubtotalInclTax($_item); ?> ---> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'subtotal')?> </td> <td class="col-tax-amount"><?php echo $this->displayPriceAttribute('tax_amount') ?></td> <td class="col-tax-percent"><?php echo $this->displayTaxPercent($_item) ?></td> <td class="col-discont"><?php echo $this->displayPriceAttribute('discount_amount') ?></td> <td class="col-total last"> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal() - $_item->getBaseDiscountAmount() + $_item->getBaseTaxAmount(), - $_item->getRowTotal() - $_item->getDiscountAmount() + $_item->getTaxAmount() + $_item->getWeeeTaxAppliedRowAmount() - ); ?> + <?php echo $this->getColumnHtml($_item, 'total')?> </td> </tr> diff --git a/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/creditmemo/downloadable.phtml b/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/creditmemo/downloadable.phtml index 7e792ac8b3e816fe6473bb45e762ec0f0c99dbc4..6695308baeaa53f14d2dd272c1d9d9fc6ae544b7 100644 --- a/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/creditmemo/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/creditmemo/downloadable.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Downloadable\Block\Sales\Order\Email\Items\Downloadable */ ?> <?php $_item = $this->getItem() ?> <?php $_order = $this->getItem()->getOrder(); ?> <tr> @@ -48,79 +49,6 @@ <td align="left" valign="top" style="padding:3px 9px"><?php echo $this->escapeHtml($this->getSku($_item)) ?></td> <td align="center" valign="top" style="padding:3px 9px"><?php echo $_item->getQty()*1 ?></td> <td align="right" valign="top" style="padding:3px 9px"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $_order->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + <?php echo $this->getItemPrice($_item); ?> </td> </tr> diff --git a/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/invoice/downloadable.phtml b/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/invoice/downloadable.phtml index 555b22615ce6335c01ceb3886d0fff6c7f7b36dc..7fbdd15e1b36093cc26c85a9c2fbe78928e59d10 100644 --- a/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/invoice/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/invoice/downloadable.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Downloadable\Block\Sales\Order\Email\Items\Downloadable */ ?> <?php $_item = $this->getItem() ?> <?php $_order = $this->getItem()->getOrder(); ?> <tr> @@ -51,79 +52,6 @@ <td align="left" valign="top" style="padding:3px 9px"><?php echo $this->escapeHtml($this->getSku($_item)) ?></td> <td align="center" valign="top" style="padding:3px 9px"><?php echo $_item->getQty()*1 ?></td> <td align="right" valign="top" style="padding:3px 9px"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $_order->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + <?php echo $this->getItemPrice($_item); ?> </td> </tr> diff --git a/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/order/downloadable.phtml b/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/order/downloadable.phtml index f7b994580e837befd330b2efba3187562ac7ab91..331e37c8a8e220d18d2e5d72c7bb9d04d707b152 100644 --- a/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/order/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/frontend/templates/email/order/items/order/downloadable.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Downloadable\Block\Sales\Order\Email\Items\Order\Downloadable */ ?> <?php $_item = $this->getItem() ?> <?php $_order = $this->getItem()->getOrder() ?> <tr> @@ -57,79 +58,6 @@ <td align="left" valign="top" style="padding:3px 9px"><?php echo $this->escapeHtml($this->getSku($_item)) ?></td> <td align="center" valign="top" style="padding:3px 9px"><?php echo $_item->getQtyOrdered()*1 ?></td> <td align="right" valign="top" style="padding:3px 9px"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $_order->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($_order->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + <?php echo $this->getItemPrice($_item); ?> </td> </tr> diff --git a/app/code/Magento/Downloadable/view/frontend/templates/sales/order/creditmemo/items/renderer/downloadable.phtml b/app/code/Magento/Downloadable/view/frontend/templates/sales/order/creditmemo/items/renderer/downloadable.phtml index ee4566eed5f24f1800b30725660297a413c33af4..c097c3515f0e4d084cf1d1dfd16d0d920dc44161 100644 --- a/app/code/Magento/Downloadable/view/frontend/templates/sales/order/creditmemo/items/renderer/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/frontend/templates/sales/order/creditmemo/items/renderer/downloadable.phtml @@ -76,178 +76,14 @@ </td> <td class="col sku" data-th="<?php echo $this->escapeHtml(__('SKU')); ?>"><?php echo $this->prepareSku($this->getSku()) ?></td> <td class="col price" data-th="<?php echo $this->escapeHtml(__('Price')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart tax info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemPriceHtml(); ?> </td> <td class="col qty" data-th="<?php echo $this->escapeHtml(__('Qty')); ?>"><?php echo $_item->getQty()*1 ?></td> <td class="col subtotal" data-th="<?php echo $this->escapeHtml(__('Subtotal')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemRowTotalHtml(); ?> </td> <td class="col discount" data-th="<?php echo $this->escapeHtml(__('Discount Amount')); ?>"><?php echo $_order->formatPrice(-$_item->getDiscountAmount()) ?></td> <td class="cot total" data-th="<?php echo $this->escapeHtml(__('Row Total')); ?>"> - <?php echo $_order->formatPrice($_item->getRowTotal()-$_item->getDiscountAmount()+$_item->getTaxAmount()+$_item->getWeeeTaxAppliedRowAmount()) ?> + <?php echo $this->getItemRowTotalAfterDiscountHtml(); ?> </td> </tr> diff --git a/app/code/Magento/Downloadable/view/frontend/templates/sales/order/invoice/items/renderer/downloadable.phtml b/app/code/Magento/Downloadable/view/frontend/templates/sales/order/invoice/items/renderer/downloadable.phtml index ca56ccf7ff20d02b13df137ac9f9bf08618248d1..509f1f54c69d0ded6fff30dd1e3b676321d38dce 100644 --- a/app/code/Magento/Downloadable/view/frontend/templates/sales/order/invoice/items/renderer/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/frontend/templates/sales/order/invoice/items/renderer/downloadable.phtml @@ -75,180 +75,12 @@ </td> <td class="col sku" data-th="<?php echo $this->escapeHtml(__('SKU')); ?>"><?php echo $this->prepareSku($this->getSku()) ?></td> <td class="col price" data-th="<?php echo $this->escapeHtml(__('Price')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemPriceHtml(); ?> </td> <td class="col qty" data-th="<?php echo $this->escapeHtml(__('Qty Invoiced')); ?>"> <span class="qty summary" data-th="<?php echo $this->escapeHtml(__('Qty Invoiced')); ?>"><?php echo $_item->getQty()*1 ?></span> </td> <td class="col subtotal" data-th="<?php echo $this->escapeHtml(__('Subtotal')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" - id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemRowTotalHtml(); ?> </td> </tr> diff --git a/app/code/Magento/Downloadable/view/frontend/templates/sales/order/items/renderer/downloadable.phtml b/app/code/Magento/Downloadable/view/frontend/templates/sales/order/items/renderer/downloadable.phtml index a532caf89521fd37a3502cfc22c70d9a69f6b925..5fd5789eba47455b769079f0651d29ae37eac198 100644 --- a/app/code/Magento/Downloadable/view/frontend/templates/sales/order/items/renderer/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/frontend/templates/sales/order/items/renderer/downloadable.phtml @@ -80,92 +80,7 @@ </td> <td class="col sku" data-th="<?php echo $this->escapeHtml(__('SKU')); ?>"><?php echo $this->prepareSku($this->getSku()) ?></td> <td class="col price" data-th="<?php echo $this->escapeHtml(__('Price')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemPriceHtml(); ?> </td> <td class="col qty" data-th="<?php echo $this->escapeHtml(__('Qty')); ?>"> <ul class="items-qty"> @@ -196,91 +111,7 @@ </ul> </td> <td class="col subtotal" data-th="<?php echo $this->escapeHtml(__('Subtotal')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" - id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" - style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" - data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemRowTotalHtml(); ?> </td> <?php /* <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> diff --git a/app/code/Magento/Eav/Model/Resource/Entity/Attribute/Collection.php b/app/code/Magento/Eav/Model/Resource/Entity/Attribute/Collection.php index 213206ac7ffe4a65f5318353821b206d4e451a14..f20de6c74457a5287a9216b7748ef57f628cfc58 100644 --- a/app/code/Magento/Eav/Model/Resource/Entity/Attribute/Collection.php +++ b/app/code/Magento/Eav/Model/Resource/Entity/Attribute/Collection.php @@ -423,4 +423,16 @@ class Collection extends \Magento\Framework\Model\Resource\Db\Collection\Abstrac return $this; } + + + /** + * @inheritdoc + */ + public function getSelectCountSql() + { + $countSelect = parent::getSelectCountSql(); + $countSelect->reset(\Zend_Db_Select::COLUMNS); + $countSelect->columns('COUNT(DISTINCT main_table.attribute_id)'); + return $countSelect; + } } diff --git a/app/code/Magento/Eav/composer.json b/app/code/Magento/Eav/composer.json index 459cdf68a02216b857b428b641e633125e0209e7..73f4007a2d06540a651da886ca2eba9b7c28e0a9 100644 --- a/app/code/Magento/Eav/composer.json +++ b/app/code/Magento/Eav/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Email/Block/Adminhtml/Template/Edit.php b/app/code/Magento/Email/Block/Adminhtml/Template/Edit.php index 50d06bb8848fc8e907b992a73efab337f6e4d7a1..ea48ddc94985173637d969bbd89d3caff8af5737 100644 --- a/app/code/Magento/Email/Block/Adminhtml/Template/Edit.php +++ b/app/code/Magento/Email/Block/Adminhtml/Template/Edit.php @@ -167,7 +167,9 @@ class Edit extends \Magento\Backend\Block\Widget implements \Magento\Backend\Blo 'delete', array( 'label' => __('Delete Template'), - 'onclick' => 'templateControl.deleteTemplate();', + 'data_attribute' => array( + 'role' => 'template-delete' + ), 'class' => 'delete' ) ); @@ -177,7 +179,9 @@ class Edit extends \Magento\Backend\Block\Widget implements \Magento\Backend\Blo 'to_plain', array( 'label' => __('Convert to Plain Text'), - 'onclick' => 'templateControl.stripTags();', + 'data_attribute' => array( + 'role' => 'template-strip' + ), 'id' => 'convert_button' ) ); @@ -185,7 +189,9 @@ class Edit extends \Magento\Backend\Block\Widget implements \Magento\Backend\Blo 'to_html', array( 'label' => __('Return Html Version'), - 'onclick' => 'templateControl.unStripTags();', + 'data_attribute' => array( + 'role' => 'template-unstrip' + ), 'id' => 'convert_button_back', 'style' => 'display:none' ) @@ -193,13 +199,20 @@ class Edit extends \Magento\Backend\Block\Widget implements \Magento\Backend\Blo } $this->buttonList->add( 'preview', - array('label' => __('Preview Template'), 'onclick' => 'templateControl.preview();') + array( + 'label' => __('Preview Template'), + 'data_attribute' => array( + 'role' => 'template-preview' + ) + ) ); $this->buttonList->add( 'save', array( 'label' => __('Save Template'), - 'onclick' => 'templateControl.save();', + 'data_attribute' => array( + 'role' => 'template-save' + ), 'class' => 'save primary save-template' ) ); @@ -207,7 +220,9 @@ class Edit extends \Magento\Backend\Block\Widget implements \Magento\Backend\Blo 'load', array( 'label' => __('Load Template'), - 'onclick' => 'templateControl.load();', + 'data_attribute' => array( + 'role' => 'template-load' + ), 'type' => 'button', 'class' => 'save' ), diff --git a/app/code/Magento/Email/composer.json b/app/code/Magento/Email/composer.json index 6b336196b861f4accfa09ce084e58bef44e631d7..874ec744873c7dc2cc37892ed03e72b0c74a9fd8 100644 --- a/app/code/Magento/Email/composer.json +++ b/app/code/Magento/Email/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml b/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml index 86b743a28842bf21b9436dc6b4621a3e023be4d5..538a74d73bb1b482fda7bb52b9d63c9217d85241 100644 --- a/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml +++ b/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml @@ -82,13 +82,45 @@ require([ unconvertedText: '', typeChange: false, variables: null, + + events: { + 'click [data-role=template-save]' : 'save', + 'click [data-role=template-preview]' : 'preview', + 'click [data-role=template-unstrip]' : 'unStripTags', + 'click [data-role=template-strip]' : 'stripTags', + 'click [data-role=template-delete]': 'deleteTemplate', + 'click [data-role=template-load]': 'load' + }, + init: function () { if ($('convert_button_back')) { $('convert_button_back').hide(); } + + this.bindEvents(); + this.renderPaths(<?php echo $this->getUsedDefaultForPaths(); ?>, 'used_default_for'); this.renderPaths(<?php echo $this->getUsedCurrentlyForPaths(); ?>, 'used_currently_for'); }, + + bindEvents: function(){ + var events = this.events, + eventName, + selector, + callback, + key; + + for( key in events ){ + callback = this[events[key]]; + key = key.split(' '); + + eventName = key[0]; + selector = key.slice(1).join(' '); + + jQuery(selector).on(eventName, jQuery.proxy(callback, this) ); + } + }, + stripTags: function () { if(!window.confirm("<?php echo __('Are you sure that you want to strip tags?') ?>")) { return false; diff --git a/app/code/Magento/Fedex/composer.json b/app/code/Magento/Fedex/composer.json index e9f108b65148a4226a2bbbc2f86bda553ddfd4da..b59a29483866c30947994b24039627154f2394c9 100644 --- a/app/code/Magento/Fedex/composer.json +++ b/app/code/Magento/Fedex/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-shipping": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-shipping": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/GiftMessage/composer.json b/app/code/Magento/GiftMessage/composer.json index ab8bdee8ed853730e28a1fc2a32936e3e2b36e55..ea4f89a561ac22e8bf52ee1185b4ab5be549c7f9 100644 --- a/app/code/Magento/GiftMessage/composer.json +++ b/app/code/Magento/GiftMessage/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-multishipping": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-multishipping": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/GoogleAdwords/composer.json b/app/code/Magento/GoogleAdwords/composer.json index 1e1186e2435d370a15f75034ea0a82478262ca4e..0871683c6b615d12d4c095e02de0987bf6068ae2 100644 --- a/app/code/Magento/GoogleAdwords/composer.json +++ b/app/code/Magento/GoogleAdwords/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/GoogleAnalytics/composer.json b/app/code/Magento/GoogleAnalytics/composer.json index 44b90179e9dd36f26df7908de7b8d3862781dc99..8c052d78a6def7a92beee51cc2d5e6e6494d7ca4 100644 --- a/app/code/Magento/GoogleAnalytics/composer.json +++ b/app/code/Magento/GoogleAnalytics/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/GoogleOptimizer/composer.json b/app/code/Magento/GoogleOptimizer/composer.json index c0c161cee8db80be2469fc19a0a4c3a2ca4f2ea8..19b2419304218d033fc1c46af5a392049156bdda 100644 --- a/app/code/Magento/GoogleOptimizer/composer.json +++ b/app/code/Magento/GoogleOptimizer/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-google-analytics": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-google-analytics": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/GoogleShopping/composer.json b/app/code/Magento/GoogleShopping/composer.json index 301d9f7aad948e6b4500944bf79cdd6ae2e7d2d9..0653fc8490fcee346c0b8101dbd9e87721e1d410 100644 --- a/app/code/Magento/GoogleShopping/composer.json +++ b/app/code/Magento/GoogleShopping/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/GroupedImportExport/composer.json b/app/code/Magento/GroupedImportExport/composer.json index b9e3799d1ed0ce2b77d767d1a8c4325af8452677..d10e42271fb79b825638c8a1f5b86a2b54509616 100644 --- a/app/code/Magento/GroupedImportExport/composer.json +++ b/app/code/Magento/GroupedImportExport/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-import-export": "0.1.0-alpha92", - "magento/module-catalog-import-export": "0.1.0-alpha92", - "magento/module-grouped-product": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92" + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-import-export": "0.1.0-alpha93", + "magento/module-catalog-import-export": "0.1.0-alpha93", + "magento/module-grouped-product": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/GroupedProduct/composer.json b/app/code/Magento/GroupedProduct/composer.json index 5f48a5be84d3ffe7bb51741dd31433b00b018000..194defc21f1203372fe3402ac1d40b115ef511f3 100644 --- a/app/code/Magento/GroupedProduct/composer.json +++ b/app/code/Magento/GroupedProduct/composer.json @@ -3,22 +3,22 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/ImportExport/composer.json b/app/code/Magento/ImportExport/composer.json index 8ae46fed5df52c6918c9bd886f0b4e8817dd1a15..07ceb549aa508e6a1aa4496be5aa8356d8ab8a6c 100644 --- a/app/code/Magento/ImportExport/composer.json +++ b/app/code/Magento/ImportExport/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-indexer": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-indexer": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "ext-ctype": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Index/composer.json b/app/code/Magento/Index/composer.json index 25fe7c7e83b31b462e475a905561b861221fffd3..fd2dd650972a92b7e550100df8fff7234fc8b90f 100644 --- a/app/code/Magento/Index/composer.json +++ b/app/code/Magento/Index/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Indexer/composer.json b/app/code/Magento/Indexer/composer.json index e9d675725f111b4601ab3e316a656c6d8d091c18..a25790d2fa3b32ce403cb73feaa0e38a3d8b86dc 100644 --- a/app/code/Magento/Indexer/composer.json +++ b/app/code/Magento/Indexer/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-page-cache": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-page-cache": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Install/composer.json b/app/code/Magento/Install/composer.json index 65f882ad0d88b0f7ed629bbfdee168d54ae4533f..a697de6070f0a341439b67f91578bddcb16f8923 100644 --- a/app/code/Magento/Install/composer.json +++ b/app/code/Magento/Install/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-user": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-user": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Integration/composer.json b/app/code/Magento/Integration/composer.json index cd5f7fd93b8b96e8b5868b90bab2bd41ce46822a..c247cc387e408324752ccbd1e2391b052594cd90 100644 --- a/app/code/Magento/Integration/composer.json +++ b/app/code/Magento/Integration/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-user": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", - "magento/module-authorization": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-user": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", + "magento/module-authorization": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/LayeredNavigation/composer.json b/app/code/Magento/LayeredNavigation/composer.json index 370f1216505126a35bdff2f5a1266d54d8707514..e768accf760894943c0ff1a9193a1a99df1400ec 100644 --- a/app/code/Magento/LayeredNavigation/composer.json +++ b/app/code/Magento/LayeredNavigation/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/LayeredNavigation/view/frontend/layout/catalog_category_view_type_layered.xml b/app/code/Magento/LayeredNavigation/view/frontend/layout/catalog_category_view_type_layered.xml index 09986a45093643089b88b9a5f8d8d1c6d289f0c6..1a9c3455d71c362ed1bad9d81a959a23735b4e02 100644 --- a/app/code/Magento/LayeredNavigation/view/frontend/layout/catalog_category_view_type_layered.xml +++ b/app/code/Magento/LayeredNavigation/view/frontend/layout/catalog_category_view_type_layered.xml @@ -24,6 +24,11 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="root"> + <action method="addBodyClass"> + <argument name="class" xsi:type="string">page-with-filter</argument> + </action> + </referenceBlock> <referenceContainer name="sidebar.main"> <block class="Magento\LayeredNavigation\Block\Navigation\Category" name="catalog.leftnav" before="-" template="layer/view.phtml"> <block class="Magento\LayeredNavigation\Block\Navigation\State\Category" name="catalog.navigation.state" as="state" /> diff --git a/app/code/Magento/Log/composer.json b/app/code/Magento/Log/composer.json index bac2d75fc999fa2a237d91baccaf07e074ac15d9..4aee7ac3097c82f5a1ac5444696f75fe2b0f76c8 100644 --- a/app/code/Magento/Log/composer.json +++ b/app/code/Magento/Log/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Multishipping/composer.json b/app/code/Magento/Multishipping/composer.json index 07ae882a2563f46539d6384564ff7b04cf6079f8..e57b6e2b48bd351a37d24423433a8bc2a72ac986 100644 --- a/app/code/Magento/Multishipping/composer.json +++ b/app/code/Magento/Multishipping/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-payment": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-weee": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-payment": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-weee": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Newsletter/Block/Adminhtml/Template/Edit.php b/app/code/Magento/Newsletter/Block/Adminhtml/Template/Edit.php index c9e2984a713c5fd3f96ae32da9a8bc0f827f2a02..656be4d4600f655d8e366aeda363757f652d02cd 100644 --- a/app/code/Magento/Newsletter/Block/Adminhtml/Template/Edit.php +++ b/app/code/Magento/Newsletter/Block/Adminhtml/Template/Edit.php @@ -109,7 +109,9 @@ class Edit extends \Magento\Backend\Block\Widget 'Magento\Backend\Block\Widget\Button', array( 'label' => __('Convert to Plain Text'), - 'onclick' => 'templateControl.stripTags();', + 'data_attribute' => array( + 'role' => 'template-strip' + ), 'id' => 'convert_button', 'class' => 'convert' ) @@ -120,7 +122,9 @@ class Edit extends \Magento\Backend\Block\Widget 'Magento\Backend\Block\Widget\Button', array( 'label' => __('Return HTML Version'), - 'onclick' => 'templateControl.unStripTags();', + 'data_attribute' => array( + 'role' => 'template-unstrip' + ), 'id' => 'convert_button_back', 'style' => 'display:none', 'class' => 'return' @@ -131,7 +135,13 @@ class Edit extends \Magento\Backend\Block\Widget $this->getToolbar()->addChild( 'preview_button', 'Magento\Backend\Block\Widget\Button', - array('label' => __('Preview Template'), 'onclick' => 'templateControl.preview();', 'class' => 'preview') + array( + 'label' => __('Preview Template'), + 'data_attribute' => array( + 'role' => 'template-preview' + ), + 'class' => 'preview' + ) ); if ($this->getEditMode()) { @@ -140,7 +150,9 @@ class Edit extends \Magento\Backend\Block\Widget 'Magento\Backend\Block\Widget\Button', array( 'label' => __('Delete Template'), - 'onclick' => 'templateControl.deleteTemplate();', + 'data_attribute' => array( + 'role' => 'template-delete' + ), 'class' => 'delete' ) ); @@ -148,14 +160,26 @@ class Edit extends \Magento\Backend\Block\Widget $this->getToolbar()->addChild( 'save_as_button', 'Magento\Backend\Block\Widget\Button', - array('label' => __('Save As'), 'onclick' => 'templateControl.saveAs();', 'class' => 'save-as') + array( + 'label' => __('Save As'), + 'data_attribute' => array( + 'role' => 'template-save-as' + ), + 'class' => 'save-as' + ) ); } $this->getToolbar()->addChild( 'save_button', 'Magento\Backend\Block\Widget\Button', - array('label' => __('Save Template'), 'onclick' => 'templateControl.save();', 'class' => 'save primary') + array( + 'label' => __('Save Template'), + 'data_attribute' => array( + 'role' => 'template-save' + ), + 'class' => 'save primary' + ) ); return parent::_prepareLayout(); diff --git a/app/code/Magento/Newsletter/composer.json b/app/code/Magento/Newsletter/composer.json index 535b99bcab692ed57edc7a7bf6fcaa92c2daf958..751c49b02481c87edc976e886bee18dfed011761 100644 --- a/app/code/Magento/Newsletter/composer.json +++ b/app/code/Magento/Newsletter/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-widget": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/module-email": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-cron": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-widget": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/module-email": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-cron": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml b/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml index ed7b8e85023a4e3b5fd0071ff4dc189337e7e314..72d9a4ef27491fc8a8d7a53d2317c304a9acb4f9 100644 --- a/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml +++ b/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml @@ -53,10 +53,39 @@ require(['jquery', 'mage/mage', 'prototype'], function(jQuery){ templateName: false, id: 'text', + events: { + 'click [data-role=template-save]' : 'save', + 'click [data-role=template-save-as]': 'saveAs', + 'click [data-role=template-preview]' : 'preview', + 'click [data-role=template-unstrip]' : 'unStripTags', + 'click [data-role=template-strip]' : 'stripTags', + 'click [data-role=template-delete]': 'deleteTemplate' + }, + init: function () { if ($('convert_button_back')) { $('convert_button_back').hide(); } + + this.bindEvents(); + }, + + bindEvents: function(){ + var events = this.events, + eventName, + selector, + callback, + key; + + for( key in events ){ + callback = this[events[key]]; + key = key.split(' '); + + eventName = key[0]; + selector = key.slice(1).join(' '); + + jQuery(selector).on(eventName, jQuery.proxy(callback, this) ); + } }, stripTags: function () { diff --git a/app/code/Magento/OfflinePayments/composer.json b/app/code/Magento/OfflinePayments/composer.json index 4f1c6e19bac8825ab775f3dc00ac9266b53bbbfd..04fa82d9ca2207b17108e5dbed1b1a74a298e97b 100644 --- a/app/code/Magento/OfflinePayments/composer.json +++ b/app/code/Magento/OfflinePayments/composer.json @@ -3,12 +3,12 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-payment": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-payment": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/OfflineShipping/composer.json b/app/code/Magento/OfflineShipping/composer.json index 4b6560c1bd057245ca36e7df64048f9167e23749..26f52b3d9045390dea3b748045c4ed7d67d52eb1 100644 --- a/app/code/Magento/OfflineShipping/composer.json +++ b/app/code/Magento/OfflineShipping/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-shipping": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-sales-rule": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-shipping": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-sales-rule": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Ogone/composer.json b/app/code/Magento/Ogone/composer.json index 463423ba7b680ed698a6bd322c22a373ce4b2f08..033ce6c9be60b651a31039199d58a7a33f8d29c5 100644 --- a/app/code/Magento/Ogone/composer.json +++ b/app/code/Magento/Ogone/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-payment": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-payment": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/PageCache/Model/App/FrontController/MessageBox.php b/app/code/Magento/PageCache/Model/App/FrontController/MessageBox.php index 881f462a4c7aed194a0226a5520cda9c28276e2b..3234af5463d3d55252ef39dd555397e8ed42367b 100644 --- a/app/code/Magento/PageCache/Model/App/FrontController/MessageBox.php +++ b/app/code/Magento/PageCache/Model/App/FrontController/MessageBox.php @@ -23,6 +23,11 @@ */ namespace Magento\PageCache\Model\App\FrontController; +use Magento\Framework\App\FrontController; +use Magento\Framework\App\ResponseInterface; +use Magento\Framework\Stdlib\Cookie\CookieMetadataFactory; +use Magento\Framework\Stdlib\CookieManager; + class MessageBox { /** @@ -36,11 +41,18 @@ class MessageBox const COOKIE_PERIOD = 315360000; /** - * Cookie + * Cookie manager * - * @var \Magento\Framework\Stdlib\Cookie + * @var \Magento\Framework\Stdlib\CookieManager */ - protected $cookie; + protected $cookieManager; + + /** + * Cookie metadata factory + * + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory + */ + protected $cookieMetadataFactory; /** * Request @@ -50,28 +62,35 @@ class MessageBox protected $request; /** + * Scope config + * * @var \Magento\Framework\App\Config\ScopeConfigInterface */ protected $config; /** + * Message manager + * * @var \Magento\Framework\Message\Manager */ protected $messageManager; /** - * @param \Magento\Framework\Stdlib\Cookie $cookie + * @param CookieManager $cookieManager + * @param CookieMetadataFactory $cookieMetadataFactory * @param \Magento\Framework\App\Request\Http $request * @param \Magento\PageCache\Model\Config $config * @param \Magento\Framework\Message\ManagerInterface $messageManager */ public function __construct( - \Magento\Framework\Stdlib\Cookie $cookie, + CookieManager $cookieManager, + CookieMetadataFactory $cookieMetadataFactory, \Magento\Framework\App\Request\Http $request, \Magento\PageCache\Model\Config $config, \Magento\Framework\Message\ManagerInterface $messageManager ) { - $this->cookie = $cookie; + $this->cookieManager = $cookieManager; + $this->cookieMetadataFactory = $cookieMetadataFactory; $this->request = $request; $this->config = $config; $this->messageManager = $messageManager; @@ -80,16 +99,19 @@ class MessageBox /** * Set Cookie for msg box when it displays first * - * @param \Magento\Framework\App\FrontController $subject - * @param \Magento\Framework\App\ResponseInterface $response + * @param FrontController $subject + * @param ResponseInterface $response * - * @return \Magento\Framework\App\ResponseInterface + * @return ResponseInterface * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ - public function afterDispatch(\Magento\Framework\App\FrontController $subject, \Magento\Framework\App\ResponseInterface $response) + public function afterDispatch(FrontController $subject, ResponseInterface $response) { if ($this->request->isPost() && $this->messageManager->hasMessages()) { - $this->cookie->set(self::COOKIE_NAME, 1, self::COOKIE_PERIOD, '/'); + $publicCookieMetadata = $this->cookieMetadataFactory->createPublicCookieMetadata() + ->setDuration(self::COOKIE_PERIOD) + ->setPath('/'); + $this->cookieManager->setPublicCookie(self::COOKIE_NAME, 1, $publicCookieMetadata); } return $response; } diff --git a/app/code/Magento/PageCache/composer.json b/app/code/Magento/PageCache/composer.json index a6be326a2cdaadf91d4ed251c7bf79cc109f8230..cb4980b68fa5cc324573a6aef30631ce2abf42ac 100644 --- a/app/code/Magento/PageCache/composer.json +++ b/app/code/Magento/PageCache/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/PayPalRecurringPayment/composer.json b/app/code/Magento/PayPalRecurringPayment/composer.json index 2d75a75ce3ed7aa4beb27d0e34c965a5d28774ae..a4c82d9947b38a970fda299f6d78fa678fbc50f4 100644 --- a/app/code/Magento/PayPalRecurringPayment/composer.json +++ b/app/code/Magento/PayPalRecurringPayment/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-payment": "0.1.0-alpha92", - "magento/module-paypal": "0.1.0-alpha92", - "magento/module-recurring-payment": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-payment": "0.1.0-alpha93", + "magento/module-paypal": "0.1.0-alpha93", + "magento/module-recurring-payment": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Payment/composer.json b/app/code/Magento/Payment/composer.json index e40a3b93c06ae3add84731e8ecc971079d3d308a..01c5d7e638ab0eaf4a636c3fda5bd4d0444fa5ce 100644 --- a/app/code/Magento/Payment/composer.json +++ b/app/code/Magento/Payment/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-centinel": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-centinel": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Paypal/composer.json b/app/code/Magento/Paypal/composer.json index 0a1ff267fcb4db115d6063f1dbc577ecd71127be..beee8266d6e61d452f5d30e9fa6713289c952b03 100644 --- a/app/code/Magento/Paypal/composer.json +++ b/app/code/Magento/Paypal/composer.json @@ -3,25 +3,25 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-payment": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-centinel": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-payment": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-centinel": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Paypal/view/frontend/templates/hss/form.phtml b/app/code/Magento/Paypal/view/frontend/templates/hss/form.phtml index 40fedef5ad3d140ca60c67502fc17ffab0d801a3..a10b664c7b43cce6208972c57cdfe50956aaa631 100644 --- a/app/code/Magento/Paypal/view/frontend/templates/hss/form.phtml +++ b/app/code/Magento/Paypal/view/frontend/templates/hss/form.phtml @@ -28,8 +28,6 @@ ?> <html> <head> - <script type="text/javascript" src="<?php echo $this->getViewFileUrl('jquery/jquery.js') ?>"></script> - <script type="text/javascript" src="<?php echo $this->getViewFileUrl('jquery/jquery-migrate.js') ?>"></script> </head> <body> <form id="token_form" method="POST" action="<?php echo $this->getTransactionUrl() ?>"> @@ -38,12 +36,7 @@ <input type="hidden" name="MODE" value="<?php echo $this->isTestMode() ? 'TEST' : 'LIVE'; ?>"/> </form> <script type="text/javascript"> -require(['jquery'], function(jQuery){ - - // this is NOT tested. - jQuery('#token_form').submit(); - -}); + document.getElementById('token_form').submit(); </script> </body> </html> diff --git a/app/code/Magento/Paypal/view/frontend/templates/hss/redirect.phtml b/app/code/Magento/Paypal/view/frontend/templates/hss/redirect.phtml index a2a237f4d73c18dd020663b8c72464302c972256..c2cb67cb06199089ced522706575115ebaf07348 100644 --- a/app/code/Magento/Paypal/view/frontend/templates/hss/redirect.phtml +++ b/app/code/Magento/Paypal/view/frontend/templates/hss/redirect.phtml @@ -33,7 +33,6 @@ </head> <body> <script type="text/javascript"> -require(['jquery'], function(jQuery){ // this code is NOT tested! if (window.top == window.self) { @@ -59,7 +58,6 @@ require(['jquery'], function(jQuery){ window.top.location = "<?php echo $this->getUrl('checkout/cart') ?>"; <?php endif; ?> -}); </script> </body> </html> \ No newline at end of file diff --git a/app/code/Magento/Paypal/view/frontend/templates/payflowadvanced/form.phtml b/app/code/Magento/Paypal/view/frontend/templates/payflowadvanced/form.phtml index aaa771f271d1d978a8020450d55b639be8fef160..6746afe060041100c1269450dfba5d17927de95d 100644 --- a/app/code/Magento/Paypal/view/frontend/templates/payflowadvanced/form.phtml +++ b/app/code/Magento/Paypal/view/frontend/templates/payflowadvanced/form.phtml @@ -28,8 +28,6 @@ ?> <html> <head> - <script type="text/javascript" src="<?php echo $this->getViewFileUrl('jquery/jquery.js') ?>"></script> - <script type="text/javascript" src="<?php echo $this->getViewFileUrl('jquery/jquery-migrate.js') ?>"></script> </head> <body> <form id="token_form" method="POST" action="<?php echo $this->getTransactionUrl() ?>"> @@ -38,12 +36,7 @@ <input type="hidden" name="MODE" value="<?php echo $this->isTestMode() ? 'TEST' : 'LIVE'; ?>"/> </form> <script type="text/javascript"> -require(['jquery'], function(jQuery){ - - // this is NOT tested. - jQuery('#token_form').submit(); - -}); + document.getElementById('token_form').submit(); </script> </body> </html> diff --git a/app/code/Magento/Paypal/view/frontend/templates/payflowadvanced/redirect.phtml b/app/code/Magento/Paypal/view/frontend/templates/payflowadvanced/redirect.phtml index a35d1c1ccd50379bf9e59432c9c363d1b9165568..7bcfa8d862c5e6ab357a8822c77be69f48cecf87 100644 --- a/app/code/Magento/Paypal/view/frontend/templates/payflowadvanced/redirect.phtml +++ b/app/code/Magento/Paypal/view/frontend/templates/payflowadvanced/redirect.phtml @@ -33,8 +33,7 @@ </head> <body> <script type="text/javascript"> -require(['jquery'], function(jQuery){ -var $ = jQuery; + if (window.top == window.self) { window.location = "<?php echo $this->getUrl('checkout/cart') ?>"; @@ -65,7 +64,6 @@ var $ = jQuery; window.top.location = "<?php echo $this->getUrl('checkout/cart') ?>"; <?php endif; ?> -}); </script> </body> </html> diff --git a/app/code/Magento/Paypal/view/frontend/templates/payflowlink/form.phtml b/app/code/Magento/Paypal/view/frontend/templates/payflowlink/form.phtml index 40fedef5ad3d140ca60c67502fc17ffab0d801a3..a10b664c7b43cce6208972c57cdfe50956aaa631 100644 --- a/app/code/Magento/Paypal/view/frontend/templates/payflowlink/form.phtml +++ b/app/code/Magento/Paypal/view/frontend/templates/payflowlink/form.phtml @@ -28,8 +28,6 @@ ?> <html> <head> - <script type="text/javascript" src="<?php echo $this->getViewFileUrl('jquery/jquery.js') ?>"></script> - <script type="text/javascript" src="<?php echo $this->getViewFileUrl('jquery/jquery-migrate.js') ?>"></script> </head> <body> <form id="token_form" method="POST" action="<?php echo $this->getTransactionUrl() ?>"> @@ -38,12 +36,7 @@ <input type="hidden" name="MODE" value="<?php echo $this->isTestMode() ? 'TEST' : 'LIVE'; ?>"/> </form> <script type="text/javascript"> -require(['jquery'], function(jQuery){ - - // this is NOT tested. - jQuery('#token_form').submit(); - -}); + document.getElementById('token_form').submit(); </script> </body> </html> diff --git a/app/code/Magento/Paypal/view/frontend/templates/payflowlink/redirect.phtml b/app/code/Magento/Paypal/view/frontend/templates/payflowlink/redirect.phtml index 830e80cd3f28b3e51e65df7fb778da5e5ce6d916..a0f1a27a6b6bd07b80258f3b8e0aff49598686fc 100644 --- a/app/code/Magento/Paypal/view/frontend/templates/payflowlink/redirect.phtml +++ b/app/code/Magento/Paypal/view/frontend/templates/payflowlink/redirect.phtml @@ -31,8 +31,7 @@ </head> <body> <script type="text/javascript"> -require(['jquery'], function(jQuery){ -var $ = jQuery; + if (window.top == window.self) { window.location = "<?php echo $this->getUrl('checkout/cart') ?>"; @@ -63,7 +62,6 @@ var $ = jQuery; window.top.location = "<?php echo $this->getUrl('checkout/cart') ?>"; <?php endif; ?> -}); </script> </body> </html> diff --git a/app/code/Magento/Persistent/Model/Observer/Session.php b/app/code/Magento/Persistent/Model/Observer/Session.php index c7b106106b18eb7a705892c407d259cea4d2d8ad..6b6b7cea563012402f4f9b7dbf6badb730756378 100644 --- a/app/code/Magento/Persistent/Model/Observer/Session.php +++ b/app/code/Magento/Persistent/Model/Observer/Session.php @@ -51,13 +51,6 @@ class Session */ protected $_sessionFactory; - /** - * Cookie model - * - * @var \Magento\Framework\Stdlib\Cookie - */ - protected $_cookie; - /** * Customer session * @@ -73,13 +66,12 @@ class Session protected $_checkoutSession; /** - * Construct + * Constructor * * @param \Magento\Persistent\Helper\Data $persistentData * @param \Magento\Persistent\Helper\Session $persistentSession * @param \Magento\Checkout\Model\Session $checkoutSession * @param \Magento\Customer\Model\Session $customerSession - * @param \Magento\Framework\Stdlib\Cookie $cookie * @param \Magento\Persistent\Model\SessionFactory $sessionFactory */ public function __construct( @@ -87,14 +79,12 @@ class Session \Magento\Persistent\Helper\Session $persistentSession, \Magento\Checkout\Model\Session $checkoutSession, \Magento\Customer\Model\Session $customerSession, - \Magento\Framework\Stdlib\Cookie $cookie, \Magento\Persistent\Model\SessionFactory $sessionFactory ) { $this->_persistentData = $persistentData; $this->_persistentSession = $persistentSession; $this->_checkoutSession = $checkoutSession; $this->_customerSession = $customerSession; - $this->_cookie = $cookie; $this->_sessionFactory = $sessionFactory; } @@ -138,9 +128,7 @@ class Session // Set new cookie if ($sessionModel->getId()) { - $this->_cookie->set( - \Magento\Persistent\Model\Session::COOKIE_NAME, - $sessionModel->getKey(), + $sessionModel->setPersistentCookie( $persistentLifeTime, $this->_customerSession->getCookiePath() ); @@ -239,11 +227,11 @@ class Session $request = $observer->getEvent()->getRequest(); if ($this->_customerSession->isLoggedIn() || $request->getFullActionName() == 'customer_account_logout') { - $this->_cookie->renew( - \Magento\Persistent\Model\Session::COOKIE_NAME, - $this->_persistentData->getLifeTime(), - $this->_customerSession->getCookiePath() - ); + $this->_sessionFactory->create() + ->renewPersistentCookie( + $this->_persistentData->getLifeTime(), + $this->_customerSession->getCookiePath() + ); } } } diff --git a/app/code/Magento/Persistent/Model/Session.php b/app/code/Magento/Persistent/Model/Session.php index f15c485f4573102951162497008eeef0c7c9d745..c4dd6a31ae3d141686c1e809818894f14ce5f6d7 100644 --- a/app/code/Magento/Persistent/Model/Session.php +++ b/app/code/Magento/Persistent/Model/Session.php @@ -27,6 +27,7 @@ namespace Magento\Persistent\Model; * Persistent Session Model * * @method int getCustomerId() + * @method Session setCustomerId() */ class Session extends \Magento\Framework\Model\AbstractModel { @@ -88,11 +89,18 @@ class Session extends \Magento\Framework\Model\AbstractModel protected $_storeManager; /** - * Cookie model + * Cookie manager * - * @var \Magento\Framework\Stdlib\Cookie + * @var \Magento\Framework\Stdlib\CookieManager */ - protected $_cookie; + protected $_cookieManager; + + /** + * Cookie metadata factory + * + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory + */ + protected $_cookieMetadataFactory; /** * @var \Magento\Framework\Math\Random @@ -105,14 +113,15 @@ class Session extends \Magento\Framework\Model\AbstractModel protected $sessionConfig; /** - * Construct + * Constructor * * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $coreConfig * @param \Magento\Core\Helper\Data $coreData * @param \Magento\Persistent\Helper\Data $persistentData - * @param \Magento\Framework\Stdlib\Cookie $cookie + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\Math\Random $mathRandom * @param \Magento\Framework\Session\Config\ConfigInterface $sessionConfig @@ -126,7 +135,8 @@ class Session extends \Magento\Framework\Model\AbstractModel \Magento\Framework\App\Config\ScopeConfigInterface $coreConfig, \Magento\Core\Helper\Data $coreData, \Magento\Persistent\Helper\Data $persistentData, - \Magento\Framework\Stdlib\Cookie $cookie, + \Magento\Framework\Stdlib\CookieManager $cookieManager, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\Math\Random $mathRandom, \Magento\Framework\Session\Config\ConfigInterface $sessionConfig, @@ -137,7 +147,8 @@ class Session extends \Magento\Framework\Model\AbstractModel $this->_coreData = $coreData; $this->_persistentData = $persistentData; $this->_coreConfig = $coreConfig; - $this->_cookie = $cookie; + $this->_cookieManager = $cookieManager; + $this->_cookieMetadataFactory = $cookieMetadataFactory; $this->_storeManager = $storeManager; $this->sessionConfig = $sessionConfig; $this->mathRandom = $mathRandom; @@ -243,7 +254,7 @@ class Session extends \Magento\Framework\Model\AbstractModel public function loadByCookieKey($key = null) { if (null === $key) { - $key = $this->_cookie->get(self::COOKIE_NAME); + $key = $this->_cookieManager->getCookie(self::COOKIE_NAME); } if ($key) { $this->load($key, 'key'); @@ -286,7 +297,55 @@ class Session extends \Magento\Framework\Model\AbstractModel */ public function removePersistentCookie() { - $this->_cookie->set(self::COOKIE_NAME, null, null, $this->sessionConfig->getCookiePath()); + $cookieMetadata = $this->_cookieMetadataFactory->createCookieMetadata() + ->setPath($this->sessionConfig->getCookiePath()); + $this->_cookieManager->deleteCookie(self::COOKIE_NAME, $cookieMetadata); + return $this; + } + + /** + * Set persistent cookie + * + * @param int $duration Time in seconds. + * @param string $path + * @return $this + */ + public function setPersistentCookie($duration, $path) + { + $publicCookieMetadata = $this->_cookieMetadataFactory->createPublicCookieMetadata() + ->setDuration($duration) + ->setPath($path); + $this->_cookieManager->setPublicCookie( + self::COOKIE_NAME, + $this->getKey(), + $publicCookieMetadata + ); + return $this; + } + + /** + * Postpone cookie expiration time if cookie value defined + * + * @param int $duration Time in seconds. + * @param string $path + * @return $this + */ + public function renewPersistentCookie($duration, $path) + { + if ($duration === null) { + return $this; + } + $value = $this->_cookieManager->getCookie(self::COOKIE_NAME); + if (null !== $value) { + $publicCookieMetadata = $this->_cookieMetadataFactory->createPublicCookieMetadata() + ->setDuration($duration) + ->setPath($path); + $this->_cookieManager->setPublicCookie( + self::COOKIE_NAME, + $value, + $publicCookieMetadata + ); + } return $this; } diff --git a/app/code/Magento/Persistent/composer.json b/app/code/Magento/Persistent/composer.json index ec1ad898b037c8ed97169adecb0a8259d97d8d65..a993577370339fe4c711d1f6f964060ee945e5d4 100644 --- a/app/code/Magento/Persistent/composer.json +++ b/app/code/Magento/Persistent/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-cron": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-cron": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/ProductAlert/composer.json b/app/code/Magento/ProductAlert/composer.json index 21b61ae09ab1a0c78c3e4f8744a707fe96b25d27..ffd6c9def721e6f8c9e2af0b095da3aafa325ace 100644 --- a/app/code/Magento/ProductAlert/composer.json +++ b/app/code/Magento/ProductAlert/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/RecurringPayment/composer.json b/app/code/Magento/RecurringPayment/composer.json index 7949775d23c3f72641fa1e8dfc8a0559080fa09c..2b864043d07a7ec9a5ea682adac13244c6b88e56 100644 --- a/app/code/Magento/RecurringPayment/composer.json +++ b/app/code/Magento/RecurringPayment/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-payment": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-payment": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Reports/composer.json b/app/code/Magento/Reports/composer.json index b6e5b2575c352bd888e66f8f1bf74f32dd99e5a0..efce6ded2f49d9513f60edfe8227fc4cdbe4d979 100644 --- a/app/code/Magento/Reports/composer.json +++ b/app/code/Magento/Reports/composer.json @@ -3,27 +3,27 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-widget": "0.1.0-alpha92", - "magento/module-log": "0.1.0-alpha92", - "magento/module-wishlist": "0.1.0-alpha92", - "magento/module-review": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-downloadable": "0.1.0-alpha92", - "magento/module-sales-rule": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-widget": "0.1.0-alpha93", + "magento/module-log": "0.1.0-alpha93", + "magento/module-wishlist": "0.1.0-alpha93", + "magento/module-review": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-downloadable": "0.1.0-alpha93", + "magento/module-sales-rule": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Reports/view/adminhtml/layout/reports_index_search_block.xml b/app/code/Magento/Reports/view/adminhtml/layout/reports_index_search_block.xml index 0efe089b00508f1b8dce920b09c2d05424182fbc..ee855a368bb91d7be20cb487c3ad38bb60ee1d12 100644 --- a/app/code/Magento/Reports/view/adminhtml/layout/reports_index_search_block.xml +++ b/app/code/Magento/Reports/view/adminhtml/layout/reports_index_search_block.xml @@ -49,7 +49,7 @@ <block class="Magento\Backend\Block\Widget\Grid\ColumnSet" as="grid.columnSet" name="adminhtml.report.search.grid.columnSet"> <arguments> <argument name="rowUrl" xsi:type="array"> - <item name="path" xsi:type="string">adminhtml/catalog_search/edit</item> + <item name="path" xsi:type="string">catalog/search/edit</item> <item name="extraParamsTemplate" xsi:type="array"> <item name="id" xsi:type="string">getId</item> </item> diff --git a/app/code/Magento/RequireJs/composer.json b/app/code/Magento/RequireJs/composer.json index d058fc990d0f33ebfdf511bc4f0294b8f7d56b15..8c0a80133266435c1c26a46494174aa64c8a6e80 100644 --- a/app/code/Magento/RequireJs/composer.json +++ b/app/code/Magento/RequireJs/composer.json @@ -3,12 +3,12 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Review/Model/Rating/Entity.php b/app/code/Magento/Review/Model/Rating/Entity.php index 5f57192fd085e45789f14d46e78f660ff0bc5b1d..33944275a05e92626e5a254f3fff5a141cc5dbfd 100644 --- a/app/code/Magento/Review/Model/Rating/Entity.php +++ b/app/code/Magento/Review/Model/Rating/Entity.php @@ -32,6 +32,7 @@ namespace Magento\Review\Model\Rating; * @method \Magento\Review\Model\Rating\Entity setEntityCode(string $value) * * @author Magento Core Team <core@magentocommerce.com> + * @codeCoverageIgnore */ class Entity extends \Magento\Framework\Model\AbstractModel { diff --git a/app/code/Magento/Review/Model/Rating/Option.php b/app/code/Magento/Review/Model/Rating/Option.php index f6c47ce7cc475fc10953d831064028661da6404e..43ee4bd61f611327dd61b1f1c9dacdd9b976e618 100644 --- a/app/code/Magento/Review/Model/Rating/Option.php +++ b/app/code/Magento/Review/Model/Rating/Option.php @@ -38,6 +38,7 @@ namespace Magento\Review\Model\Rating; * @method \Magento\Review\Model\Rating\Option setPosition(int $value) * * @author Magento Core Team <core@magentocommerce.com> + * @codeCoverageIgnore */ class Option extends \Magento\Framework\Model\AbstractModel { diff --git a/app/code/Magento/Review/Model/Rating/Option/Vote.php b/app/code/Magento/Review/Model/Rating/Option/Vote.php index 8d50f6e315223a4429686aa72e5bf2911b588f72..d9204841467e8fc3de8f8d9799f13faf35d678fd 100644 --- a/app/code/Magento/Review/Model/Rating/Option/Vote.php +++ b/app/code/Magento/Review/Model/Rating/Option/Vote.php @@ -27,6 +27,7 @@ namespace Magento\Review\Model\Rating\Option; * Rating vote model * * @author Magento Core Team <core@magentocommerce.com> + * @codeCoverageIgnore */ class Vote extends \Magento\Framework\Model\AbstractModel { diff --git a/app/code/Magento/Review/Model/Review/Status.php b/app/code/Magento/Review/Model/Review/Status.php index f9d10085ff99e63d9bf9d1322a07b145b342f26d..74dc48cea5d127e263ca80426cf919fa347aa458 100644 --- a/app/code/Magento/Review/Model/Review/Status.php +++ b/app/code/Magento/Review/Model/Review/Status.php @@ -26,6 +26,7 @@ * Review status * * @author Magento Core Team <core@magentocommerce.com> + * @codeCoverageIgnore */ namespace Magento\Review\Model\Review; diff --git a/app/code/Magento/Review/Model/Review/Summary.php b/app/code/Magento/Review/Model/Review/Summary.php index 47231db812c93573e664236d4ea746c71ce30430..9167d24dd453b6564f807b0366f03ffbc8929c6c 100644 --- a/app/code/Magento/Review/Model/Review/Summary.php +++ b/app/code/Magento/Review/Model/Review/Summary.php @@ -25,6 +25,8 @@ namespace Magento\Review\Model\Review; /** * Review summary + * + * @codeCoverageIgnore */ class Summary extends \Magento\Framework\Model\AbstractModel { diff --git a/app/code/Magento/Review/composer.json b/app/code/Magento/Review/composer.json index 1d71cde7563a29dcf740206168224f142d6b1c01..0eddb6270e0623371f3d1f0def1e20215fcf3fe0 100644 --- a/app/code/Magento/Review/composer.json +++ b/app/code/Magento/Review/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-newsletter": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-newsletter": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Rss/Model/Rss.php b/app/code/Magento/Rss/Model/Rss.php index 2d6c95a2872a88f0017ec269023bdd135c505cc3..ddeba3753eaf2110ea0eeb24f76e1f51c53002d1 100644 --- a/app/code/Magento/Rss/Model/Rss.php +++ b/app/code/Magento/Rss/Model/Rss.php @@ -38,6 +38,7 @@ class Rss /** * @param array $data * @return $this + * @codeCoverageIgnore */ public function _addHeader($data = array()) { @@ -48,6 +49,7 @@ class Rss /** * @param array $entries * @return $this + * @codeCoverageIgnore */ public function _addEntries($entries) { @@ -58,6 +60,7 @@ class Rss /** * @param array $entry * @return $this + * @codeCoverageIgnore */ public function _addEntry($entry) { @@ -67,6 +70,7 @@ class Rss /** * @return array + * @codeCoverageIgnore */ public function getFeedArray() { diff --git a/app/code/Magento/Rss/composer.json b/app/code/Magento/Rss/composer.json index 305d0577313d5ce054d25c8785092e0354f6c025..a63e637cc1c988c7cd6ede0227de690ed0c87bb9 100644 --- a/app/code/Magento/Rss/composer.json +++ b/app/code/Magento/Rss/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-sales-rule": "0.1.0-alpha92", - "magento/module-review": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-gift-message": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-sales-rule": "0.1.0-alpha93", + "magento/module-review": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-gift-message": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Rule/composer.json b/app/code/Magento/Rule/composer.json index 6ba8eb24d11e950d2e9cad0812a63ee6772e39c5..8221d57bad556ab86fa83871e9f8e984aa20c4fc 100644 --- a/app/code/Magento/Rule/composer.json +++ b/app/code/Magento/Rule/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Sales/Block/Adminhtml/Items/AbstractItems.php b/app/code/Magento/Sales/Block/Adminhtml/Items/AbstractItems.php index ec740624191627e9a4ad4e02002f187b50d41cc7..eac8657379e6aa2bfce4ed8012895ba14033b9f1 100644 --- a/app/code/Magento/Sales/Block/Adminhtml/Items/AbstractItems.php +++ b/app/code/Magento/Sales/Block/Adminhtml/Items/AbstractItems.php @@ -322,57 +322,6 @@ class AbstractItems extends \Magento\Backend\Block\Template return $res; } - /** - * Retrieve include tax html formatted content - * - * @param \Magento\Framework\Object $item - * @return string - */ - public function displayPriceInclTax(\Magento\Framework\Object $item) - { - $qty = $item->getQtyOrdered() ? $item->getQtyOrdered() : ($item->getQty() ? $item->getQty() : 1); - - $baseTax = $item->getTaxBeforeDiscount() - ? $item->getTaxBeforeDiscount() - : ($item->getTaxAmount() ? $item->getTaxAmount() : 0); - - $tax = $item->getBaseTaxBeforeDiscount() - ? $item->getBaseTaxBeforeDiscount() - : ($item->getBaseTaxAmount() ? $item->getBaseTaxAmount() : 0); - - $basePriceTax = 0; - $priceTax = 0; - - if (floatval($qty)) { - $basePriceTax = $item->getBasePrice() + $baseTax / $qty; - $priceTax = $item->getPrice() + $tax / $qty; - } - - return $this->displayPrices( - $this->getOrder()->getStore()->roundPrice($basePriceTax), - $this->getOrder()->getStore()->roundPrice($priceTax) - ); - } - - /** - * Retrieve subtotal price include tax html formated content - * - * @param \Magento\Framework\Object $item - * @return string - */ - public function displaySubtotalInclTax($item) - { - $baseTax = $item->getTaxBeforeDiscount() - ? $item->getTaxBeforeDiscount() - : ($item->getTaxAmount() ? $item->getTaxAmount() : 0); - - $tax = $item->getBaseTaxBeforeDiscount() - ? $item->getBaseTaxBeforeDiscount() - : ($item->getBaseTaxAmount() ? $item->getBaseTaxAmount() : 0); - - return $this->displayPrices($item->getBaseRowTotal() + $baseTax, $item->getRowTotal() + $tax); - } - /** * Retrieve tax calculation html content * diff --git a/app/code/Magento/Sales/Block/Adminhtml/Items/Column/DefaultColumn.php b/app/code/Magento/Sales/Block/Adminhtml/Items/Column/DefaultColumn.php index 1a60e24dbd487c79c74bc023a29c932183c670d1..bddeee82ee00e9ffcca924e3c001c2ee5f732490 100644 --- a/app/code/Magento/Sales/Block/Adminhtml/Items/Column/DefaultColumn.php +++ b/app/code/Magento/Sales/Block/Adminhtml/Items/Column/DefaultColumn.php @@ -24,13 +24,16 @@ namespace Magento\Sales\Block\Adminhtml\Items\Column; use Magento\Sales\Model\Order\Item; +use Magento\Sales\Model\Quote\Item\AbstractItem as QuoteItem; +use Magento\Sales\Model\Order\Invoice\Item as InvoiceItem; +use Magento\Sales\Model\Order\Creditmemo\Item as CreditmemoItem; /** * Adminhtml sales order column renderer * * @author Magento Core Team <core@magentocommerce.com> */ -class DefaultColumn extends \Magento\Backend\Block\Template +class DefaultColumn extends \Magento\Sales\Block\Adminhtml\Items\AbstractItems { /** * Option factory @@ -41,29 +44,34 @@ class DefaultColumn extends \Magento\Backend\Block\Template /** * @param \Magento\Backend\Block\Template\Context $context + * @param \Magento\CatalogInventory\Service\V1\StockItemService $stockItemService + * @param \Magento\Framework\Registry $registry * @param \Magento\Catalog\Model\Product\OptionFactory $optionFactory * @param array $data */ public function __construct( \Magento\Backend\Block\Template\Context $context, + \Magento\CatalogInventory\Service\V1\StockItemService $stockItemService, + \Magento\Framework\Registry $registry, \Magento\Catalog\Model\Product\OptionFactory $optionFactory, array $data = array() ) { $this->_optionFactory = $optionFactory; - parent::__construct($context, $data); + parent::__construct($context, $stockItemService, $registry, $data); } /** * Get item * - * @return Item + * @return Item|QuoteItem */ public function getItem() { - if ($this->_getData('item') instanceof Item) { - return $this->_getData('item'); + $item = $this->_getData('item'); + if ($item instanceof Item || $item instanceof QuoteItem) { + return $item; } else { - return $this->_getData('item')->getOrderItem(); + return $item->getOrderItem(); } } @@ -119,4 +127,31 @@ class DefaultColumn extends \Magento\Backend\Block\Template { return $this->getItem()->getSku(); } + + + /** + * Calculate total amount for the item + * + * @param QuoteItem|Item|InvoiceItem|CreditmemoItem $item + * @return mixed + */ + public function getTotalAmount($item) + { + $totalAmount = $item->getRowTotal() - $item->getDiscountAmount(); + + return $totalAmount; + } + + /** + * Calculate base total amount for the item + * + * @param QuoteItem|Item|InvoiceItem|CreditmemoItem $item + * @return mixed + */ + public function getBaseTotalAmount($item) + { + $baseTotalAmount = $item->getBaseRowTotal() - $item->getBaseDiscountAmount(); + + return $baseTotalAmount; + } } diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php index 10431e2c48be9d414dd838b89d20bafe97089f0e..2e2063909941b998b206bfe7854cdd31ac4679ff 100644 --- a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php +++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php @@ -576,4 +576,43 @@ class Grid extends \Magento\Sales\Block\Adminhtml\Order\Create\AbstractCreate { return $this->_wishlistFactory->create()->getCollection()->filterByCustomerId($this->getCustomerId()); } + + /** + * Get the item unit price html + * + * @param Item $item + * @return string + */ + public function getItemUnitPriceHtml(Item $item) + { + $block = $this->getLayout()->getBlock('item_unit_price'); + $block->setItem($item); + return $block->toHtml(); + } + + /** + * Get the item row total html + * + * @param Item $item + * @return string + */ + public function getItemRowTotalHtml(Item $item) + { + $block = $this->getLayout()->getBlock('item_row_total'); + $block->setItem($item); + return $block->toHtml(); + } + + /** + * Return html for row total with discount + * + * @param Item $item + * @return string + */ + public function getItemRowTotalWithDiscountHtml(Item $item) + { + $block = $this->getLayout()->getBlock('item_row_total_with_discount'); + $block->setItem($item); + return $block->toHtml(); + } } diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/View/Items/Renderer/DefaultRenderer.php b/app/code/Magento/Sales/Block/Adminhtml/Order/View/Items/Renderer/DefaultRenderer.php index a8fa90a493aeb328b1ffd17f247ed09adaa6b167..0301d957ab05a3fc8dda1d0b58af299e7f04b4a8 100644 --- a/app/code/Magento/Sales/Block/Adminhtml/Order/View/Items/Renderer/DefaultRenderer.php +++ b/app/code/Magento/Sales/Block/Adminhtml/Order/View/Items/Renderer/DefaultRenderer.php @@ -28,7 +28,7 @@ use Magento\Sales\Model\Order\Item; /** * Adminhtml sales order item renderer */ -class DefaultRenderer extends \Magento\Sales\Block\Adminhtml\Items\AbstractItems +class DefaultRenderer extends \Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer { /** * Message helper diff --git a/app/code/Magento/Sales/Block/Order/Email/Items/DefaultItems.php b/app/code/Magento/Sales/Block/Order/Email/Items/DefaultItems.php index f7ac98fdd1c354427987925f9625b761f05ed27c..a29a690496a9277d89f04c7f00ef7c0756ad9d5d 100644 --- a/app/code/Magento/Sales/Block/Order/Email/Items/DefaultItems.php +++ b/app/code/Magento/Sales/Block/Order/Email/Items/DefaultItems.php @@ -23,6 +23,10 @@ */ namespace Magento\Sales\Block\Order\Email\Items; +use Magento\Sales\Model\Order\Item as OrderItem; +use Magento\Sales\Model\Order\Invoice\Item as InvoiceItem; +use Magento\Sales\Model\Order\Creditmemo\Item as CreditmemoItem; + /** * Sales Order Email items default renderer * @@ -103,4 +107,17 @@ class DefaultItems extends \Magento\Framework\View\Element\Template { return $this->getLayout()->getBlock('additional.product.info'); } + + /** + * Get the html for item price + * + * @param OrderItem|InvoiceItem|CreditmemoItem $item + * @return string + */ + public function getItemPrice($item) + { + $block = $this->getLayout()->getBlock('item_price'); + $block->setItem($item); + return $block->toHtml(); + } } diff --git a/app/code/Magento/Sales/Block/Order/Email/Items/Order/DefaultOrder.php b/app/code/Magento/Sales/Block/Order/Email/Items/Order/DefaultOrder.php index 461203e44ed7252ce095d058a24153e26db6b520..9747894391ac6ca787ca7383646b8598b55916f1 100644 --- a/app/code/Magento/Sales/Block/Order/Email/Items/Order/DefaultOrder.php +++ b/app/code/Magento/Sales/Block/Order/Email/Items/Order/DefaultOrder.php @@ -23,6 +23,8 @@ */ namespace Magento\Sales\Block\Order\Email\Items\Order; +use Magento\Sales\Model\Order\Item as OrderItem; + /** * Sales Order Email items default renderer * @@ -103,4 +105,17 @@ class DefaultOrder extends \Magento\Framework\View\Element\Template { return $this->getLayout()->getBlock('additional.product.info'); } + + /** + * Get the html for item price + * + * @param OrderItem $item + * @return string + */ + public function getItemPrice(OrderItem $item) + { + $block = $this->getLayout()->getBlock('item_price'); + $block->setItem($item); + return $block->toHtml(); + } } diff --git a/app/code/Magento/Sales/Block/Order/Item/Renderer/DefaultRenderer.php b/app/code/Magento/Sales/Block/Order/Item/Renderer/DefaultRenderer.php index d750593534c6658f310edd0ee70735746c55bdea..308b7d157448ace9d72b2f62814d6776b1698d7c 100644 --- a/app/code/Magento/Sales/Block/Order/Item/Renderer/DefaultRenderer.php +++ b/app/code/Magento/Sales/Block/Order/Item/Renderer/DefaultRenderer.php @@ -23,6 +23,10 @@ */ namespace Magento\Sales\Block\Order\Item\Renderer; +use Magento\Sales\Model\Order\Item as OrderItem; +use Magento\Sales\Model\Order\Invoice\Item as InvoiceItem; +use Magento\Sales\Model\Order\CreditMemo\Item as CreditMemoItem; + /** * Order item render block */ @@ -220,4 +224,69 @@ class DefaultRenderer extends \Magento\Framework\View\Element\Template { return $this->escapeHtml($this->string->splitInjection($sku)); } + + /** + * Return item unit price html + * + * @param OrderItem|InvoiceItem|CreditmemoItem $item child item in case of bundle product + * @return string + */ + public function getItemPriceHtml($item = null) + { + $block = $this->getLayout()->getBlock('item_unit_price'); + if (!$item) { + $item = $this->getItem(); + } + $block->setItem($item); + return $block->toHtml(); + } + + /** + * Return item row total html + * + * @param OrderItem|InvoiceItem|CreditmemoItem $item child item in case of bundle product + * @return string + */ + public function getItemRowTotalHtml($item = null) + { + $block = $this->getLayout()->getBlock('item_row_total'); + if (!$item) { + $item = $this->getItem(); + } + $block->setItem($item); + return $block->toHtml(); + } + + /** + * Return the total amount minus discount + * + * @param OrderItem|InvoiceItem|CreditmemoItem $item + * @return mixed + */ + public function getTotalAmount($item) + { + $totalAmount = $item->getRowTotal() + + $item->getTaxAmount() + + $item->getHiddenTaxAmount() + + $item->getWeeeTaxAppliedRowAmount() + - $item->getDiscountAmount(); + + return $totalAmount; + } + + /** + * Return HTML for item total after discount + * + * @param OrderItem|InvoiceItem|CreditmemoItem $item child item in case of bundle product + * @return string + */ + public function getItemRowTotalAfterDiscountHtml($item = null) + { + $block = $this->getLayout()->getBlock('item_row_total_after_discount'); + if (!$item) { + $item = $this->getItem(); + } + $block->setItem($item); + return $block->toHtml(); + } } diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php index 9de7ad34c38157b77ee108e5b69cc534652cd3a9..3d7ee57a9474add11614d2a12441e35bd41543b2 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php @@ -24,8 +24,11 @@ */ namespace Magento\Sales\Controller\Adminhtml\Creditmemo\AbstractCreditmemo; -use Magento\Sales\Model\Order\Email\Sender\CreditmemoSender; - +/** + * Class Email + * + * @package Magento\Sales\Controller\Adminhtml\Creditmemo\AbstractCreditmemo + */ class Email extends \Magento\Backend\App\Action { /** @@ -44,28 +47,17 @@ class Email extends \Magento\Backend\App\Action public function execute() { $creditmemoId = $this->getRequest()->getParam('creditmemo_id'); - if ($creditmemoId) { - $creditmemo = $this->_objectManager->create('Magento\Sales\Model\Order\Creditmemo')->load($creditmemoId); - if ($creditmemo) { - /** @var CreditmemoSender $creditmemoSender */ - $creditmemoSender = $this->_objectManager - ->create('Magento\Sales\Model\Order\Email\Sender\CreditmemoSender'); - $creditmemoSender->send($creditmemo); - - $historyItem = $this->_objectManager->create( - 'Magento\Sales\Model\Resource\Order\Status\History\Collection' - )->getUnnotifiedForInstance( - $creditmemo, - \Magento\Sales\Model\Order\Creditmemo::HISTORY_ENTITY_NAME - ); - if ($historyItem) { - $historyItem->setIsCustomerNotified(1); - $historyItem->save(); - } - - $this->messageManager->addSuccess(__('We sent the message.')); - $this->_redirect('sales/order_creditmemo/view', array('creditmemo_id' => $creditmemoId)); - } + if (!$creditmemoId) { + return; } + $creditmemo = $this->_objectManager->create('Magento\Sales\Model\Order\Creditmemo')->load($creditmemoId); + if (!$creditmemo) { + return; + } + $this->_objectManager->create('Magento\Sales\Model\Order\CreditmemoNotifier') + ->notify($creditmemo); + + $this->messageManager->addSuccess(__('We sent the message.')); + $this->_redirect('sales/order_creditmemo/view', ['creditmemo_id' => $creditmemoId]); } } diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php index 207cbeefdb1afd067abc86dc4efed4ae610e25c8..1eb233b34c0525ad32ed1e740c35ec05507d7856 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php @@ -24,12 +24,17 @@ */ namespace Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice; -use Magento\Sales\Model\Order\Email\Sender\InvoiceSender; - +/** + * Class Email + * + * @package Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice + */ abstract class Email extends \Magento\Backend\App\Action { /** - * {@inheritdoc} + * Check if email sending is allowed for the current user + * + * @return bool */ protected function _isAllowed() { @@ -52,20 +57,9 @@ abstract class Email extends \Magento\Backend\App\Action return; } - /** @var InvoiceSender $invoiceSender */ - $invoiceSender = $this->_objectManager->create('Magento\Sales\Model\Order\Email\Sender\InvoiceSender'); - $invoiceSender->send($invoice); + $this->_objectManager->create('Magento\Sales\Model\InvoiceNotifier') + ->notify($invoice); - $historyItem = $this->_objectManager->create( - 'Magento\Sales\Model\Resource\Order\Status\History\Collection' - )->getUnnotifiedForInstance( - $invoice, - \Magento\Sales\Model\Order\Invoice::HISTORY_ENTITY_NAME - ); - if ($historyItem) { - $historyItem->setIsCustomerNotified(1); - $historyItem->save(); - } $this->messageManager->addSuccess(__('We sent the message.')); $this->_redirect( 'sales/invoice/view', diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php index 02c9c6ea161c7ba49b3c46d2ea91e8c5e218244f..d380e48066447fd1cd377e3f6305fcd7be88f696 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php @@ -76,7 +76,11 @@ class AddComment extends \Magento\Backend\App\Action throw new \Magento\Framework\Model\Exception(__('The Comment Text field cannot be empty.')); } $this->_title->add(__('Credit Memos')); - $creditmemo = $this->creditmemoLoader->load($this->_request); + $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id')); + $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo')); + $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id')); + $creditmemo = $this->creditmemoLoader->load(); $comment = $creditmemo->addComment( $data['comment'], isset($data['is_customer_notified']), diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php index e81ca9f0e18fd57dd7dc5e038d72cad505292dda..21fd38224ff08a61da0ee52c52799e556d302689 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php @@ -60,17 +60,18 @@ class Cancel extends \Magento\Backend\App\Action */ public function execute() { - $creditmemo = $this->creditmemoLoader->load($this->_request); + $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id')); + $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo')); + $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id')); + $creditmemo = $this->creditmemoLoader->load(); if ($creditmemo) { try { $creditmemo->cancel(); - $transactionSave = $this->_objectManager->create( - 'Magento\Framework\DB\Transaction' - )->addObject( - $creditmemo - )->addObject( - $creditmemo->getOrder() - ); + $transactionSave = $this->_objectManager->create('Magento\Framework\DB\Transaction'); + $transactionSave->addObject($creditmemo); + $transactionSave->addObject($creditmemo->getOrder()); + if ($creditmemo->getInvoice()) { $transactionSave->addObject($creditmemo->getInvoice()); } diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php index 4bb35add576d128d461d68735a9b58ea8a33017d..f29c26a1aa0aefa0bd2e05ef572bfefd33c16eaa 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php @@ -61,7 +61,12 @@ class NewAction extends \Magento\Backend\App\Action public function execute() { $this->_title->add(__('Credit Memos')); - if ($creditmemo = $this->creditmemoLoader->load($this->_request)) { + $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id')); + $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo')); + $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id')); + $creditmemo = $this->creditmemoLoader->load(); + if ($creditmemo) { if ($creditmemo->getInvoice()) { $this->_title->add(__("New Memo for #%1", $creditmemo->getInvoice()->getIncrementId())); } else { diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php index 519ae1c3179c57432318c1b8001979589a23be4c..a4aacacb8591e1cae6f6a935f7f482bab7803393 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php @@ -56,7 +56,11 @@ class PrintAction extends \Magento\Sales\Controller\Adminhtml\Creditmemo\Abstrac public function execute() { $this->_title->add(__('Credit Memos')); - $this->creditmemoLoader->load($this->_request); + $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id')); + $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo')); + $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id')); + $this->creditmemoLoader->load(); parent::execute(); } } diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php index 11021c94b9fe00cba9b82e0b6da714469809c7d5..0492b84993d8debf707c1cef8a92e5551c56e5d0 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php @@ -76,9 +76,13 @@ class Save extends \Magento\Backend\App\Action $this->_getSession()->setCommentText($data['comment_text']); } try { - $creditmemo = $this->creditmemoLoader->load($this->_request); + $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id')); + $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo')); + $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id')); + $creditmemo = $this->creditmemoLoader->load(); if ($creditmemo) { - if ($creditmemo->getGrandTotal() <= 0 && !$creditmemo->getAllowZeroGrandTotal()) { + if (!$creditmemo->isValidGrandTotal()) { throw new \Magento\Framework\Model\Exception(__('Credit memo\'s total must be positive.')); } diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php index 204301727b9fa38daec78c7e3645cb869c4e0d15..3724ec6ccc709f1c5939dd80c5481a2085288d77 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php @@ -61,7 +61,11 @@ class UpdateQty extends \Magento\Backend\App\Action public function execute() { try { - $creditmemo = $this->creditmemoLoader->load($this->_request, true); + $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id')); + $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo')); + $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id')); + $this->creditmemoLoader->load(); $this->_view->loadLayout(); $response = $this->_view->getLayout()->getBlock('order_items')->toHtml(); } catch (\Magento\Framework\Model\Exception $e) { diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php index 5ee636fb6b3c49c75569678d2eccb1553e8d3890..252ed679849ace87cdec34830cdaf64bd564ea25 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php @@ -60,7 +60,11 @@ class View extends \Magento\Backend\App\Action */ public function execute() { - $creditmemo = $this->creditmemoLoader->load($this->_request); + $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id')); + $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo')); + $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id')); + $creditmemo = $this->creditmemoLoader->load(); if ($creditmemo) { if ($creditmemo->getInvoice()) { $this->_title->add(__("View Memo for #%1", $creditmemo->getInvoice()->getIncrementId())); diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php index 4865b62e5060aab3c7496a1fe042a7d771dfae33..12954cb6d6511294058dcd1b6d87724c66fe88fd 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php @@ -60,17 +60,18 @@ class Void extends \Magento\Backend\App\Action */ public function execute() { - $creditmemo = $this->creditmemoLoader->load($this->_request); + $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id')); + $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo')); + $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id')); + $creditmemo = $this->creditmemoLoader->load(); if ($creditmemo) { try { $creditmemo->void(); - $transactionSave = $this->_objectManager->create( - 'Magento\Framework\DB\Transaction' - )->addObject( - $creditmemo - )->addObject( - $creditmemo->getOrder() - ); + $transactionSave = $this->_objectManager->create('Magento\Framework\DB\Transaction'); + $transactionSave->addObject($creditmemo); + $transactionSave->addObject($creditmemo->getOrder()); + if ($creditmemo->getInvoice()) { $transactionSave->addObject($creditmemo->getInvoice()); } diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoader.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoader.php index cef61ceaedc68469303b787c0cb026d9b500581e..c7a9119037736a50f4d928d2d96d58463a82564f 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoader.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoader.php @@ -24,9 +24,22 @@ */ namespace Magento\Sales\Controller\Adminhtml\Order; -use Magento\Framework\App\RequestInterface; +use Magento\Framework\Object; -class CreditmemoLoader +/** + * Class CreditmemoLoader + * + * @package Magento\Sales\Controller\Adminhtml\Order + * @method CreditmemoLoader setCreditmemoId + * @method CreditmemoLoader setCreditmemo + * @method CreditmemoLoader setInvoiceId + * @method CreditmemoLoader setOrderId + * @method int getCreditmemoId + * @method string getCreditmemo + * @method int getInvoiceId + * @method int getOrderId + */ +class CreditmemoLoader extends Object { /** * @var \Magento\Sales\Model\Order\CreditmemoFactory @@ -83,6 +96,7 @@ class CreditmemoLoader * @param \Magento\Framework\Message\ManagerInterface $messageManager * @param \Magento\Framework\Registry $registry * @param \Magento\CatalogInventory\Helper\Data $inventoryHelper + * @param array $data */ public function __construct( \Magento\Sales\Model\Order\CreditmemoFactory $creditmemoFactory, @@ -93,7 +107,8 @@ class CreditmemoLoader \Magento\Backend\Model\Session $backendSession, \Magento\Framework\Message\ManagerInterface $messageManager, \Magento\Framework\Registry $registry, - \Magento\CatalogInventory\Helper\Data $inventoryHelper + \Magento\CatalogInventory\Helper\Data $inventoryHelper, + array $data = [] ) { $this->creditmemoFactory = $creditmemoFactory; $this->orderFactory = $orderFactory; @@ -104,17 +119,17 @@ class CreditmemoLoader $this->messageManager = $messageManager; $this->registry = $registry; $this->inventoryHelper = $inventoryHelper; + parent::__construct($data); } /** * Get requested items qtys and return to stock flags * - * @param RequestInterface $request * @return array */ - protected function _getItemData(RequestInterface $request) + protected function _getItemData() { - $data = $request->getParam('creditmemo'); + $data = $this->getCreditmemo(); if (!$data) { $data = $this->backendSession->getFormData(true); } @@ -153,13 +168,12 @@ class CreditmemoLoader } /** - * @param RequestInterface $request * @param \Magento\Sales\Model\Order $order * @return $this|bool */ - protected function _initInvoice(RequestInterface $request, $order) + protected function _initInvoice($order) { - $invoiceId = $request->getParam('invoice_id'); + $invoiceId = $this->getInvoiceId(); if ($invoiceId) { $invoice = $this->invoiceFactory->create()->load( $invoiceId @@ -176,27 +190,25 @@ class CreditmemoLoader /** * Initialize creditmemo model instance * - * @param RequestInterface $request - * @param bool $update * @return \Magento\Sales\Model\Order\Creditmemo|false */ - public function load(RequestInterface $request, $update = false) + public function load() { $creditmemo = false; - $creditmemoId = $request->getParam('creditmemo_id'); - $orderId = $request->getParam('order_id'); + $creditmemoId = $this->getCreditmemoId(); + $orderId = $this->getOrderId(); if ($creditmemoId) { $creditmemo = $this->creditmemoFactory->create()->load($creditmemoId); } elseif ($orderId) { - $data = $request->getParam('creditmemo'); + $data = $this->getCreditmemo(); $order = $this->orderFactory->create()->load($orderId); - $invoice = $this->_initInvoice($request, $order); + $invoice = $this->_initInvoice($order); if (!$this->_canCreditmemo($order)) { return false; } - $savedData = $this->_getItemData($request); + $savedData = $this->_getItemData(); $qtys = array(); $backToStock = array(); @@ -239,7 +251,7 @@ class CreditmemoLoader $this->eventManager->dispatch( 'adminhtml_sales_order_creditmemo_register_before', - array('creditmemo' => $creditmemo, 'request' => $request) + array('creditmemo' => $creditmemo, 'input' => $this->getCreditmemo()) ); $this->registry->register('current_creditmemo', $creditmemo); diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php index b5492f4f114daabb2a91d8d372cdb87009cc65bd..44052695522ace4a2c2bf0c988381f6427c3c721 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php @@ -1,6 +1,5 @@ <?php /** - * * Magento * * NOTICE OF LICENSE @@ -26,6 +25,11 @@ namespace Magento\Sales\Controller\Adminhtml\Order; use \Magento\Backend\App\Action; +/** + * Class Email + * + * @package Magento\Sales\Controller\Adminhtml\Order + */ class Email extends \Magento\Sales\Controller\Adminhtml\Order { /** @@ -38,22 +42,8 @@ class Email extends \Magento\Sales\Controller\Adminhtml\Order $order = $this->_initOrder(); if ($order) { try { - /** @var \Magento\Sales\Model\Order\Email\Sender\OrderSender $orderSender */ - $orderSender = $this->_objectManager->create( - 'Magento\Sales\Model\Order\Email\Sender\OrderSender' - ); - $orderSender->send($order); - - $historyItem = $this->_objectManager->create( - 'Magento\Sales\Model\Resource\Order\Status\History\Collection' - )->getUnnotifiedForInstance( - $order, - \Magento\Sales\Model\Order::HISTORY_ENTITY_NAME - ); - if ($historyItem) { - $historyItem->setIsCustomerNotified(1); - $historyItem->save(); - } + $this->_objectManager->create('Magento\Sales\Model\OrderNotifier') + ->notify($order); $this->messageManager->addSuccess(__('You sent the order email.')); } catch (\Magento\Framework\Model\Exception $e) { $this->messageManager->addError($e->getMessage()); @@ -61,7 +51,7 @@ class Email extends \Magento\Sales\Controller\Adminhtml\Order $this->messageManager->addError(__('We couldn\'t send the email order.')); $this->_objectManager->get('Magento\Framework\Logger')->logException($e); } + $this->_redirect('sales/order/view', array('order_id' => $order->getId())); } - $this->_redirect('sales/order/view', array('order_id' => $order->getId())); } } diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php index 1f715e8a264fe46714c99bef422236bcbb111337..957bea3765d53dc79b659c706a7a3519182b8ca6 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php @@ -78,8 +78,12 @@ class AddComment extends \Magento\Backend\App\Action throw new Exception(__('The Comment Text field cannot be empty.')); } $this->_title->add(__('Invoices')); + $orderId = $this->getRequest()->getParam('order_id'); + $invoiceId = $this->getRequest()->getParam('invoice_id'); + $invoiceData = $this->getRequest()->getParam('invoice', []); + $invoiceData = isset($invoiceData['items']) ? $invoiceData['items'] : []; /** @var Invoice $invoice */ - $invoice = $this->invoiceLoader->load($this->_request); + $invoice = $this->invoiceLoader->load($orderId, $invoiceId, $invoiceData); $invoice->addComment( $data['comment'], isset($data['is_customer_notified']), diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php index 5e165a80a6db4cf651878860dd6133af2a25d523..d1962c1953b8e91ff4850576bc294c3468c2da22 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php @@ -61,7 +61,11 @@ class Cancel extends \Magento\Backend\App\Action */ public function execute() { - $invoice = $this->invoiceLoader->load($this->_request); + $orderId = $this->getRequest()->getParam('order_id'); + $invoiceId = $this->getRequest()->getParam('invoice_id'); + $invoiceData = $this->getRequest()->getParam('invoice', []); + $invoiceData = isset($invoiceData['items']) ? $invoiceData['items'] : []; + $invoice = $this->invoiceLoader->load($orderId, $invoiceId, $invoiceData); if ($invoice) { try { $invoice->cancel(); diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php index 55b222ed897812742a9ebadcaed501ab3a6b4e56..35c19ec74577b1e0c13c6a2b0359e92f401775bc 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php @@ -61,7 +61,11 @@ class Capture extends \Magento\Backend\App\Action */ public function execute() { - $invoice = $this->invoiceLoader->load($this->_request); + $orderId = $this->getRequest()->getParam('order_id'); + $invoiceId = $this->getRequest()->getParam('invoice_id'); + $invoiceData = $this->getRequest()->getParam('invoice', []); + $invoiceData = isset($invoiceData['items']) ? $invoiceData['items'] : []; + $invoice = $this->invoiceLoader->load($orderId, $invoiceId, $invoiceData); if ($invoice) { try { $invoice->capture(); diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php index 32aebbaae6e37997c14970618e9cf5f96a081a0c..d869868dc50309ed046be5597657bb8071a4ca5a 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php @@ -61,7 +61,11 @@ class NewAction extends \Magento\Backend\App\Action public function execute() { $this->_title->add(__('Invoices')); - $invoice = $this->invoiceLoader->load($this->_request); + $orderId = $this->getRequest()->getParam('order_id'); + $invoiceId = $this->getRequest()->getParam('invoice_id'); + $invoiceData = $this->getRequest()->getParam('invoice', []); + $invoiceData = isset($invoiceData['items']) ? $invoiceData['items'] : []; + $invoice = $this->invoiceLoader->load($orderId, $invoiceId, $invoiceData); if ($invoice) { $this->_title->add(__('New Invoice')); diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/PrintAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/PrintAction.php index e1648c406af95c56c348337903a0a83e80c74eec..6bf4d9aa4f5ef8ab8e3820bb0bd32bffabab2193 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/PrintAction.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/PrintAction.php @@ -55,7 +55,11 @@ class PrintAction extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractIn */ public function execute() { - $this->invoiceLoader->load($this->_request); + $orderId = $this->getRequest()->getParam('order_id'); + $invoiceId = $this->getRequest()->getParam('invoice_id'); + $invoiceData = $this->getRequest()->getParam('invoice', []); + $invoiceData = isset($invoiceData['items']) ? $invoiceData['items'] : []; + $this->invoiceLoader->load($orderId, $invoiceId, $invoiceData); parent::execute(); } } diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php index ac057bc6beaf6358f2ac3ca9f69c997ba056bddc..84b30cdef76a56a91c5f8a664e4398bdeec547ac 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php @@ -123,8 +123,11 @@ class Save extends \Magento\Backend\App\Action } try { + $invoiceId = $this->getRequest()->getParam('invoice_id'); + $invoiceData = $this->getRequest()->getParam('invoice', []); + $invoiceData = isset($invoiceData['items']) ? $invoiceData['items'] : []; /** @var Invoice $invoice */ - $invoice = $this->invoiceLoader->load($this->_request); + $invoice = $this->invoiceLoader->load($orderId, $invoiceId, $invoiceData); if ($invoice) { if (!empty($data['capture_case'])) { diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php index 00a2a80336c5c53fd12e651777ba045e66e08e1f..82918229cd53936cc86a2d2c1e5101a4a14e0dd1 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php @@ -63,10 +63,13 @@ class UpdateQty extends \Magento\Backend\App\Action { try { $this->_title->add(__('Invoices')); - $invoice = $this->invoiceLoader->load($this->_request); + $orderId = $this->getRequest()->getParam('order_id'); + $invoiceId = $this->getRequest()->getParam('invoice_id'); + $invoiceData = $this->getRequest()->getParam('invoice', []); + $invoiceItems = isset($invoiceData['items']) ? $invoiceData['items'] : []; + $invoice = $this->invoiceLoader->load($orderId, $invoiceId, $invoiceItems); // Save invoice comment text in current invoice object in order to display it in corresponding view - $invoiceRawData = $this->getRequest()->getParam('invoice'); - $invoiceRawCommentText = $invoiceRawData['comment_text']; + $invoiceRawCommentText = $invoiceData['comment_text']; $invoice->setCommentText($invoiceRawCommentText); $this->_view->loadLayout(); diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php index 866560925d7f3dcb6cfd92a1c2312b1563dfd512..e406cbb5db87d47bad198bb46aec0b3dd6955f11 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php @@ -53,7 +53,11 @@ class View extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\V public function execute() { $this->_title->add(__('Invoices')); - $invoice = $this->invoiceLoader->load($this->_request); + $orderId = $this->getRequest()->getParam('order_id'); + $invoiceId = $this->getRequest()->getParam('invoice_id'); + $invoiceData = $this->getRequest()->getParam('invoice', []); + $invoiceData = isset($invoiceData['items']) ? $invoiceData['items'] : []; + $invoice = $this->invoiceLoader->load($orderId, $invoiceId, $invoiceData); if ($invoice) { $this->_title->add(sprintf("#%s", $invoice->getIncrementId())); diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php index 6b1e153ea88037c27c9084d74a1b17c2d53231bb..ec85acf119147dfa91ee5b55cca2546783d1f1c7 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php @@ -61,7 +61,11 @@ class Void extends \Magento\Backend\App\Action */ public function execute() { - $invoice = $this->invoiceLoader->load($this->_request); + $orderId = $this->getRequest()->getParam('order_id'); + $invoiceId = $this->getRequest()->getParam('invoice_id'); + $invoiceData = $this->getRequest()->getParam('invoice', []); + $invoiceData = isset($invoiceData['items']) ? $invoiceData['items'] : []; + $invoice = $this->invoiceLoader->load($orderId, $invoiceId, $invoiceData); if ($invoice) { try { $invoice->void(); diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/InvoiceLoader.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/InvoiceLoader.php index c9e0f00dce56da2f4467d61cbf4ece7690815e46..c6f60699b0a030d2c69467c6cf42fe642ad1e9e3 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/InvoiceLoader.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/InvoiceLoader.php @@ -43,6 +43,21 @@ class InvoiceLoader */ protected $registry; + /** + * @var int + */ + protected $orderId; + + /** + * @var int + */ + protected $invoiceId; + + /** + * @var array + */ + protected $invoiceItems; + /** * @param \Magento\Framework\ObjectManager $objectManager * @param \Magento\Framework\Registry $registry @@ -59,17 +74,67 @@ class InvoiceLoader } /** - * Load invoice + * Set corresponding order Id + * + * @param int $orderId + * @return $this + */ + public function setOrderId($orderId) + { + $this->orderId = $orderId; + return $this; + } + + /** + * Set corresponding invoice Id + * + * @param int $invoiceId + * @return $this + */ + public function setInvoiceId($invoiceId) + { + $this->invoiceId = $invoiceId; + return $this; + } + + /** + * Linear array of order items for invoice: + * [ + * orderItemId => qtyInvoicedItems + * ] + * + * @param array $invoiceItems + * @return $this + */ + public function setInvoiceItems($invoiceItems) + { + $this->invoiceItems = $invoiceItems; + return $this; + } + + /** + * Create invoice * - * @param RequestInterface $request - * @return bool + * @return bool|\Magento\Sales\Model\Order\Invoice * @throws \Exception */ - public function load(RequestInterface $request) + public function create() + { + return $this->load($this->orderId, $this->invoiceId, $this->invoiceItems); + } + + /** + * Load invoice + * @deprecated + * @param int $orderId + * @param null|int $invoiceId + * @param array $invoiceItems + * @return \Magento\Sales\Model\Order\Invoice | bool + * @throws \Exception + */ + public function load($orderId, $invoiceId = null, array $invoiceItems = []) { $invoice = false; - $invoiceId = $request->getParam('invoice_id'); - $orderId = $request->getParam('order_id'); if ($invoiceId) { $invoice = $this->_objectManager->create('Magento\Sales\Model\Order\Invoice')->load($invoiceId); if (!$invoice->getId()) { @@ -92,17 +157,12 @@ class InvoiceLoader $this->messageManager->addError(__('The order does not allow an invoice to be created.')); return false; } - $savedQtys = array(); - $data = $request->getParam('invoice'); - if (isset($data['items'])) { - $savedQtys = $data['items']; - } $invoice = $this->_objectManager->create( 'Magento\Sales\Model\Service\Order', array('order' => $order) )->prepareInvoice( - $savedQtys + $invoiceItems ); if (!$invoice->getTotalQty()) { throw new \Exception(__('Cannot create an invoice without products.')); diff --git a/app/code/Magento/Sales/Helper/Guest.php b/app/code/Magento/Sales/Helper/Guest.php index cc06a929fd03af92a2816855ce13d95019313d94..36d410d9466367c7a0517caf4da9e9af31d8bed2 100644 --- a/app/code/Magento/Sales/Helper/Guest.php +++ b/app/code/Magento/Sales/Helper/Guest.php @@ -36,18 +36,23 @@ class Guest extends \Magento\Core\Helper\Data * * @var \Magento\Framework\Registry */ - protected $_coreRegistry; + protected $coreRegistry; /** * @var \Magento\Customer\Model\Session */ - protected $_customerSession; - + protected $customerSession; + /** - * @var \Magento\Framework\Stdlib\Cookie + * @var \Magento\Framework\Stdlib\CookieManager */ - protected $_coreCookie; + protected $cookieManager; + /** + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory + */ + protected $cookieMetadataFactory; + /** * @var \Magento\Framework\Message\ManagerInterface */ @@ -56,7 +61,7 @@ class Guest extends \Magento\Core\Helper\Data /** * @var \Magento\Sales\Model\OrderFactory */ - protected $_orderFactory; + protected $orderFactory; /** * Cookie key for guest view @@ -81,11 +86,14 @@ class Guest extends \Magento\Core\Helper\Data * @param \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency * @param \Magento\Framework\Registry $coreRegistry * @param \Magento\Customer\Model\Session $customerSession - * @param \Magento\Framework\Stdlib\Cookie $coreCookie + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param \Magento\Framework\Message\ManagerInterface $messageManager * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Framework\App\ViewInterface $view * @param bool $dbCompatibleMode + * + * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( App\Helper\Context $context, @@ -95,17 +103,19 @@ class Guest extends \Magento\Core\Helper\Data \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency, \Magento\Framework\Registry $coreRegistry, \Magento\Customer\Model\Session $customerSession, - \Magento\Framework\Stdlib\Cookie $coreCookie, + \Magento\Framework\Stdlib\CookieManager $cookieManager, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, \Magento\Framework\Message\ManagerInterface $messageManager, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Framework\App\ViewInterface $view, $dbCompatibleMode = true ) { - $this->_coreRegistry = $coreRegistry; - $this->_customerSession = $customerSession; - $this->_coreCookie = $coreCookie; + $this->coreRegistry = $coreRegistry; + $this->customerSession = $customerSession; + $this->cookieManager = $cookieManager; + $this->cookieMetadataFactory = $cookieMetadataFactory; $this->messageManager = $messageManager; - $this->_orderFactory = $orderFactory; + $this->orderFactory = $orderFactory; $this->_view = $view; parent::__construct( $context, @@ -123,10 +133,13 @@ class Guest extends \Magento\Core\Helper\Data * @param App\RequestInterface $request * @param App\ResponseInterface $response * @return bool + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) */ public function loadValidOrder(App\RequestInterface $request, App\ResponseInterface $response) { - if ($this->_customerSession->isLoggedIn()) { + if ($this->customerSession->isLoggedIn()) { $response->setRedirect($this->_urlBuilder->getUrl('sales/order/history')); return false; } @@ -135,9 +148,10 @@ class Guest extends \Magento\Core\Helper\Data $errors = false; /** @var $order \Magento\Sales\Model\Order */ - $order = $this->_orderFactory->create(); + $order = $this->orderFactory->create(); - if (empty($post) && !$this->_coreCookie->get(self::COOKIE_NAME)) { + $fromCookie = $this->cookieManager->getCookie(self::COOKIE_NAME); + if (empty($post) && !$fromCookie) { $response->setRedirect($this->_urlBuilder->getUrl('sales/guest/form')); return false; } elseif (!empty($post) && isset($post['oar_order_id']) && isset($post['oar_type'])) { @@ -172,10 +186,12 @@ class Guest extends \Magento\Core\Helper\Data if (!$errors) { $toCookie = base64_encode($order->getProtectCode() . ':' . $incrementId); - $this->_coreCookie->set(self::COOKIE_NAME, $toCookie, self::COOKIE_LIFETIME, self::COOKIE_PATH); + $metadata = $this->cookieMetadataFactory->createPublicCookieMetadata(); + $metadata->setPath(self::COOKIE_PATH); + $metadata->setDuration(self::COOKIE_LIFETIME); + $this->cookieManager->setPublicCookie(self::COOKIE_NAME, $toCookie, $metadata); } - } elseif ($this->_coreCookie->get(self::COOKIE_NAME)) { - $fromCookie = $this->_coreCookie->get(self::COOKIE_NAME); + } elseif ($fromCookie) { $cookieData = explode(':', base64_decode($fromCookie)); $protectCode = isset($cookieData[0]) ? $cookieData[0] : null; $incrementId = isset($cookieData[1]) ? $cookieData[1] : null; @@ -184,14 +200,18 @@ class Guest extends \Magento\Core\Helper\Data if (!empty($protectCode) && !empty($incrementId)) { $order->loadByIncrementId($incrementId); if ($order->getProtectCode() == $protectCode) { - $this->_coreCookie->renew(self::COOKIE_NAME, self::COOKIE_LIFETIME, self::COOKIE_PATH); + // renew cookie + $metadata = $this->cookieMetadataFactory->createPublicCookieMetadata(); + $metadata->setPath(self::COOKIE_PATH); + $metadata->setDuration(self::COOKIE_LIFETIME); + $this->cookieManager->setPublicCookie(self::COOKIE_NAME, $fromCookie, $metadata); $errors = false; } } } if (!$errors && $order->getId()) { - $this->_coreRegistry->register('current_order', $order); + $this->coreRegistry->register('current_order', $order); return true; } diff --git a/app/code/Magento/Sales/Model/Notifier.php b/app/code/Magento/Sales/Model/AbstractNotifier.php similarity index 78% rename from app/code/Magento/Sales/Model/Notifier.php rename to app/code/Magento/Sales/Model/AbstractNotifier.php index bbe3ebfa38a01a7a62c12bfda5f8d274136754a8..4e2e164d64adac24f1b000735378f079f4cdbf69 100644 --- a/app/code/Magento/Sales/Model/Notifier.php +++ b/app/code/Magento/Sales/Model/AbstractNotifier.php @@ -25,7 +25,7 @@ namespace Magento\Sales\Model; use Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory; -use Magento\Sales\Model\Order\Email\Sender\OrderSender; +use Magento\Sales\Model\Order\Email\Sender; use Magento\Framework\Logger; use Magento\Framework\Mail\Exception; @@ -33,7 +33,7 @@ use Magento\Framework\Mail\Exception; * Class Notifier * @package Magento\Sales\Model */ -class Notifier extends \Magento\Framework\Model\AbstractModel +abstract class AbstractNotifier extends \Magento\Framework\Model\AbstractModel { /** * @var CollectionFactory @@ -46,43 +46,41 @@ class Notifier extends \Magento\Framework\Model\AbstractModel protected $logger; /** - * @var OrderSender + * @var Sender */ - protected $orderSender; + protected $sender; /** * @param CollectionFactory $historyCollectionFactory * @param Logger $logger - * @param OrderSender $orderSender + * @param Sender $sender */ public function __construct( CollectionFactory $historyCollectionFactory, Logger $logger, - OrderSender $orderSender + Sender $sender ) { $this->historyCollectionFactory = $historyCollectionFactory; $this->logger = $logger; - $this->orderSender = $orderSender; + $this->sender = $sender; } /** * Notify user * - * @param Order $order + * @param AbstractModel $model * @return bool * @throws \Magento\Framework\Mail\Exception */ - public function notify(\Magento\Sales\Model\Order $order) + public function notify(\Magento\Sales\Model\AbstractModel $model) { try { - $this->orderSender->send($order); - if (!$order->getEmailSent()) { + $this->sender->send($model); + if (!$model->getEmailSent()) { return false; } - $historyItem = $this->historyCollectionFactory->create()->getUnnotifiedForInstance( - $order, - \Magento\Sales\Model\Order::HISTORY_ENTITY_NAME - ); + $historyItem = $this->historyCollectionFactory->create() + ->getUnnotifiedForInstance($model); if ($historyItem) { $historyItem->setIsCustomerNotified(1); $historyItem->save(); diff --git a/app/code/Magento/Sales/Model/Order.php b/app/code/Magento/Sales/Model/Order.php index 83f670f323654e437d607d58ba896ab9f0b623ff..a275ec26e8b3e4fdd06eb0234a191b367114c922 100644 --- a/app/code/Magento/Sales/Model/Order.php +++ b/app/code/Magento/Sales/Model/Order.php @@ -367,13 +367,6 @@ class Order extends \Magento\Sales\Model\AbstractModel const REPORT_DATE_TYPE_UPDATED = 'updated'; - /* - * Identifier for history item - * - * @var string - */ - const HISTORY_ENTITY_NAME = 'order'; - /** * @var string */ @@ -458,7 +451,7 @@ class Order extends \Magento\Sales\Model\AbstractModel * * @var string */ - protected $_historyEntityName = self::HISTORY_ENTITY_NAME; + protected $entityType = 'order'; /** * @var \Magento\Store\Model\StoreManagerInterface @@ -1290,7 +1283,7 @@ class Order extends \Magento\Sales\Model\AbstractModel )->setComment( $comment )->setEntityName( - $this->_historyEntityName + $this->entityType ); $this->addStatusHistory($history); return $history; @@ -1304,10 +1297,20 @@ class Order extends \Magento\Sales\Model\AbstractModel */ public function setHistoryEntityName($entityName) { - $this->_historyEntityName = $entityName; + $this->entityType = $entityName; return $this; } + /** + * Return order entity type + * + * @return string + */ + public function getEntityType() + { + return $this->entityType; + } + /** * Place order * diff --git a/app/code/Magento/Sales/Model/Order/Builder.php b/app/code/Magento/Sales/Model/Order/Builder.php new file mode 100644 index 0000000000000000000000000000000000000000..e77fd10b1fc40bb5fd11995722398de2ec8eb421 --- /dev/null +++ b/app/code/Magento/Sales/Model/Order/Builder.php @@ -0,0 +1,407 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model\Order; + +use Magento\Sales\Model\Order\Payment; +use Magento\Sales\Model\Order\Customer; +use Magento\Sales\Model\Order\Address; +use Magento\Sales\Model\OrderFactory; +use Magento\Sales\Model\Quote; +use Magento\Catalog\Model\Product; + +class Builder +{ + /** + * @var Address + */ + protected $billingAddress; + + /** + * @var Address + */ + protected $shippingAddress; + + /** + * @var Item[] + */ + protected $items; + + /** + * @var Payment[] + */ + protected $payments; + + /** + * @var int + */ + protected $quoteId; + + /** + * @var array + */ + protected $appliedRuleIds; + + /** + * @var int + */ + protected $isVirtual; + + /** + * @var string + */ + protected $remoteIp; + + /** + * @var string + */ + protected $baseSubtotal; + + /** + * @var string + */ + protected $subtotal; + + /** + * @var string + */ + protected $baseGrandTotal; + + /** + * @var string + */ + protected $grandTotal; + + /** + * @var string + */ + protected $baseCurrencyCode; + + /** + * @var string + */ + protected $globalCurrencyCode; + + /** + * @var string + */ + protected $storeCurrencyCode; + + /** + * @var int + */ + protected $storeId; + + /** + * @var string + */ + protected $storeToBaseRate; + + /** + * @var string + */ + protected $baseToGlobalRate; + + /** + * @var string + */ + protected $couponCode; + + /** + * @var \Magento\Sales\Model\Order\Customer + */ + protected $customer; + + /** + * @var OrderFactory + */ + protected $orderFactory; + + /** + * @param OrderFactory $orderFactory + */ + public function __construct(OrderFactory $orderFactory) + { + $this->orderFactory = $orderFactory; + } + + /** + * @param Customer $customer + * @return $this + */ + public function setCustomer(Customer $customer) + { + $this->customer = $customer; + return $this; + } + + /** + * @param Address $address + * @return $this + */ + public function setShippingAddress(Address $address) + { + $this->shippingAddress = $address; + return $this; + } + + /** + * @param Address $address + * @return $this + */ + public function setBillingAddress(Address $address) + { + $this->billingAddress = $address; + return $this; + } + + /** + * @param int $quoteId + * @return $this + */ + public function setQuoteId($quoteId) + { + $this->quoteId = $quoteId; + return $this; + } + + /** + * @param array $appliedRuleIds + * @return $this + */ + public function setAppliedRuleIds($appliedRuleIds) + { + $this->appliedRuleIds = $appliedRuleIds; + return $this; + } + + /** + * @param int $isVirtual + * @return $this + */ + public function setIsVirtual($isVirtual) + { + $this->isVirtual = $isVirtual; + return $this; + } + + /** + * @param string $remoteIp + * @return $this + */ + public function setRemoteIp($remoteIp) + { + $this->remoteIp = $remoteIp; + return $this; + } + + /** + * @param string $baseSubtotal + * @return $this + */ + public function setBaseSubtotal($baseSubtotal) + { + $this->baseSubtotal = $baseSubtotal; + return $this; + } + + /** + * @param string $subtotal + * @return $this + */ + public function setSubtotal($subtotal) + { + $this->subtotal = $subtotal; + return $this; + } + + /** + * @param string $baseGrandTotal + * @return $this + */ + public function setBaseGrandTotal($baseGrandTotal) + { + $this->baseGrandTotal = $baseGrandTotal; + return $this; + } + + /** + * @param string $grandTotal + * @return $this + */ + public function setGrandTotal($grandTotal) + { + $this->grandTotal = $grandTotal; + return $this; + } + + /** + * @param string $baseCurrencyCode + * @return $this + */ + public function setBaseCurrencyCode($baseCurrencyCode) + { + $this->baseCurrencyCode = $baseCurrencyCode; + return $this; + } + + /** + * @param string $globalCurrencyCode + * @return $this + */ + public function setGlobalCurrencyCode($globalCurrencyCode) + { + $this->globalCurrencyCode = $globalCurrencyCode; + return $this; + } + + /** + * @param string $storeCurrencyCode + * @return $this + */ + public function setStoreCurrencyCode($storeCurrencyCode) + { + $this->storeCurrencyCode = $storeCurrencyCode; + return $this; + } + + /** + * @param int $storeId + * @return $this + */ + public function setStoreId($storeId) + { + $this->storeId = $storeId; + return $this; + } + + /** + * @param string $storeToBaseRate + * @return $this + */ + public function setStoreToBaseRate($storeToBaseRate) + { + $this->storeToBaseRate = $storeToBaseRate; + return $this; + } + + /** + * @param string $baseToGlobalRate + * @return $this + */ + public function setBaseToGlobalRate($baseToGlobalRate) + { + $this->baseToGlobalRate = $baseToGlobalRate; + return $this; + } + + /** + * @param string $couponCode + * @return $this + */ + public function setCouponCode($couponCode) + { + $this->couponCode = $couponCode; + return $this; + } + + /** + * @param Item[] $items + * @return $this + */ + public function setItems($items) + { + $this->items = $items; + return $this; + } + + /** + * @param Payment[] $payments + * @return $this + */ + public function setPayments($payments) + { + $this->payments = $payments; + return $this; + } + + /** + * @return \Magento\Sales\Model\Order + * @throws \Exception + */ + public function create() + { + /**@var $order \Magento\Sales\Model\Order */ + $order = $this->orderFactory->create([ + 'data' => [ + 'quote_id' => $this->quoteId, + 'applied_rule_ids' => $this->appliedRuleIds, + 'is_virtual' => $this->isVirtual, + 'remote_ip' => $this->remoteIp, + 'base_subtotal' => $this->baseSubtotal, + 'subtotal' => $this->subtotal, + 'base_grand_total' => $this->baseGrandTotal, + 'grand_total' => $this->grandTotal, + 'base_currency_code' => $this->baseCurrencyCode, + 'global_currency_code' => $this->globalCurrencyCode, + 'store_currency_code' => $this->storeCurrencyCode, + 'store_id' => $this->storeId, + 'store_to_base_rate' => $this->storeToBaseRate, + 'base_to_global_rate' => $this->baseToGlobalRate, + 'coupon_code' => $this->couponCode, + 'customer_dob' => $this->customer->getDob(), + 'customer_email' => $this->customer->getEmail(), + 'customer_firstname' => $this->customer->getFirstName(), + 'customer_gender' => $this->customer->getGender(), + 'customer_group_id' => $this->customer->getGroupId(), + 'customer_id' => $this->customer->getId(), + 'customer_is_guest' => $this->customer->getIsGuest(), + 'customer_lastname' => $this->customer->getLastName(), + 'customer_middlename' => $this->customer->getMiddleName(), + 'customer_note' => $this->customer->getNote(), + 'customer_note_notify' => $this->customer->getNoteNotify(), + 'customer_prefix' => $this->customer->getPrefix(), + 'customer_suffix' => $this->customer->getSuffix(), + 'customer_taxvat' => $this->customer->getTaxvat() + ] + ]); + $order->setBillingAddress($this->billingAddress) + ->setShippingAddress($this->shippingAddress); + foreach ($this->items as $item) { + if ($item instanceof Item) { + $order->addItem($item); + } else { + throw new \InvalidArgumentException('Cannot add item, instance of wrong type is given'); + } + } + foreach ($this->payments as $payment) { + if ($payment instanceof Payment) { + $order->addPayment($payment); + } else { + throw new \InvalidArgumentException('Cannot add payment, instance of wrong type is given'); + } + } + return $order; + } +} diff --git a/app/code/Magento/Sales/Model/Order/Creditmemo.php b/app/code/Magento/Sales/Model/Order/Creditmemo.php index 98a0c17d3be363a6274e48a2a44a7a94e8705b6b..2a380d120e26660a06452705e214f20adc026ed7 100644 --- a/app/code/Magento/Sales/Model/Order/Creditmemo.php +++ b/app/code/Magento/Sales/Model/Order/Creditmemo.php @@ -134,8 +134,10 @@ class Creditmemo extends \Magento\Sales\Model\AbstractModel /* * Identifier for order history item + * + * @var string */ - const HISTORY_ENTITY_NAME = 'creditmemo'; + protected $entityType = 'creditmemo'; /** * @var array @@ -304,7 +306,17 @@ class Creditmemo extends \Magento\Sales\Model\AbstractModel if (!$this->_order instanceof \Magento\Sales\Model\Order) { $this->_order = $this->_orderFactory->create()->load($this->getOrderId()); } - return $this->_order->setHistoryEntityName(self::HISTORY_ENTITY_NAME); + return $this->_order->setHistoryEntityName($this->entityType); + } + + /** + * Return order entity type + * + * @return string + */ + public function getEntityType() + { + return $this->entityType; } /** @@ -852,4 +864,12 @@ class Creditmemo extends \Magento\Sales\Model\AbstractModel { return $this->getResourceCollection()->getFiltered($filter); } + + /** + * @return bool + */ + public function isValidGrandTotal() + { + return !($this->getGrandTotal() <= 0 && !$this->getAllowZeroGrandTotal()); + } } diff --git a/app/code/Magento/Sales/Model/Order/Creditmemo/Comment/Validator.php b/app/code/Magento/Sales/Model/Order/Creditmemo/Comment/Validator.php new file mode 100644 index 0000000000000000000000000000000000000000..37f8f78c1afeb7d18e55e9408d952e324a29eaf1 --- /dev/null +++ b/app/code/Magento/Sales/Model/Order/Creditmemo/Comment/Validator.php @@ -0,0 +1,63 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order\Creditmemo\Comment; + +use Magento\Sales\Model\Order\Creditmemo\Comment; + +/** + * Class Validator + */ +class Validator +{ + /** + * Required field + * + * @var array + */ + protected $required = [ + 'parent_id' =>'Parent Creditmemo Id', + 'comment' => 'Comment' + ]; + + /** + * Validate data + * + * @param \Magento\Sales\Model\Order\Creditmemo\Comment $comment + * @return array + */ + public function validate(Comment $comment) + { + $errors = []; + $commentData = $comment->getData(); + foreach ($this->required as $code => $label) { + if (!$comment->hasData($code)) { + $errors[$code] = sprintf('%s is a required field', $label); + } elseif (empty($commentData[$code])) { + $errors[$code] = sprintf('%s can not be empty', $label); + } + } + + return $errors; + } +} diff --git a/app/code/Magento/Sales/Model/Order/CreditmemoNotifier.php b/app/code/Magento/Sales/Model/Order/CreditmemoNotifier.php new file mode 100644 index 0000000000000000000000000000000000000000..7399a9c0130671789d75e111080a573cd50286e5 --- /dev/null +++ b/app/code/Magento/Sales/Model/Order/CreditmemoNotifier.php @@ -0,0 +1,66 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model\Order; + +use Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory; +use Magento\Sales\Model\Order\Email\Sender\CreditmemoSender; +use Magento\Framework\Logger; + +/** + * Class CreditmemoNotifier + * @package Magento\Sales\Model + */ +class CreditmemoNotifier extends \Magento\Sales\Model\AbstractNotifier +{ + /** + * @var CollectionFactory + */ + protected $historyCollectionFactory; + + /** + * @var \Magento\Framework\Logger + */ + protected $logger; + + /** + * @var CreditmemoSender + */ + protected $sender; + + /** + * @param CollectionFactory $historyCollectionFactory + * @param Logger $logger + * @param CreditmemoSender $sender + */ + public function __construct( + CollectionFactory $historyCollectionFactory, + Logger $logger, + CreditmemoSender $sender + ) { + $this->historyCollectionFactory = $historyCollectionFactory; + $this->logger = $logger; + $this->sender = $sender; + } +} diff --git a/app/code/Magento/Sales/Model/Order/Customer.php b/app/code/Magento/Sales/Model/Order/Customer.php new file mode 100644 index 0000000000000000000000000000000000000000..485439fda1d5281e52bf5ffefac6e16b5a23a99f --- /dev/null +++ b/app/code/Magento/Sales/Model/Order/Customer.php @@ -0,0 +1,259 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model\Order; + + +class Customer +{ + /** + * @var string + */ + protected $customerDob; + + /** + * @var string + */ + protected $customerEmail; + + /** + * @var string + */ + protected $customerFirstName; + + /** + * @var string + */ + protected $customerGender; + + /** + * @var string + */ + protected $customerGroupId; + + /** + * @var int + */ + protected $customerId; + + /** + * @var int + */ + protected $customerIsGuest; + + /** + * @var string + */ + protected $customerLastName; + + /** + * @var string + */ + protected $customerMiddleName; + + /** + * @var string + */ + protected $customerNote; + + /** + * @var string + */ + protected $customerNoteNotify; + + /** + * @var string + */ + protected $customerPrefix; + + /** + * @var string + */ + protected $customerSuffix; + + /** + * @var string + */ + protected $customerTaxvat; + + /** + * @param string $customerDob + * @param string $customerEmail + * @param string $customerFirstName + * @param string $customerGender + * @param string $customerGroupId + * @param int $customerId + * @param int $customerIsGuest + * @param string $customerLastName + * @param string $customerMiddleName + * @param string $customerNote + * @param string $customerNoteNotify + * @param string $customerPrefix + * @param string $customerSuffix + * @param string $customerTaxvat + */ + public function __construct( + $customerDob, + $customerEmail, + $customerFirstName, + $customerGender, + $customerGroupId, + $customerId, + $customerIsGuest, + $customerLastName, + $customerMiddleName, + $customerNote, + $customerNoteNotify, + $customerPrefix, + $customerSuffix, + $customerTaxvat + ) { + $this->customerDob = $customerDob; + $this->customerEmail = $customerEmail; + $this->customerFirstName = $customerFirstName; + $this->customerGender = $customerGender; + $this->customerGroupId = $customerGroupId; + $this->customerId = $customerId; + $this->customerIsGuest = $customerIsGuest; + $this->customerLastName = $customerLastName; + $this->customerMiddleName = $customerMiddleName; + $this->customerNote = $customerNote; + $this->customerNoteNotify = $customerNoteNotify; + $this->customerPrefix = $customerPrefix; + $this->customerSuffix = $customerSuffix; + $this->customerTaxvat = $customerTaxvat; + } + + /** + * @return string + */ + public function getDob() + { + return $this->customerDob; + } + + /** + * @return string + */ + public function getEmail() + { + return $this->customerEmail; + } + + /** + * @return string + */ + public function getFirstName() + { + return $this->customerFirstName; + } + + /** + * @return string + */ + public function getGender() + { + return $this->customerGender; + } + + /** + * @return string + */ + public function getGroupId() + { + return $this->customerGroupId; + } + + /** + * @return string + */ + public function getId() + { + return $this->customerId; + } + + /** + * @return string + */ + public function getIsGuest() + { + return $this->customerIsGuest; + } + + /** + * @return string + */ + public function getLastName() + { + return $this->customerLastName; + } + + /** + * @return string + */ + public function getMiddleName() + { + return $this->customerMiddleName; + } + + /** + * @return string + */ + public function getNote() + { + return $this->customerNote; + } + + /** + * @return string + */ + public function getNoteNotify() + { + return $this->customerNoteNotify; + } + + /** + * @return string + */ + public function getPrefix() + { + return $this->customerPrefix; + } + + /** + * @return string + */ + public function getSuffix() + { + return $this->customerSuffix; + } + + /** + * @return string + */ + public function getTaxvat() + { + return $this->customerTaxvat; + } +} diff --git a/app/code/Magento/Sales/Model/Order/Customer/Builder.php b/app/code/Magento/Sales/Model/Order/Customer/Builder.php new file mode 100644 index 0000000000000000000000000000000000000000..ce30c10987975640f0e9e7214a2ba7b1fa904d86 --- /dev/null +++ b/app/code/Magento/Sales/Model/Order/Customer/Builder.php @@ -0,0 +1,278 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model\Order\Customer; + +/** + * Class Builder + */ +class Builder +{ + /** + * @var \Magento\Framework\ObjectManager + */ + protected $objectManager; + + /** + * @var string + */ + protected $customerDob; + + /** + * @var string + */ + protected $customerEmail; + + /** + * @var string + */ + protected $customerFirstName; + + /** + * @var string + */ + protected $customerGender; + + /** + * @var int + */ + protected $customerGroupId; + + /** + * @var int + */ + protected $customerId; + + /** + * @var int + */ + protected $customerIsGuest; + + /** + * @var string + */ + protected $customerLastName; + + /** + * @var string + */ + protected $customerMiddleName; + + /** + * @var string + */ + protected $customerNote; + + /** + * @var int + */ + protected $customerNoteNotify; + + /** + * @var string + */ + protected $customerPrefix; + + /** + * @var string + */ + protected $customerSuffix; + + /** + * @var string + */ + protected $customerTaxvat; + + /** + * @param \Magento\Framework\ObjectManager $objectManager + */ + public function __construct( + \Magento\Framework\ObjectManager $objectManager + ) { + $this->objectManager = $objectManager; + } + + /** + * @param string $customerDob + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setDob($customerDob) + { + $this->customerDob = $customerDob; + return $this; + } + + /** + * @param string $customerEmail + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setEmail($customerEmail) + { + $this->customerEmail = $customerEmail; + return $this; + } + + /** + * @param string $customerFirstName + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setFirstName($customerFirstName) + { + $this->customerFirstName = $customerFirstName; + return $this; + } + + /** + * @param string $customerGender + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setGender($customerGender) + { + $this->customerGender = $customerGender; + return $this; + } + + /** + * @param int $customerGroupId + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setGroupId($customerGroupId) + { + $this->customerGroupId = $customerGroupId; + return $this; + } + + /** + * @param int $customerId + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setId($customerId) + { + $this->customerId = $customerId; + return $this; + } + + /** + * @param int $customerIsGuest + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setIsGuest($customerIsGuest) + { + $this->customerIsGuest = $customerIsGuest; + return $this; + } + + /** + * @param string $customerLastName + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setLastName($customerLastName) + { + $this->customerLastName = $customerLastName; + return $this; + } + + /** + * @param string $customerMiddleName + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setMiddleName($customerMiddleName) + { + $this->customerMiddleName = $customerMiddleName; + return $this; + } + + /** + * @param string $customerNote + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setNote($customerNote) + { + $this->customerNote = $customerNote; + return $this; + } + + /** + * @param int $customerNoteNotify + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setNoteNotify($customerNoteNotify) + { + $this->customerNoteNotify = $customerNoteNotify; + return $this; + } + + /** + * @param string $customerPrefix + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setPrefix($customerPrefix) + { + $this->customerPrefix = $customerPrefix; + return $this; + } + + /** + * @param string $customerSuffix + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setSuffix($customerSuffix) + { + $this->customerSuffix = $customerSuffix; + return $this; + } + + /** + * @param string $customerTaxvat + * @return \Magento\Sales\Model\Order\Customer\Builder + */ + public function setTaxvat($customerTaxvat) + { + $this->customerTaxvat = $customerTaxvat; + return $this; + } + + /** + * @return \Magento\Sales\Model\Order\Customer + */ + public function create() + { + return $this->objectManager->create('Magento\Sales\Model\Order\Customer', [ + 'customerDob' => $this->customerDob, + 'customerEmail' => $this->customerEmail, + 'customerFirstName' => $this->customerFirstName, + 'customerGender' => $this->customerGender, + 'customerGroupId' => $this->customerGroupId, + 'customerId' => $this->customerId, + 'customerIsGuest' => $this->customerIsGuest, + 'customerLastName' => $this->customerLastName, + 'customerMiddleName' => $this->customerMiddleName, + 'customerNote' => $this->customerNote, + 'customerNoteNotify' => $this->customerNoteNotify, + 'customerPrefix' => $this->customerPrefix, + 'customerSuffix' => $this->customerSuffix, + 'customerTaxvat' => $this->customerTaxvat + ]); + } +} diff --git a/app/code/Magento/Sales/Model/Order/Invoice.php b/app/code/Magento/Sales/Model/Order/Invoice.php index f337c6130413f21848152be5b932817d77fe3503..e84ae0574a9d7e46a5f304bfc975e3f9958b685a 100644 --- a/app/code/Magento/Sales/Model/Order/Invoice.php +++ b/app/code/Magento/Sales/Model/Order/Invoice.php @@ -130,10 +130,12 @@ class Invoice extends \Magento\Sales\Model\AbstractModel const REPORT_DATE_TYPE_INVOICE_CREATED = 'invoice_created'; - /* - * Identifier for order history item + /** + * Identifier for history item + * + * @var string */ - const HISTORY_ENTITY_NAME = 'invoice'; + protected $entityType = 'invoice'; /** * @var array @@ -331,7 +333,17 @@ class Invoice extends \Magento\Sales\Model\AbstractModel if (!$this->_order instanceof \Magento\Sales\Model\Order) { $this->_order = $this->_orderFactory->create()->load($this->getOrderId()); } - return $this->_order->setHistoryEntityName(self::HISTORY_ENTITY_NAME); + return $this->_order->setHistoryEntityName($this->entityType); + } + + /** + * Return order history item identifier + * + * @return string + */ + public function getEntityType() + { + return $this->entityType; } /** diff --git a/app/code/Magento/Sales/Model/Order/Invoice/Comment/Validator.php b/app/code/Magento/Sales/Model/Order/Invoice/Comment/Validator.php new file mode 100644 index 0000000000000000000000000000000000000000..a3f7b59b53e2d27c5b53c9da1368ad8e4d860433 --- /dev/null +++ b/app/code/Magento/Sales/Model/Order/Invoice/Comment/Validator.php @@ -0,0 +1,63 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order\Invoice\Comment; + +use Magento\Sales\Model\Order\Invoice\Comment; + +/** + * Class Validator + */ +class Validator +{ + /** + * Required field + * + * @var array + */ + protected $required = [ + 'parent_id' =>'Parent Invoice Id', + 'comment' => 'Comment' + ]; + + /** + * Validate data + * + * @param \Magento\Sales\Model\Order\Invoice\Comment $comment + * @return array + */ + public function validate(Comment $comment) + { + $errors = []; + $commentData = $comment->getData(); + foreach ($this->required as $code => $label) { + if (!$comment->hasData($code)) { + $errors[$code] = sprintf('%s is a required field', $label); + } elseif (empty($commentData[$code])) { + $errors[$code] = sprintf('%s can not be empty', $label); + } + } + + return $errors; + } +} diff --git a/app/code/Magento/Sales/Model/Order/InvoiceNotifier.php b/app/code/Magento/Sales/Model/Order/InvoiceNotifier.php new file mode 100644 index 0000000000000000000000000000000000000000..a5d31ef06db9e0bf9ec041a10da56f2710f95596 --- /dev/null +++ b/app/code/Magento/Sales/Model/Order/InvoiceNotifier.php @@ -0,0 +1,66 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model\Order; + +use Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory; +use Magento\Sales\Model\Order\Email\Sender\InvoiceSender; +use Magento\Framework\Logger; + +/** + * Class InvoiceNotifier + * @package Magento\Sales\Model + */ +class InvoiceNotifier extends \Magento\Sales\Model\AbstractNotifier +{ + /** + * @var CollectionFactory + */ + protected $historyCollectionFactory; + + /** + * @var \Magento\Framework\Logger + */ + protected $logger; + + /** + * @var InvoiceSender + */ + protected $sender; + + /** + * @param CollectionFactory $historyCollectionFactory + * @param Logger $logger + * @param InvoiceSender $sender + */ + public function __construct( + CollectionFactory $historyCollectionFactory, + Logger $logger, + InvoiceSender $sender + ) { + $this->historyCollectionFactory = $historyCollectionFactory; + $this->logger = $logger; + $this->sender = $sender; + } +} diff --git a/app/code/Magento/Sales/Model/Order/Shipment.php b/app/code/Magento/Sales/Model/Order/Shipment.php index a4f64eed4dd78ffcebf4ba1d99ed41e81dd97d76..b8e7584cf7ba9913098e95ed9c56cb596a4b62ca 100644 --- a/app/code/Magento/Sales/Model/Order/Shipment.php +++ b/app/code/Magento/Sales/Model/Order/Shipment.php @@ -62,9 +62,11 @@ class Shipment extends \Magento\Sales\Model\AbstractModel const REPORT_DATE_TYPE_SHIPMENT_CREATED = 'shipment_created'; /** - * Identifier for order history item + * Order entity type + * + * @var string */ - const HISTORY_ENTITY_NAME = 'shipment'; + protected $entityType = 'shipment'; /** * Store address @@ -232,7 +234,17 @@ class Shipment extends \Magento\Sales\Model\AbstractModel if (!$this->_order instanceof \Magento\Sales\Model\Order) { $this->_order = $this->_orderFactory->create()->load($this->getOrderId()); } - return $this->_order->setHistoryEntityName(self::HISTORY_ENTITY_NAME); + return $this->_order->setHistoryEntityName($this->entityType); + } + + /** + * Return order history item identifier + * + * @return string + */ + public function getEntityType() + { + return $this->entityType; } /** diff --git a/app/code/Magento/Sales/Model/Order/Shipment/Comment/Validator.php b/app/code/Magento/Sales/Model/Order/Shipment/Comment/Validator.php new file mode 100644 index 0000000000000000000000000000000000000000..4ecf0305d1d5e8bd7ec00fd3e1e0a8714ae6f62e --- /dev/null +++ b/app/code/Magento/Sales/Model/Order/Shipment/Comment/Validator.php @@ -0,0 +1,63 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order\Shipment\Comment; + +use Magento\Sales\Model\Order\Shipment\Comment; + +/** + * Class Validator + */ +class Validator +{ + /** + * Required field + * + * @var array + */ + protected $required = [ + 'parent_id' =>'Parent Shipment Id', + 'comment' => 'Comment' + ]; + + /** + * Validate data + * + * @param \Magento\Sales\Model\Order\Shipment\Comment $comment + * @return array + */ + public function validate(Comment $comment) + { + $errors = []; + $commentData = $comment->getData(); + foreach ($this->required as $code => $label) { + if (!$comment->hasData($code)) { + $errors[$code] = sprintf('%s is a required field', $label); + } elseif (empty($commentData[$code])) { + $errors[$code] = sprintf('%s can not be empty', $label); + } + } + + return $errors; + } +} diff --git a/app/code/Magento/Sales/Model/Order/Shipment/Track/Validator.php b/app/code/Magento/Sales/Model/Order/Shipment/Track/Validator.php new file mode 100644 index 0000000000000000000000000000000000000000..234c16b795114cfd541f6add22d6a998f1f64af8 --- /dev/null +++ b/app/code/Magento/Sales/Model/Order/Shipment/Track/Validator.php @@ -0,0 +1,65 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order\Shipment\Track; + +use Magento\Sales\Model\Order\Shipment\Track; + +/** + * Class Validator + */ +class Validator +{ + /** + * Required field + * + * @var array + */ + protected $required = [ + 'parent_id' => 'Parent Track Id', + 'order_id' => 'Order Id', + 'track_number' => 'Number', + 'carrier_code' => 'Carrier Code' + ]; + + /** + * Validate data + * + * @param \Magento\Sales\Model\Order\Shipment\Track $track + * @return array + */ + public function validate(Track $track) + { + $errors = []; + $commentData = $track->getData(); + foreach ($this->required as $code => $label) { + if (!$track->hasData($code)) { + $errors[$code] = sprintf('%s is a required field', $label); + } elseif (empty($commentData[$code])) { + $errors[$code] = sprintf('%s can not be empty', $label); + } + } + + return $errors; + } +} diff --git a/app/code/Magento/Sales/Model/OrderConverter.php b/app/code/Magento/Sales/Model/OrderConverter.php new file mode 100644 index 0000000000000000000000000000000000000000..83ab755637ace381bbdffc07f29c6ea59682d3b6 --- /dev/null +++ b/app/code/Magento/Sales/Model/OrderConverter.php @@ -0,0 +1,171 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model; + +use Magento\Sales\Model\Order\Builder as OrderBuilder; +use Magento\Sales\Model\Order\ItemConverter; +use Magento\Sales\Model\Order\PaymentConverter; +use Magento\Sales\Model\Order\AddressConverter; +use Magento\Sales\Model\Order\Customer\Builder as CustomerBuilder; +use Magento\Sales\Service\V1\Data\Order as OrderData; + +/** + * Converter class for \Magento\Sales\Model\Order + */ +class OrderConverter +{ + /** + * @var OrderBuilder + */ + protected $orderBuilder; + + /** + * @var ItemConverter + */ + protected $itemConverter; + + /** + * @var PaymentConverter + */ + protected $paymentConverter; + + /** + * @var AddressConverter + */ + protected $addressConverter; + + /** + * @var CustomerBuilder + */ + protected $customerBuilder; + + /** + * @param OrderBuilder $orderBuilder + * @param ItemConverter $itemConverter + * @param PaymentConverter $paymentConverter + * @param AddressConverter $addressConverter + * @param CustomerBuilder $customerBuilder + */ + public function __construct( + OrderBuilder $orderBuilder, + ItemConverter $itemConverter, + PaymentConverter $paymentConverter, + AddressConverter $addressConverter, + CustomerBuilder $customerBuilder + ) { + $this->orderBuilder = $orderBuilder; + $this->itemConverter = $itemConverter; + $this->paymentConverter = $paymentConverter; + $this->addressConverter = $addressConverter; + $this->customerBuilder = $customerBuilder; + } + + /** + * Get Order Customer + * + * @param OrderData $dataObject + * @return Order\Customer + */ + protected function getCustomer(OrderData $dataObject) + { + $this->customerBuilder->setDob($dataObject->getCustomerDob()) + ->setEmail($dataObject->getCustomerEmail()) + ->setFirstName($dataObject->getCustomerFirstname()) + ->setGender($dataObject->getCustomerGender()) + ->setGroupId($dataObject->getCustomerGroupId()) + ->setId($dataObject->getCustomerId()) + ->setIsGuest($dataObject->getCustomerIsGuest()) + ->setLastName($dataObject->getCustomerLastname()) + ->setMiddleName($dataObject->getCustomerMiddlename()) + ->setNote($dataObject->getCustomerNote()) + ->setNoteNotify($dataObject->getCustomerNoteNotify()) + ->setPrefix($dataObject->getCustomerPrefix()) + ->setSuffix($dataObject->getCustomerSuffix()) + ->setTaxvat($dataObject->getCustomerTaxvat()); + return $this->customerBuilder->create(); + } + + /** + * Get Order Items + * + * @param OrderData $dataObject + * @return array + */ + protected function getItems(OrderData $dataObject) + { + $items = []; + foreach ($dataObject->getItems() as $item) { + $items[] = $this->itemConverter->getModel($item); + } + return $items; + } + + /** + * Get Order Payments + * + * @param OrderData $dataObject + * @return array + */ + protected function getPayments(OrderData $dataObject) + { + $payments = []; + foreach ($dataObject->getPayments() as $payment) { + $payments[] = $this->paymentConverter->getModel($payment); + } + return $payments; + } + + /** + * Get Order Model + * + * @param OrderData $dataObject + * @return Order + * @throws \Exception + */ + public function getModel(OrderData $dataObject) + { + $this->orderBuilder->setCustomer($this->getCustomer($dataObject)) + ->setQuoteId($dataObject->getQuoteId()) + ->setAppliedRuleIds($dataObject->getAppliedRuleIds()) + ->setIsVirtual($dataObject->getIsVirtual()) + ->setRemoteIp($dataObject->getRemoteIp()) + ->setBaseSubtotal($dataObject->getBaseSubtotal()) + ->setSubtotal($dataObject->getSubtotal()) + ->setBaseGrandTotal($dataObject->getBaseGrandTotal()) + ->setGrandTotal($dataObject->getGrandTotal()) + ->setBaseCurrencyCode($dataObject->getBaseCurrencyCode()) + ->setGlobalCurrencyCode($dataObject->getGlobalCurrencyCode()) + ->setStoreCurrencyCode($dataObject->getStoreCurrencyCode()) + ->setStoreId($dataObject->getStoreId()) + ->setStoreToBaseRate($dataObject->getStoreToBaseRate()) + ->setBaseToGlobalRate($dataObject->getBaseToGlobalRate()) + ->setCouponCode($dataObject->getCouponCode()) + ->setBillingAddress($this->addressConverter->getModel($dataObject->getBillingAddress())) + ->setShippingAddress($this->addressConverter->getModel($dataObject->getShippingAddress())) + ->setPayments($this->getPayments($dataObject)) + ->setItems($this->getItems($dataObject)); + return $this->orderBuilder->create(); + } +} diff --git a/app/code/Magento/Sales/Model/OrderNotifier.php b/app/code/Magento/Sales/Model/OrderNotifier.php new file mode 100644 index 0000000000000000000000000000000000000000..12d967a2fdd645c82115ebbb0e1c2bb5bb6267f0 --- /dev/null +++ b/app/code/Magento/Sales/Model/OrderNotifier.php @@ -0,0 +1,66 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model; + +use Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory; +use Magento\Sales\Model\Order\Email\Sender\OrderSender; +use Magento\Framework\Logger; + +/** + * Class OrderNotifier + * @package Magento\Sales\Model + */ +class OrderNotifier extends \Magento\Sales\Model\AbstractNotifier +{ + /** + * @var CollectionFactory + */ + protected $historyCollectionFactory; + + /** + * @var \Magento\Framework\Logger + */ + protected $logger; + + /** + * @var OrderSender + */ + protected $sender; + + /** + * @param CollectionFactory $historyCollectionFactory + * @param Logger $logger + * @param OrderSender $sender + */ + public function __construct( + CollectionFactory $historyCollectionFactory, + Logger $logger, + OrderSender $sender + ) { + $this->historyCollectionFactory = $historyCollectionFactory; + $this->logger = $logger; + $this->sender = $sender; + } +} diff --git a/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Comment.php b/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Comment.php index 4cef48a914efb50e22c027d5f8a772b51d3fadd0..4ef922839f158c4c9b61554f25a3eb4629908ec5 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Comment.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Creditmemo/Comment.php @@ -37,6 +37,33 @@ class Comment extends \Magento\Sales\Model\Resource\Order\AbstractOrder */ protected $_eventPrefix = 'sales_order_creditmemo_comment_resource'; + /** + * Validator + * + * @var \Magento\Sales\Model\Order\Creditmemo\Comment\Validator + */ + protected $validator; + + /** + * Constructor + * + * @param \Magento\Framework\App\Resource $resource + * @param \Magento\Framework\Stdlib\DateTime $dateTime + * @param \Magento\Framework\Event\ManagerInterface $eventManager + * @param \Magento\Eav\Model\Entity\TypeFactory $eavEntityTypeFactory + * @param \Magento\Sales\Model\Order\Creditmemo\Comment\Validator $validator + */ + public function __construct( + \Magento\Framework\App\Resource $resource, + \Magento\Framework\Stdlib\DateTime $dateTime, + \Magento\Framework\Event\ManagerInterface $eventManager, + \Magento\Eav\Model\Entity\TypeFactory $eavEntityTypeFactory, + \Magento\Sales\Model\Order\Creditmemo\Comment\Validator $validator + ) { + $this->validator = $validator; + parent::__construct($resource, $dateTime, $eventManager, $eavEntityTypeFactory); + } + /** * Model initialization * @@ -46,4 +73,24 @@ class Comment extends \Magento\Sales\Model\Resource\Order\AbstractOrder { $this->_init('sales_flat_creditmemo_comment', 'entity_id'); } + + /** + * Performs validation before save + * + * @param \Magento\Framework\Model\AbstractModel $object + * @return $this + * @throws \Magento\Framework\Model\Exception + */ + protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) + { + parent::_beforeSave($object); + $errors = $this->validator->validate($object); + if (!empty($errors)) { + throw new \Magento\Framework\Model\Exception( + __("Cannot save comment") . ":\n" . implode("\n", $errors) + ); + } + + return $this; + } } diff --git a/app/code/Magento/Sales/Model/Resource/Order/Invoice/Comment.php b/app/code/Magento/Sales/Model/Resource/Order/Invoice/Comment.php index 41b2c7fcdab824ed6931678d717c80c4de2408be..9dca32d432a76dc5cab352200b50270c9a7c4af1 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Invoice/Comment.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Invoice/Comment.php @@ -37,6 +37,33 @@ class Comment extends \Magento\Sales\Model\Resource\Order\AbstractOrder */ protected $_eventPrefix = 'sales_order_invoice_comment_resource'; + /** + * Validator + * + * @var \Magento\Sales\Model\Order\Invoice\Comment\Validator + */ + protected $validator; + + /** + * Constructor + * + * @param \Magento\Framework\App\Resource $resource + * @param \Magento\Framework\Stdlib\DateTime $dateTime + * @param \Magento\Framework\Event\ManagerInterface $eventManager + * @param \Magento\Eav\Model\Entity\TypeFactory $eavEntityTypeFactory + * @param \Magento\Sales\Model\Order\Invoice\Comment\Validator $validator + */ + public function __construct( + \Magento\Framework\App\Resource $resource, + \Magento\Framework\Stdlib\DateTime $dateTime, + \Magento\Framework\Event\ManagerInterface $eventManager, + \Magento\Eav\Model\Entity\TypeFactory $eavEntityTypeFactory, + \Magento\Sales\Model\Order\Invoice\Comment\Validator $validator + ) { + $this->validator = $validator; + parent::__construct($resource, $dateTime, $eventManager, $eavEntityTypeFactory); + } + /** * Model initialization * @@ -46,4 +73,24 @@ class Comment extends \Magento\Sales\Model\Resource\Order\AbstractOrder { $this->_init('sales_flat_invoice_comment', 'entity_id'); } + + /** + * Performs validation before save + * + * @param \Magento\Framework\Model\AbstractModel $object + * @return $this + * @throws \Magento\Framework\Model\Exception + */ + protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) + { + parent::_beforeSave($object); + $errors = $this->validator->validate($object); + if (!empty($errors)) { + throw new \Magento\Framework\Model\Exception( + __("Cannot save comment") . ":\n" . implode("\n", $errors) + ); + } + + return $this; + } } diff --git a/app/code/Magento/Sales/Model/Resource/Order/Shipment/Comment.php b/app/code/Magento/Sales/Model/Resource/Order/Shipment/Comment.php index 41bfbba1cd3629a655375e557b1b310a78c2f7f6..709d47bd2ec1eb6f5184c1a64a2f825e18dce791 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Shipment/Comment.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Shipment/Comment.php @@ -37,6 +37,33 @@ class Comment extends \Magento\Sales\Model\Resource\Order\AbstractOrder */ protected $_eventPrefix = 'sales_order_shipment_comment_resource'; + /** + * Validator + * + * @var \Magento\Sales\Model\Order\Shipment\Comment\Validator + */ + protected $validator; + + /** + * Constructor + * + * @param \Magento\Framework\App\Resource $resource + * @param \Magento\Framework\Stdlib\DateTime $dateTime + * @param \Magento\Framework\Event\ManagerInterface $eventManager + * @param \Magento\Eav\Model\Entity\TypeFactory $eavEntityTypeFactory + * @param \Magento\Sales\Model\Order\Shipment\Comment\Validator $validator + */ + public function __construct( + \Magento\Framework\App\Resource $resource, + \Magento\Framework\Stdlib\DateTime $dateTime, + \Magento\Framework\Event\ManagerInterface $eventManager, + \Magento\Eav\Model\Entity\TypeFactory $eavEntityTypeFactory, + \Magento\Sales\Model\Order\Shipment\Comment\Validator $validator + ) { + $this->validator = $validator; + parent::__construct($resource, $dateTime, $eventManager, $eavEntityTypeFactory); + } + /** * Model initialization * @@ -46,4 +73,24 @@ class Comment extends \Magento\Sales\Model\Resource\Order\AbstractOrder { $this->_init('sales_flat_shipment_comment', 'entity_id'); } + + /** + * Performs validation before save + * + * @param \Magento\Framework\Model\AbstractModel $object + * @return $this + * @throws \Magento\Framework\Model\Exception + */ + protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) + { + parent::_beforeSave($object); + $errors = $this->validator->validate($object); + if (!empty($errors)) { + throw new \Magento\Framework\Model\Exception( + __("Cannot save comment") . ":\n" . implode("\n", $errors) + ); + } + + return $this; + } } diff --git a/app/code/Magento/Sales/Model/Resource/Order/Shipment/Track.php b/app/code/Magento/Sales/Model/Resource/Order/Shipment/Track.php index 8654094f8c93791c559652616f8f3763cd0ba4e0..73718f9e165d59cda65353cdd3b41e7a0a1f238a 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Shipment/Track.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Shipment/Track.php @@ -37,6 +37,33 @@ class Track extends \Magento\Sales\Model\Resource\Order\AbstractOrder */ protected $_eventPrefix = 'sales_order_shipment_track_resource'; + /** + * Validator + * + * @var \Magento\Sales\Model\Order\Shipment\Track\Validator + */ + protected $validator; + + /** + * Constructor + * + * @param \Magento\Framework\App\Resource $resource + * @param \Magento\Framework\Stdlib\DateTime $dateTime + * @param \Magento\Framework\Event\ManagerInterface $eventManager + * @param \Magento\Eav\Model\Entity\TypeFactory $eavEntityTypeFactory + * @param \Magento\Sales\Model\Order\Shipment\Track\Validator $validator + */ + public function __construct( + \Magento\Framework\App\Resource $resource, + \Magento\Framework\Stdlib\DateTime $dateTime, + \Magento\Framework\Event\ManagerInterface $eventManager, + \Magento\Eav\Model\Entity\TypeFactory $eavEntityTypeFactory, + \Magento\Sales\Model\Order\Shipment\Track\Validator $validator + ) { + $this->validator = $validator; + parent::__construct($resource, $dateTime, $eventManager, $eavEntityTypeFactory); + } + /** * Model initialization * @@ -46,4 +73,24 @@ class Track extends \Magento\Sales\Model\Resource\Order\AbstractOrder { $this->_init('sales_flat_shipment_track', 'entity_id'); } + + /** + * Performs validation before save + * + * @param \Magento\Framework\Model\AbstractModel $object + * @return $this + * @throws \Magento\Framework\Model\Exception + */ + protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) + { + parent::_beforeSave($object); + $errors = $this->validator->validate($object); + if (!empty($errors)) { + throw new \Magento\Framework\Model\Exception( + __("Cannot save track") . ":\n" . implode("\n", $errors) + ); + } + + return $this; + } } diff --git a/app/code/Magento/Sales/Model/Resource/Order/Status/History/Collection.php b/app/code/Magento/Sales/Model/Resource/Order/Status/History/Collection.php index dbdde6815c359bc25808aebb660a5aa8876b3fea..c8eb2d9f9f86981b3bd811bda3c159574934deb6 100644 --- a/app/code/Magento/Sales/Model/Resource/Order/Status/History/Collection.php +++ b/app/code/Magento/Sales/Model/Resource/Order/Status/History/Collection.php @@ -63,11 +63,9 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection\Abstract * \Magento\Sales\Model\Order\Creditmemo, \Magento\Sales\Model\Order\Invoice, \Magento\Sales\Model\Order\Shipment * * @param AbstractModel $instance - * @param string $historyEntityName - * * @return \Magento\Sales\Model\Order\Status\History|null */ - public function getUnnotifiedForInstance($instance, $historyEntityName = Order::HISTORY_ENTITY_NAME) + public function getUnnotifiedForInstance($instance) { if (!$instance instanceof Order) { $instance = $instance->getOrder(); @@ -79,14 +77,14 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection\Abstract 'desc' )->addFieldToFilter( 'entity_name', - $historyEntityName + $instance->getEntityType() )->addFieldToFilter( 'is_customer_notified', 0 )->setPageSize( 1 ); - foreach ($this as $historyItem) { + foreach ($this->getItems() as $historyItem) { return $historyItem; } return null; diff --git a/app/code/Magento/Sales/Service/V1/Action/CreditmemoAddComment.php b/app/code/Magento/Sales/Service/V1/Action/CreditmemoAddComment.php new file mode 100644 index 0000000000000000000000000000000000000000..0c5f60584630dbbe43d73169817a157d023ba04f --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/CreditmemoAddComment.php @@ -0,0 +1,62 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\Comment; +use Magento\Sales\Model\Order\Creditmemo\CommentConverter; + +/** + * Class CreditmemoAddComment + */ +class CreditmemoAddComment +{ + /** + * @var \Magento\Sales\Model\Order\Creditmemo\CommentConverter + */ + protected $commentConverter; + + /** + * @param \Magento\Sales\Model\Order\Creditmemo\CommentConverter $commentConverter + */ + public function __construct(CommentConverter $commentConverter) + { + $this->commentConverter = $commentConverter; + } + + /** + * Invoke creditmemo add comment service + * + * @param \Magento\Sales\Service\V1\Data\Comment $comment + * @return bool + * @throws \Exception + */ + public function invoke(Comment $comment) + { + /** @var \Magento\Sales\Model\Order\Creditmemo\Comment $commentModel */ + $commentModel = $this->commentConverter->getModel($comment); + $commentModel->save(); + + return true; + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/CreditmemoCancel.php b/app/code/Magento/Sales/Service/V1/Action/CreditmemoCancel.php new file mode 100644 index 0000000000000000000000000000000000000000..d5773c60318967ccbd2acc819ee0cbda5c3ed91c --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/CreditmemoCancel.php @@ -0,0 +1,57 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\CreditmemoRepository; + +/** + * Class CreditmemoCancel + */ +class CreditmemoCancel +{ + /** + * @var CreditmemoRepository + */ + protected $creditmemoRepository; + + /** + * @param CreditmemoRepository $creditmemoRepository + */ + public function __construct(CreditmemoRepository $creditmemoRepository) + { + $this->creditmemoRepository = $creditmemoRepository; + } + + /** + * Invoke CreditmemoCancel service + * + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function invoke($id) + { + return (bool)$this->creditmemoRepository->get($id)->cancel(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/CreditmemoCommentsList.php b/app/code/Magento/Sales/Service/V1/Action/CreditmemoCommentsList.php new file mode 100644 index 0000000000000000000000000000000000000000..bbb755e832f0f84c770f8933d385a099cc684a07 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/CreditmemoCommentsList.php @@ -0,0 +1,104 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\CommentMapper; +use Magento\Framework\Service\V1\Data\FilterBuilder; +use Magento\Sales\Model\Order\Creditmemo\CommentRepository; +use Magento\Framework\Service\V1\Data\SearchCriteriaBuilder; +use Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder; + +/** + * Class CreditmemoCommentsList + */ +class CreditmemoCommentsList +{ + /** + * @var \Magento\Sales\Model\Order\Creditmemo\CommentRepository + */ + protected $commentRepository; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentMapper + */ + protected $commentMapper; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder + */ + protected $criteriaBuilder; + + /** + * @var \Magento\Framework\Service\V1\Data\FilterBuilder + */ + protected $filterBuilder; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder + */ + protected $searchResultsBuilder; + + /** + * @param \Magento\Sales\Model\Order\Creditmemo\CommentRepository $commentRepository + * @param \Magento\Sales\Service\V1\Data\CommentMapper $commentMapper + * @param \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder $criteriaBuilder + * @param \Magento\Framework\Service\V1\Data\FilterBuilder $filterBuilder + * @param \Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder $searchResultsBuilder + */ + public function __construct( + CommentRepository $commentRepository, + CommentMapper $commentMapper, + SearchCriteriaBuilder $criteriaBuilder, + FilterBuilder $filterBuilder, + CommentSearchResultsBuilder $searchResultsBuilder + ) { + $this->commentRepository = $commentRepository; + $this->commentMapper = $commentMapper; + $this->criteriaBuilder = $criteriaBuilder; + $this->filterBuilder = $filterBuilder; + $this->searchResultsBuilder = $searchResultsBuilder; + } + + /** + * Invoke CreditmemoCommentsList service + * + * @param int $id + * @return \Magento\Sales\Service\V1\Data\CommentSearchResults + */ + public function invoke($id) + { + $this->criteriaBuilder->addFilter( + ['eq' => $this->filterBuilder->setField('parent_id')->setValue($id)->create()] + ); + $criteria = $this->criteriaBuilder->create(); + $comments = []; + foreach ($this->commentRepository->find($criteria) as $comment) { + $comments[] = $this->commentMapper->extractDto($comment); + } + return $this->searchResultsBuilder->setItems($comments) + ->setSearchCriteria($criteria) + ->setTotalCount(count($comments)) + ->create(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/CreditmemoCreate.php b/app/code/Magento/Sales/Service/V1/Action/CreditmemoCreate.php new file mode 100644 index 0000000000000000000000000000000000000000..4134d0a4dfc7937642489b6a0ee3d80531b4b6b0 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/CreditmemoCreate.php @@ -0,0 +1,77 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\CreditmemoConverter; + +/** + * Class CreditmemoCreate + */ +class CreditmemoCreate +{ + /** + * @var CreditmemoConverter + */ + protected $invoiceConverter; + + /** + * @var \Magento\Framework\Logger + */ + protected $logger; + + /** + * @param CreditmemoConverter $creditmemoConverter + * @param \Magento\Framework\Logger $logger + */ + public function __construct(CreditmemoConverter $creditmemoConverter, \Magento\Framework\Logger $logger) + { + $this->creditmemoConverter = $creditmemoConverter; + $this->logger = $logger; + } + + /** + * @param \Magento\Sales\Service\V1\Data\Creditmemo $creditmemoDataObject + * @throws \Exception + * @return bool + */ + public function invoke(\Magento\Sales\Service\V1\Data\Creditmemo $creditmemoDataObject) + { + try { + /** @var \Magento\Sales\Model\Order\Creditmemo $creditmemo */ + $creditmemo = $this->creditmemoConverter->getModel($creditmemoDataObject); + if (!$creditmemo) { + return false; + } + if (!$creditmemo->isValidGrandTotal()) { + return false; + } + $creditmemo->register(); + $creditmemo->save(); + return true; + } catch (\Exception $e) { + $this->logger->logException($e); + throw new \Exception(__('An error has occurred during creating Creditmemo')); + } + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/CreditmemoEmail.php b/app/code/Magento/Sales/Service/V1/Action/CreditmemoEmail.php new file mode 100644 index 0000000000000000000000000000000000000000..721845ba3ed2a695028b1f6d3ad4c9912d5d28b5 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/CreditmemoEmail.php @@ -0,0 +1,67 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\CreditmemoRepository; + +/** + * Class CreditmemoEmail + */ +class CreditmemoEmail +{ + /** + * @var CreditmemoRepository + */ + protected $creditmemoRepository; + + /** + * @var \Magento\Sales\Model\Order\CreditmemoNotifier + */ + protected $creditmemoNotifier; + + /** + * @param CreditmemoRepository $creditmemoRepository + * @param \Magento\Sales\Model\Order\CreditmemoNotifier $notifier + */ + public function __construct( + CreditmemoRepository $creditmemoRepository, + \Magento\Sales\Model\Order\CreditmemoNotifier $notifier + ) { + $this->creditmemoRepository = $creditmemoRepository; + $this->creditmemoNotifier = $notifier; + } + + /** + * Invoke notifyUser service + * + * @param int $id + * @return bool + */ + public function invoke($id) + { + /** @var \Magento\Sales\Model\Order\Creditmemo $creditmemo */ + $creditmemo = $this->creditmemoRepository->get($id); + return $this->creditmemoNotifier->notify($creditmemo); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/CreditmemoGet.php b/app/code/Magento/Sales/Service/V1/Action/CreditmemoGet.php new file mode 100644 index 0000000000000000000000000000000000000000..8234ff4e8b73da3ee15a9c629fe1b39a2772a5e2 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/CreditmemoGet.php @@ -0,0 +1,67 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\CreditmemoRepository; +use Magento\Sales\Service\V1\Data\CreditmemoMapper; + +/** + * Class CreditmemoGet + */ +class CreditmemoGet +{ + /** + * @var \Magento\Sales\Model\Order\CreditmemoRepository + */ + protected $creditmemoRepository; + + /** + * @var \Magento\Sales\Service\V1\Data\CreditmemoMapper + */ + protected $creditmemoMapper; + + /** + * @param \Magento\Sales\Model\Order\CreditmemoRepository $creditmemoRepository + * @param \Magento\Sales\Service\V1\Data\CreditmemoMapper $creditmemoMapper + */ + public function __construct( + CreditmemoRepository $creditmemoRepository, + CreditmemoMapper $creditmemoMapper + ) { + $this->creditmemoRepository = $creditmemoRepository; + $this->creditmemoMapper = $creditmemoMapper; + } + + /** + * Invoke creditmemo get service + * + * @param int $id + * @return \Magento\Sales\Service\V1\Data\Creditmemo + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function invoke($id) + { + return $this->creditmemoMapper->extractDto($this->creditmemoRepository->get($id)); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/CreditmemoList.php b/app/code/Magento/Sales/Service/V1/Action/CreditmemoList.php new file mode 100644 index 0000000000000000000000000000000000000000..3b38db63556aa1bb9c971211f3f57e20dd5d85d8 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/CreditmemoList.php @@ -0,0 +1,84 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\CreditmemoMapper; +use Magento\Sales\Model\Order\CreditmemoRepository; +use Magento\Framework\Service\V1\Data\SearchCriteria; +use Magento\Sales\Service\V1\Data\CreditmemoSearchResultsBuilder; + +/** + * Class CreditmemoList + */ +class CreditmemoList +{ + /** + * @var CreditmemoMapper + */ + protected $creditmemoMapper; + + /** + * @var CreditmemoRepository + */ + protected $creditmemoRepository; + + /** + * @var CreditmemoSearchResultsBuilder + */ + protected $searchResultsBuilder; + + /** + * @param CreditmemoRepository $creditmemoRepository + * @param CreditmemoMapper $creditmemoMapper + * @param CreditmemoSearchResultsBuilder $searchResultsBuilder + */ + public function __construct( + CreditmemoRepository $creditmemoRepository, + CreditmemoMapper $creditmemoMapper, + CreditmemoSearchResultsBuilder $searchResultsBuilder + ) { + $this->creditmemoRepository = $creditmemoRepository; + $this->creditmemoMapper = $creditmemoMapper; + $this->searchResultsBuilder = $searchResultsBuilder; + } + + /** + * Invoke CreditmemoList service + * + * @param \Magento\Framework\Service\V1\Data\SearchCriteria $searchCriteria + * @return \Magento\Framework\Service\V1\Data\SearchResults + */ + public function invoke(SearchCriteria $searchCriteria) + { + $creditmemos = []; + foreach ($this->creditmemoRepository->find($searchCriteria) as $creditmemo) { + $creditmemos[] = $this->creditmemoMapper->extractDto($creditmemo); + } + + return $this->searchResultsBuilder->setItems($creditmemos) + ->setTotalCount(count($creditmemos)) + ->setSearchCriteria($searchCriteria) + ->create(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/InvoiceAddComment.php b/app/code/Magento/Sales/Service/V1/Action/InvoiceAddComment.php new file mode 100644 index 0000000000000000000000000000000000000000..ddec6d28522f9456dd9764ab9abbf28dd6815a6d --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/InvoiceAddComment.php @@ -0,0 +1,62 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\Comment; +use Magento\Sales\Model\Order\Invoice\CommentConverter; + +/** + * Class InvoiceAddComment + */ +class InvoiceAddComment +{ + /** + * @var \Magento\Sales\Model\Order\Invoice\CommentConverter + */ + protected $commentConverter; + + /** + * @param \Magento\Sales\Model\Order\Invoice\CommentConverter $commentConverter + */ + public function __construct(CommentConverter $commentConverter) + { + $this->commentConverter = $commentConverter; + } + + /** + * Invoke invoice add comment service + * + * @param \Magento\Sales\Service\V1\Data\Comment $comment + * @return bool + * @throws \Exception + */ + public function invoke(Comment $comment) + { + /** @var \Magento\Sales\Model\Order\Invoice\Comment $commentModel */ + $commentModel = $this->commentConverter->getModel($comment); + $commentModel->save(); + + return true; + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/InvoiceCapture.php b/app/code/Magento/Sales/Service/V1/Action/InvoiceCapture.php new file mode 100644 index 0000000000000000000000000000000000000000..a45b21e3bcbdcfad4f4aaf6151cd088f571d2ccd --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/InvoiceCapture.php @@ -0,0 +1,57 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\InvoiceRepository; + +/** + * Class InvoiceCapture + */ +class InvoiceCapture +{ + /** + * @var InvoiceRepository + */ + protected $invoiceRepository; + + /** + * @param InvoiceRepository $invoiceRepository + */ + public function __construct(InvoiceRepository $invoiceRepository) + { + $this->invoiceRepository = $invoiceRepository; + } + + /** + * Invoke InvoiceCapture service + * + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function invoke($id) + { + return (bool)$this->invoiceRepository->get($id)->capture(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/InvoiceCommentsList.php b/app/code/Magento/Sales/Service/V1/Action/InvoiceCommentsList.php new file mode 100644 index 0000000000000000000000000000000000000000..f5d8730ab96ab772b12feecd8b1f3221eac632df --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/InvoiceCommentsList.php @@ -0,0 +1,104 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\CommentMapper; +use Magento\Framework\Service\V1\Data\FilterBuilder; +use Magento\Sales\Model\Order\Invoice\CommentRepository; +use Magento\Framework\Service\V1\Data\SearchCriteriaBuilder; +use Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder; + +/** + * Class InvoiceCommentsList + */ +class InvoiceCommentsList +{ + /** + * @var \Magento\Sales\Model\Order\Invoice\CommentRepository + */ + protected $commentRepository; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentMapper + */ + protected $commentMapper; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder + */ + protected $criteriaBuilder; + + /** + * @var \Magento\Framework\Service\V1\Data\FilterBuilder + */ + protected $filterBuilder; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder + */ + protected $searchResultsBuilder; + + /** + * @param \Magento\Sales\Model\Order\Invoice\CommentRepository $commentRepository + * @param \Magento\Sales\Service\V1\Data\CommentMapper $commentMapper + * @param \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder $criteriaBuilder + * @param \Magento\Framework\Service\V1\Data\FilterBuilder $filterBuilder + * @param \Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder $searchResultsBuilder + */ + public function __construct( + CommentRepository $commentRepository, + CommentMapper $commentMapper, + SearchCriteriaBuilder $criteriaBuilder, + FilterBuilder $filterBuilder, + CommentSearchResultsBuilder $searchResultsBuilder + ) { + $this->commentRepository = $commentRepository; + $this->commentMapper = $commentMapper; + $this->criteriaBuilder = $criteriaBuilder; + $this->filterBuilder = $filterBuilder; + $this->searchResultsBuilder = $searchResultsBuilder; + } + + /** + * Invoke InvoiceCommentsList service + * + * @param int $id + * @return \Magento\Sales\Service\V1\Data\CommentSearchResults + */ + public function invoke($id) + { + $this->criteriaBuilder->addFilter( + ['eq' => $this->filterBuilder->setField('parent_id')->setValue($id)->create()] + ); + $criteria = $this->criteriaBuilder->create(); + $comments = []; + foreach ($this->commentRepository->find($criteria) as $comment) { + $comments[] = $this->commentMapper->extractDto($comment); + } + return $this->searchResultsBuilder->setItems($comments) + ->setSearchCriteria($criteria) + ->setTotalCount(count($comments)) + ->create(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/InvoiceCreate.php b/app/code/Magento/Sales/Service/V1/Action/InvoiceCreate.php new file mode 100644 index 0000000000000000000000000000000000000000..ec76de3a21f03fc92c273c6b3736b61fcdbb9e0c --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/InvoiceCreate.php @@ -0,0 +1,75 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\InvoiceConverter; + +/** + * Class InvoiceCreate + * @package Magento\Sales\Service\V1 + */ +class InvoiceCreate +{ + /** + * @var InvoiceConverter + */ + protected $invoiceConverter; + + /** + * @var \Magento\Framework\Logger + */ + protected $logger; + + /** + * @param InvoiceConverter $invoiceConverter + * @param \Magento\Framework\Logger $logger + */ + public function __construct(InvoiceConverter $invoiceConverter, \Magento\Framework\Logger $logger) + { + $this->invoiceConverter = $invoiceConverter; + $this->logger = $logger; + } + + /** + * @param \Magento\Sales\Service\V1\Data\Invoice $invoiceDataObject + * @return bool + * @throws \Exception + */ + public function invoke(\Magento\Sales\Service\V1\Data\Invoice $invoiceDataObject) + { + try { + /** @var \Magento\Sales\Model\Order\Invoice $invoice */ + $invoice = $this->invoiceConverter->getModel($invoiceDataObject); + if (!$invoice) { + return false; + } + $invoice->register(); + $invoice->save(); + return true; + } catch (\Exception $e) { + $this->logger->logException($e); + throw new \Exception(__('An error has occurred during creating Invoice')); + } + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/InvoiceEmail.php b/app/code/Magento/Sales/Service/V1/Action/InvoiceEmail.php new file mode 100644 index 0000000000000000000000000000000000000000..b15792d8b8adf00b82f9dddf3059e9177b59d1ba --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/InvoiceEmail.php @@ -0,0 +1,67 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\InvoiceRepository; + +/** + * Class InvoiceEmail + */ +class InvoiceEmail +{ + /** + * @var InvoiceRepository + */ + protected $invoiceRepository; + + /** + * @var \Magento\Sales\Model\InvoiceNotifier + */ + protected $invoiceNotifier; + + /** + * @param InvoiceRepository $invoiceRepository + * @param \Magento\Sales\Model\Order\InvoiceNotifier $notifier + */ + public function __construct( + InvoiceRepository $invoiceRepository, + \Magento\Sales\Model\Order\InvoiceNotifier $notifier + ) { + $this->invoiceRepository = $invoiceRepository; + $this->invoiceNotifier = $notifier; + } + + /** + * Invoke notifyUser service + * + * @param int $id + * @return bool + */ + public function invoke($id) + { + /** @var \Magento\Sales\Model\Order\Invoice $invoice */ + $invoice = $this->invoiceRepository->get($id); + return $this->invoiceNotifier->notify($invoice); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/InvoiceGet.php b/app/code/Magento/Sales/Service/V1/Action/InvoiceGet.php new file mode 100644 index 0000000000000000000000000000000000000000..621d3f56c5fd598a00bd9e2835672b1d3efd7197 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/InvoiceGet.php @@ -0,0 +1,67 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\InvoiceRepository; +use Magento\Sales\Service\V1\Data\InvoiceMapper; + +/** + * Class InvoiceGet + */ +class InvoiceGet +{ + /** + * @var InvoiceRepository + */ + protected $invoiceRepository; + + /** + * @var InvoiceMapper + */ + protected $invoiceMapper; + + /** + * @param InvoiceRepository $invoiceRepository + * @param InvoiceMapper $invoiceMapper + */ + public function __construct( + InvoiceRepository $invoiceRepository, + InvoiceMapper $invoiceMapper + ) { + $this->invoiceRepository = $invoiceRepository; + $this->invoiceMapper = $invoiceMapper; + } + + /** + * Invoke getInvoice service + * + * @param int $id + * @return \Magento\Sales\Service\V1\Data\Invoice + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function invoke($id) + { + return $this->invoiceMapper->extractDto($this->invoiceRepository->get($id)); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/InvoiceList.php b/app/code/Magento/Sales/Service/V1/Action/InvoiceList.php new file mode 100644 index 0000000000000000000000000000000000000000..8632bc4d1c96837fc740f6aa883f06800f657b06 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/InvoiceList.php @@ -0,0 +1,83 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\InvoiceRepository; +use Magento\Sales\Service\V1\Data\InvoiceMapper; +use Magento\Sales\Service\V1\Data\InvoiceSearchResultsBuilder; +use Magento\Framework\Service\V1\Data\SearchCriteria; + +/** + * Class InvoiceList + */ +class InvoiceList +{ + /** + * @var InvoiceRepository + */ + protected $invoiceRepository; + + /** + * @var InvoiceMapper + */ + protected $invoiceMapper; + + /** + * @var InvoiceSearchResultsBuilder + */ + protected $searchResultsBuilder; + + /** + * @param InvoiceRepository $invoiceRepository + * @param InvoiceMapper $invoiceMapper + * @param InvoiceSearchResultsBuilder $searchResultsBuilder + */ + public function __construct( + InvoiceRepository $invoiceRepository, + InvoiceMapper $invoiceMapper, + InvoiceSearchResultsBuilder $searchResultsBuilder + ) { + $this->invoiceRepository = $invoiceRepository; + $this->invoiceMapper = $invoiceMapper; + $this->searchResultsBuilder = $searchResultsBuilder; + } + + /** + * Invoke InvoiceList service + * + * @param SearchCriteria $searchCriteria + * @return \Magento\Framework\Service\V1\Data\SearchResults + */ + public function invoke(SearchCriteria $searchCriteria) + { + $invoices = []; + foreach ($this->invoiceRepository->find($searchCriteria) as $invoice) { + $invoices[] = $this->invoiceMapper->extractDto($invoice); + } + return $this->searchResultsBuilder->setItems($invoices) + ->setTotalCount(count($invoices)) + ->setSearchCriteria($searchCriteria) + ->create(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/OrderUnHoldInterface.php b/app/code/Magento/Sales/Service/V1/Action/InvoiceVoid.php similarity index 65% rename from app/code/Magento/Sales/Service/V1/OrderUnHoldInterface.php rename to app/code/Magento/Sales/Service/V1/Action/InvoiceVoid.php index 720df5f28b4c7c6295cf4312a9032f1b18c39b3d..0346a46c5ba773e1f44afa63e0071a99266c8587 100644 --- a/app/code/Magento/Sales/Service/V1/OrderUnHoldInterface.php +++ b/app/code/Magento/Sales/Service/V1/Action/InvoiceVoid.php @@ -21,19 +21,37 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\InvoiceRepository; /** - * Interface OrderUnHoldInterface + * Class InvoiceVoid */ -interface OrderUnHoldInterface +class InvoiceVoid { /** - * Invoke orderUnHold service + * @var InvoiceRepository + */ + protected $invoiceRepository; + + /** + * @param InvoiceRepository $invoiceRepository + */ + public function __construct(InvoiceRepository $invoiceRepository) + { + $this->invoiceRepository = $invoiceRepository; + } + + /** + * Invoke InvoiceVoid service * * @param int $id * @return bool * @throws \Magento\Framework\Exception\NoSuchEntityException */ - public function invoke($id); + public function invoke($id) + { + return (bool)$this->invoiceRepository->get($id)->void(); + } } diff --git a/app/code/Magento/Sales/Service/V1/OrderAddressUpdate.php b/app/code/Magento/Sales/Service/V1/Action/OrderAddressUpdate.php similarity index 91% rename from app/code/Magento/Sales/Service/V1/OrderAddressUpdate.php rename to app/code/Magento/Sales/Service/V1/Action/OrderAddressUpdate.php index 0ee239faf420a4326813f2385db6b9946c1185f1..b9300b7231d447b10eca8913ed56ea8831532a13 100644 --- a/app/code/Magento/Sales/Service/V1/OrderAddressUpdate.php +++ b/app/code/Magento/Sales/Service/V1/Action/OrderAddressUpdate.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\Order\AddressConverter; use Magento\Sales\Service\V1\Data\OrderAddress; @@ -29,7 +29,7 @@ use Magento\Sales\Service\V1\Data\OrderAddress; /** * Class OrderAddressUpdate */ -class OrderAddressUpdate implements OrderAddressUpdateInterface +class OrderAddressUpdate { /** * @var AddressConverter @@ -54,6 +54,7 @@ class OrderAddressUpdate implements OrderAddressUpdateInterface public function invoke(OrderAddress $orderAddress) { $orderAddressModel = $this->addressConverter->getModel($orderAddress); - return (bool)$orderAddressModel->save(); + $orderAddressModel->save(); + return true; } } diff --git a/app/code/Magento/Sales/Service/V1/OrderCancel.php b/app/code/Magento/Sales/Service/V1/Action/OrderCancel.php similarity index 92% rename from app/code/Magento/Sales/Service/V1/OrderCancel.php rename to app/code/Magento/Sales/Service/V1/Action/OrderCancel.php index a1fd9a36bd62c9cd9ed2f1a5deb07839f5a3e873..1ae1ea2f1092fa378c0141826a1a54cf939ec116 100644 --- a/app/code/Magento/Sales/Service/V1/OrderCancel.php +++ b/app/code/Magento/Sales/Service/V1/Action/OrderCancel.php @@ -21,15 +21,14 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\OrderRepository; -use Magento\Sales\Service\V1\Data\OrderMapper; /** * Class OrderCancel */ -class OrderCancel implements OrderCancelInterface +class OrderCancel { /** * @var OrderRepository diff --git a/app/code/Magento/Sales/Service/V1/OrderCommentsList.php b/app/code/Magento/Sales/Service/V1/Action/OrderCommentsList.php similarity index 97% rename from app/code/Magento/Sales/Service/V1/OrderCommentsList.php rename to app/code/Magento/Sales/Service/V1/Action/OrderCommentsList.php index 4d202befae69f2923d25b2f0b2c60f65017d4838..7fec849be43a9680721b561b8f7dce3763a72132 100644 --- a/app/code/Magento/Sales/Service/V1/OrderCommentsList.php +++ b/app/code/Magento/Sales/Service/V1/Action/OrderCommentsList.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\Order\Status\HistoryRepository; use Magento\Sales\Service\V1\Data\OrderStatusHistoryMapper; @@ -32,7 +32,7 @@ use Magento\Sales\Service\V1\Data\OrderStatusHistorySearchResultsBuilder; /** * Class OrderCommentsList */ -class OrderCommentsList implements OrderCommentsListInterface +class OrderCommentsList { /** * @var HistoryRepository diff --git a/app/code/Magento/Sales/Service/V1/Action/OrderCreate.php b/app/code/Magento/Sales/Service/V1/Action/OrderCreate.php new file mode 100644 index 0000000000000000000000000000000000000000..680876b4e3c5c921188b45b1923aa4b3f8d97c25 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/OrderCreate.php @@ -0,0 +1,71 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Service\V1\Action; + +/** + * Class OrderCreate + */ +class OrderCreate +{ + /** + * @var \Magento\Sales\Model\OrderConverter + */ + protected $orderConverter; + + /** + * @var \Magento\Framework\Logger + */ + protected $logger; + + /** + * @param \Magento\Sales\Model\OrderConverter $orderConverter + * @param \Magento\Framework\Logger $logger + */ + public function __construct( + \Magento\Sales\Model\OrderConverter $orderConverter, + \Magento\Framework\Logger $logger + ) { + $this->orderConverter = $orderConverter; + $this->logger = $logger; + } + + /** + * Create order + * + * @param \Magento\Sales\Service\V1\Data\Order $orderDataObject + * @return bool + * @throws \Exception + */ + public function invoke(\Magento\Sales\Service\V1\Data\Order $orderDataObject) + { + try { + $order = $this->orderConverter->getModel($orderDataObject); + return (bool)$order->save(); + } catch (\Exception $e) { + $this->logger->logException($e); + throw new \Exception(__('An error has occurred during order creation')); + } + } +} diff --git a/app/code/Magento/Sales/Service/V1/OrderNotifyUser.php b/app/code/Magento/Sales/Service/V1/Action/OrderEmail.php similarity index 86% rename from app/code/Magento/Sales/Service/V1/OrderNotifyUser.php rename to app/code/Magento/Sales/Service/V1/Action/OrderEmail.php index 433a3c359a6529dc8bca3498182e854ba621d4d6..94cf4b5b3a7d6af4a370fda84179f3df6f6df273 100644 --- a/app/code/Magento/Sales/Service/V1/OrderNotifyUser.php +++ b/app/code/Magento/Sales/Service/V1/Action/OrderEmail.php @@ -21,14 +21,14 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\OrderRepository; /** - * Class OrderNotifyUser + * Class OrderEmail */ -class OrderNotifyUser implements OrderNotifyUserInterface +class OrderEmail { /** * @var OrderRepository @@ -36,17 +36,17 @@ class OrderNotifyUser implements OrderNotifyUserInterface protected $orderRepository; /** - * @var \Magento\Sales\Model\Notifier + * @var \Magento\Sales\Model\OrderNotifier */ protected $notifier; /** * @param OrderRepository $orderRepository - * @param \Magento\Sales\Model\Notifier $notifier + * @param \Magento\Sales\Model\OrderNotifier $notifier */ public function __construct( OrderRepository $orderRepository, - \Magento\Sales\Model\Notifier $notifier + \Magento\Sales\Model\OrderNotifier $notifier ) { $this->orderRepository = $orderRepository; $this->notifier = $notifier; diff --git a/app/code/Magento/Sales/Service/V1/OrderGet.php b/app/code/Magento/Sales/Service/V1/Action/OrderGet.php similarity index 90% rename from app/code/Magento/Sales/Service/V1/OrderGet.php rename to app/code/Magento/Sales/Service/V1/Action/OrderGet.php index 0fe552bd9d41aee58d012c74780a5db571a535bb..19d133bff9d790d00fb0215bb85031d7b3f38e55 100644 --- a/app/code/Magento/Sales/Service/V1/OrderGet.php +++ b/app/code/Magento/Sales/Service/V1/Action/OrderGet.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\OrderRepository; use Magento\Sales\Service\V1\Data\OrderMapper; @@ -29,7 +29,7 @@ use Magento\Sales\Service\V1\Data\OrderMapper; /** * Class OrderGet */ -class OrderGet implements OrderGetInterface +class OrderGet { /** * @var OrderRepository @@ -62,7 +62,6 @@ class OrderGet implements OrderGetInterface */ public function invoke($id) { - $order = $this->orderRepository->get($id); - return $this->orderMapper->extractDto($order); + return $this->orderMapper->extractDto($this->orderRepository->get($id)); } } diff --git a/app/code/Magento/Sales/Service/V1/OrderGetStatus.php b/app/code/Magento/Sales/Service/V1/Action/OrderGetStatus.php similarity index 94% rename from app/code/Magento/Sales/Service/V1/OrderGetStatus.php rename to app/code/Magento/Sales/Service/V1/Action/OrderGetStatus.php index cc7b678f8ffc8f3b98839e86f303c80f52bccf3b..36b44b70cd35f2deac155bfd2908e50823d4fb05 100644 --- a/app/code/Magento/Sales/Service/V1/OrderGetStatus.php +++ b/app/code/Magento/Sales/Service/V1/Action/OrderGetStatus.php @@ -21,14 +21,14 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\OrderRepository; /** * Class OrderGetStatus */ -class OrderGetStatus implements OrderGetStatusInterface +class OrderGetStatus { /** * Order repository diff --git a/app/code/Magento/Sales/Service/V1/OrderHold.php b/app/code/Magento/Sales/Service/V1/Action/OrderHold.php similarity index 94% rename from app/code/Magento/Sales/Service/V1/OrderHold.php rename to app/code/Magento/Sales/Service/V1/Action/OrderHold.php index 0f3500d71a6e89a3a625fb474468c5d9d8b26491..81bb0b44ff4ff5b0c5b29f1958be25ce1033edff 100644 --- a/app/code/Magento/Sales/Service/V1/OrderHold.php +++ b/app/code/Magento/Sales/Service/V1/Action/OrderHold.php @@ -21,14 +21,14 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\OrderRepository; /** * Class OrderHold */ -class OrderHold implements OrderHoldInterface +class OrderHold { /** * @var OrderRepository diff --git a/app/code/Magento/Sales/Service/V1/OrderList.php b/app/code/Magento/Sales/Service/V1/Action/OrderList.php similarity index 90% rename from app/code/Magento/Sales/Service/V1/OrderList.php rename to app/code/Magento/Sales/Service/V1/Action/OrderList.php index a8afa33b3dfddfb6fa9e7ec7de62d4a1efc20a6d..65b92272eff7351b49da3e8b2784253431a06a8c 100644 --- a/app/code/Magento/Sales/Service/V1/OrderList.php +++ b/app/code/Magento/Sales/Service/V1/Action/OrderList.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\OrderRepository; use Magento\Sales\Service\V1\Data\OrderMapper; @@ -31,7 +31,7 @@ use Magento\Framework\Service\V1\Data\SearchCriteria; /** * Class OrderList */ -class OrderList implements OrderListInterface +class OrderList { /** * @var OrderRepository @@ -66,8 +66,8 @@ class OrderList implements OrderListInterface /** * Invoke OrderList service * - * @param SearchCriteria $searchCriteria - * @return \Magento\Framework\Service\V1\Data\SearchResults + * @param \Magento\Framework\Service\V1\Data\SearchCriteria $searchCriteria + * @return \Magento\Sales\Service\V1\Data\OrderSearchResults */ public function invoke(SearchCriteria $searchCriteria) { @@ -76,7 +76,7 @@ class OrderList implements OrderListInterface $orders[] = $this->orderMapper->extractDto($order); } return $this->searchResultsBuilder->setItems($orders) - ->setTotalCount(count($order)) + ->setTotalCount(count($orders)) ->setSearchCriteria($searchCriteria) ->create(); } diff --git a/app/code/Magento/Sales/Service/V1/OrderStatusHistoryAdd.php b/app/code/Magento/Sales/Service/V1/Action/OrderStatusHistoryAdd.php similarity index 95% rename from app/code/Magento/Sales/Service/V1/OrderStatusHistoryAdd.php rename to app/code/Magento/Sales/Service/V1/Action/OrderStatusHistoryAdd.php index 95188ae734feae1cdb06bd102b026a15e49eaf16..ba388d2e2fcc7a1a5e9b3c50e29cacdfefba3c01 100644 --- a/app/code/Magento/Sales/Service/V1/OrderStatusHistoryAdd.php +++ b/app/code/Magento/Sales/Service/V1/Action/OrderStatusHistoryAdd.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\OrderRepository; use Magento\Sales\Model\Order\Status\HistoryConverter; @@ -31,7 +31,7 @@ use Magento\Sales\Service\V1\Data\OrderStatusHistory; * Class OrderStatusHistoryAdd * @package Magento\Sales\Service\V1 */ -class OrderStatusHistoryAdd implements OrderStatusHistoryAddInterface +class OrderStatusHistoryAdd { /** * @var OrderRepository diff --git a/app/code/Magento/Sales/Service/V1/OrderUnHold.php b/app/code/Magento/Sales/Service/V1/Action/OrderUnHold.php similarity index 94% rename from app/code/Magento/Sales/Service/V1/OrderUnHold.php rename to app/code/Magento/Sales/Service/V1/Action/OrderUnHold.php index d25ace683103c87a47206aab587b4fff93e20673..f6156cba1e3f994bda2d8c4142c932e74ee2d265 100644 --- a/app/code/Magento/Sales/Service/V1/OrderUnHold.php +++ b/app/code/Magento/Sales/Service/V1/Action/OrderUnHold.php @@ -21,14 +21,14 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\OrderRepository; /** * Class OrderUnHold */ -class OrderUnHold implements OrderUnHoldInterface +class OrderUnHold { /** * @var OrderRepository diff --git a/app/code/Magento/Sales/Service/V1/Action/ShipmentAddComment.php b/app/code/Magento/Sales/Service/V1/Action/ShipmentAddComment.php new file mode 100644 index 0000000000000000000000000000000000000000..74382e60b1537f0278e01b52221150df7bd48796 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/ShipmentAddComment.php @@ -0,0 +1,62 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\Comment; +use Magento\Sales\Model\Order\Shipment\CommentConverter; + +/** + * Class ShipmentAddComment + */ +class ShipmentAddComment +{ + /** + * @var \Magento\Sales\Model\Order\Shipment\CommentConverter + */ + protected $commentConverter; + + /** + * @param \Magento\Sales\Model\Order\Shipment\CommentConverter $commentConverter + */ + public function __construct(CommentConverter $commentConverter) + { + $this->commentConverter = $commentConverter; + } + + /** + * Invoke shipment add comment service + * + * @param \Magento\Sales\Service\V1\Data\Comment $comment + * @return bool + * @throws \Exception + */ + public function invoke(Comment $comment) + { + /** @var \Magento\Sales\Model\Order\Shipment\Comment $commentModel */ + $commentModel = $this->commentConverter->getModel($comment); + $commentModel->save(); + + return true; + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/ShipmentAddTrack.php b/app/code/Magento/Sales/Service/V1/Action/ShipmentAddTrack.php new file mode 100644 index 0000000000000000000000000000000000000000..0b3f51d8873f20a58218bb17fd8b8e82b23a179d --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/ShipmentAddTrack.php @@ -0,0 +1,62 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\ShipmentTrack; +use Magento\Sales\Model\Order\Shipment\TrackConverter; + +/** + * Class ShipmentAddTrack + */ +class ShipmentAddTrack +{ + /** + * @var \Magento\Sales\Model\Order\Shipment\TrackConverter + */ + protected $trackConverter; + + /** + * @param \Magento\Sales\Model\Order\Shipment\TrackConverter $trackConverter + */ + public function __construct(TrackConverter $trackConverter) + { + $this->trackConverter = $trackConverter; + } + + /** + * Invoke shipment add track service + * + * @param \Magento\Sales\Service\V1\Data\ShipmentTrack $track + * @return bool + * @throws \Exception + */ + public function invoke(ShipmentTrack $track) + { + /** @var \Magento\Sales\Model\Order\Shipment\Track $trackModel */ + $trackModel = $this->trackConverter->getModel($track); + $trackModel->save(); + + return true; + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/ShipmentCommentsList.php b/app/code/Magento/Sales/Service/V1/Action/ShipmentCommentsList.php new file mode 100644 index 0000000000000000000000000000000000000000..85e8a150860ac997492adea7a3ee1cf4c698507a --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/ShipmentCommentsList.php @@ -0,0 +1,104 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\CommentMapper; +use Magento\Framework\Service\V1\Data\FilterBuilder; +use Magento\Sales\Model\Order\Shipment\CommentRepository; +use Magento\Framework\Service\V1\Data\SearchCriteriaBuilder; +use Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder; + +/** + * Class ShipmentCommentsList + */ +class ShipmentCommentsList +{ + /** + * @var \Magento\Sales\Model\Order\Shipment\CommentRepository + */ + protected $commentRepository; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentMapper + */ + protected $commentMapper; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder + */ + protected $criteriaBuilder; + + /** + * @var \Magento\Framework\Service\V1\Data\FilterBuilder + */ + protected $filterBuilder; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder + */ + protected $searchResultsBuilder; + + /** + * @param \Magento\Sales\Model\Order\Shipment\CommentRepository $commentRepository + * @param \Magento\Sales\Service\V1\Data\CommentMapper $commentMapper + * @param \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder $criteriaBuilder + * @param \Magento\Framework\Service\V1\Data\FilterBuilder $filterBuilder + * @param \Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder $searchResultsBuilder + */ + public function __construct( + CommentRepository $commentRepository, + CommentMapper $commentMapper, + SearchCriteriaBuilder $criteriaBuilder, + FilterBuilder $filterBuilder, + CommentSearchResultsBuilder $searchResultsBuilder + ) { + $this->commentRepository = $commentRepository; + $this->commentMapper = $commentMapper; + $this->criteriaBuilder = $criteriaBuilder; + $this->filterBuilder = $filterBuilder; + $this->searchResultsBuilder = $searchResultsBuilder; + } + + /** + * Invoke ShipmentCommentsList service + * + * @param int $id + * @return \Magento\Sales\Service\V1\Data\CommentSearchResults + */ + public function invoke($id) + { + $this->criteriaBuilder->addFilter( + ['eq' => $this->filterBuilder->setField('parent_id')->setValue($id)->create()] + ); + $criteria = $this->criteriaBuilder->create(); + $comments = []; + foreach ($this->commentRepository->find($criteria) as $comment) { + $comments[] = $this->commentMapper->extractDto($comment); + } + return $this->searchResultsBuilder->setItems($comments) + ->setSearchCriteria($criteria) + ->setTotalCount(count($comments)) + ->create(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/ShipmentCreate.php b/app/code/Magento/Sales/Service/V1/Action/ShipmentCreate.php new file mode 100644 index 0000000000000000000000000000000000000000..bc06acca0e285fe608f609183db56efcf51020ae --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/ShipmentCreate.php @@ -0,0 +1,78 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Service\V1\Data\ShipmentConverter; + +/** + * Class ShipmentCreate + * + */ +class ShipmentCreate +{ + /** + * @var ShipmentConverter + */ + protected $shipmentConverter; + + /** + * @var \Magento\Framework\Logger + */ + protected $logger; + + /** + * @param ShipmentConverter $shipmentConverter + * @param \Magento\Framework\Logger $logger + */ + public function __construct(ShipmentConverter $shipmentConverter, \Magento\Framework\Logger $logger) + { + $this->shipmentConverter = $shipmentConverter; + $this->logger = $logger; + } + + /** + * Invoke CreateShipment service + * + * @param \Magento\Sales\Service\V1\Data\Shipment $shipmentDataObject + * @return bool + * @throws \Exception + */ + public function invoke(\Magento\Sales\Service\V1\Data\Shipment $shipmentDataObject) + { + try { + /** @var \Magento\Sales\Model\Order\Shipment $shipment */ + $shipment = $this->shipmentConverter->getModel($shipmentDataObject); + if (!$shipment) { + return false; + } + $shipment->getOrder()->setIsInProcess(true); + $shipment->register(); + $shipment->save(); + return true; + } catch (\Exception $e) { + $this->logger->logException($e); + throw new \Exception(__('An error has occurred during creating Shipment')); + } + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/ShipmentEmail.php b/app/code/Magento/Sales/Service/V1/Action/ShipmentEmail.php new file mode 100644 index 0000000000000000000000000000000000000000..91871224fa2a795fd7139452942dd99131d60e9e --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/ShipmentEmail.php @@ -0,0 +1,67 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\ShipmentRepository; + +/** + * Class ShipmentEmail + */ +class ShipmentEmail +{ + /** + * @var ShipmentRepository + */ + protected $shipmentRepository; + + /** + * @var \Magento\Shipping\Model\ShipmentNotifier + */ + protected $notifier; + + /** + * @param ShipmentRepository $shipmentRepository + * @param \Magento\Shipping\Model\ShipmentNotifier $notifier + */ + public function __construct( + ShipmentRepository $shipmentRepository, + \Magento\Shipping\Model\ShipmentNotifier $notifier + ) { + $this->shipmentRepository = $shipmentRepository; + $this->notifier = $notifier; + } + + /** + * Invoke notifyUser service + * + * @param int $id + * @return bool + */ + public function invoke($id) + { + /** @var \Magento\Sales\Model\Order\Shipment $shipment */ + $shipment = $this->shipmentRepository->get($id); + return $this->notifier->notify($shipment); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/ShipmentGet.php b/app/code/Magento/Sales/Service/V1/Action/ShipmentGet.php new file mode 100644 index 0000000000000000000000000000000000000000..624a4da1cd8695d79bf9ad542c4a26e590a902b4 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/ShipmentGet.php @@ -0,0 +1,67 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\ShipmentRepository; +use Magento\Sales\Service\V1\Data\ShipmentMapper; + +/** + * Class ShipmentGet + */ +class ShipmentGet +{ + /** + * @var ShipmentRepository + */ + protected $shipmentRepository; + + /** + * @var ShipmentMapper + */ + protected $shipmentMapper; + + /** + * @param ShipmentRepository $shipmentRepository + * @param ShipmentMapper $shipmentMapper + */ + public function __construct( + ShipmentRepository $shipmentRepository, + ShipmentMapper $shipmentMapper + ) { + $this->shipmentRepository = $shipmentRepository; + $this->shipmentMapper = $shipmentMapper; + } + + /** + * Invoke getShipment service + * + * @param int $id + * @return \Magento\Sales\Service\V1\Data\Shipment + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function invoke($id) + { + return $this->shipmentMapper->extractDto($this->shipmentRepository->get($id)); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/ShipmentLabelGet.php b/app/code/Magento/Sales/Service/V1/Action/ShipmentLabelGet.php new file mode 100644 index 0000000000000000000000000000000000000000..89cd5503adf769111c6c0fdab9f831bb63635da6 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/ShipmentLabelGet.php @@ -0,0 +1,57 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\ShipmentRepository; + +/** + * Class ShipmentLabelGet + */ +class ShipmentLabelGet +{ + /** + * @var ShipmentRepository + */ + protected $shipmentRepository; + + /** + * @param ShipmentRepository $shipmentRepository + */ + public function __construct(ShipmentRepository $shipmentRepository) + { + $this->shipmentRepository = $shipmentRepository; + } + + /** + * Invoke ShipmentLabelGet service + * + * @param int $id + * @return string + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function invoke($id) + { + return (string)$this->shipmentRepository->get($id)->getShippingLabel(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/ShipmentList.php b/app/code/Magento/Sales/Service/V1/Action/ShipmentList.php new file mode 100644 index 0000000000000000000000000000000000000000..766b66457f9719c457b800fa6246f675874c17be --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/ShipmentList.php @@ -0,0 +1,83 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\ShipmentRepository; +use Magento\Sales\Service\V1\Data\ShipmentMapper; +use Magento\Sales\Service\V1\Data\ShipmentSearchResultsBuilder; +use Magento\Framework\Service\V1\Data\SearchCriteria; + +/** + * Class ShipmentList + */ +class ShipmentList +{ + /** + * @var ShipmentRepository + */ + protected $shipmentRepository; + + /** + * @var ShipmentMapper + */ + protected $shipmentMapper; + + /** + * @var ShipmentSearchResultsBuilder + */ + protected $searchResultsBuilder; + + /** + * @param ShipmentRepository $shipmentRepository + * @param ShipmentMapper $shipmentMapper + * @param ShipmentSearchResultsBuilder $searchResultsBuilder + */ + public function __construct( + ShipmentRepository $shipmentRepository, + ShipmentMapper $shipmentMapper, + ShipmentSearchResultsBuilder $searchResultsBuilder + ) { + $this->shipmentRepository = $shipmentRepository; + $this->shipmentMapper = $shipmentMapper; + $this->searchResultsBuilder = $searchResultsBuilder; + } + + /** + * Invoke ShipmentList service + * + * @param SearchCriteria $searchCriteria + * @return \Magento\Framework\Service\V1\Data\SearchResults + */ + public function invoke(SearchCriteria $searchCriteria) + { + $shipments = []; + foreach ($this->shipmentRepository->find($searchCriteria) as $shipment) { + $shipments[] = $this->shipmentMapper->extractDto($shipment); + } + return $this->searchResultsBuilder->setItems($shipments) + ->setTotalCount(count($shipments)) + ->setSearchCriteria($searchCriteria) + ->create(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Action/ShipmentRemoveTrack.php b/app/code/Magento/Sales/Service/V1/Action/ShipmentRemoveTrack.php new file mode 100644 index 0000000000000000000000000000000000000000..c40d72b64e7aff09b464fed35e882d9ac438b23a --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Action/ShipmentRemoveTrack.php @@ -0,0 +1,61 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +use Magento\Sales\Model\Order\Shipment\TrackRepository; + +/** + * Class ShipmentRemoveTrack + */ +class ShipmentRemoveTrack +{ + /** + * @var \Magento\Sales\Model\Order\Shipment\TrackRepository + */ + protected $trackRepository; + + /** + * @param \Magento\Sales\Model\Order\Shipment\TrackRepository $trackRepository + */ + public function __construct(TrackRepository $trackRepository) + { + $this->trackRepository = $trackRepository; + } + + /** + * Invoke shipment remove track + * + * @param int $id + * @return bool + * @throws \Exception + */ + public function invoke($id) + { + /** @var \Magento\Sales\Model\Order\Shipment\Track $trackModel */ + $trackModel = $this->trackRepository->get($id); + $trackModel->delete(); + + return true; + } +} diff --git a/app/code/Magento/Sales/Service/V1/CreditmemoRead.php b/app/code/Magento/Sales/Service/V1/CreditmemoRead.php new file mode 100644 index 0000000000000000000000000000000000000000..84e6634a203c0a4d6c937ed5a51b021702d58671 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/CreditmemoRead.php @@ -0,0 +1,93 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Action\CreditmemoGet; +use Magento\Sales\Service\V1\Action\CreditmemoList; +use Magento\Sales\Service\V1\Action\CreditmemoCommentsList; +use Magento\Framework\Service\V1\Data\SearchCriteria; + +/** + * Class CreditmemoRead + */ +class CreditmemoRead implements CreditmemoReadInterface +{ + /** + * @var CreditmemoGet + */ + protected $creditmemoGet; + + /** + * @var CreditmemoList + */ + protected $creditmemoList; + + /** + * @var CreditmemoCommentsList + */ + protected $creditmemoCommentsList; + + /** + * @param CreditmemoGet $creditmemoGet + * @param CreditmemoList $creditmemoList + * @param CreditmemoCommentsList $creditmemoCommentsList + */ + public function __construct( + CreditmemoGet $creditmemoGet, + CreditmemoList $creditmemoList, + CreditmemoCommentsList $creditmemoCommentsList + ) { + $this->creditmemoGet = $creditmemoGet; + $this->creditmemoList = $creditmemoList; + $this->creditmemoCommentsList = $creditmemoCommentsList; + } + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\Creditmemo + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function get($id) + { + return $this->creditmemoGet->invoke($id); + } + + /** + * @param SearchCriteria $searchCriteria + * @return \Magento\Framework\Service\V1\Data\SearchResults + */ + public function search(SearchCriteria $searchCriteria) + { + return $this->creditmemoList->invoke($searchCriteria); + } + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\CommentSearchResults + */ + public function commentsList($id) + { + return $this->creditmemoCommentsList->invoke($id); + } +} diff --git a/app/code/Magento/Sales/Service/V1/CreditmemoReadInterface.php b/app/code/Magento/Sales/Service/V1/CreditmemoReadInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..8f59c3beb0898ad580d34f3342c0ff3f941445da --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/CreditmemoReadInterface.php @@ -0,0 +1,48 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Framework\Service\V1\Data\SearchCriteria; + +interface CreditmemoReadInterface +{ + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\Creditmemo + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function get($id); + + /** + * @param \Magento\Framework\Service\V1\Data\SearchCriteria $searchCriteria + * @return \Magento\Framework\Service\V1\Data\SearchResults + */ + public function search(SearchCriteria $searchCriteria); + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\CommentSearchResults + */ + public function commentsList($id); +} diff --git a/app/code/Magento/Sales/Service/V1/CreditmemoWrite.php b/app/code/Magento/Sales/Service/V1/CreditmemoWrite.php new file mode 100644 index 0000000000000000000000000000000000000000..9d02d532b93671f3db2013a7f74856be210277ca --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/CreditmemoWrite.php @@ -0,0 +1,114 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Action\CreditmemoAddComment; +use Magento\Sales\Service\V1\Action\CreditmemoCancel; +use Magento\Sales\Service\V1\Action\CreditmemoEmail; +use Magento\Sales\Service\V1\Action\CreditmemoCreate; +use Magento\Sales\Service\V1\Data\Comment; +use Magento\Sales\Service\V1\Data\Creditmemo; + +/** + * Class CreditmemoWrite + */ +class CreditmemoWrite implements CreditmemoWriteInterface +{ + /** + * @var CreditmemoAddComment + */ + protected $creditmemoAddComment; + + /** + * @var CreditmemoCancel + */ + protected $creditmemoCancel; + + /** + * @var CreditmemoEmail + */ + protected $creditmemoEmail; + + /** + * @var CreditmemoCreate + */ + protected $creditmemoCreate; + + /** + * @param CreditmemoAddComment $creditmemoAddComment + * @param CreditmemoCancel $creditmemoCancel + * @param CreditmemoEmail $creditmemoEmail + * @param CreditmemoCreate $creditmemoCreate + */ + public function __construct( + CreditmemoAddComment $creditmemoAddComment, + CreditmemoCancel $creditmemoCancel, + CreditmemoEmail $creditmemoEmail, + CreditmemoCreate $creditmemoCreate + ) { + $this->creditmemoAddComment = $creditmemoAddComment; + $this->creditmemoCancel = $creditmemoCancel; + $this->creditmemoEmail = $creditmemoEmail; + $this->creditmemoCreate = $creditmemoCreate; + } + + /** + * @param \Magento\Sales\Service\V1\Data\Comment $comment + * @return bool + * @throws \Exception + */ + public function addComment(Comment $comment) + { + return $this->creditmemoAddComment->invoke($comment); + } + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function cancel($id) + { + return $this->creditmemoCancel->invoke($id); + } + + /** + * @param int $id + * @return bool + */ + public function email($id) + { + return $this->creditmemoEmail->invoke($id); + } + + /** + * @param \Magento\Sales\Service\V1\Data\Creditmemo $creditmemoDataObject + * @throws \Exception + * @return bool + */ + public function create(Creditmemo $creditmemoDataObject) + { + return $this->creditmemoCreate->invoke($creditmemoDataObject); + } +} diff --git a/app/code/Magento/Sales/Service/V1/CreditmemoWriteInterface.php b/app/code/Magento/Sales/Service/V1/CreditmemoWriteInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..def6ef9c772f3bdadc5c998f4affcd9323898ba4 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/CreditmemoWriteInterface.php @@ -0,0 +1,57 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Data\Comment; +use Magento\Sales\Service\V1\Data\Creditmemo; + +interface CreditmemoWriteInterface +{ + /** + * @param \Magento\Sales\Service\V1\Data\Comment $comment + * @return bool + * @throws \Exception + */ + public function addComment(Comment $comment); + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function cancel($id); + + /** + * @param int $id + * @return bool + */ + public function email($id); + + /** + * @param \Magento\Sales\Service\V1\Data\Creditmemo $creditmemoDataObject + * @throws \Exception + * @return bool + */ + public function create(Creditmemo $creditmemoDataObject); +} diff --git a/app/code/Magento/Sales/Service/V1/Data/Creditmemo.php b/app/code/Magento/Sales/Service/V1/Data/Creditmemo.php index d43bacf41c2aa95ddcdc7156b43f827d15ff81e4..63670339b812893d0862130a69d84485a0f15412 100644 --- a/app/code/Magento/Sales/Service/V1/Data/Creditmemo.php +++ b/app/code/Magento/Sales/Service/V1/Data/Creditmemo.php @@ -30,245 +30,55 @@ use Magento\Framework\Service\Data\AbstractObject as DataObject; */ class Creditmemo extends DataObject { - /** - * int - */ const ENTITY_ID = 'entity_id'; - - /** - * int - */ const STORE_ID = 'store_id'; - - /** - * float - */ const ADJUSTMENT_POSITIVE = 'adjustment_positive'; - - /** - * float - */ const BASE_SHIPPING_TAX_AMOUNT = 'base_shipping_tax_amount'; - - /** - * float - */ const STORE_TO_ORDER_RATE = 'store_to_order_rate'; - - /** - * float - */ const BASE_DISCOUNT_AMOUNT = 'base_discount_amount'; - - /** - * float - */ const BASE_TO_ORDER_RATE = 'base_to_order_rate'; - - /** - * float - */ const GRAND_TOTAL = 'grand_total'; - - /** - * float - */ const BASE_ADJUSTMENT_NEGATIVE = 'base_adjustment_negative'; - - /** - * float - */ const BASE_SUBTOTAL_INCL_TAX = 'base_subtotal_incl_tax'; - - /** - * float - */ const SHIPPING_AMOUNT = 'shipping_amount'; - - /** - * float - */ const SUBTOTAL_INCL_TAX = 'subtotal_incl_tax'; - - /** - * float - */ const ADJUSTMENT_NEGATIVE = 'adjustment_negative'; - - /** - * float - */ const BASE_SHIPPING_AMOUNT = 'base_shipping_amount'; - - /** - * float - */ const STORE_TO_BASE_RATE = 'store_to_base_rate'; - - /** - * float - */ const BASE_TO_GLOBAL_RATE = 'base_to_global_rate'; - - /** - * float - */ const BASE_ADJUSTMENT = 'base_adjustment'; - - /** - * float - */ const BASE_SUBTOTAL = 'base_subtotal'; - - /** - * float - */ const DISCOUNT_AMOUNT = 'discount_amount'; - - /** - * float - */ const SUBTOTAL = 'subtotal'; - - /** - * float - */ const ADJUSTMENT = 'adjustment'; - - /** - * float - */ const BASE_GRAND_TOTAL = 'base_grand_total'; - - /** - * float - */ const BASE_ADJUSTMENT_POSITIVE = 'base_adjustment_positive'; - - /** - * float - */ const BASE_TAX_AMOUNT = 'base_tax_amount'; - - /** - * float - */ const SHIPPING_TAX_AMOUNT = 'shipping_tax_amount'; - - /** - * float - */ const TAX_AMOUNT = 'tax_amount'; - - /** - * int - */ const ORDER_ID = 'order_id'; - - /** - * int - */ const EMAIL_SENT = 'email_sent'; - - /** - * int - */ const CREDITMEMO_STATUS = 'creditmemo_status'; - - /** - * int - */ const STATE = 'state'; - - /** - * int - */ const SHIPPING_ADDRESS_ID = 'shipping_address_id'; - - /** - * int - */ const BILLING_ADDRESS_ID = 'billing_address_id'; - - /** - * int - */ const INVOICE_ID = 'invoice_id'; - - /** - * string - */ const STORE_CURRENCY_CODE = 'store_currency_code'; - - /** - * string - */ const ORDER_CURRENCY_CODE = 'order_currency_code'; - - /** - * string - */ const BASE_CURRENCY_CODE = 'base_currency_code'; - - /** - * string - */ const GLOBAL_CURRENCY_CODE = 'global_currency_code'; - - /** - * string - */ const TRANSACTION_ID = 'transaction_id'; - - /** - * string - */ const INCREMENT_ID = 'increment_id'; - - /** - * string - */ const CREATED_AT = 'created_at'; - - /** - * string - */ const UPDATED_AT = 'updated_at'; - - /** - * float - */ const HIDDEN_TAX_AMOUNT = 'hidden_tax_amount'; - - /** - * float - */ const BASE_HIDDEN_TAX_AMOUNT = 'base_hidden_tax_amount'; - - /** - * float - */ const SHIPPING_HIDDEN_TAX_AMOUNT = 'shipping_hidden_tax_amount'; - - /** - * float - */ const BASE_SHIPPING_HIDDEN_TAX_AMNT = 'base_shipping_hidden_tax_amnt'; - - /** - * float - */ const SHIPPING_INCL_TAX = 'shipping_incl_tax'; - - /** - * float - */ const BASE_SHIPPING_INCL_TAX = 'base_shipping_incl_tax'; - - /** - * string - */ const DISCOUNT_DESCRIPTION = 'discount_description'; + const ITEMS = 'items'; /** * Returns adjustment @@ -750,4 +560,14 @@ class Creditmemo extends DataObject { return $this->_get(self::UPDATED_AT); } + + /** + * Return creditmemo items + * + * @return \Magento\Sales\Service\V1\Data\CreditmemoItem[] + */ + public function getItems() + { + return $this->_get(self::ITEMS); + } } diff --git a/app/code/Magento/Sales/Service/V1/Data/CreditmemoComment.php b/app/code/Magento/Sales/Service/V1/Data/CreditmemoComment.php deleted file mode 100644 index 26e097b26e147d4cdcefefe44cf995dae9b35dc3..0000000000000000000000000000000000000000 --- a/app/code/Magento/Sales/Service/V1/Data/CreditmemoComment.php +++ /dev/null @@ -1,122 +0,0 @@ -<?php -/** - * Magento - * - * NOTICE OF LICENSE - * - * This source file is subject to the Open Software License (OSL 3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://opensource.org/licenses/osl-3.0.php - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) - */ -namespace Magento\Sales\Service\V1\Data; - -use Magento\Framework\Service\Data\AbstractObject as DataObject; - -/** - * Class CreditmemoComment - */ -class CreditmemoComment extends DataObject -{ - /** - * int - */ - const ENTITY_ID = 'entity_id'; - - /** - * int - */ - const PARENT_ID = 'parent_id'; - - /** - * int - */ - const IS_CUSTOMER_NOTIFIED = 'is_customer_notified'; - - /** - * int - */ - const IS_VISIBLE_ON_FRONT = 'is_visible_on_front'; - - /** - * string - */ - const COMMENT = 'comment'; - - /** - * string - */ - const CREATED_AT = 'created_at'; - - /** - * Returns comment - * - * @return string - */ - public function getComment() - { - return $this->_get(self::COMMENT); - } - - /** - * Returns created_at - * - * @return string - */ - public function getCreatedAt() - { - return $this->_get(self::CREATED_AT); - } - - /** - * Returns entity_id - * - * @return int - */ - public function getEntityId() - { - return $this->_get(self::ENTITY_ID); - } - - /** - * Returns is_customer_notified - * - * @return int - */ - public function getIsCustomerNotified() - { - return $this->_get(self::IS_CUSTOMER_NOTIFIED); - } - - /** - * Returns is_visible_on_front - * - * @return int - */ - public function getIsVisibleOnFront() - { - return $this->_get(self::IS_VISIBLE_ON_FRONT); - } - - /** - * Returns parent_id - * - * @return int - */ - public function getParentId() - { - return $this->_get(self::PARENT_ID); - } -} diff --git a/app/code/Magento/Sales/Service/V1/Data/CreditmemoConverter.php b/app/code/Magento/Sales/Service/V1/Data/CreditmemoConverter.php new file mode 100644 index 0000000000000000000000000000000000000000..9dd0022e83fc4cde8ec9c269ef167288424985e3 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Data/CreditmemoConverter.php @@ -0,0 +1,69 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Data; + +/** + * Class CreditmemoConverter + * + * @package Magento\Sales\Service\V1\Data + */ +class CreditmemoConverter +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader + */ + protected $creditmemoLoader; + + /** + * @param \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader $creditmemoLoader + */ + public function __construct(\Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader $creditmemoLoader) + { + $this->creditmemoLoader = $creditmemoLoader; + } + + /** + * @param Creditmemo $dataObject + * @return bool|\Magento\Sales\Model\Order\Creditmemo + */ + public function getModel(Creditmemo $dataObject) + { + $this->creditmemoLoader->setOrderId($dataObject->getOrderId()); + $this->creditmemoLoader->setCreditmemoId($dataObject->getEntityId()); + + $items = []; + foreach ($dataObject->getItems() as $item) { + $items[$item->getOrderItemId()] = ['qty' => $item->getQty()]; + } + $creditmemo = [ + 'items' => $items, + 'shipping_amount' => $dataObject->getShippingAmount(), + 'adjustment_positive' => $dataObject->getAdjustmentPositive(), + 'adjustment_negative' => $dataObject->getAdjustmentNegative(), + ]; + $this->creditmemoLoader->setCreditmemo($creditmemo); + $this->creditmemoLoader->setInvoiceId($dataObject->getInvoiceId()); + return $this->creditmemoLoader->load(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Data/CreditmemoMapper.php b/app/code/Magento/Sales/Service/V1/Data/CreditmemoMapper.php new file mode 100644 index 0000000000000000000000000000000000000000..3d2e6a01beceadb62a004aa6663c6999ee23d46e --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Data/CreditmemoMapper.php @@ -0,0 +1,78 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Data; + +/** + * Class CreditmemoMapper + */ +class CreditmemoMapper +{ + /** + * @var CreditmemoBuilder + */ + protected $creditmemoBuilder; + + /** + * @var CreditmemoItemMapper + */ + protected $creditmemoItemMapper; + + /** + * @param CreditmemoBuilder $creditmemoBuilder + * @param CreditmemoItemMapper $creditmemoItemMapper + */ + public function __construct(CreditmemoBuilder $creditmemoBuilder, CreditmemoItemMapper $creditmemoItemMapper) + { + $this->creditmemoBuilder = $creditmemoBuilder; + $this->creditmemoItemMapper = $creditmemoItemMapper; + } + + /** + * Returns array of items + * + * @param \Magento\Sales\Model\Order\Creditmemo $creditmemo + * @return \Magento\Sales\Service\V1\Data\CreditmemoItem[] + */ + protected function getItems(\Magento\Sales\Model\Order\Creditmemo $creditmemo) + { + $items = []; + foreach ($creditmemo->getAllItems() as $item) { + $items[] = $this->creditmemoItemMapper->extractDto($item); + } + + return $items; + } + + /** + * @param \Magento\Sales\Model\Order\Creditmemo $creditmemo + * @return \Magento\Framework\Service\Data\AbstractObject + */ + public function extractDto(\Magento\Sales\Model\Order\Creditmemo $creditmemo) + { + $this->creditmemoBuilder->populateWithArray($creditmemo->getData()); + $this->creditmemoBuilder->setItems($this->getItems($creditmemo)); + + return $this->creditmemoBuilder->create(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Data/Invoice.php b/app/code/Magento/Sales/Service/V1/Data/Invoice.php index 08ed2599cf09b496091552599eac7493d5aa1645..49dfcbad0f228662c7cf2c84fa5333c870fa968a 100644 --- a/app/code/Magento/Sales/Service/V1/Data/Invoice.php +++ b/app/code/Magento/Sales/Service/V1/Data/Invoice.php @@ -75,7 +75,6 @@ class Invoice extends DataObject const BASE_TOTAL_REFUNDED = 'base_total_refunded'; const DISCOUNT_DESCRIPTION = 'discount_description'; const ITEMS = 'items'; - const COMMENTS = 'comments'; /** * Returns base_currency_code @@ -520,20 +519,10 @@ class Invoice extends DataObject /** * Returns invoice items * - * @return InvoiceItem[] + * @return \Magento\Sales\Service\V1\Data\InvoiceItem[] */ public function getItems() { - return $this->_get(self::ITEMS); - } - - /** - * Return invoice comments - * - * @return Comment[] - */ - public function getComments() - { - return $this->_get(self::COMMENTS); + return (array)$this->_get(self::ITEMS); } } diff --git a/app/code/Magento/Sales/Service/V1/Data/InvoiceConverter.php b/app/code/Magento/Sales/Service/V1/Data/InvoiceConverter.php new file mode 100644 index 0000000000000000000000000000000000000000..3aebad91e48d011a78e0d87f2097de41bc62b527 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Data/InvoiceConverter.php @@ -0,0 +1,63 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Data; + +/** + * Class InvoiceConverter + * @package Magento\Sales\Service\V1\Data + */ +class InvoiceConverter +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader + */ + protected $invoiceLoader; + + /** + * @param \Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader $invoiceLoader + */ + public function __construct(\Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader $invoiceLoader) + { + $this->invoiceLoader = $invoiceLoader; + } + + /** + * @param Invoice $dataObject + * @return \Magento\Sales\Model\Order\Invoice + * @throws \Exception + */ + public function getModel(Invoice $dataObject) + { + $items = []; + /** @var InvoiceItem $item */ + foreach ($dataObject->getItems() as $item) { + $items[$item->getOrderItemId()] = $item->getQty(); + } + return $this->invoiceLoader + ->setOrderId($dataObject->getOrderId()) + ->setInvoiceId($dataObject->getEntityId()) + ->setInvoiceItems($items) + ->create(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Data/InvoiceItem.php b/app/code/Magento/Sales/Service/V1/Data/InvoiceItem.php index dd3865fe5b9d31fd97e31a3c2f09fa36a441f82d..1fb57135c85ac10fb7b63e71c9e7df52199c53ec 100644 --- a/app/code/Magento/Sales/Service/V1/Data/InvoiceItem.php +++ b/app/code/Magento/Sales/Service/V1/Data/InvoiceItem.php @@ -30,124 +30,29 @@ use Magento\Framework\Service\Data\AbstractObject as DataObject; */ class InvoiceItem extends DataObject { - /** - * int - */ const ENTITY_ID = 'entity_id'; - - /** - * int - */ const PARENT_ID = 'parent_id'; - - /** - * float - */ const BASE_PRICE = 'base_price'; - - /** - * float - */ const TAX_AMOUNT = 'tax_amount'; - - /** - * float - */ const BASE_ROW_TOTAL = 'base_row_total'; - - /** - * float - */ const DISCOUNT_AMOUNT = 'discount_amount'; - - /** - * float - */ const ROW_TOTAL = 'row_total'; - - /** - * float - */ const BASE_DISCOUNT_AMOUNT = 'base_discount_amount'; - - /** - * float - */ const PRICE_INCL_TAX = 'price_incl_tax'; - - /** - * float - */ const BASE_TAX_AMOUNT = 'base_tax_amount'; - - /** - * float - */ const BASE_PRICE_INCL_TAX = 'base_price_incl_tax'; - - /** - * float - */ const QTY = 'qty'; - - /** - * float - */ const BASE_COST = 'base_cost'; - - /** - * float - */ const PRICE = 'price'; - - /** - * float - */ const BASE_ROW_TOTAL_INCL_TAX = 'base_row_total_incl_tax'; - - /** - * float - */ const ROW_TOTAL_INCL_TAX = 'row_total_incl_tax'; - - /** - * int - */ const PRODUCT_ID = 'product_id'; - - /** - * int - */ const ORDER_ITEM_ID = 'order_item_id'; - - /** - * string - */ const ADDITIONAL_DATA = 'additional_data'; - - /** - * string - */ const DESCRIPTION = 'description'; - - /** - * string - */ const SKU = 'sku'; - - /** - * string - */ const NAME = 'name'; - - /** - * float - */ const HIDDEN_TAX_AMOUNT = 'hidden_tax_amount'; - - /** - * float - */ const BASE_HIDDEN_TAX_AMOUNT = 'base_hidden_tax_amount'; /** diff --git a/app/code/Magento/Sales/Service/V1/Data/InvoiceMapper.php b/app/code/Magento/Sales/Service/V1/Data/InvoiceMapper.php new file mode 100644 index 0000000000000000000000000000000000000000..d59189f0d9eb7c0220154dd965865376c4ccef00 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Data/InvoiceMapper.php @@ -0,0 +1,76 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Data; + +/** + * Class InvoiceMapper + */ +class InvoiceMapper +{ + /** + * @var InvoiceBuilder + */ + protected $invoiceBuilder; + + /** + * @var InvoiceItemMapper + */ + protected $invoiceItemMapper; + + /** + * @param InvoiceBuilder $invoiceBuilder + * @param InvoiceItemMapper $invoiceItemMapper + */ + public function __construct(InvoiceBuilder $invoiceBuilder, InvoiceItemMapper $invoiceItemMapper) + { + $this->invoiceBuilder = $invoiceBuilder; + $this->invoiceItemMapper = $invoiceItemMapper; + } + + /** + * Returns array of items + * + * @param \Magento\Sales\Model\Order\Invoice $object + * @return InvoiceItem[] + */ + protected function getItems(\Magento\Sales\Model\Order\Invoice $object) + { + $items = []; + foreach ($object->getAllItems() as $item) { + $items[] = $this->invoiceItemMapper->extractDto($item); + } + return $items; + } + + /** + * @param \Magento\Sales\Model\Order\Invoice $object + * @return \Magento\Framework\Service\Data\AbstractObject + */ + public function extractDto(\Magento\Sales\Model\Order\Invoice $object) + { + $this->invoiceBuilder->populateWithArray($object->getData()); + $this->invoiceBuilder->setItems($this->getItems($object)); + return $this->invoiceBuilder->create(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Data/OrderAddress.php b/app/code/Magento/Sales/Service/V1/Data/OrderAddress.php index 34d413993fd4b08960ee9cc9067aaa8b781c1d36..5d956b53c5d6dc0f3df9e39f60e41c91bb573b40 100644 --- a/app/code/Magento/Sales/Service/V1/Data/OrderAddress.php +++ b/app/code/Magento/Sales/Service/V1/Data/OrderAddress.php @@ -30,134 +30,31 @@ use Magento\Framework\Service\Data\AbstractObject as DataObject; */ class OrderAddress extends DataObject { - /** - * int - */ const ENTITY_ID = 'entity_id'; - - /** - * int - */ const PARENT_ID = 'parent_id'; - - /** - * int - */ const CUSTOMER_ADDRESS_ID = 'customer_address_id'; - - /** - * int - */ const QUOTE_ADDRESS_ID = 'quote_address_id'; - - /** - * int - */ const REGION_ID = 'region_id'; - - /** - * int - */ const CUSTOMER_ID = 'customer_id'; - - /** - * string - */ const FAX = 'fax'; - - /** - * string - */ const REGION = 'region'; - - /** - * string - */ const POSTCODE = 'postcode'; - - /** - * string - */ const LASTNAME = 'lastname'; - - /** - * string - */ const STREET = 'street'; - - /** - * string - */ const CITY = 'city'; - - /** - * string - */ const EMAIL = 'email'; - - /** - * string - */ const TELEPHONE = 'telephone'; - - /** - * string - */ const COUNTRY_ID = 'country_id'; - - /** - * string - */ const FIRSTNAME = 'firstname'; - - /** - * string - */ const ADDRESS_TYPE = 'address_type'; - - /** - * string - */ const PREFIX = 'prefix'; - - /** - * string - */ const MIDDLENAME = 'middlename'; - - /** - * string - */ const SUFFIX = 'suffix'; - - /** - * string - */ const COMPANY = 'company'; - - /** - * string - */ const VAT_ID = 'vat_id'; - - /** - * int - */ const VAT_IS_VALID = 'vat_is_valid'; - - /** - * string - */ const VAT_REQUEST_ID = 'vat_request_id'; - - /** - * string - */ const VAT_REQUEST_DATE = 'vat_request_date'; - - /** - * int - */ const VAT_REQUEST_SUCCESS = 'vat_request_success'; /** diff --git a/app/code/Magento/Sales/Service/V1/Data/OrderMapper.php b/app/code/Magento/Sales/Service/V1/Data/OrderMapper.php index 38a6e49d4f32bb33c06772377f07e26f3af5e475..0ce3f48ed22fa8be12953900529015667566318f 100644 --- a/app/code/Magento/Sales/Service/V1/Data/OrderMapper.php +++ b/app/code/Magento/Sales/Service/V1/Data/OrderMapper.php @@ -23,8 +23,6 @@ */ namespace Magento\Sales\Service\V1\Data; -//use Magento\Sales\Model\Order; - /** * Class OrderMapper */ @@ -130,7 +128,7 @@ class OrderMapper /** * @param \Magento\Sales\Model\Order $object - * @return \Magento\Framework\Service\Data\AbstractObject + * @return \Magento\Sales\Service\V1\Data\Order */ public function extractDto(\Magento\Sales\Model\Order $object) { diff --git a/app/code/Magento/Sales/Service/V1/Data/OrderPayment.php b/app/code/Magento/Sales/Service/V1/Data/OrderPayment.php index a076f2ab30e7c1cf321c4599caad956d681bfaba..f57b67e9fec768ce344f8b7b4f862c3d97592dd0 100644 --- a/app/code/Magento/Sales/Service/V1/Data/OrderPayment.php +++ b/app/code/Magento/Sales/Service/V1/Data/OrderPayment.php @@ -30,274 +30,59 @@ use Magento\Framework\Service\Data\AbstractObject as DataObject; */ class OrderPayment extends DataObject { - /** - * int - */ const ENTITY_ID = 'entity_id'; - - /** - * int - */ const PARENT_ID = 'parent_id'; - - /** - * float - */ const BASE_SHIPPING_CAPTURED = 'base_shipping_captured'; - - /** - * float - */ const SHIPPING_CAPTURED = 'shipping_captured'; - - /** - * float - */ const AMOUNT_REFUNDED = 'amount_refunded'; - - /** - * float - */ const BASE_AMOUNT_PAID = 'base_amount_paid'; - - /** - * float - */ const AMOUNT_CANCELED = 'amount_canceled'; - - /** - * float - */ const BASE_AMOUNT_AUTHORIZED = 'base_amount_authorized'; - - /** - * float - */ const BASE_AMOUNT_PAID_ONLINE = 'base_amount_paid_online'; - - /** - * float - */ const BASE_AMOUNT_REFUNDED_ONLINE = 'base_amount_refunded_online'; - - /** - * float - */ const BASE_SHIPPING_AMOUNT = 'base_shipping_amount'; - - /** - * float - */ const SHIPPING_AMOUNT = 'shipping_amount'; - - /** - * float - */ const AMOUNT_PAID = 'amount_paid'; - - /** - * float - */ const AMOUNT_AUTHORIZED = 'amount_authorized'; - - /** - * float - */ const BASE_AMOUNT_ORDERED = 'base_amount_ordered'; - - /** - * float - */ const BASE_SHIPPING_REFUNDED = 'base_shipping_refunded'; - - /** - * float - */ const SHIPPING_REFUNDED = 'shipping_refunded'; - - /** - * float - */ const BASE_AMOUNT_REFUNDED = 'base_amount_refunded'; - - /** - * float - */ const AMOUNT_ORDERED = 'amount_ordered'; - - /** - * float - */ const BASE_AMOUNT_CANCELED = 'base_amount_canceled'; - - /** - * int - */ const QUOTE_PAYMENT_ID = 'quote_payment_id'; - - /** - * string - */ const ADDITIONAL_DATA = 'additional_data'; - - /** - * string - */ const CC_EXP_MONTH = 'cc_exp_month'; - - /** - * string - */ const CC_SS_START_YEAR = 'cc_ss_start_year'; - - /** - * string - */ const ECHECK_BANK_NAME = 'echeck_bank_name'; - - /** - * string - */ const METHOD = 'method'; - - /** - * string - */ const CC_DEBUG_REQUEST_BODY = 'cc_debug_request_body'; - - /** - * string - */ const CC_SECURE_VERIFY = 'cc_secure_verify'; - - /** - * string - */ const PROTECTION_ELIGIBILITY = 'protection_eligibility'; - - /** - * string - */ const CC_APPROVAL = 'cc_approval'; - - /** - * string - */ const CC_LAST4 = 'cc_last4'; - - /** - * string - */ const CC_STATUS_DESCRIPTION = 'cc_status_description'; - - /** - * string - */ const ECHECK_TYPE = 'echeck_type'; - - /** - * string - */ const CC_DEBUG_RESPONSE_SERIALIZED = 'cc_debug_response_serialized'; - - /** - * string - */ const CC_SS_START_MONTH = 'cc_ss_start_month'; - - /** - * string - */ const ECHECK_ACCOUNT_TYPE = 'echeck_account_type'; - - /** - * string - */ const LAST_TRANS_ID = 'last_trans_id'; - - /** - * string - */ const CC_CID_STATUS = 'cc_cid_status'; - - /** - * string - */ const CC_OWNER = 'cc_owner'; - - /** - * string - */ const CC_TYPE = 'cc_type'; - - /** - * string - */ const PO_NUMBER = 'po_number'; - - /** - * string - */ const CC_EXP_YEAR = 'cc_exp_year'; - - /** - * string - */ const CC_STATUS = 'cc_status'; - - /** - * string - */ const ECHECK_ROUTING_NUMBER = 'echeck_routing_number'; - - /** - * string - */ const ACCOUNT_STATUS = 'account_status'; - - /** - * string - */ const ANET_TRANS_METHOD = 'anet_trans_method'; - - /** - * string - */ const CC_DEBUG_RESPONSE_BODY = 'cc_debug_response_body'; - - /** - * string - */ const CC_SS_ISSUE = 'cc_ss_issue'; - - /** - * string - */ const ECHECK_ACCOUNT_NAME = 'echeck_account_name'; - - /** - * string - */ const CC_AVS_STATUS = 'cc_avs_status'; - - /** - * string - */ const CC_NUMBER_ENC = 'cc_number_enc'; - - /** - * string - */ const CC_TRANS_ID = 'cc_trans_id'; - - /** - * string - */ const ADDRESS_STATUS = 'address_status'; - - /** - * string - */ const ADDITIONAL_INFORMATION = 'additional_information'; /** diff --git a/app/code/Magento/Sales/Service/V1/Data/Shipment.php b/app/code/Magento/Sales/Service/V1/Data/Shipment.php index 814b6472c937b6275ce747de558ec896b27b655b..568850d4ac8b99e695e929f3d352e311130c907e 100644 --- a/app/code/Magento/Sales/Service/V1/Data/Shipment.php +++ b/app/code/Magento/Sales/Service/V1/Data/Shipment.php @@ -30,80 +30,23 @@ use Magento\Framework\Service\Data\AbstractObject as DataObject; */ class Shipment extends DataObject { - /** - * int - */ const ENTITY_ID = 'entity_id'; - - /** - * int - */ const STORE_ID = 'store_id'; - - /** - * float - */ const TOTAL_WEIGHT = 'total_weight'; - - /** - * float - */ const TOTAL_QTY = 'total_qty'; - - /** - * int - */ const EMAIL_SENT = 'email_sent'; - - /** - * int - */ const ORDER_ID = 'order_id'; - - /** - * int - */ const CUSTOMER_ID = 'customer_id'; - - /** - * int - */ const SHIPPING_ADDRESS_ID = 'shipping_address_id'; - - /** - * int - */ const BILLING_ADDRESS_ID = 'billing_address_id'; - - /** - * int - */ const SHIPMENT_STATUS = 'shipment_status'; - - /** - * string - */ const INCREMENT_ID = 'increment_id'; - - /** - * string - */ const CREATED_AT = 'created_at'; - - /** - * string - */ const UPDATED_AT = 'updated_at'; - - /** - * string - */ const PACKAGES = 'packages'; - - /** - * mediumblob - */ const SHIPPING_LABEL = 'shipping_label'; + const ITEMS = 'items'; + const TRACKS = 'tracks'; /** * Returns billing_address_id @@ -254,4 +197,24 @@ class Shipment extends DataObject { return $this->_get(self::UPDATED_AT); } + + /** + * Returns items + * + * @return \Magento\Sales\Service\V1\Data\ShipmentItem[] + */ + public function getItems() + { + return (array)$this->_get(self::ITEMS); + } + + /** + * Returns tracks + * + * @return \Magento\Sales\Service\V1\Data\ShipmentTrack[] + */ + public function getTracks() + { + return (array)$this->_get(self::TRACKS); + } } diff --git a/app/code/Magento/Sales/Service/V1/Data/ShipmentConverter.php b/app/code/Magento/Sales/Service/V1/Data/ShipmentConverter.php new file mode 100644 index 0000000000000000000000000000000000000000..71b302938bef9479584a6f6149f22e76579e9a9f --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Data/ShipmentConverter.php @@ -0,0 +1,66 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Service\V1\Data; + +/** + * Class ShipmentConverter + * + * @package Magento\Sales\Service\V1\Data + */ +class ShipmentConverter +{ + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader + */ + protected $shipmentLoader; + + /** + * @param \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader $shipmentLoader + */ + public function __construct(\Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader $shipmentLoader) + { + $this->shipmentLoader = $shipmentLoader; + } + + /** + * @param Shipment $dataObject + * @return \Magento\Sales\Model\Order\Shipment + * @throws \Exception + */ + public function getModel(Shipment $dataObject) + { + $this->shipmentLoader->setOrderId($dataObject->getOrderId()); + $this->shipmentLoader->setShipmentId($dataObject->getEntityId()); + + $items = []; + foreach ($dataObject->getItems() as $item) { + $items[$item->getOrderItemId()] = $item->getQty(); + } + $shipmentItems = ['items' => $items]; + $this->shipmentLoader->setShipment($shipmentItems); + $this->shipmentLoader->setTracking($dataObject->getTracks()); + return $this->shipmentLoader->load(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Data/ShipmentItem.php b/app/code/Magento/Sales/Service/V1/Data/ShipmentItem.php index 4c5eb9f556ab8c6d3541304827c94b23e667a394..34d4f97f21f312825de211aad748f7c4f0d68ee1 100644 --- a/app/code/Magento/Sales/Service/V1/Data/ShipmentItem.php +++ b/app/code/Magento/Sales/Service/V1/Data/ShipmentItem.php @@ -30,65 +30,17 @@ use Magento\Framework\Service\Data\AbstractObject as DataObject; */ class ShipmentItem extends DataObject { - - /** - * int - */ const ENTITY_ID = 'entity_id'; - - /** - * int - */ const PARENT_ID = 'parent_id'; - - /** - * float - */ const ROW_TOTAL = 'row_total'; - - /** - * float - */ const PRICE = 'price'; - - /** - * float - */ const WEIGHT = 'weight'; - - /** - * float - */ const QTY = 'qty'; - - /** - * int - */ const PRODUCT_ID = 'product_id'; - - /** - * int - */ const ORDER_ITEM_ID = 'order_item_id'; - - /** - * string - */ const ADDITIONAL_DATA = 'additional_data'; - - /** - * string - */ const DESCRIPTION = 'description'; - - /** - * string - */ const NAME = 'name'; - - /** - * string - */ const SKU = 'sku'; /** diff --git a/app/code/Magento/Sales/Service/V1/Data/ShipmentMapper.php b/app/code/Magento/Sales/Service/V1/Data/ShipmentMapper.php new file mode 100644 index 0000000000000000000000000000000000000000..0739c5aafa39d9ad04afb8e1466c3d720d761402 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/Data/ShipmentMapper.php @@ -0,0 +1,89 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Service\V1\Data; + +/** + * Class ShipmentMapper + */ +class ShipmentMapper +{ + /** + * @param ShipmentBuilder $shipmentBuilder + * @param ShipmentItemMapper $shipmentItemMapper + * @param ShipmentTrackMapper $shipmentTrackMapper + */ + public function __construct( + ShipmentBuilder $shipmentBuilder, + ShipmentItemMapper $shipmentItemMapper, + ShipmentTrackMapper $shipmentTrackMapper + ) { + $this->shipmentBuilder = $shipmentBuilder; + $this->shipmentItemMapper = $shipmentItemMapper; + $this->shipmentTrackMapper = $shipmentTrackMapper; + } + + /** + * Returns array of items + * + * @param \Magento\Sales\Model\Order\Shipment $object + * @return ShipmentItem[] + */ + protected function getItems(\Magento\Sales\Model\Order\Shipment $object) + { + $items = []; + foreach ($object->getItemsCollection() as $item) { + $items[] = $this->shipmentItemMapper->extractDto($item); + } + return $items; + } + + /** + * Returns array of tracks + * + * @param \Magento\Sales\Model\Order\Shipment $object + * @return ShipmentTrack[] + */ + protected function getTracks(\Magento\Sales\Model\Order\Shipment $object) + { + $items = []; + foreach ($object->getTracksCollection() as $item) { + $items[] = $this->shipmentTrackMapper->extractDto($item); + } + return $items; + } + + /** + * @param \Magento\Sales\Model\Order\Shipment $object + * @return \Magento\Sales\Service\V1\Data\Shipment + */ + public function extractDto(\Magento\Sales\Model\Order\Shipment $object) + { + $this->shipmentBuilder->populateWithArray($object->getData()); + $this->shipmentBuilder->setItems($this->getItems($object)); + $this->shipmentBuilder->setTracks($this->getTracks($object)); + $this->shipmentBuilder->setPackages(serialize($object->getPackages())); + return $this->shipmentBuilder->create(); + } +} diff --git a/app/code/Magento/Sales/Service/V1/Data/ShipmentTrack.php b/app/code/Magento/Sales/Service/V1/Data/ShipmentTrack.php index 5038db1869f8bf56b9a3b49409372e2f33c687e9..aeb63bcb0fdc8afb9dc6faeab80b1767c8cbf632 100644 --- a/app/code/Magento/Sales/Service/V1/Data/ShipmentTrack.php +++ b/app/code/Magento/Sales/Service/V1/Data/ShipmentTrack.php @@ -31,59 +31,16 @@ use Magento\Framework\Service\Data\AbstractObject as DataObject; class ShipmentTrack extends DataObject { - /** - * int - */ const ENTITY_ID = 'entity_id'; - - /** - * int - */ const PARENT_ID = 'parent_id'; - - /** - * float - */ const WEIGHT = 'weight'; - - /** - * float - */ const QTY = 'qty'; - - /** - * int - */ const ORDER_ID = 'order_id'; - - /** - * string - */ const TRACK_NUMBER = 'track_number'; - - /** - * string - */ const DESCRIPTION = 'description'; - - /** - * string - */ const TITLE = 'title'; - - /** - * string - */ const CARRIER_CODE = 'carrier_code'; - - /** - * string - */ const CREATED_AT = 'created_at'; - - /** - * string - */ const UPDATED_AT = 'updated_at'; /** diff --git a/app/code/Magento/Sales/Service/V1/InvoiceRead.php b/app/code/Magento/Sales/Service/V1/InvoiceRead.php new file mode 100644 index 0000000000000000000000000000000000000000..a890060aa7f3f5b032e941ac6e3a537b8098348c --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/InvoiceRead.php @@ -0,0 +1,98 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Action\InvoiceGet; +use Magento\Sales\Service\V1\Action\InvoiceList; +use Magento\Sales\Service\V1\Action\InvoiceCommentsList; +use Magento\Framework\Service\V1\Data\SearchCriteria; + +/** + * Class InvoiceRead + */ +class InvoiceRead implements InvoiceReadInterface +{ + /** + * @var InvoiceGet + */ + protected $invoiceGet; + + /** + * @var InvoiceList + */ + protected $invoiceList; + + /** + * @var InvoiceCommentsList + */ + protected $invoiceCommentsList; + + /** + * @var InvoiceGetStatus + */ + protected $invoiceGetStatus; + + /** + * @param InvoiceGet $invoiceGet + * @param InvoiceList $invoiceList + * @param InvoiceCommentsList $invoiceCommentsList + */ + public function __construct( + InvoiceGet $invoiceGet, + InvoiceList $invoiceList, + InvoiceCommentsList $invoiceCommentsList + ) { + $this->invoiceGet = $invoiceGet; + $this->invoiceList = $invoiceList; + $this->invoiceCommentsList = $invoiceCommentsList; + } + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\Invoice + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function get($id) + { + return $this->invoiceGet->invoke($id); + } + + /** + * @param \Magento\Framework\Service\V1\Data\SearchCriteria $searchCriteria + * @return \Magento\Framework\Service\V1\Data\SearchResults + */ + public function search(SearchCriteria $searchCriteria) + { + return $this->invoiceList->invoke($searchCriteria); + } + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\CommentSearchResults + */ + public function commentsList($id) + { + return $this->invoiceCommentsList->invoke($id); + } +} diff --git a/app/code/Magento/Sales/Service/V1/OrderGetInterface.php b/app/code/Magento/Sales/Service/V1/InvoiceReadInterface.php similarity index 66% rename from app/code/Magento/Sales/Service/V1/OrderGetInterface.php rename to app/code/Magento/Sales/Service/V1/InvoiceReadInterface.php index edc166d4782f622da1c123c6eae794fa995898bf..b566d1be23c9caaf553c6198de1c45e9004eca80 100644 --- a/app/code/Magento/Sales/Service/V1/OrderGetInterface.php +++ b/app/code/Magento/Sales/Service/V1/InvoiceReadInterface.php @@ -23,17 +23,26 @@ */ namespace Magento\Sales\Service\V1; -/** - * Interface OrderGetInterface - */ -interface OrderGetInterface +use Magento\Framework\Service\V1\Data\SearchCriteria; + +interface InvoiceReadInterface { /** - * Invoke getOrder service - * * @param int $id - * @return \Magento\Sales\Service\V1\Data\Order + * @return \Magento\Sales\Service\V1\Data\Invoice * @throws \Magento\Framework\Exception\NoSuchEntityException */ - public function invoke($id); + public function get($id); + + /** + * @param \Magento\Framework\Service\V1\Data\SearchCriteria $searchCriteria + * @return \Magento\Framework\Service\V1\Data\SearchResults + */ + public function search(SearchCriteria $searchCriteria); + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\CommentSearchResults + */ + public function commentsList($id); } diff --git a/app/code/Magento/Sales/Service/V1/InvoiceWrite.php b/app/code/Magento/Sales/Service/V1/InvoiceWrite.php new file mode 100644 index 0000000000000000000000000000000000000000..4bd1c81a1da9a8ad1efa079b238311830082fda9 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/InvoiceWrite.php @@ -0,0 +1,132 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Action\InvoiceAddComment; +use Magento\Sales\Service\V1\Action\InvoiceVoid; +use Magento\Sales\Service\V1\Action\InvoiceEmail; +use Magento\Sales\Service\V1\Action\InvoiceCapture; +use Magento\Sales\Service\V1\Action\InvoiceCreate; +use Magento\Sales\Service\V1\Data\Comment; + +/** + * Class InvoiceWrite + */ +class InvoiceWrite implements InvoiceWriteInterface +{ + /** + * @var InvoiceAddComment + */ + protected $invoiceAddComment; + + /** + * @var InvoiceVoid + */ + protected $invoiceVoid; + + /** + * @var InvoiceEmail + */ + protected $invoiceEmail; + + /** + * @var InvoiceCapture + */ + protected $invoiceCapture; + + /** + * @var InvoiceCreate + */ + protected $invoiceCreate; + + /** + * @param InvoiceAddComment $invoiceAddComment + * @param InvoiceVoid $invoiceVoid + * @param InvoiceEmail $invoiceEmail + * @param InvoiceCapture $invoiceCapture + * @param InvoiceCreate $invoiceCreate + */ + public function __construct( + InvoiceAddComment $invoiceAddComment, + InvoiceVoid $invoiceVoid, + InvoiceEmail $invoiceEmail, + InvoiceCapture $invoiceCapture, + InvoiceCreate $invoiceCreate + ) { + $this->invoiceAddComment = $invoiceAddComment; + $this->invoiceVoid = $invoiceVoid; + $this->invoiceEmail = $invoiceEmail; + $this->invoiceCapture = $invoiceCapture; + $this->invoiceCreate = $invoiceCreate; + } + + /** + * @param \Magento\Sales\Service\V1\Data\Comment $comment + * @return bool + * @throws \Exception + */ + public function addComment(Comment $comment) + { + return $this->invoiceAddComment->invoke($comment); + } + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function void($id) + { + return $this->invoiceVoid->invoke($id); + } + + /** + * @param int $id + * @return bool + */ + public function email($id) + { + return $this->invoiceEmail->invoke($id); + } + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function capture($id) + { + return $this->invoiceCapture->invoke($id); + } + + /** + * @param \Magento\Sales\Service\V1\Data\Invoice $invoiceDataObject + * @return bool + * @throws \Exception + */ + public function create(\Magento\Sales\Service\V1\Data\Invoice $invoiceDataObject) + { + return $this->invoiceCreate->invoke($invoiceDataObject); + } +} diff --git a/app/code/Magento/Sales/Service/V1/InvoiceWriteInterface.php b/app/code/Magento/Sales/Service/V1/InvoiceWriteInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..c0783c9add6c8e9c469b278c697751172ea49f83 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/InvoiceWriteInterface.php @@ -0,0 +1,63 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Data\Comment; + +interface InvoiceWriteInterface +{ + /** + * @param \Magento\Sales\Service\V1\Data\Comment $comment + * @return bool + * @throws \Exception + */ + public function addComment(Comment $comment); + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function void($id); + + /** + * @param int $id + * @return bool + */ + public function email($id); + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function capture($id); + + /** + * @param \Magento\Sales\Service\V1\Data\Invoice $invoiceDataObject + * @return bool + * @throws \Exception + */ + public function create(\Magento\Sales\Service\V1\Data\Invoice $invoiceDataObject); +} diff --git a/app/code/Magento/Sales/Service/V1/OrderRead.php b/app/code/Magento/Sales/Service/V1/OrderRead.php new file mode 100644 index 0000000000000000000000000000000000000000..dc3a72c3d295bf56dfcfbee593b2861cea736105 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/OrderRead.php @@ -0,0 +1,112 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Action\OrderGet; +use Magento\Sales\Service\V1\Action\OrderList; +use Magento\Sales\Service\V1\Action\OrderCommentsList; +use Magento\Sales\Service\V1\Action\OrderGetStatus; +use Magento\Framework\Service\V1\Data\SearchCriteria; + +/** + * Class OrderRead + */ +class OrderRead implements OrderReadInterface +{ + /** + * @var OrderGet + */ + protected $orderGet; + + /** + * @var OrderList + */ + protected $orderList; + + /** + * @var OrderCommentsList + */ + protected $orderCommentsList; + + /** + * @var OrderGetStatus + */ + protected $orderGetStatus; + + /** + * @param OrderGet $orderGet + * @param OrderList $orderList + * @param OrderCommentsList $orderCommentsList + * @param OrderGetStatus $orderGetStatus + */ + public function __construct( + OrderGet $orderGet, + OrderList $orderList, + OrderCommentsList $orderCommentsList, + OrderGetStatus $orderGetStatus + ) { + $this->orderGet = $orderGet; + $this->orderList = $orderList; + $this->orderCommentsList = $orderCommentsList; + $this->orderGetStatus = $orderGetStatus; + } + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\Order + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function get($id) + { + return $this->orderGet->invoke($id); + } + + /** + * @param \Magento\Framework\Service\V1\Data\SearchCriteria $searchCriteria + * @return \Magento\Sales\Service\V1\Data\OrderSearchResults + */ + public function search(SearchCriteria $searchCriteria) + { + return $this->orderList->invoke($searchCriteria); + } + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\OrderStatusHistorySearchResults + */ + public function commentsList($id) + { + return $this->orderCommentsList->invoke($id); + } + + /** + * @param int $id + * @return string + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function getStatus($id) + { + return $this->orderGetStatus->invoke($id); + } +} diff --git a/app/code/Magento/Sales/Service/V1/OrderCommentsListInterface.php b/app/code/Magento/Sales/Service/V1/OrderReadInterface.php similarity index 60% rename from app/code/Magento/Sales/Service/V1/OrderCommentsListInterface.php rename to app/code/Magento/Sales/Service/V1/OrderReadInterface.php index 64de1d900671af2533b70accdacafeb4a990e907..4862680cfee36ed1a35ceeea316e072c29968551 100644 --- a/app/code/Magento/Sales/Service/V1/OrderCommentsListInterface.php +++ b/app/code/Magento/Sales/Service/V1/OrderReadInterface.php @@ -23,16 +23,33 @@ */ namespace Magento\Sales\Service\V1; -/** - * Interface OrderCommentsListInterface - */ -interface OrderCommentsListInterface +use Magento\Framework\Service\V1\Data\SearchCriteria; + +interface OrderReadInterface { /** - * Invoke OrderCommentsList service - * + * @param int $id + * @return \Magento\Sales\Service\V1\Data\Order + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function get($id); + + /** + * @param \Magento\Framework\Service\V1\Data\SearchCriteria $searchCriteria + * @return \Magento\Sales\Service\V1\Data\OrderSearchResults + */ + public function search(SearchCriteria $searchCriteria); + + /** * @param int $id * @return \Magento\Sales\Service\V1\Data\OrderStatusHistorySearchResults */ - public function invoke($id); + public function commentsList($id); + + /** + * @param int $id + * @return string + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function getStatus($id); } diff --git a/app/code/Magento/Sales/Service/V1/OrderWrite.php b/app/code/Magento/Sales/Service/V1/OrderWrite.php new file mode 100644 index 0000000000000000000000000000000000000000..23ccae33c2343911dc205f5caee546527ece0f5d --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/OrderWrite.php @@ -0,0 +1,173 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Action\OrderAddressUpdate; +use Magento\Sales\Service\V1\Action\OrderCancel; +use Magento\Sales\Service\V1\Action\OrderEmail; +use Magento\Sales\Service\V1\Action\OrderHold; +use Magento\Sales\Service\V1\Action\OrderUnHold; +use Magento\Sales\Service\V1\Action\OrderStatusHistoryAdd; +use Magento\Sales\Service\V1\Action\OrderCreate; +use Magento\Sales\Service\V1\Data\Order; +use Magento\Sales\Service\V1\Data\OrderAddress; +use Magento\Sales\Service\V1\Data\OrderStatusHistory; + +/** + * Class OrderWrite + */ +class OrderWrite implements OrderWriteInterface +{ + /** + * @var OrderAddressUpdate + */ + protected $orderAddressUpdate; + + /** + * @var OrderCancel + */ + protected $orderCancel; + + /** + * @var OrderEmail + */ + protected $orderEmail; + + /** + * @var OrderHold + */ + protected $orderHold; + + /** + * @var OrderUnHold + */ + protected $orderUnHold; + + /** + * @var OrderStatusHistoryAdd + */ + protected $orderStatusHistoryAdd; + + /** + * @var OrderCreate + */ + protected $orderCreate; + + /** + * @param OrderAddressUpdate $orderAddressUpdate + * @param OrderCancel $orderCancel + * @param OrderEmail $orderEmail + * @param OrderHold $orderHold + * @param OrderUnHold $orderUnHold + * @param OrderStatusHistoryAdd $orderStatusHistoryAdd + * @param OrderCreate $orderCreate + */ + public function __construct( + OrderAddressUpdate $orderAddressUpdate, + OrderCancel $orderCancel, + OrderEmail $orderEmail, + OrderHold $orderHold, + OrderUnHold $orderUnHold, + OrderStatusHistoryAdd $orderStatusHistoryAdd, + OrderCreate $orderCreate + ) { + $this->orderAddressUpdate = $orderAddressUpdate; + $this->orderCancel = $orderCancel; + $this->orderEmail = $orderEmail; + $this->orderHold = $orderHold; + $this->orderUnHold = $orderUnHold; + $this->orderStatusHistoryAdd = $orderStatusHistoryAdd; + $this->orderCreate = $orderCreate; + } + + /** + * @param \Magento\Sales\Service\V1\Data\OrderAddress $orderAddress + * @return bool + */ + public function addressUpdate(OrderAddress $orderAddress) + { + return $this->orderAddressUpdate->invoke($orderAddress); + } + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function cancel($id) + { + return $this->orderCancel->invoke($id); + } + + /** + * @param int $id + * @return bool + */ + public function email($id) + { + return $this->orderEmail->invoke($id); + } + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function hold($id) + { + return $this->orderHold->invoke($id); + } + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function unHold($id) + { + return $this->orderUnHold->invoke($id); + } + + /** + * @param int $id + * @param \Magento\Sales\Service\V1\Data\OrderStatusHistory $statusHistory + * @return bool + */ + public function statusHistoryAdd($id, OrderStatusHistory $statusHistory) + { + return $this->orderStatusHistoryAdd->invoke($id, $statusHistory); + } + + /** + * Create an order + * + * @param Order $orderDataObject + * @return bool + * @throws \Exception + */ + public function create(Order $orderDataObject) + { + return $this->orderCreate->invoke($orderDataObject); + } +} diff --git a/app/code/Magento/Sales/Service/V1/OrderWriteInterface.php b/app/code/Magento/Sales/Service/V1/OrderWriteInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..69b3c8c8398f235bfcce564c9c23c7c9cb922a83 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/OrderWriteInterface.php @@ -0,0 +1,79 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Data\OrderAddress; +use Magento\Sales\Service\V1\Data\OrderStatusHistory; + +interface OrderWriteInterface +{ + /** + * @param \Magento\Sales\Service\V1\Data\OrderAddress $orderAddress + * @return bool + */ + public function addressUpdate(OrderAddress $orderAddress); + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function cancel($id); + + /** + * @param int $id + * @return bool + */ + public function email($id); + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function hold($id); + + /** + * @param int $id + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function unHold($id); + + /** + * @param int $id + * @param \Magento\Sales\Service\V1\Data\OrderStatusHistory $statusHistory + * @return bool + */ + public function statusHistoryAdd($id, OrderStatusHistory $statusHistory); + + /** + * Create an order + * + * @param \Magento\Sales\Service\V1\Data\Order $orderDataObject + * @return bool + * @throws \Exception + */ + public function create(\Magento\Sales\Service\V1\Data\Order $orderDataObject); +} diff --git a/app/code/Magento/Sales/Service/V1/ShipmentRead.php b/app/code/Magento/Sales/Service/V1/ShipmentRead.php new file mode 100644 index 0000000000000000000000000000000000000000..333cc714834e12b9217e37a2aab01d469011c59a --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/ShipmentRead.php @@ -0,0 +1,112 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Action\ShipmentGet; +use Magento\Sales\Service\V1\Action\ShipmentList; +use Magento\Sales\Service\V1\Action\ShipmentCommentsList; +use Magento\Sales\Service\V1\Action\ShipmentLabelGet; +use Magento\Framework\Service\V1\Data\SearchCriteria; + +/** + * Class ShipmentRead + */ +class ShipmentRead implements ShipmentReadInterface +{ + /** + * @var ShipmentGet + */ + protected $shipmentGet; + + /** + * @var ShipmentList + */ + protected $shipmentList; + + /** + * @var ShipmentCommentsList + */ + protected $shipmentCommentsList; + + /** + * @var ShipmentLabelGet + */ + protected $shipmentLabelGet; + + /** + * @param ShipmentGet $shipmentGet + * @param ShipmentList $shipmentList + * @param ShipmentCommentsList $shipmentCommentsList + * @param ShipmentLabelGet $shipmentLabelGet + */ + public function __construct( + ShipmentGet $shipmentGet, + ShipmentList $shipmentList, + ShipmentCommentsList $shipmentCommentsList, + ShipmentLabelGet $shipmentLabelGet + ) { + $this->shipmentGet = $shipmentGet; + $this->shipmentList = $shipmentList; + $this->shipmentCommentsList = $shipmentCommentsList; + $this->shipmentLabelGet = $shipmentLabelGet; + } + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\Shipment + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function get($id) + { + return $this->shipmentGet->invoke($id); + } + + /** + * @param \Magento\Framework\Service\V1\Data\SearchCriteria $searchCriteria + * @return \Magento\Framework\Service\V1\Data\SearchResults + */ + public function search(SearchCriteria $searchCriteria) + { + return $this->shipmentList->invoke($searchCriteria); + } + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\CommentSearchResults + */ + public function commentsList($id) + { + return $this->shipmentCommentsList->invoke($id); + } + + /** + * @param int $id + * @return string + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function getLabel($id) + { + return $this->shipmentLabelGet->invoke($id); + } +} diff --git a/app/code/Magento/Sales/Service/V1/ShipmentReadInterface.php b/app/code/Magento/Sales/Service/V1/ShipmentReadInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..c4da5bab4cfc624d2c0a27562deb283af4037b8d --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/ShipmentReadInterface.php @@ -0,0 +1,55 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Framework\Service\V1\Data\SearchCriteria; + +interface ShipmentReadInterface +{ + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\Shipment + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function get($id); + + /** + * @param \Magento\Framework\Service\V1\Data\SearchCriteria $searchCriteria + * @return \Magento\Framework\Service\V1\Data\SearchResults + */ + public function search(SearchCriteria $searchCriteria); + + /** + * @param int $id + * @return \Magento\Sales\Service\V1\Data\CommentSearchResults + */ + public function commentsList($id); + + /** + * @param int $id + * @return string + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function getLabel($id); +} diff --git a/app/code/Magento/Sales/Service/V1/ShipmentWrite.php b/app/code/Magento/Sales/Service/V1/ShipmentWrite.php new file mode 100644 index 0000000000000000000000000000000000000000..4366adb945d67fba07d43f0c8edc01ba749df93a --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/ShipmentWrite.php @@ -0,0 +1,133 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Action\ShipmentAddTrack; +use Magento\Sales\Service\V1\Action\ShipmentRemoveTrack; +use Magento\Sales\Service\V1\Action\ShipmentEmail; +use Magento\Sales\Service\V1\Action\ShipmentAddComment; +use Magento\Sales\Service\V1\Action\ShipmentCreate; +use Magento\Sales\Service\V1\Data\ShipmentTrack; +use Magento\Sales\Service\V1\Data\Comment; + +/** + * Class ShipmentWrite + */ +class ShipmentWrite implements ShipmentWriteInterface +{ + /** + * @var ShipmentAddTrack + */ + protected $shipmentAddTrack; + + /** + * @var ShipmentRemoveTrack + */ + protected $shipmentRemoveTrack; + + /** + * @var ShipmentEmail + */ + protected $shipmentEmail; + + /** + * @var ShipmentAddComment + */ + protected $shipmentAddComment; + + /** + * @var ShipmentCreate + */ + protected $shipmentCreate; + + /** + * @param ShipmentAddTrack $shipmentAddTrack + * @param ShipmentRemoveTrack $shipmentRemoveTrack + * @param ShipmentEmail $shipmentEmail + * @param ShipmentAddComment $shipmentAddComment + * @param ShipmentCreate $shipmentCreate + */ + public function __construct( + ShipmentAddTrack $shipmentAddTrack, + ShipmentRemoveTrack $shipmentRemoveTrack, + ShipmentEmail $shipmentEmail, + ShipmentAddComment $shipmentAddComment, + ShipmentCreate $shipmentCreate + ) { + $this->shipmentAddTrack = $shipmentAddTrack; + $this->shipmentRemoveTrack = $shipmentRemoveTrack; + $this->shipmentEmail = $shipmentEmail; + $this->shipmentAddComment = $shipmentAddComment; + $this->shipmentCreate = $shipmentCreate; + } + + /** + * @param \Magento\Sales\Service\V1\Data\ShipmentTrack $track + * @return bool + * @throws \Exception + */ + public function addTrack(ShipmentTrack $track) + { + return $this->shipmentAddTrack->invoke($track); + } + + /** + * @param int $id + * @return bool + * @throws \Exception + */ + public function removeTrack($id) + { + return $this->shipmentRemoveTrack->invoke($id); + } + + /** + * @param int $id + * @return bool + */ + public function email($id) + { + return $this->shipmentEmail->invoke($id); + } + + /** + * @param \Magento\Sales\Service\V1\Data\Comment $comment + * @return bool + * @throws \Exception + */ + public function addComment(Comment $comment) + { + return $this->shipmentAddComment->invoke($comment); + } + + /** + * @param \Magento\Sales\Service\V1\Data\Shipment $shipmentDataObject + * @return bool + * @throws \Exception + */ + public function create(\Magento\Sales\Service\V1\Data\Shipment $shipmentDataObject) + { + return $this->shipmentCreate->invoke($shipmentDataObject); + } +} diff --git a/app/code/Magento/Sales/Service/V1/ShipmentWriteInterface.php b/app/code/Magento/Sales/Service/V1/ShipmentWriteInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..967ec348ffcdec4d3fb1247c676c9ab4bf49b895 --- /dev/null +++ b/app/code/Magento/Sales/Service/V1/ShipmentWriteInterface.php @@ -0,0 +1,64 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +use Magento\Sales\Service\V1\Data\ShipmentTrack; +use Magento\Sales\Service\V1\Data\Comment; + +interface ShipmentWriteInterface +{ + /** + * @param \Magento\Sales\Service\V1\Data\ShipmentTrack $track + * @return bool + * @throws \Exception + */ + public function addTrack(ShipmentTrack $track); + + /** + * @param int $id + * @return bool + * @throws \Exception + */ + public function removeTrack($id); + + /** + * @param int $id + * @return bool + */ + public function email($id); + + /** + * @param \Magento\Sales\Service\V1\Data\Comment $comment + * @return bool + * @throws \Exception + */ + public function addComment(Comment $comment); + + /** + * @param \Magento\Sales\Service\V1\Data\Shipment $shipmentDataObject + * @return bool + * @throws \Exception + */ + public function create(\Magento\Sales\Service\V1\Data\Shipment $shipmentDataObject); +} diff --git a/app/code/Magento/Sales/composer.json b/app/code/Magento/Sales/composer.json index 3ee49b89cbfba9c2da6ad33d824e2a1bda301799..1fe0ee1dc1c06ff6e56d2c315018bbbb29012f37 100644 --- a/app/code/Magento/Sales/composer.json +++ b/app/code/Magento/Sales/composer.json @@ -3,30 +3,30 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-payment": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-sales-rule": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-widget": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-gift-message": "0.1.0-alpha92", - "magento/module-reports": "0.1.0-alpha92", - "magento/module-weee": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/module-wishlist": "0.1.0-alpha92", - "magento/module-email": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-payment": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-sales-rule": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-widget": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-gift-message": "0.1.0-alpha93", + "magento/module-reports": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/module-wishlist": "0.1.0-alpha93", + "magento/module-email": "0.1.0-alpha93", + "magento/module-shipping": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Sales/etc/di.xml b/app/code/Magento/Sales/etc/di.xml index 991b5f78ecf1323a7300715a9d7934c27b5e02c7..00410f1ef128c3e6961fbc900bd4b827f5c41c6b 100644 --- a/app/code/Magento/Sales/etc/di.xml +++ b/app/code/Magento/Sales/etc/di.xml @@ -24,16 +24,14 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd"> - <preference for="Magento\Sales\Service\V1\OrderGetInterface" type="Magento\Sales\Service\V1\OrderGet"/> - <preference for="Magento\Sales\Service\V1\OrderCancelInterface" type="Magento\Sales\Service\V1\OrderCancel"/> - <preference for="Magento\Sales\Service\V1\OrderListInterface" type="Magento\Sales\Service\V1\OrderList"/> - <preference for="Magento\Sales\Service\V1\OrderGetStatusInterface" type="Magento\Sales\Service\V1\OrderGetStatus"/> - <preference for="Magento\Sales\Service\V1\OrderHoldInterface" type="Magento\Sales\Service\V1\OrderHold"/> - <preference for="Magento\Sales\Service\V1\OrderUnHoldInterface" type="Magento\Sales\Service\V1\OrderUnHold"/> - <preference for="Magento\Sales\Service\V1\OrderNotifyUserInterface" type="Magento\Sales\Service\V1\OrderNotifyUser"/> - <preference for="Magento\Sales\Service\V1\OrderStatusHistoryAddInterface" type="Magento\Sales\Service\V1\OrderStatusHistoryAdd"/> - <preference for="Magento\Sales\Service\V1\OrderCommentsListInterface" type="Magento\Sales\Service\V1\OrderCommentsList"/> - <preference for="Magento\Sales\Service\V1\OrderAddressUpdateInterface" type="Magento\Sales\Service\V1\OrderAddressUpdate"/> + <preference for="Magento\Sales\Service\V1\OrderReadInterface" type="Magento\Sales\Service\V1\OrderRead"/> + <preference for="Magento\Sales\Service\V1\OrderWriteInterface" type="Magento\Sales\Service\V1\OrderWrite"/> + <preference for="Magento\Sales\Service\V1\InvoiceReadInterface" type="Magento\Sales\Service\V1\InvoiceRead"/> + <preference for="Magento\Sales\Service\V1\InvoiceWriteInterface" type="Magento\Sales\Service\V1\InvoiceWrite"/> + <preference for="Magento\Sales\Service\V1\CreditmemoReadInterface" type="Magento\Sales\Service\V1\CreditmemoRead"/> + <preference for="Magento\Sales\Service\V1\CreditmemoWriteInterface" type="Magento\Sales\Service\V1\CreditmemoWrite"/> + <preference for="Magento\Sales\Service\V1\ShipmentReadInterface" type="Magento\Sales\Service\V1\ShipmentRead"/> + <preference for="Magento\Sales\Service\V1\ShipmentWriteInterface" type="Magento\Sales\Service\V1\ShipmentWrite"/> <type name="Magento\Sales\Model\Resource\Report" shared="false"/> <type name="Magento\Sales\Model\Order\Pdf\Config\Reader"> <arguments> diff --git a/app/code/Magento/Sales/etc/module.xml b/app/code/Magento/Sales/etc/module.xml index 0045564ebfcaf2d49c4db2ad154ad83904f92b69..60586c7d3b538a2a103121b08ff659efd87530c1 100644 --- a/app/code/Magento/Sales/etc/module.xml +++ b/app/code/Magento/Sales/etc/module.xml @@ -47,10 +47,10 @@ <module name="Magento_Tax"/> <module name="Magento_GiftMessage"/> <module name="Magento_Reports"/> - <module name="Magento_Weee"/> <module name="Magento_CatalogInventory"/> <module name="Magento_Wishlist"/> <module name="Magento_Email"/> + <module name="Magento_Shipping"/> </depends> </module> </config> diff --git a/app/code/Magento/Sales/etc/webapi.xml b/app/code/Magento/Sales/etc/webapi.xml index fa435cb99b524656c55d63816fc1e56ecc2cdba1..a0f4bafce8157949bac6777d20531e6359a1fbea 100644 --- a/app/code/Magento/Sales/etc/webapi.xml +++ b/app/code/Magento/Sales/etc/webapi.xml @@ -25,62 +25,212 @@ --> <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd"> - <route url="/V1/orders/:id" method="GET"> - <service class="Magento\Sales\Service\V1\OrderGetInterface" method="invoke"/> + <route url="/V1/order/:id" method="GET"> + <service class="Magento\Sales\Service\V1\OrderReadInterface" method="get"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route> - <route url="/V1/orders/:id/cancellation" method="POST"> - <service class="Magento\Sales\Service\V1\OrderCancelInterface" method="invoke"/> + <route url="/V1/orders" method="PUT"> + <service class="Magento\Sales\Service\V1\OrderReadInterface" method="search"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route> - <route url="/V1/orders" method="GET"> - <service class="Magento\Sales\Service\V1\OrderListInterface" method="invoke"/> + <route url="/V1/order/:id/status" method="GET"> + <service class="Magento\Sales\Service\V1\OrderReadInterface" method="getStatus"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route> - <route url="/V1/orders/:id/status" method="GET"> - <service class="Magento\Sales\Service\V1\OrderGetStatusInterface" method="invoke"/> + <route url="/V1/order/:id/cancel" method="POST"> + <service class="Magento\Sales\Service\V1\OrderWriteInterface" method="cancel"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route> - <route url="/V1/orders/:id/emails" method="POST"> - <service class="Magento\Sales\Service\V1\OrderNotifyUserInterface" method="invoke"/> + <route url="/V1/order/:id/email" method="POST"> + <service class="Magento\Sales\Service\V1\OrderWriteInterface" method="email"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route> - <route url="/V1/orders/:id/hold" method="POST"> - <service class="Magento\Sales\Service\V1\OrderHoldInterface" method="invoke"/> + <route url="/V1/order/:id/hold" method="POST"> + <service class="Magento\Sales\Service\V1\OrderWriteInterface" method="hold"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route> - <route url="/V1/orders/:id/unhold" method="POST"> - <service class="Magento\Sales\Service\V1\OrderUnHoldInterface" method="invoke"/> + <route url="/V1/order/:id/unhold" method="POST"> + <service class="Magento\Sales\Service\V1\OrderWriteInterface" method="unHold"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route> - <route url="/V1/orders/:id/comment" method="POST"> - <service class="Magento\Sales\Service\V1\OrderStatusHistoryAddInterface" method="invoke"/> + <route url="/V1/order/:id/comment" method="POST"> + <service class="Magento\Sales\Service\V1\OrderWriteInterface" method="statusHistoryAdd"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route> - <route url="/V1/orders/:id/comments" method="GET"> - <service class="Magento\Sales\Service\V1\OrderCommentsListInterface" method="invoke"/> + <route url="/V1/order/:id/comments" method="GET"> + <service class="Magento\Sales\Service\V1\OrderReadInterface" method="commentsList"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> </route> - <route url="/V1/orders/:id" method="PUT"> - <service class="Magento\Sales\Service\V1\OrderAddressUpdateInterface" method="invoke"/> + <route url="/V1/order/:id" method="PUT"> + <service class="Magento\Sales\Service\V1\OrderWriteInterface" method="addressUpdate"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/invoice/:id" method="GET"> + <service class="Magento\Sales\Service\V1\InvoiceReadInterface" method="get"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/invoices" method="PUT"> + <service class="Magento\Sales\Service\V1\InvoiceReadInterface" method="search"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/invoice/:id/comments" method="GET"> + <service class="Magento\Sales\Service\V1\InvoiceReadInterface" method="commentsList"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/invoice/:id/email" method="POST"> + <service class="Magento\Sales\Service\V1\InvoiceWriteInterface" method="email"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/invoice/:id/void" method="POST"> + <service class="Magento\Sales\Service\V1\InvoiceWriteInterface" method="void"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/invoice/:id/capture" method="POST"> + <service class="Magento\Sales\Service\V1\InvoiceWriteInterface" method="capture"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/invoice/comment" method="POST"> + <service class="Magento\Sales\Service\V1\InvoiceWriteInterface" method="addComment"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/invoice/" method="POST"> + <service class="Magento\Sales\Service\V1\InvoiceWriteInterface" method="create"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/creditmemo/:id/comments" method="GET"> + <service class="Magento\Sales\Service\V1\CreditmemoReadInterface" method="commentsList"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/creditmemos" method="PUT"> + <service class="Magento\Sales\Service\V1\CreditmemoReadInterface" method="search"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/creditmemo/:id" method="GET"> + <service class="Magento\Sales\Service\V1\CreditmemoReadInterface" method="get"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/creditmemo/:id" method="PUT"> + <service class="Magento\Sales\Service\V1\CreditmemoWriteInterface" method="cancel"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/creditmemo/:id/email" method="POST"> + <service class="Magento\Sales\Service\V1\CreditmemoWriteInterface" method="email"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/creditmemo/comment" method="POST"> + <service class="Magento\Sales\Service\V1\CreditmemoWriteInterface" method="addComment"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/creditmemo" method="POST"> + <service class="Magento\Sales\Service\V1\CreditmemoWriteInterface" method="create"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/shipment/:id" method="GET"> + <service class="Magento\Sales\Service\V1\ShipmentReadInterface" method="get"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/shipments" method="PUT"> + <service class="Magento\Sales\Service\V1\ShipmentReadInterface" method="search"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/shipment/:id/comments" method="GET"> + <service class="Magento\Sales\Service\V1\ShipmentReadInterface" method="commentsList"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/shipment/comment" method="POST"> + <service class="Magento\Sales\Service\V1\ShipmentWriteInterface" method="addComment"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/shipment/:id/email" method="POST"> + <service class="Magento\Sales\Service\V1\ShipmentWriteInterface" method="email"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/shipment/track" method="POST"> + <service class="Magento\Sales\Service\V1\ShipmentWriteInterface" method="addTrack"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/shipment/track/:id" method="DELETE"> + <service class="Magento\Sales\Service\V1\ShipmentWriteInterface" method="removeTrack"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/shipment/" method="POST"> + <service class="Magento\Sales\Service\V1\ShipmentWriteInterface" method="create"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/shipment/:id/label" method="GET"> + <service class="Magento\Sales\Service\V1\ShipmentReadInterface" method="getLabel"/> + <resources> + <resource ref="Magento_Sales::sales" /> + </resources> + </route> + <route url="/V1/order/" method="POST"> + <service class="Magento\Sales\Service\V1\OrderWriteInterface" method="create"/> <resources> <resource ref="Magento_Sales::sales" /> </resources> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_creditmemo_item_price.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_creditmemo_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..f123922450f0310d101b41f37d04149d347b0f01 --- /dev/null +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_creditmemo_item_price.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="creditmemo_items"> + <block class="Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn" name="column_price" template="items/price/unit.phtml" group="column"/> + <block class="Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn" name="column_subtotal" template="items/price/row.phtml" group="column"/> + <block class="Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn" name="column_total" template="items/price/total.phtml" group="column"/> + </referenceBlock> +</page> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_invoice_item_price.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_invoice_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..cfb6efa58b2112fbd4704d11c1d98d074765bc1f --- /dev/null +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_invoice_item_price.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="invoice_items"> + <block class="Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn" name="column_price" template="items/price/unit.phtml" group="column"/> + <block class="Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn" name="column_subtotal" template="items/price/row.phtml" group="column"/> + <block class="Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn" name="column_total" template="items/price/total.phtml" group="column"/> + </referenceBlock> +</page> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml index 269e8ff39a88dca52e94df3cbb1c13cd39805cd9..c1b114f7706480233457f6e9e51d6d58308eae49 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml @@ -25,6 +25,7 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_create_customer_block"/> + <update handle="sales_order_create_item_price"/> <referenceBlock name="page-title"> <action method="setTitleId"> <argument translate="true" name="id" xsi:type="string">order-header</argument> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_item_price.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..3d424396f0984ea131fca572022b5e6cb4733159 --- /dev/null +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_item_price.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <block class="Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid" name="item_unit_price" template="order/create/items/price/unit.phtml"/> + <block class="Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid" name="item_row_total" template="order/create/items/price/row.phtml"/> + <block class="Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid" name="item_row_total_with_discount" template="order/create/items/price/total.phtml"/> +</page> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_load_block_data.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_load_block_data.xml index 415af2d5febea46352963e2aa72ddf14c76b6701..a1f6934d5e643ac0ec4d29581f6e04215408f422 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_load_block_data.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_load_block_data.xml @@ -24,6 +24,7 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <update handle="sales_order_create_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Adminhtml\Order\Create\Data" template="order/create/data.phtml" name="data"> <block class="Magento\Sales\Block\Adminhtml\Order\Create\Sidebar" template="order/create/sidebar.phtml" name="sidebar"> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_load_block_items.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_load_block_items.xml index 1f61366e3045507ddc828d6c386ba9c4c2891286..bdd1f9a524c03753e58c1dd260956e3fb9e519fe 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_load_block_items.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_load_block_items.xml @@ -24,6 +24,7 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <update handle="sales_order_create_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Adminhtml\Order\Create\Items" template="order/create/items.phtml" name="items"> <block class="Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid" template="order/create/items/grid.phtml" name="items_grid"> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml index b62eddc80a2c34259b0e2cdc38f76fcd12c47e9a..3d65741190e8ecc3556725f700eb477d638b51c6 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml @@ -24,6 +24,7 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <update handle="sales_order_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create" name="sales_creditmemo_create"> <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Form" name="form" template="order/creditmemo/create/form.phtml"> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml index 94b3359c56756b6b28c2a7146de4d9368ed6ee31..30a90f8e8ca8a8dcbaa1f90f5aeb70025750d2cf 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml @@ -24,6 +24,7 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <update handle="sales_order_item_price"/> <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Items" name="order_items" template="order/creditmemo/create/items.phtml"> <block class="Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer" as="default" template="order/creditmemo/create/items/renderer/default.phtml"/> <block class="Magento\Sales\Block\Adminhtml\Items\Column\Qty" name="column_qty" template="items/column/qty.phtml" group="column"/> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_view.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_view.xml index f6eaf4b79f8f1a651f03efb5faad1a6eab65dbdf..c9b7484363c3886b88593725cbc7cb76749e0a7d 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_view.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_view.xml @@ -24,6 +24,7 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <update handle="sales_creditmemo_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\View" name="sales_creditmemo_view"> <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\View\Form" name="form" template="order/creditmemo/view/form.phtml"> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_new.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_new.xml index dca3b3ec0e1ddb8c48708f7c1c0ee8f2e4361e42..16e79c7da622109c19246da4133a6f43ca2cb017 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_new.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_new.xml @@ -24,6 +24,7 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <update handle="sales_order_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Adminhtml\Order\Invoice\Create" name="sales_invoice_create"> <block class="Magento\Sales\Block\Adminhtml\Order\Invoice\Create\Form" name="form" template="order/invoice/create/form.phtml"> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_updateqty.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_updateqty.xml index ef2a8eb5420dcf61c10b5f566e8772a379823deb..b09ec778cf5b1663ca7072867b13227747ad356a 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_updateqty.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_updateqty.xml @@ -24,6 +24,7 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <update handle="sales_order_item_price"/> <block class="Magento\Sales\Block\Adminhtml\Order\Invoice\Create\Items" name="order_items" template="order/invoice/create/items.phtml"> <block class="Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer" as="default" template="order/invoice/create/items/renderer/default.phtml"/> <block class="Magento\Sales\Block\Adminhtml\Items\Column\Qty" name="column_qty" template="items/column/qty.phtml" group="column"/> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_view.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_view.xml index 363bb8c047055fb0848774ca520ebf377c130ec1..ffd58e6da959c7ee010590fcad9e05bcc99f2983 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_view.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_view.xml @@ -24,6 +24,7 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <update handle="sales_invoice_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Adminhtml\Order\Invoice\View" name="sales_invoice_view"> <block class="Magento\Sales\Block\Adminhtml\Order\Invoice\View\Form" name="form" template="order/invoice/view/form.phtml"> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_item_price.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..d313fd7d0c9fdfb5ba87af4b3a2f24ec504f5efc --- /dev/null +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_item_price.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="order_items"> + <block class="Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn" name="column_price" template="items/price/unit.phtml" group="column"/> + <block class="Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn" name="column_subtotal" template="items/price/row.phtml" group="column"/> + <block class="Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn" name="column_total" template="items/price/total.phtml" group="column"/> + </referenceBlock> +</page> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_view.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_view.xml index 6b67d7a6f00894026c484e73f233fe9aae4a6964..cde7120971224058e3489db6fec4b38c24db46e7 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_view.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_view.xml @@ -38,6 +38,7 @@ <update handle="sales_order_shipment_grid_block"/> <update handle="sales_order_transactions_grid_block"/> <update handle="sales_order_creditmemo_grid_block"/> + <update handle="sales_order_item_price"/> <referenceContainer name="left"> <block class="Magento\Sales\Block\Adminhtml\Order\View\Tabs" name="sales_order_tabs"> <block class="Magento\Sales\Block\Adminhtml\Order\View\Tab\Info" name="order_tab_info" template="order/view/tab/info.phtml"> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/items/price/row.phtml b/app/code/Magento/Sales/view/adminhtml/templates/items/price/row.phtml new file mode 100644 index 0000000000000000000000000000000000000000..bcf5435d3824f9e91b2b2730b7421b2f2bc5330f --- /dev/null +++ b/app/code/Magento/Sales/view/adminhtml/templates/items/price/row.phtml @@ -0,0 +1,33 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn $this */ + +$_item = $this->getItem(); +?> + +<div class="price-excl-tax"> + <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> +</div> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/items/price/total.phtml b/app/code/Magento/Sales/view/adminhtml/templates/items/price/total.phtml new file mode 100644 index 0000000000000000000000000000000000000000..ed7c20dd2717439620857aefd4246602c4d3f78b --- /dev/null +++ b/app/code/Magento/Sales/view/adminhtml/templates/items/price/total.phtml @@ -0,0 +1,31 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn $this */ + +$_item = $this->getItem(); +?> + +<?php echo $this->displayPrices($this->getBaseTotalAmount($_item), $this->getTotalAmount($_item)) ?> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/items/price/unit.phtml b/app/code/Magento/Sales/view/adminhtml/templates/items/price/unit.phtml new file mode 100644 index 0000000000000000000000000000000000000000..7fe062c688ddf641a025cdf4aa32ee0627004422 --- /dev/null +++ b/app/code/Magento/Sales/view/adminhtml/templates/items/price/unit.phtml @@ -0,0 +1,32 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn $this */ + +$_item = $this->getItem(); +?> +<div class="price-excl-tax"> +<?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> +</div> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/grid.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/grid.phtml index 1552de2111e37da968d98155e1d28b1e37e01649..14910fda331127627591a73f5059953ec4321d84 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/grid.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/grid.phtml @@ -22,8 +22,6 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ -/** @var $_weeeHelper \Magento\Weee\Helper\Data */ -$_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); ?> <?php /** @@ -110,80 +108,7 @@ $_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); </td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax($this->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->formatPrice($_item->getCalculationPrice()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax($this->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->formatPrice($_incl+$_weeeHelper->getWeeeTaxInclTax($_item)); ?> - <?php else: ?> - <?php echo $this->formatPrice($_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $this->formatPrice($_incl+$_weeeHelper->getWeeeTaxInclTax($_item)); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + <?php echo $this->getItemUnitPriceHtml($_item); ?> <?php $_isCustomPrice = $this->usedCustomPriceForItem($_item) ?> <?php if($_tier = $this->getTierHtml($_item)): ?> @@ -202,80 +127,7 @@ $_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); </td> <td class="col-qty"><input name="item[<?php echo $_item->getId() ?>][qty]" class="input-text item-qty" value="<?php echo $_item->getQty()*1 ?>" maxlength="12" /></td> <td class="col-subtotal col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax($this->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->formatPrice($_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax($this->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->formatPrice($_incl+$_weeeHelper->getRowWeeeTaxInclTax($_item)); ?> - <?php else: ?> - <?php echo $this->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $this->formatPrice($_incl+$_weeeHelper->getRowWeeeTaxInclTax($_item)); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - + <?php echo $this->getItemRowTotalHtml($_item); ?> </td> <td class="col-discount col-price"> <?php echo $this->formatPrice(-$_item->getDiscountAmount()) ?><br /> @@ -283,83 +135,7 @@ $_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); <label for="item_use_discount_<?php echo $_item->getId() ?>" class="normal"><?php echo __('Apply') ?></label> </td> <td class="col-price col-row-subtotal"> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceExclTax($this->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <?php $_rowTotalWithoutDiscount = $_item->getRowTotal() - $_item->getDiscountAmount(); ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->formatPrice(max(0, $_rowTotalWithoutDiscount+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition())); ?> - <?php else: ?> - <?php echo $this->formatPrice(max(0, $_rowTotalWithoutDiscount)) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartPriceInclTax($this->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices($this->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $_item->getPriceInclTax() * $_item->getQty() - $_item->getDiscountAmount(); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales')): ?> - <?php echo $this->formatPrice($_incl+$_weeeHelper->getRowWeeeTaxInclTax($_item)); ?> - <?php else: ?> - <?php echo $this->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales')): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $this->formatPrice($_incl+$_weeeHelper->getRowWeeeTaxInclTax($_item)); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - + <?php echo $this->getItemRowTotalWithDiscountHtml($_item); ?> </td> <td class="col-actions last"> <select name="item[<?php echo $_item->getId() ?>][action]" style="width:100px;"> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/price/row.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/price/row.phtml new file mode 100644 index 0000000000000000000000000000000000000000..4d16747f82bea2dbaa280d35d8e0e347ed11e27b --- /dev/null +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/price/row.phtml @@ -0,0 +1,33 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid $this */ + +$_item = $this->getItem(); +?> + +<div class="price-excl-tax"> + <?php echo $this->formatPrice($_item->getRowTotal()) ?> +</div> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/price/total.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/price/total.phtml new file mode 100644 index 0000000000000000000000000000000000000000..f4701e720c26e14a3db61579d26e0307b180911f --- /dev/null +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/price/total.phtml @@ -0,0 +1,32 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid $this */ + +$_item = $this->getItem(); +?> + +<?php $_rowTotalWithoutDiscount = $_item->getRowTotal() - $_item->getDiscountAmount(); ?> +<?php echo $this->formatPrice(max(0, $_rowTotalWithoutDiscount)) ?> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/price/unit.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/price/unit.phtml new file mode 100644 index 0000000000000000000000000000000000000000..60e370cad5794cbecac199916168625ad60c8d6b --- /dev/null +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/price/unit.phtml @@ -0,0 +1,32 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid $this */ + +$_item = $this->getItem(); +?> +<div class="price-excl-tax"> +<?php echo $this->formatPrice($_item->getCalculationPrice()) ?> +</div> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items/renderer/default.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items/renderer/default.phtml index 97ced2df7bf6178bab8ba409cd40fad5750ee211..979e1948ab77b86b4bd79f28367f14435cc43880 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items/renderer/default.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items/renderer/default.phtml @@ -22,105 +22,13 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $this->setPriceDataObject($_item); ?> <tr> <td class="col-product"><?php echo $this->getColumnHtml($_item, 'name') ?></td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price'); ?> </td> <td class="col-ordered-qty"><?php echo $this->getColumnHtml($_item, 'qty') ?></td> <?php if ($this->canParentReturnToStock($_item)) : ?> @@ -138,106 +46,11 @@ <?php endif; ?> </td> <td class="col-subtotal"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /><span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'subtotal'); ?> </td> <td class="col-tax-amount"><?php echo $this->displayPriceAttribute('tax_amount') ?></td> <td class="col-discont"><?php echo $this->displayPriceAttribute('discount_amount') ?></td> <td class="col-total last"> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal() + $_item->getBaseTaxAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmnt() - $_item->getBaseDiscountAmount(), - $_item->getRowTotal() + $_item->getTaxAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount() - $_item->getDiscountAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total'); ?> </td> </tr> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/items/renderer/default.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/items/renderer/default.phtml index 80248c2f19c62b4e51b67cd5557dfa574b0ef310..b58a4d0e007d40a75bb2463c4ec277d0f60357e5 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/items/renderer/default.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/items/renderer/default.phtml @@ -22,210 +22,22 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $_item->setStoreId($_item->getCreditMemo()->getStoreId()) ?> <?php $this->setPriceDataObject($_item) ?> <tr> <td class="col-product"><?php echo $this->getColumnHtml($_item, 'name') ?></td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - + <?php echo $this->getColumnHtml($_item, 'price'); ?> </td> <td class="col-qty"><?php echo $_item->getQty()*1 ?></td> <td class="col-subtotal"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /><span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'subtotal'); ?> </td> <td class="col-tax"><?php echo $this->displayPriceAttribute('tax_amount') ?></td> <td class="col-discount"><?php echo $this->displayPriceAttribute('discount_amount') ?></td> <td class="col-total last"> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal() + $_item->getBaseTaxAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmnt() - $_item->getBaseDiscountAmount(), - $_item->getRowTotal() + $_item->getTaxAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount() - $_item->getDiscountAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total'); ?> </td> </tr> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items/renderer/default.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items/renderer/default.phtml index 658f396e069a34584aa55cfb8ae8447889a61e4f..8931ffc81a7cf64558a2ab4340fd3b9830a5e838 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items/renderer/default.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items/renderer/default.phtml @@ -22,103 +22,12 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $this->setPriceDataObject($_item)?> <td class="col-product"><?php echo $this->getColumnHtml($_item, 'name') ?></td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price'); ?> </td> <td class="col-qty"><?php echo $this->getColumnHtml($_item, 'qty') ?></td> <td class="col-qty-invoice"> @@ -129,100 +38,11 @@ <?php endif; ?> </td> <td class="col-subtotal"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?> - <?php endforeach; ?> - </small> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'subtotal'); ?> </td> <td class="col-tax"><?php echo $this->displayPriceAttribute('tax_amount') ?></td> <td class="col-discount"><?php echo $this->displayPriceAttribute('discount_amount') ?></td> <td class="col-total last"> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal() + $_item->getBaseTaxAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmnt() - $_item->getBaseDiscountAmount(), - $_item->getRowTotal() + $_item->getTaxAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount() - $_item->getDiscountAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total'); ?> </td> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/items/renderer/default.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/items/renderer/default.phtml index 7553d6f22c03915e37e36255a316eed21f09ec9c..1f6665e4d158bb9cbadac39c81a2d3a2441ba4c6 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/items/renderer/default.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/items/renderer/default.phtml @@ -22,206 +22,22 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $_item->setStoreId($_item->getInvoice()->getStoreId()) ?> <?php $this->setPriceDataObject($_item) ?> <tr> <td class="col-product"><?php echo $this->getColumnHtml($_item, 'name') ?></td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales')): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price'); ?> </td> <td class="col-qty"><?php echo $_item->getQty()*1 ?></td> <td class="col-subtotal"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <br /> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /><span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_item->getBaseWeeeTaxAppliedRowAmnt(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'subtotal'); ?> </td> <td class="col-tax"><?php echo $this->displayPriceAttribute('tax_amount') ?></td> <td class="col-discount"><?php echo $this->displayPriceAttribute('discount_amount') ?></td> <td class="col-total last"> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal() + $_item->getBaseTaxAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmnt() - $_item->getBaseDiscountAmount(), - $_item->getRowTotal() + $_item->getTaxAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount() - $_item->getDiscountAmount() - ) ?> + <?php echo $this->getColumnHtml($_item, 'total'); ?> </td> </tr> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/view/items/renderer/default.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/view/items/renderer/default.phtml index b4a52fb282b372c135ecbdabcc0d4e06f64967ac..3b1738f84a401a70022afa302018ee96637557e7 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/view/items/renderer/default.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/view/items/renderer/default.phtml @@ -21,10 +21,8 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ - -/** @var $_weeeHelper \Magento\Weee\Helper\Data */ -$_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); ?> +<?php /** @var $this \Magento\Sales\Block\Adminhtml\Order\View\Items\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $this->setPriceDataObject($_item) ?> <tr> @@ -40,202 +38,17 @@ $_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); <td class="col-status"><?php echo $_item->getStatus() ?></td> <td class="col-price-original"><?php echo $this->displayPriceAttribute('original_price') ?></td> <td class="col-price"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <div class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(), - $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </div> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <div class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php echo $this->displayPrices($_baseIncl+$_weeeHelper->getBaseWeeeTaxInclTax($_item), $_incl+$_weeeHelper->getWeeeTaxInclTax($_item)); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_weeeHelper->getBaseWeeeTaxInclTax($_item), $_incl+$_weeeHelper->getWeeeTaxInclTax($_item)); ?></span> - <?php endif; ?> - <?php endif; ?> - </div> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'price'); ?> </td> <td class="col-ordered-qty"><?php echo $this->getColumnHtml($_item, 'qty') ?></td> <td class="col-subtotal"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <div class="price-excl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - <?php else: ?> - <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> - <?php - echo $this->displayPrices( - $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmnt()+$_item->getBaseWeeeTaxRowDisposition(), - $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition() - ); - ?> - </span> - <?php endif; ?> - <?php endif; ?> - </div> - <?php endif; ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <div class="price-incl-tax"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> - <span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales', $_item->getStoreId())): ?> - <?php echo $this->displayPrices($_baseIncl+$_weeeHelper->getBaseRowWeeeTaxInclTax($_item), $_incl+$_weeeHelper->getRowWeeeTaxInclTax($_item)); ?> - <?php else: ?> - <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales', $_item->getStoreId())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales', $_item->getStoreId())): ?> - <br /><span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl+$_weeeHelper->getBaseRowWeeeTaxInclTax($_item), $_incl+$_weeeHelper->getRowWeeeTaxInclTax($_item)); ?></span> - <?php endif; ?> - <?php endif; ?> - </div> - <?php endif; ?> + <?php echo $this->getColumnHtml($_item, 'subtotal'); ?> </td> <td class="col-tax-amount"><?php echo $this->displayPriceAttribute('tax_amount') ?></td> <td class="col-tax-percent"><?php echo $this->displayTaxPercent($_item) ?></td> <td class="col-discont"><?php echo $this->displayPriceAttribute('discount_amount') ?></td> <td class="col-total last"> - <?php echo $this->displayPrices( - $_item->getBaseRowTotal() + $_item->getBaseTaxAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmnt() - $_item->getBaseDiscountAmount(), - $_item->getRowTotal() + $_item->getTaxAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount() - $_item->getDiscountAmount() - ); ?> + <?php echo $this->getColumnHtml($_item, 'total'); ?> </td> </tr> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_email_item_price.xml b/app/code/Magento/Sales/view/frontend/layout/sales_email_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..e4393bdedcb46695c8d5a25adc7867e08adcbe17 --- /dev/null +++ b/app/code/Magento/Sales/view/frontend/layout/sales_email_item_price.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="items"> + <block class="Magento\Sales\Block\Order\Email\Items\DefaultItems" name="item_price" template="email/items/price/row.phtml"/> + </referenceBlock> +</page> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_email_order_creditmemo_items.xml b/app/code/Magento/Sales/view/frontend/layout/sales_email_order_creditmemo_items.xml index 8381d7f455ed7462e390d0487db738d1df10742a..5fa9abb1f6920e965306430c077f97b97c61ecb1 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_email_order_creditmemo_items.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_email_order_creditmemo_items.xml @@ -25,6 +25,7 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd" label="Email Creditmemo Items List" design_abstraction="custom"> <update handle="sales_email_order_creditmemo_renderers" /> + <update handle="sales_email_item_price" /> <block class="Magento\Sales\Block\Order\Email\Creditmemo\Items" name="items" template="email/creditmemo/items.phtml"> <block class="Magento\Framework\View\Element\RendererList" name="sales.email.order.creditmemo.renderers" as="renderer.list" /> <block class="Magento\Sales\Block\Order\Creditmemo\Totals" name="creditmemo_totals" template="order/totals.phtml" cacheable="false"> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_email_order_invoice_items.xml b/app/code/Magento/Sales/view/frontend/layout/sales_email_order_invoice_items.xml index 63401ce4e6dac7c13a99809dfa79f2a51585de78..f3f3358669e6243b5f6bb374f511cd1cbc3d7e07 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_email_order_invoice_items.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_email_order_invoice_items.xml @@ -25,6 +25,7 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd" label="Email Invoice Items List" design_abstraction="custom"> <update handle="sales_email_order_invoice_renderers" /> + <update handle="sales_email_item_price" /> <block class="Magento\Sales\Block\Order\Email\Invoice\Items" name="items" template="email/invoice/items.phtml"> <block class="Magento\Framework\View\Element\RendererList" name="sales.email.order.invoice.renderers" as="renderer.list" /> <block class="Magento\Sales\Block\Order\Invoice\Totals" name="invoice_totals" template="order/totals.phtml" cacheable="false"> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_email_order_items.xml b/app/code/Magento/Sales/view/frontend/layout/sales_email_order_items.xml index c1c1f8ce53cbebe987788ece1716760230bbdeec..7b04f192cbb7df786e9ea14584c420a757ee40de 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_email_order_items.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_email_order_items.xml @@ -25,6 +25,7 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd" label="Email Order Items List" design_abstraction="custom"> <update handle="sales_email_order_renderers" /> + <update handle="sales_email_item_price" /> <block class="Magento\Sales\Block\Order\Email\Items" name="items" template="email/items.phtml" cacheable="false"> <block class="Magento\Framework\View\Element\RendererList" name="sales.email.order.renderers" as="renderer.list" /> <block class="Magento\Sales\Block\Order\Totals" name="order_totals" template="order/totals.phtml"> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_creditmemo.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_creditmemo.xml index d93dfc482bad56e9bd56528d26544b41fd6a767c..36ab59e11d20831fc407a5ee745b894e4f20ea81 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_creditmemo.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_creditmemo.xml @@ -25,6 +25,7 @@ --> <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_creditmemo_renderers" /> + <update handle="sales_order_item_price" /> <referenceContainer name="content"> <block class="Magento\Sales\Block\Order\Info" as="info" name="sales.order.info"> <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_invoice.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_invoice.xml index 878019f482ecc125ea8bdc63f4b1af39fac9068f..c845e7382d4cd2780df1ff6b561ce490d24c7372 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_invoice.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_invoice.xml @@ -25,6 +25,7 @@ --> <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_invoice_renderers" /> + <update handle="sales_order_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Order\Info" as="info" name="sales.order.info"> <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_print.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_print.xml index 145d7594337272df4f045fba6fa6486b0b26041b..f077a8e1d63a6ed1e3931f6f403cddb778517f20 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_print.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_print.xml @@ -25,6 +25,7 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_print_renderers" /> + <update handle="sales_order_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Order\PrintShipment" name="sales.order.print" template="order/print.phtml"> <block class="Magento\Framework\View\Element\RendererList" name="sales.order.print.renderers" as="renderer.list" /> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_printcreditmemo.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_printcreditmemo.xml index bdf4a55bf5743a0e4b0af0342cc56d4489c6371e..fb8835c15f0ee933841db5fe7bcbb444468e4a0e 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_printcreditmemo.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_printcreditmemo.xml @@ -25,6 +25,7 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_print_creditmemo_renderers" /> + <update handle="sales_order_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Order\PrintOrder\Creditmemo" name="sales.order.print.creditmemo" template="order/print/creditmemo.phtml"> <block class="Magento\Framework\View\Element\RendererList" name="sales.order.print.creditmemo.renderers" as="renderer.list"/> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_printinvoice.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_printinvoice.xml index e85e2125e27b48041b3babb965a9e6e111c208c2..2344eb29be2cb85082e751538e76aa2903c81e6e 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_printinvoice.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_printinvoice.xml @@ -25,6 +25,7 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_print_invoice_renderers" /> + <update handle="sales_order_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Order\PrintOrder\Invoice" name="sales.order.print.invoice" template="order/print/invoice.phtml"> <block class="Magento\Framework\View\Element\RendererList" name="sales.order.print.invoice.renderers" as="renderer.list" /> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_view.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_view.xml index 822d7f48a35d8a760fb977b075e47645a576207d..11efb4756469f2bab1845bb1088fdd10a96cab93 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_view.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_view.xml @@ -25,6 +25,7 @@ --> <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_item_renderers"/> + <update handle="sales_order_item_price"/> <referenceContainer name="page.main.title"> <container name="order.actions.container" htmlTag="div" htmlClass="actions-toolbar order-actions-toolbar"> <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_creditmemo.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_creditmemo.xml index d9156d16f3acceb70fe21af8f7a08f3b76b5772d..0b89a18b9db13dafe8a4285ae0642d105118a581 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_order_creditmemo.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_creditmemo.xml @@ -26,6 +26,7 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_creditmemo_renderers" /> <update handle="customer_account"/> + <update handle="sales_order_item_price"/> <referenceContainer name="page.main.title"> <block class="Magento\Sales\Block\Order\Info" name="order.status" template="order/order_status.phtml" /> <block class="Magento\Sales\Block\Order\Info" name="order.date" template="order/order_date.phtml" /> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_invoice.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_invoice.xml index e10f531f7bc790e5834f791652de75645880633b..50ba2bf8de093457578f332b8d99e43873b85b7f 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_order_invoice.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_invoice.xml @@ -26,6 +26,7 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="customer_account"/> <update handle="sales_order_invoice_renderers" /> + <update handle="sales_order_item_price"/> <referenceContainer name="page.main.title"> <block class="Magento\Sales\Block\Order\Info" name="order.status" template="order/order_status.phtml" /> <block class="Magento\Sales\Block\Order\Info" name="order.date" template="order/order_date.phtml" /> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_item_price.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..b3a3d1ce78e4d90990591816fcefb7eeb0cc7198 --- /dev/null +++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_item_price.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" name="item_unit_price" template="items/price/unit.phtml"/> + <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" name="item_row_total" template="items/price/row.phtml"/> + <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" name="item_row_total_after_discount" template="items/price/total_after_discount.phtml"/> +</page> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_print.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_print.xml index 8bf5e903d19325748cb5b9089a333245b17b8619..ee9cab54d5bc855102ae6d5c0769553ad8c4c567 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_order_print.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_print.xml @@ -25,6 +25,7 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_print_renderers" /> + <update handle="sales_order_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Order\PrintShipment" name="sales.order.print" template="order/print.phtml"> <block class="Magento\Framework\View\Element\RendererList" name="sales.order.print.renderers" as="renderer.list" /> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_printcreditmemo.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_printcreditmemo.xml index 210ff8f7bb45d99c2d1566cf6efb8068c26fa619..9c33b757320ee29308da697e11308548318b7afb 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_order_printcreditmemo.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_printcreditmemo.xml @@ -25,6 +25,7 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_print_creditmemo_renderers" /> + <update handle="sales_order_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Order\PrintOrder\Creditmemo" name="sales.order.print.creditmemo" template="order/print/creditmemo.phtml"> <block class="Magento\Framework\View\Element\RendererList" name="sales.order.print.creditmemo.renderers" as="renderer.list"/> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_printinvoice.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_printinvoice.xml index 99b5554448b385eab5d0d1cbc0f52014a2c4641c..5e4834b8d788ba60c350420a85eeaed7d6563abd 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_order_printinvoice.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_printinvoice.xml @@ -25,6 +25,7 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="sales_order_print_invoice_renderers" /> + <update handle="sales_order_item_price"/> <referenceContainer name="content"> <block class="Magento\Sales\Block\Order\PrintOrder\Invoice" name="sales.order.print.invoice" template="order/print/invoice.phtml"> <block class="Magento\Framework\View\Element\RendererList" name="sales.order.print.invoice.renderers" as="renderer.list" /> diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_view.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_view.xml index d327227a9219e7a1a14e805b1358b9336f3f2fbc..22fe53c376d9543128913e74144a87a27bef3025 100644 --- a/app/code/Magento/Sales/view/frontend/layout/sales_order_view.xml +++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_view.xml @@ -26,6 +26,7 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <update handle="customer_account"/> <update handle="sales_order_item_renderers"/> + <update handle="sales_order_item_price"/> <referenceContainer name="page.main.title"> <block class="Magento\Sales\Block\Order\Info" name="order.status" template="order/order_status.phtml" /> <block class="Magento\Sales\Block\Order\Info" name="order.date" template="order/order_date.phtml" /> diff --git a/app/code/Magento/Sales/view/frontend/templates/email/items/creditmemo/default.phtml b/app/code/Magento/Sales/view/frontend/templates/email/items/creditmemo/default.phtml index e2209100409bf421e709081e324b34f17ec3a5b0..394dd89c4a62df2953b3d921bb12317dd9cde596 100644 --- a/app/code/Magento/Sales/view/frontend/templates/email/items/creditmemo/default.phtml +++ b/app/code/Magento/Sales/view/frontend/templates/email/items/creditmemo/default.phtml @@ -44,79 +44,6 @@ <td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $this->escapeHtml($this->getSku($_item)) ?></td> <td align="center" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $_item->getQty()*1 ?></td> <td align="right" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $_order->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + <?php echo $this->getItemPrice($_item); ?> </td> </tr> diff --git a/app/code/Magento/Sales/view/frontend/templates/email/items/invoice/default.phtml b/app/code/Magento/Sales/view/frontend/templates/email/items/invoice/default.phtml index e2209100409bf421e709081e324b34f17ec3a5b0..394dd89c4a62df2953b3d921bb12317dd9cde596 100644 --- a/app/code/Magento/Sales/view/frontend/templates/email/items/invoice/default.phtml +++ b/app/code/Magento/Sales/view/frontend/templates/email/items/invoice/default.phtml @@ -44,79 +44,6 @@ <td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $this->escapeHtml($this->getSku($_item)) ?></td> <td align="center" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $_item->getQty()*1 ?></td> <td align="right" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $_order->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + <?php echo $this->getItemPrice($_item); ?> </td> </tr> diff --git a/app/code/Magento/Sales/view/frontend/templates/email/items/order/default.phtml b/app/code/Magento/Sales/view/frontend/templates/email/items/order/default.phtml index 1c7db4f5e58206f8cb33871e9e0d1b879870dd42..27a84e0b1a0b4967f22a407539e973da25fde72f 100644 --- a/app/code/Magento/Sales/view/frontend/templates/email/items/order/default.phtml +++ b/app/code/Magento/Sales/view/frontend/templates/email/items/order/default.phtml @@ -22,7 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ -/** @var $this \Magento\Sales\Block\Order\Email\Items_Order_Default */ +/** @var $this \Magento\Sales\Block\Order\Email\Items\DefaultItems */ /** @var $_item \Magento\Sales\Model\Order\Item */ $_item = $this->getItem(); @@ -50,80 +50,7 @@ $_order = $_item->getOrder(); <td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $this->escapeHtml($this->getSku($_item)) ?></td> <td align="center" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $_item->getQtyOrdered()*1 ?></td> <td align="right" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <span class="label"><?php echo __('Excl. Tax'); ?>:</span> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_item->getRowTotal()) ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <br /> - <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $_order->formatPrice($_item->getCalculationPrice()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> - - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax($_order->getStore()) || $this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($_order->getStore())): ?> - <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> - <?php endif; ?> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'email', $_order->getStore())): ?> - <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $_order->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> - <br /> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></small></span><br /> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'email', $_order->getStore())): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> - <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> - <?php endforeach; ?> - </small> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'email', $_order->getStore())): ?> - <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $_order->formatPrice($_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></span> - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + <?php echo $this->getItemPrice($_item); ?> </td> </tr> <?php if ($_item->getGiftMessageId() && $_giftMessage = $this->helper('Magento\GiftMessage\Helper\Message')->getGiftMessage($_item->getGiftMessageId())): ?> diff --git a/app/code/Magento/Sales/view/frontend/templates/email/items/price/row.phtml b/app/code/Magento/Sales/view/frontend/templates/email/items/price/row.phtml new file mode 100644 index 0000000000000000000000000000000000000000..bb18a4c7a4209d06a766c7e4c7f4a0c9413abf04 --- /dev/null +++ b/app/code/Magento/Sales/view/frontend/templates/email/items/price/row.phtml @@ -0,0 +1,34 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Sales\Block\Order\Email\Items\DefaultItems $this */ + +$_item = $this->getItem(); + +/** @var \Magento\Sales\Model\Order $_order */ +$_order = $_item->getOrder(); +?> + +<?php echo $_order->formatPrice($_item->getRowTotal()) ?> diff --git a/app/code/Magento/Sales/view/frontend/templates/items/price/row.phtml b/app/code/Magento/Sales/view/frontend/templates/items/price/row.phtml new file mode 100644 index 0000000000000000000000000000000000000000..7768e182d3a37ab78978168553fa035d38ee6785 --- /dev/null +++ b/app/code/Magento/Sales/view/frontend/templates/items/price/row.phtml @@ -0,0 +1,32 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/** @var \Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer $this */ +$_item = $this->getItem(); +?> +<span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> + <span class="cart-price"> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> + </span> +</span> diff --git a/app/code/Magento/Sales/view/frontend/templates/items/price/total_after_discount.phtml b/app/code/Magento/Sales/view/frontend/templates/items/price/total_after_discount.phtml new file mode 100644 index 0000000000000000000000000000000000000000..4532b9f1f311affd50225358818d514582418e66 --- /dev/null +++ b/app/code/Magento/Sales/view/frontend/templates/items/price/total_after_discount.phtml @@ -0,0 +1,29 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/** @var \Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer $this */ +$_item = $this->getItem(); +?> +<?php $_order = $this->getItem()->getOrderItem()->getOrder() ?> +<?php echo $_order->formatPrice($this->getTotalAmount($_item))?> \ No newline at end of file diff --git a/app/code/Magento/Sales/view/frontend/templates/items/price/unit.phtml b/app/code/Magento/Sales/view/frontend/templates/items/price/unit.phtml new file mode 100644 index 0000000000000000000000000000000000000000..3ee30e954016943a4abd88362d529c16eb1ee379 --- /dev/null +++ b/app/code/Magento/Sales/view/frontend/templates/items/price/unit.phtml @@ -0,0 +1,32 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/** @var \Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer $this */ +$_item = $this->getItem(); +?> +<span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> + <span class="cart-price"> + <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> + </span> +</span> diff --git a/app/code/Magento/Sales/view/frontend/templates/order/creditmemo/items/renderer/default.phtml b/app/code/Magento/Sales/view/frontend/templates/order/creditmemo/items/renderer/default.phtml index 2728e71d8e523bdd40a606c57ae5913d1429a49b..3ac897b47902e7920d06216b8f74f0a0525bc6cb 100644 --- a/app/code/Magento/Sales/view/frontend/templates/order/creditmemo/items/renderer/default.phtml +++ b/app/code/Magento/Sales/view/frontend/templates/order/creditmemo/items/renderer/default.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $_order = $this->getItem()->getOrderItem()->getOrder() ?> <tr id="order-item-row-<?php echo $_item->getId() ?>"> @@ -75,174 +76,14 @@ </td> <td class="col sku" data-th="<?php echo $this->escapeHtml(__('SKU')); ?>"><?php echo $this->prepareSku($this->getSku()) ?></td> <td class="col price" data-th="<?php echo $this->escapeHtml(__('Price')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}' - <span class="weee" data-th="<?php echo __('Total incl. tax'); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemPriceHtml(); ?> </td> <td class="col qty" data-th="<?php echo $this->escapeHtml(__('Qty')); ?>"><?php echo $_item->getQty()*1 ?></td> <td class="col subtotal" data-th="<?php echo $this->escapeHtml(__('Subtotal')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $tax['title']; ?>: <?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemRowTotalHtml(); ?> </td> <td class="col discount" data-th="<?php echo $this->escapeHtml(__('Discount Amount')); ?>"><?php echo $_order->formatPrice(-$_item->getDiscountAmount()) ?></td> <td class="cot total" data-th="<?php echo $this->escapeHtml(__('Row Total')); ?>"> - <?php echo $_order->formatPrice($_item->getRowTotal()-$_item->getDiscountAmount()+$_item->getTaxAmount()+$_item->getWeeeTaxAppliedRowAmount()) ?> + <?php echo $this->getItemRowTotalAfterDiscountHtml(); ?> </td> </tr> diff --git a/app/code/Magento/Sales/view/frontend/templates/order/invoice/items/renderer/default.phtml b/app/code/Magento/Sales/view/frontend/templates/order/invoice/items/renderer/default.phtml index d303068af260e321312b19ae0bf27819b66b04f5..49e3618ecbfab2c57e19113b5872422a3b1e3a96 100644 --- a/app/code/Magento/Sales/view/frontend/templates/order/invoice/items/renderer/default.phtml +++ b/app/code/Magento/Sales/view/frontend/templates/order/invoice/items/renderer/default.phtml @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> +<?php /** @var $this \Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer */ ?> <?php $_item = $this->getItem() ?> <?php $_order = $this->getItem()->getOrderItem()->getOrder() ?> <tr id="order-item-row-<?php echo $_item->getId() ?>"> @@ -66,175 +67,12 @@ </td> <td class="col sku" data-th="<?php echo $this->escapeHtml(__('SKU')); ?>"><?php echo $this->prepareSku($this->getSku()) ?></td> <td class="col price" data-th="<?php echo $this->escapeHtml(__('Price')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}' - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}' - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemPriceHtml(); ?> </td> <td class="col qty" data-th="<?php echo $this->escapeHtml(__('Qty Invoiced')); ?>"> <span class="qty summary"><?php echo $_item->getQty()*1 ?></span> </td> <td class="col subtotal" data-th="<?php echo $this->escapeHtml(__('Subtotal')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <small> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - </small> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$this->getItem()->getWeeeTaxAppliedRowAmount()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><<?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemRowTotalHtml(); ?> </td> </tr> diff --git a/app/code/Magento/Sales/view/frontend/templates/order/items/renderer/default.phtml b/app/code/Magento/Sales/view/frontend/templates/order/items/renderer/default.phtml index f4e97fb4766c862eea365e7112d00ce8ee2935be..92beeaf1a0686c32aa2a54d05865d59448f3ea95 100644 --- a/app/code/Magento/Sales/view/frontend/templates/order/items/renderer/default.phtml +++ b/app/code/Magento/Sales/view/frontend/templates/order/items/renderer/default.phtml @@ -22,9 +22,8 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ +/** @var $this \Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer */ $_item = $this->getItem(); -/** @var $_weeeHelper \Magento\Weee\Helper\Data */ -$_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); ?> <tr id="order-item-row-<?php echo $_item->getId() ?>"> <td class="col name" data-th="<?php echo $this->escapeHtml(__('Product Name')); ?>"> @@ -71,87 +70,8 @@ $_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); </td> <td class="col sku" data-th="<?php echo $this->escapeHtml(__('SKU')); ?>"><?php echo $this->prepareSku($this->getSku()) ?></td> <td class="col price" data-th="<?php echo $this->escapeHtml(__('Price')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$_weeeHelper->getWeeeTaxInclTax($this->getItem())); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxDisposition()) ?> - <?php endif; ?> - </span> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="unit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#unit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}' - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$_weeeHelper->getWeeeTaxInclTax($this->getItem())); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['amount']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#eunit-item-tax-details<?php echo $this->getItem()->getId(); ?>"}' - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getPrice()+$this->getItem()->getWeeeTaxAppliedAmount()+$this->getItem()->getWeeeTaxDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemPriceHtml(); ?> </td> <td class="col qty" data-th="<?php echo $this->escapeHtml(__('Qty')); ?>"> <ul class="items-qty"> @@ -182,85 +102,7 @@ $_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); </ul> </td> <td class="col subtotal" data-th="<?php echo $this->escapeHtml(__('Subtotal')); ?>"> - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> - <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($this->getItem()); ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($_incl+$_weeeHelper->getRowWeeeTaxInclTax($this->getItem())); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($_incl-$this->getItem()->getWeeeTaxRowDisposition()) ?> - <?php endif; ?> - </span> - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount_incl_tax']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#subtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total incl. tax')); ?>"><?php echo $this->getOrder()->formatPrice($_incl+$_weeeHelper->getRowWeeeTaxInclTax($this->getItem())); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> - - <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> - <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <?php else: ?> - <span class="cart-price"> - <?php endif; ?> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(0, 1, 4), 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?> - <?php else: ?> - <?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()) ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem())): ?> - <span class="cart-tax-info" id="esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>" style="display: none;"> - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php elseif ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($this->getItem()) as $tax): ?> - <span class="weee" data-th="<?php echo $tax['title']; ?>"><?php echo $this->getOrder()->formatPrice($tax['row_amount']); ?></span> - <?php endforeach; ?> - <?php endif; ?> - </span> - - <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2, 'sales') && (float)$this->getItem()->getWeeeTaxAppliedAmount()): ?> - <span class="cart-tax-total" data-tax-toggle='{"itemTaxId" : "#esubtotal-item-tax-details<?php echo $this->getItem()->getId(); ?>"}'> - <span class="weee" data-th="<?php echo $this->escapeHtml(__('Total')); ?>"><?php echo $this->getOrder()->formatPrice($this->getItem()->getRowTotal()+$this->getItem()->getWeeeTaxAppliedRowAmount()+$this->getItem()->getWeeeTaxRowDisposition()); ?></span> - </span> - <?php endif; ?> - <?php endif; ?> - </span> - <?php endif; ?> + <?php echo $this->getItemRowTotalHtml(); ?> </td> <?php /* if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> diff --git a/app/code/Magento/SalesRule/composer.json b/app/code/Magento/SalesRule/composer.json index 2d689887bea64c397045ce7691578d7c57297fb5..3e3543505314aaf8ae62c5f5f466e9b02c918ead 100644 --- a/app/code/Magento/SalesRule/composer.json +++ b/app/code/Magento/SalesRule/composer.json @@ -3,26 +3,26 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-rule": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-shipping": "0.1.0-alpha92", - "magento/module-payment": "0.1.0-alpha92", - "magento/module-reports": "0.1.0-alpha92", - "magento/module-catalog-rule": "0.1.0-alpha92", - "magento/module-widget": "0.1.0-alpha92", - "magento/module-cron": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-rule": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-shipping": "0.1.0-alpha93", + "magento/module-payment": "0.1.0-alpha93", + "magento/module-reports": "0.1.0-alpha93", + "magento/module-catalog-rule": "0.1.0-alpha93", + "magento/module-widget": "0.1.0-alpha93", + "magento/module-cron": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Sendfriend/Controller/Product.php b/app/code/Magento/Sendfriend/Controller/Product.php index 5d0018629e6c1ebd935d569371e15fdeefda6c16..87092329b30c4480158c9e26d02cf851b20afed5 100644 --- a/app/code/Magento/Sendfriend/Controller/Product.php +++ b/app/code/Magento/Sendfriend/Controller/Product.php @@ -45,18 +45,26 @@ class Product extends \Magento\Framework\App\Action\Action */ protected $_formKeyValidator; + /** + * @var \Magento\Sendfriend\Model\Sendfriend + */ + protected $sendFriend; + /** * @param \Magento\Framework\App\Action\Context $context * @param \Magento\Framework\Registry $coreRegistry * @param \Magento\Core\App\Action\FormKeyValidator $formKeyValidator + * @param \Magento\Sendfriend\Model\Sendfriend $sendFriend */ public function __construct( \Magento\Framework\App\Action\Context $context, \Magento\Framework\Registry $coreRegistry, - \Magento\Core\App\Action\FormKeyValidator $formKeyValidator + \Magento\Core\App\Action\FormKeyValidator $formKeyValidator, + \Magento\Sendfriend\Model\Sendfriend $sendFriend ) { $this->_coreRegistry = $coreRegistry; $this->_formKeyValidator = $formKeyValidator; + $this->sendFriend = $sendFriend; parent::__construct($context); } @@ -127,23 +135,7 @@ class Product extends \Magento\Framework\App\Action\Action */ protected function _initSendToFriendModel() { - /** @var \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress */ - $remoteAddress = $this->_objectManager->get('Magento\Framework\HTTP\PhpEnvironment\RemoteAddress'); - - /** @var \Magento\Framework\Stdlib\Cookie $cookie */ - $cookie = $this->_objectManager->get('Magento\Framework\Stdlib\Cookie'); - - /** @var \Magento\Store\Model\StoreManagerInterface $store */ - $store = $this->_objectManager->get('Magento\Store\Model\StoreManagerInterface'); - - /** @var \Magento\Sendfriend\Model\Sendfriend $model */ - $model = $this->_objectManager->create('Magento\Sendfriend\Model\Sendfriend'); - $model->setRemoteAddr($remoteAddress->getRemoteAddress(true)); - $model->setCookie($cookie); - $model->setWebsiteId($store->getStore()->getWebsiteId()); - - $this->_coreRegistry->register('send_to_friend_model', $model); - - return $model; + $this->sendFriend->register(); + return $this->sendFriend; } } diff --git a/app/code/Magento/Sendfriend/Model/Sendfriend.php b/app/code/Magento/Sendfriend/Model/Sendfriend.php index dfa8addb32410d18c826a0eb3e0022a3f2586800..42eb89a6d69c44cdb9905183662ff7d2cf287e91 100644 --- a/app/code/Magento/Sendfriend/Model/Sendfriend.php +++ b/app/code/Magento/Sendfriend/Model/Sendfriend.php @@ -115,6 +115,16 @@ class Sendfriend extends \Magento\Framework\Model\AbstractModel */ protected $inlineTranslation; + /** + * @var \Magento\Framework\Stdlib\CookieManager + */ + protected $cookieManager; + + /** + * @var \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress + */ + protected $remoteAddress; + /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry @@ -123,6 +133,8 @@ class Sendfriend extends \Magento\Framework\Model\AbstractModel * @param \Magento\Catalog\Helper\Image $catalogImage * @param \Magento\Sendfriend\Helper\Data $sendfriendData * @param \Magento\Framework\Escaper $escaper + * @param \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager * @param \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation * @param \Magento\Framework\Model\Resource\AbstractResource $resource * @param \Magento\Framework\Data\Collection\Db $resourceCollection @@ -136,16 +148,21 @@ class Sendfriend extends \Magento\Framework\Model\AbstractModel \Magento\Catalog\Helper\Image $catalogImage, \Magento\Sendfriend\Helper\Data $sendfriendData, \Magento\Framework\Escaper $escaper, + \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress, + \Magento\Framework\Stdlib\CookieManager $cookieManager, \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation, \Magento\Framework\Model\Resource\AbstractResource $resource = null, \Magento\Framework\Data\Collection\Db $resourceCollection = null, array $data = array() ) { + $this->_storeManager = $storeManager; $this->_transportBuilder = $transportBuilder; $this->_catalogImage = $catalogImage; $this->_sendfriendData = $sendfriendData; $this->_escaper = $escaper; + $this->remoteAddress = $remoteAddress; + $this->cookieManager = $cookieManager; $this->inlineTranslation = $inlineTranslation; parent::__construct($context, $registry, $resource, $resourceCollection, $data); } @@ -265,76 +282,6 @@ class Sendfriend extends \Magento\Framework\Model\AbstractModel return $errors; } - /** - * Set cookie instance - * - * @param \Magento\Framework\Stdlib\Cookie $cookie - * @return $this - */ - public function setCookie($cookie) - { - return $this->setData('_cookie', $cookie); - } - - /** - * Retrieve Cookie instance - * - * @throws \Magento\Framework\Model\Exception - * @return \Magento\Framework\Stdlib\Cookie - */ - public function getCookie() - { - $cookie = $this->_getData('_cookie'); - if (!$cookie instanceof \Magento\Framework\Stdlib\Cookie) { - throw new \Magento\Framework\Model\Exception(__('Please define a correct Cookie instance.')); - } - return $cookie; - } - - /** - * Set Visitor Remote Address - * - * @param int $ipAddr the IP address on Long Format - * @return $this - */ - public function setRemoteAddr($ipAddr) - { - $this->setData('_remote_addr', $ipAddr); - return $this; - } - - /** - * Retrieve Visitor Remote Address - * - * @return int - */ - public function getRemoteAddr() - { - return $this->_getData('_remote_addr'); - } - - /** - * Set Website Id - * - * @param int $id - website id - * @return $this - */ - public function setWebsiteId($id) - { - $this->setData('_website_id', $id); - return $this; - } - - /** - * Retrieve Website Id - * - * @return int - */ - public function getWebsiteId() - { - return $this->_getData('_website_id'); - } - /** * Set Recipients * @@ -372,7 +319,10 @@ class Sendfriend extends \Magento\Framework\Model\AbstractModel $emails = array_keys($emails); } - return $this->setData('_recipients', new \Magento\Framework\Object(array('emails' => $emails, 'names' => $names))); + return $this->setData( + '_recipients', + new \Magento\Framework\Object(array('emails' => $emails, 'names' => $names)) + ); } /** @@ -533,14 +483,14 @@ class Sendfriend extends \Magento\Framework\Model\AbstractModel */ protected function _sentCountByCookies($increment = false) { - $cookie = $this->_sendfriendData->getCookieName(); + $cookieName = $this->_sendfriendData->getCookieName(); $time = time(); $newTimes = array(); - if (isset($this->_lastCookieValue[$cookie])) { - $oldTimes = $this->_lastCookieValue[$cookie]; + if (isset($this->_lastCookieValue[$cookieName])) { + $oldTimes = $this->_lastCookieValue[$cookieName]; } else { - $oldTimes = $this->getCookie()->get($cookie); + $oldTimes = $this->cookieManager->getCookie($cookieName); } if ($oldTimes) { @@ -556,8 +506,8 @@ class Sendfriend extends \Magento\Framework\Model\AbstractModel if ($increment) { $newTimes[] = $time; $newValue = implode(',', $newTimes); - $this->getCookie()->set($cookie, $newValue); - $this->_lastCookieValue[$cookie] = $newValue; + $this->cookieManager->setPublicCookie($cookieName, $newValue); + $this->_lastCookieValue[$cookieName] = $newValue; } return count($newTimes); @@ -573,16 +523,21 @@ class Sendfriend extends \Magento\Framework\Model\AbstractModel { $time = time(); $period = $this->_sendfriendData->getPeriod(); - $websiteId = $this->getWebsiteId(); + $websiteId = $this->_storeManager->getStore()->getWebsiteId(); if ($increment) { // delete expired logs $this->_getResource()->deleteLogsBefore($time - $period); // add new item - $this->_getResource()->addSendItem($this->getRemoteAddr(), $time, $websiteId); + $this->_getResource()->addSendItem($this->remoteAddress->getRemoteAddress(true), $time, $websiteId); } - return $this->_getResource()->getSendCount($this, $this->getRemoteAddr(), time() - $period, $websiteId); + return $this->_getResource()->getSendCount( + $this, + $this->remoteAddress->getRemoteAddress(true), + time() - $period, + $websiteId + ); } /** diff --git a/app/code/Magento/Sendfriend/composer.json b/app/code/Magento/Sendfriend/composer.json index 1bfb4e8f4be8561a776f78ffb4eaf13dca59778e..7c13ee863d2c66eab36261351ef406e01d1f3b95 100644 --- a/app/code/Magento/Sendfriend/composer.json +++ b/app/code/Magento/Sendfriend/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php index 6807412a6a51ea9aab1358e8293f9e00683055a5..93d4e3f6f37df79b502927fc8db94758a976d341 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php @@ -76,7 +76,11 @@ class AddComment extends \Magento\Backend\App\Action throw new \Magento\Framework\Model\Exception(__("The comment text field cannot be empty.")); } $this->_title->add(__('Shipments')); - $shipment = $this->shipmentLoader->load($this->_request); + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($this->getRequest()->getParam('shipment')); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $shipment = $this->shipmentLoader->load(); $shipment->addComment( $data['comment'], isset($data['is_customer_notified']), @@ -89,9 +93,9 @@ class AddComment extends \Magento\Backend\App\Action $this->_view->loadLayout(false); $response = $this->_view->getLayout()->getBlock('shipment_comments')->toHtml(); } catch (\Magento\Framework\Model\Exception $e) { - $response = array('error' => true, 'message' => $e->getMessage()); + $response = ['error' => true, 'message' => $e->getMessage()]; } catch (\Exception $e) { - $response = array('error' => true, 'message' => __('Cannot add new comment.')); + $response = ['error' => true, 'message' => __('Cannot add new comment.')]; } if (is_array($response)) { $response = $this->_objectManager->get('Magento\Core\Helper\Data')->jsonEncode($response); diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php index deef6bb787871c27ff48743c4e6e710792b01e70..6e2302f194b8faf05590c1c4685bd6e0a3d4a2a6 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php @@ -72,7 +72,11 @@ class AddTrack extends \Magento\Backend\App\Action throw new \Magento\Framework\Model\Exception(__('Please enter a tracking number.')); } $this->_title->add(__('Shipments')); - $shipment = $this->shipmentLoader->load($this->_request); + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($this->getRequest()->getParam('shipment')); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $shipment = $this->shipmentLoader->load(); if ($shipment) { $track = $this->_objectManager->create( 'Magento\Sales\Model\Order\Shipment\Track' diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php index 11903806c8aae49f13d527cb1c60da32a8a284a4..69542e1f484e34df21d89174035e1d99dc56684f 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php @@ -70,12 +70,15 @@ class CreateLabel extends \Magento\Backend\App\Action { $response = new \Magento\Framework\Object(); try { - $shipment = $this->shipmentLoader->load($this->_request); - if ($this->labelGenerator->create($shipment, $this->_request)) { - $shipment->save(); - $this->messageManager->addSuccess(__('You created the shipping label.')); - $response->setOk(true); - } + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($this->getRequest()->getParam('shipment')); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $shipment = $this->shipmentLoader->load(); + $this->labelGenerator->create($shipment, $this->_request); + $shipment->save(); + $this->messageManager->addSuccess(__('You created the shipping label.')); + $response->setOk(true); } catch (\Magento\Framework\Model\Exception $e) { $response->setError(true); $response->setMessage($e->getMessage()); diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php index 62af1f588270dc83b7b6642d710a6c836dbd5e0a..2636b965d65f1d6da2fcb64838d3b234915483d0 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php @@ -25,8 +25,12 @@ namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; use \Magento\Backend\App\Action; -use \Magento\Sales\Model\Order\Email\Sender\ShipmentSender; +/** + * Class Email + * + * @package Magento\Shipping\Controller\Adminhtml\Order\Shipment + */ class Email extends \Magento\Backend\App\Action { /** @@ -34,27 +38,21 @@ class Email extends \Magento\Backend\App\Action */ protected $shipmentLoader; - /** - * @var ShipmentSender - */ - protected $shipmentSender; - /** * @param Action\Context $context * @param \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader $shipmentLoader - * @param ShipmentSender $shipmentSender */ public function __construct( Action\Context $context, - \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader $shipmentLoader, - ShipmentSender $shipmentSender + \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader $shipmentLoader ) { $this->shipmentLoader = $shipmentLoader; - $this->shipmentSender = $shipmentSender; parent::__construct($context); } /** + * Check if email sending is allowed for the current user + * * @return bool */ protected function _isAllowed() @@ -70,21 +68,15 @@ class Email extends \Magento\Backend\App\Action public function execute() { try { - $shipment = $this->shipmentLoader->load($this->_request); + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($this->getRequest()->getParam('shipment')); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $shipment = $this->shipmentLoader->load(); if ($shipment) { - $this->shipmentSender->send($shipment, true); + $this->_objectManager->create('Magento\Shipping\Model\ShipmentNotifier') + ->notify($shipment); $shipment->save(); - - $historyItem = $this->_objectManager->create( - 'Magento\Sales\Model\Resource\Order\Status\History\Collection' - )->getUnnotifiedForInstance( - $shipment, - \Magento\Sales\Model\Order\Shipment::HISTORY_ENTITY_NAME - ); - if ($historyItem) { - $historyItem->setIsCustomerNotified(1); - $historyItem->save(); - } $this->messageManager->addSuccess(__('You sent the shipment.')); } } catch (\Magento\Framework\Model\Exception $e) { @@ -92,6 +84,6 @@ class Email extends \Magento\Backend\App\Action } catch (\Exception $e) { $this->messageManager->addError(__('Cannot send shipment information.')); } - $this->_redirect('*/*/view', array('shipment_id' => $this->getRequest()->getParam('shipment_id'))); + $this->_redirect('*/*/view', ['shipment_id' => $this->getRequest()->getParam('shipment_id')]); } } diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php index bd4a7838abd04d99c4ec787976e79dc46077d352..ce1460e6f767f171ba391fe455f5ed1b31e8eddc 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php @@ -61,7 +61,11 @@ class GetShippingItemsGrid extends \Magento\Backend\App\Action */ public function execute() { - $this->shipmentLoader->load($this->_request); + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($this->getRequest()->getParam('shipment')); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $this->shipmentLoader->load(); return $this->getResponse()->setBody( $this->_view->getLayout()->createBlock( 'Magento\Shipping\Block\Adminhtml\Order\Packaging\Grid' diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php index 03698fe75c8fb93ab9b15fc558a8aad1ee398e7a..295ee0caba3b4ed37725cbcb4c7cecae366640a9 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php @@ -61,7 +61,11 @@ class NewAction extends \Magento\Backend\App\Action public function execute() { $this->_title->add(__('Shipments')); - $shipment = $this->shipmentLoader->load($this->_request); + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($this->getRequest()->getParam('shipment')); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $shipment = $this->shipmentLoader->load(); if ($shipment) { $this->_title->add(__('New Shipment')); diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php index 898bcb4346525b8b56d140c74fef20170148bcc1..f0ca7adc66b7bb4910cf3d96ec3af045dd1ca7a4 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php @@ -78,7 +78,11 @@ class PrintLabel extends \Magento\Backend\App\Action public function execute() { try { - $shipment = $this->shipmentLoader->load($this->_request); + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($this->getRequest()->getParam('shipment')); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $shipment = $this->shipmentLoader->load(); $labelContent = $shipment->getShippingLabel(); if ($labelContent) { $pdfContent = null; @@ -114,7 +118,7 @@ class PrintLabel extends \Magento\Backend\App\Action } $this->_redirect( 'adminhtml/order_shipment/view', - array('shipment_id' => $this->getRequest()->getParam('shipment_id')) + ['shipment_id' => $this->getRequest()->getParam('shipment_id')] ); } } diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php index 6a34fe5d3c87126897684c566b78e92cc6eab751..149ecef4d196622554168d856ba0758784bfb32b 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php @@ -69,9 +69,14 @@ class PrintPackage extends \Magento\Backend\App\Action */ public function execute() { - $shipment = $this->shipmentLoader->load($this->_request); + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($this->getRequest()->getParam('shipment')); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $shipment = $this->shipmentLoader->load(); if ($shipment) { + /** @var \Zend_Pdf $pdf */ $pdf = $this->_objectManager->create('Magento\Shipping\Model\Order\Pdf\Packaging')->getPdf($shipment); return $this->_fileFactory->create( 'packingslip' . $this->_objectManager->get( diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php index aed7bc1b25f5ab93d912ea48288494492d66d507..b1bb79217e05c81092aa12e4ee758363eb464cc4 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php @@ -61,27 +61,32 @@ class RemoveTrack extends \Magento\Backend\App\Action public function execute() { $trackId = $this->getRequest()->getParam('track_id'); + /** @var \Magento\Sales\Model\Order\Shipment\Track $track */ $track = $this->_objectManager->create('Magento\Sales\Model\Order\Shipment\Track')->load($trackId); if ($track->getId()) { try { $this->_title->add(__('Shipments')); - $shipment = $this->shipmentLoader->load($this->_request); + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($this->getRequest()->getParam('shipment')); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $shipment = $this->shipmentLoader->load(); if ($shipment) { $track->delete(); $this->_view->loadLayout(); $response = $this->_view->getLayout()->getBlock('shipment_tracking')->toHtml(); } else { - $response = array( + $response = [ 'error' => true, 'message' => __('Cannot initialize shipment for delete tracking number.') - ); + ]; } } catch (\Exception $e) { - $response = array('error' => true, 'message' => __('Cannot delete tracking number.')); + $response = ['error' => true, 'message' => __('Cannot delete tracking number.')]; } } else { - $response = array('error' => true, 'message' => __('Cannot load track with retrieving identifier.')); + $response = ['error' => true, 'message' => __('Cannot load track with retrieving identifier.')]; } if (is_array($response)) { $response = $this->_objectManager->get('Magento\Core\Helper\Data')->jsonEncode($response); diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php index 8bdd3ed7fca4d0e585d4036ba5cec78c77e505f3..7ac03cb44141b076d36f9106517bf91fdff24979 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php @@ -79,9 +79,10 @@ class Save extends \Magento\Backend\App\Action protected function _saveShipment($shipment) { $shipment->getOrder()->setIsInProcess(true); - $transactionSave = $this->_objectManager->create( + $transaction = $this->_objectManager->create( 'Magento\Framework\DB\Transaction' - )->addObject( + ); + $transaction->addObject( $shipment )->addObject( $shipment->getOrder() @@ -98,13 +99,18 @@ class Save extends \Magento\Backend\App\Action */ public function execute() { - $data = $this->getRequest()->getPost('shipment'); + $data = $this->getRequest()->getParam('shipment'); + if (!empty($data['comment_text'])) { $this->_objectManager->get('Magento\Backend\Model\Session')->setCommentText($data['comment_text']); } try { - $shipment = $this->shipmentLoader->load($this->_request); + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($data); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $shipment = $this->shipmentLoader->load(); if (!$shipment) { $this->_forward('noroute'); return; @@ -131,7 +137,8 @@ class Save extends \Magento\Backend\App\Action $responseAjax = new \Magento\Framework\Object(); $isNeedCreateLabel = isset($data['create_shipping_label']) && $data['create_shipping_label']; - if ($isNeedCreateLabel && $this->labelGenerator->create($shipment, $this->_request)) { + if ($isNeedCreateLabel) { + $this->labelGenerator->create($shipment, $this->_request); $responseAjax->setOk(true); } @@ -167,7 +174,7 @@ class Save extends \Magento\Backend\App\Action if ($isNeedCreateLabel) { $this->getResponse()->representJson($responseAjax->toJson()); } else { - $this->_redirect('sales/order/view', array('order_id' => $shipment->getOrderId())); + $this->_redirect('sales/order/view', ['order_id' => $shipment->getOrderId()]); } } } diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php index 50c03f4d561744f3419d25cb21cf2ac6e347578c..808d58598343d5b49a35ff95415e37a2b63714ff 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php @@ -61,7 +61,12 @@ class View extends \Magento\Backend\App\Action public function execute() { $this->_title->add(__('Shipments')); - $shipment = $this->shipmentLoader->load($this->_request); + + $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id')); + $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id')); + $this->shipmentLoader->setShipment($this->getRequest()->getParam('shipment')); + $this->shipmentLoader->setTracking($this->getRequest()->getParam('tracking')); + $shipment = $this->shipmentLoader->load(); if ($shipment) { $this->_title->add("#" . $shipment->getIncrementId()); $this->_view->loadLayout(); diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoader.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoader.php index 6cc1afeda48fa055462d1f5062ddb3681d3f5f26..f5228c91d29f2cf05dc7d0731101620222a41412 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoader.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoader.php @@ -24,9 +24,22 @@ */ namespace Magento\Shipping\Controller\Adminhtml\Order; -use Magento\Framework\App\RequestInterface; +use Magento\Framework\Object; -class ShipmentLoader +/** + * Class ShipmentLoader + * + * @package Magento\Shipping\Controller\Adminhtml\Order + * @method ShipmentLoader setOrderId + * @method ShipmentLoader setShipmentId + * @method ShipmentLoader setShipment + * @method ShipmentLoader setTracking + * @method int getOrderId + * @method int getShipmentId + * @method array getShipment + * @method array getTracking + */ +class ShipmentLoader extends Object { /** * @var \Magento\Framework\Message\ManagerInterface @@ -65,6 +78,7 @@ class ShipmentLoader * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Sales\Model\Service\OrderFactory $orderServiceFactory * @param \Magento\Sales\Model\Order\Shipment\TrackFactory $trackFactory + * @param array $data */ public function __construct( \Magento\Framework\Message\ManagerInterface $messageManager, @@ -72,7 +86,8 @@ class ShipmentLoader \Magento\Sales\Model\Order\ShipmentFactory $shipmentFactory, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Sales\Model\Service\OrderFactory $orderServiceFactory, - \Magento\Sales\Model\Order\Shipment\TrackFactory $trackFactory + \Magento\Sales\Model\Order\Shipment\TrackFactory $trackFactory, + array $data = [] ) { $this->messageManager = $messageManager; $this->registry = $registry; @@ -80,21 +95,21 @@ class ShipmentLoader $this->orderFactory = $orderFactory; $this->orderServiceFactory = $orderServiceFactory; $this->trackFactory = $trackFactory; + parent::__construct($data); } /** * Initialize shipment items QTY * - * @param RequestInterface $request * @return array */ - protected function _getItemQtys(RequestInterface $request) + protected function getItemQtys() { - $data = $request->getParam('shipment'); + $data = $this->getShipment(); if (isset($data['items'])) { $qtys = $data['items']; } else { - $qtys = array(); + $qtys = []; } return $qtys; } @@ -102,15 +117,14 @@ class ShipmentLoader /** * Initialize shipment model instance * - * @param RequestInterface $request * @return bool|\Magento\Sales\Model\Order\Shipment * @throws \Magento\Framework\Model\Exception */ - public function load(RequestInterface $request) + public function load() { $shipment = false; - $shipmentId = $request->getParam('shipment_id'); - $orderId = $request->getParam('order_id'); + $orderId = $this->getOrderId(); + $shipmentId = $this->getShipmentId(); if ($shipmentId) { $shipment = $this->shipmentFactory->create()->load($shipmentId); } elseif ($orderId) { @@ -137,12 +151,11 @@ class ShipmentLoader $this->messageManager->addError(__('Cannot do shipment for the order.')); return false; } - $savedQtys = $this->_getItemQtys($request); - $shipment = $this->orderServiceFactory->create(array('order' => $order))->prepareShipment($savedQtys); - $tracks = $request->getPost('tracking'); - if ($tracks) { - foreach ($tracks as $data) { + $savedQtys = $this->getItemQtys(); + $shipment = $this->orderServiceFactory->create(['order' => $order])->prepareShipment($savedQtys); + if ($this->getTracking()) { + foreach ((array)$this->getTracking() as $data) { if (empty($data['number'])) { throw new \Magento\Framework\Model\Exception(__('Please enter a tracking number.')); } diff --git a/app/code/Magento/Shipping/Model/ShipmentNotifier.php b/app/code/Magento/Shipping/Model/ShipmentNotifier.php new file mode 100644 index 0000000000000000000000000000000000000000..d0a4f2dcd71073a482fecceb7c3a7fe03fff0452 --- /dev/null +++ b/app/code/Magento/Shipping/Model/ShipmentNotifier.php @@ -0,0 +1,66 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Shipping\Model; + +use Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory; +use Magento\Sales\Model\Order\Email\Sender\ShipmentSender; +use Magento\Framework\Logger; + +/** + * Class ShipmentNotifier + * @package Magento\Shipping\Model + */ +class ShipmentNotifier extends \Magento\Sales\Model\AbstractNotifier +{ + /** + * @var CollectionFactory + */ + protected $historyCollectionFactory; + + /** + * @var \Magento\Framework\Logger + */ + protected $logger; + + /** + * @var ShipmentSender + */ + protected $sender; + + /** + * @param CollectionFactory $historyCollectionFactory + * @param Logger $logger + * @param ShipmentSender $sender + */ + public function __construct( + CollectionFactory $historyCollectionFactory, + Logger $logger, + ShipmentSender $sender + ) { + $this->historyCollectionFactory = $historyCollectionFactory; + $this->logger = $logger; + $this->sender = $sender; + } +} diff --git a/app/code/Magento/Shipping/Model/Shipping/LabelGenerator.php b/app/code/Magento/Shipping/Model/Shipping/LabelGenerator.php index 235d590812b8878490ac2cde260d9efd82229d10..a723d6df8ccc70f0347519bce69c20493bef6870 100644 --- a/app/code/Magento/Shipping/Model/Shipping/LabelGenerator.php +++ b/app/code/Magento/Shipping/Model/Shipping/LabelGenerator.php @@ -77,31 +77,26 @@ class LabelGenerator /** * @param \Magento\Sales\Model\Order\Shipment $shipment * @param RequestInterface $request - * @return bool + * @return void * @throws \Magento\Framework\Model\Exception */ public function create(\Magento\Sales\Model\Order\Shipment $shipment, RequestInterface $request) { - if (!$shipment) { - return false; - } $order = $shipment->getOrder(); $carrier = $this->_carrierFactory->create($order->getShippingMethod(true)->getCarrierCode()); if (!$carrier->isShippingLabelsAvailable()) { - return false; + throw new \Magento\Framework\Model\Exception(__('Shipping labels is not available.')); } $shipment->setPackages($request->getParam('packages')); - $response = $this->labelFactory->create()->requestToShipment( - $shipment - ); + $response = $this->labelFactory->create()->requestToShipment($shipment); if ($response->hasErrors()) { throw new \Magento\Framework\Model\Exception($response->getErrors()); } if (!$response->hasInfo()) { - return false; + throw new \Magento\Framework\Model\Exception(__('Response info is not exist.')); } - $labelsContent = array(); - $trackingNumbers = array(); + $labelsContent = []; + $trackingNumbers = []; $info = $response->getInfo(); foreach ($info as $inf) { if (!empty($inf['tracking_number']) && !empty($inf['label_content'])) { @@ -117,20 +112,15 @@ class LabelGenerator \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $shipment->getStoreId() ); - if ($trackingNumbers) { + if (!empty($trackingNumbers)) { foreach ($trackingNumbers as $trackingNumber) { $track = $this->trackFactory->create() - ->setNumber( - $trackingNumber - )->setCarrierCode( - $carrierCode - )->setTitle( - $carrierTitle - ); + ->setNumber($trackingNumber) + ->setCarrierCode($carrierCode) + ->setTitle($carrierTitle); $shipment->addTrack($track); } } - return true; } /** diff --git a/app/code/Magento/Shipping/composer.json b/app/code/Magento/Shipping/composer.json index 7fe4c0195908edac2192a278f601974d88331353..6ee64a8e25f3a49d4bec890394ee7a09293c7940 100644 --- a/app/code/Magento/Shipping/composer.json +++ b/app/code/Magento/Shipping/composer.json @@ -3,23 +3,23 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-contact": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-payment": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-contact": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-payment": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "ext-gd": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Sitemap/composer.json b/app/code/Magento/Sitemap/composer.json index 89b13529810fd2ef78c6e8fcbc29c154d8109c9d..6d3346dfb91901e0aeae9fa5e6e93bb1bb8486ce 100644 --- a/app/code/Magento/Sitemap/composer.json +++ b/app/code/Magento/Sitemap/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Store/App/Action/Plugin/Context.php b/app/code/Magento/Store/App/Action/Plugin/Context.php index 62cc392af2a44c9ea770163f5be50d8b49d3166f..89e343a1209894bb9c738a00d37a8ae08ca58357 100644 --- a/app/code/Magento/Store/App/Action/Plugin/Context.php +++ b/app/code/Magento/Store/App/Action/Plugin/Context.php @@ -49,22 +49,30 @@ class Context */ protected $storeManager; + /** + * @var \Magento\Framework\Stdlib\CookieManager + */ + protected $cookieManager; + /** * @param \Magento\Framework\Session\SessionManagerInterface $session * @param \Magento\Framework\App\Http\Context $httpContext * @param \Magento\Framework\App\Request\Http $httpRequest * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager */ public function __construct( \Magento\Framework\Session\SessionManagerInterface $session, \Magento\Framework\App\Http\Context $httpContext, \Magento\Framework\App\Request\Http $httpRequest, - \Magento\Store\Model\StoreManagerInterface $storeManager + \Magento\Store\Model\StoreManagerInterface $storeManager, + \Magento\Framework\Stdlib\CookieManager $cookieManager ) { $this->session = $session; $this->httpContext = $httpContext; $this->httpRequest = $httpRequest; $this->storeManager = $storeManager; + $this->cookieManager = $cookieManager; } /** @@ -88,7 +96,7 @@ class Context \Magento\Core\Helper\Data::CONTEXT_STORE, $this->httpRequest->getParam( '___store', - $this->httpRequest->getCookie(\Magento\Store\Model\Store::COOKIE_NAME) + $this->cookieManager->getCookie(\Magento\Store\Model\Store::COOKIE_NAME) ), $this->storeManager->getWebsite()->getDefaultStore()->getCode() ); diff --git a/app/code/Magento/Store/Model/StorageFactory.php b/app/code/Magento/Store/Model/StorageFactory.php index 1bb360c22784c3a2ef447bb5ffe45d53316acaea..711d0e8f7d415abde1c726ffa5e6489d4187b92a 100644 --- a/app/code/Magento/Store/Model/StorageFactory.php +++ b/app/code/Magento/Store/Model/StorageFactory.php @@ -79,9 +79,9 @@ class StorageFactory protected $_writerModel; /** - * @var \Magento\Framework\Stdlib\Cookie + * @var \Magento\Framework\Stdlib\CookieManager */ - protected $_cookie; + protected $_cookieManager; /** * @var \Magento\Framework\App\Http\Context @@ -93,16 +93,21 @@ class StorageFactory */ protected $request; + /** + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory + */ + protected $cookieMetadataFactory; /** * @param \Magento\Framework\ObjectManager $objectManager * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\Logger $logger * @param \Magento\Framework\Session\SidResolverInterface $sidResolver * @param \Magento\Framework\App\State $appState - * @param \Magento\Framework\Stdlib\Cookie $cookie + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager * @param \Magento\Framework\App\Http\Context $httpContext * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Framework\App\RequestInterface $request + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param string $defaultStorageClassName * @param string $installedStorageClassName * @param string $writerModel @@ -113,10 +118,11 @@ class StorageFactory \Magento\Framework\Logger $logger, \Magento\Framework\Session\SidResolverInterface $sidResolver, \Magento\Framework\App\State $appState, - \Magento\Framework\Stdlib\Cookie $cookie, \Magento\Framework\App\Http\Context $httpContext, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\App\RequestInterface $request, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, + \Magento\Framework\Stdlib\CookieManager $cookieManager, $defaultStorageClassName = 'Magento\Store\Model\Storage\DefaultStorage', $installedStorageClassName = 'Magento\Store\Model\Storage\Db', $writerModel = '' @@ -129,8 +135,9 @@ class StorageFactory $this->_appState = $appState; $this->_sidResolver = $sidResolver; $this->_writerModel = $writerModel; - $this->_cookie = $cookie; $this->_httpContext = $httpContext; + $this->cookieMetadataFactory = $cookieMetadataFactory; + $this->_cookieManager = $cookieManager; $this->_scopeConfig = $scopeConfig; $this->request = $request; } @@ -287,12 +294,10 @@ class StorageFactory */ protected function _checkCookieStore(\Magento\Store\Model\StoreManagerInterface $storage, $scopeType) { - if (!$this->_cookie->get()) { - return; + $storeCode = $this->_cookieManager->getCookie(Store::COOKIE_NAME); + if (isset($storeCode)) { + $this->setCurrentStore($storage, $storeCode, $scopeType); } - - $storeCode = $this->_cookie->get(Store::COOKIE_NAME); - $this->setCurrentStore($storage, $storeCode, $scopeType); } /** @@ -314,9 +319,11 @@ class StorageFactory if ($storage->getStore()->getCode() == $storeCode) { $store = $storage->getStore($storeCode); if ($store->getWebsite()->getDefaultStore()->getId() == $store->getId()) { - $this->_cookie->set(Store::COOKIE_NAME, null); + $this->_cookieManager->deleteCookie(Store::COOKIE_NAME); } else { - $this->_cookie->set(Store::COOKIE_NAME, $storage->getStore()->getCode(), true); + $publicCookieMetadata = $this->cookieMetadataFactory->createPublicCookieMetadata() + ->setDurationOneYear(); + $this->_cookieManager->setPublicCookie(Store::COOKIE_NAME, $storage->getStore()->getCode(), $publicCookieMetadata); $this->_httpContext->setValue( Store::ENTITY, $storage->getStore()->getCode(), diff --git a/app/code/Magento/Store/Model/Store.php b/app/code/Magento/Store/Model/Store.php index 3e52c98e2eae2d653048defdfcae559e9397cb36..dc85ed2177bb16bab329de25961a57290d01eeea 100644 --- a/app/code/Magento/Store/Model/Store.php +++ b/app/code/Magento/Store/Model/Store.php @@ -301,11 +301,14 @@ class Store extends AbstractModel implements protected $_currencyInstalled; /** - * Cookie model - * - * @var \Magento\Framework\Stdlib\Cookie + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory + */ + protected $_cookieMetadataFactory; + + /** + * @var \Magento\Framework\Stdlib\CookieManager */ - protected $_cookie; + protected $_cookieManager; /** * @var \Magento\Framework\App\Http\Context @@ -330,7 +333,8 @@ class Store extends AbstractModel implements * @param \Magento\Framework\App\Config\ReinitableConfigInterface $config * @param StoreManagerInterface $storeManager * @param \Magento\Framework\Session\SidResolverInterface $sidResolver - * @param \Magento\Framework\Stdlib\Cookie $cookie + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager, * @param \Magento\Framework\App\Http\Context $httpContext * @param \Magento\Framework\Session\SessionManagerInterface $session * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory @@ -352,7 +356,8 @@ class Store extends AbstractModel implements \Magento\Framework\App\Config\ReinitableConfigInterface $config, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\Session\SidResolverInterface $sidResolver, - \Magento\Framework\Stdlib\Cookie $cookie, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, + \Magento\Framework\Stdlib\CookieManager $cookieManager, \Magento\Framework\App\Http\Context $httpContext, \Magento\Framework\Session\SessionManagerInterface $session, \Magento\Directory\Model\CurrencyFactory $currencyFactory, @@ -371,7 +376,8 @@ class Store extends AbstractModel implements $this->filesystem = $filesystem; $this->_storeManager = $storeManager; $this->_sidResolver = $sidResolver; - $this->_cookie = $cookie; + $this->_cookieMetadataFactory = $cookieMetadataFactory; + $this->_cookieManager = $cookieManager; $this->_httpContext = $httpContext; $this->_session = $session; $this->currencyFactory = $currencyFactory; @@ -403,7 +409,6 @@ class Store extends AbstractModel implements $this->_config = \Magento\Framework\App\ObjectManager::getInstance()->get( 'Magento\Framework\App\Config\ReinitableConfigInterface' ); - $this->_cookie = \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Framework\Stdlib\Cookie'); } /** @@ -849,10 +854,14 @@ class Store extends AbstractModel implements if (in_array($code, $this->getAvailableCurrencyCodes())) { $this->_getSession()->setCurrencyCode($code); $path = $this->_getSession()->getCookiePath(); + + $sensitiveCookieMetadata = $this->_cookieMetadataFactory->createSensitiveCookieMetadata() + ->setPath($path); + if ($code == $this->getDefaultCurrency()->getCurrencyCode()) { - $this->_cookie->set(self::COOKIE_CURRENCY, null, null, $path); + $this->_cookieManager->deleteCookie(self::COOKIE_CURRENCY, $sensitiveCookieMetadata); } else { - $this->_cookie->set(self::COOKIE_CURRENCY, $code, null, $path); + $this->_cookieManager->setSensitiveCookie(self::COOKIE_CURRENCY, $code, $sensitiveCookieMetadata); } $this->_httpContext->setValue( \Magento\Core\Helper\Data::CONTEXT_CURRENCY, diff --git a/app/code/Magento/Store/composer.json b/app/code/Magento/Store/composer.json index 1ec619f7eeb9774bd024cf5fec10f5cceefebe96..f1a95f07547c9b69942f6b9a0ab7e93757717b1e 100644 --- a/app/code/Magento/Store/composer.json +++ b/app/code/Magento/Store/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-core": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-index": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-core": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-index": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Store/etc/di.xml b/app/code/Magento/Store/etc/di.xml index a5cbe17abdf4daec6b59b3ffe3720a6ae1f5b037..ca80cd75581eb21d6feea42959266d5fe0c837db 100644 --- a/app/code/Magento/Store/etc/di.xml +++ b/app/code/Magento/Store/etc/di.xml @@ -65,6 +65,7 @@ </type> <preference for="Magento\Framework\App\Config\Scope\ReaderPoolInterface" type="Magento\Store\Model\Config\Reader\ReaderPool"/> <preference for="Magento\Framework\App\ScopeResolverInterface" type="Magento\Store\Model\Resolver\Store" /> + <preference for="Magento\Framework\Stdlib\CookieManager" type="Magento\Framework\Stdlib\Cookie\PhpCookieManager" /> <type name="Magento\Framework\App\Action\Action"> <plugin name="storeCheck" type="Magento\Store\App\Action\Plugin\StoreCheck" sortOrder="10"/> </type> diff --git a/app/code/Magento/Tax/Block/Adminhtml/Items/Price/Renderer.php b/app/code/Magento/Tax/Block/Adminhtml/Items/Price/Renderer.php new file mode 100644 index 0000000000000000000000000000000000000000..7022e44abc3d66724cb198e71b0eb407aa0a2da7 --- /dev/null +++ b/app/code/Magento/Tax/Block/Adminhtml/Items/Price/Renderer.php @@ -0,0 +1,176 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Tax\Block\Adminhtml\Items\Price; + +use Magento\Tax\Helper\Data as TaxHelper; +use Magento\Tax\Block\Item\Price\Renderer as ItemPriceRenderer; +use Magento\Sales\Model\Order\Item; +use Magento\Sales\Model\Quote\Item\AbstractItem as QuoteItem; +use Magento\Sales\Model\Order\Invoice\Item as InvoiceItem; +use Magento\Sales\Model\Order\Creditmemo\Item as CreditmemoItem; + +/** + * Sales Order items price column renderer + */ +class Renderer extends \Magento\Backend\Block\Template +{ + /** + * @var \Magento\Tax\Helper\Data + */ + protected $taxHelper; + + /** + * @var \Magento\Tax\Block\Item\Price\Renderer + */ + protected $itemPriceRenderer; + + /** + * @var \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn + */ + protected $defaultColumnRenderer; + + /** + * @var Item|QuoteItem|InvoiceItem|CreditmemoItem + */ + protected $item; + + /** + * @param \Magento\Backend\Block\Template\Context $context + * @param \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn $defaultColumnRenderer + * @param TaxHelper $taxHelper + * @param ItemPriceRenderer $itemPriceRenderer + * @param array $data + */ + public function __construct( + \Magento\Backend\Block\Template\Context $context, + \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn $defaultColumnRenderer, + TaxHelper $taxHelper, + ItemPriceRenderer $itemPriceRenderer, + array $data = array() + ) { + $this->defaultColumnRenderer = $defaultColumnRenderer; + $this->itemPriceRenderer = $itemPriceRenderer; + $this->itemPriceRenderer->setZone('sales'); + parent::__construct($context, $data); + } + + /** + * Set item + * + * @param Item|QuoteItem|InvoiceItem|CreditmemoItem $item + * @return $this + */ + public function setItem($item) + { + $this->itemPriceRenderer->setItem($item); + $this->defaultColumnRenderer->setItem($item); + $this->item = $item; + return $this; + } + + /** + * Return order item or quote item + * + * @return Item|QuoteItem + */ + public function getItem() + { + return $this->item; + } + + /** + * Return whether display setting is to display price including tax + * + * @return bool + */ + public function displayPriceInclTax() + { + return $this->itemPriceRenderer->displayPriceInclTax(); + } + + /** + * Return whether display setting is to display price excluding tax + * + * @return bool + */ + public function displayPriceExclTax() + { + return $this->itemPriceRenderer->displayPriceExclTax(); + } + + /** + * Return whether display setting is to display both price including tax and price excluding tax + * + * @return bool + */ + public function displayBothPrices() + { + return $this->itemPriceRenderer->displayBothPrices(); + } + + /** + * Calculate total amount for the item + * + * @param Item|QuoteItem|InvoiceItem|CreditmemoItem $item + * @return mixed + */ + public function getTotalAmount($item) + { + return $this->itemPriceRenderer->getTotalAmount($item); + } + + /** + * Calculate base total amount for the item + * + * @param Item|QuoteItem|InvoiceItem|CreditmemoItem $item + * @return mixed + */ + public function getBaseTotalAmount($item) + { + return $this->itemPriceRenderer->getBaseTotalAmount($item); + } + + /** + * Retrieve formated price, use different formatter depending on type of item + * + * @param float $price + * @return string + */ + public function formatPrice($price) + { + return $this->itemPriceRenderer->formatPrice($price); + } + + /** + * Return html that contains both base price and display price + * + * @param float $basePrice + * @param float $displayPrice + * @return string + */ + public function displayPrices($basePrice, $displayPrice) + { + return $this->defaultColumnRenderer->displayPrices($basePrice, $displayPrice); + } +} diff --git a/app/code/Magento/Tax/Block/Item/Price/Renderer.php b/app/code/Magento/Tax/Block/Item/Price/Renderer.php index 278de31027faf2aac38ee6f7096c6307e6d37b37..1fb40e7d982da65c8d6a04ac1fc6bebbb8dde7b7 100644 --- a/app/code/Magento/Tax/Block/Item/Price/Renderer.php +++ b/app/code/Magento/Tax/Block/Item/Price/Renderer.php @@ -25,19 +25,42 @@ namespace Magento\Tax\Block\Item\Price; use Magento\Tax\Helper\Data as TaxHelper; use Magento\Framework\View\Element\Template\Context; +use Magento\Framework\Object as MagentoObject; +use Magento\Sales\Model\Quote\Item\AbstractItem as QuoteItem; +use Magento\Sales\Model\Order\Item as OrderItem; +use Magento\Sales\Model\Order\Invoice\Item as InvoiceItem; +use Magento\Sales\Model\Order\CreditMemo\Item as CreditMemoItem; +use Magento\Framework\Pricing\Render as PricingRender; /** * Item price render block * * @author Magento Core Team <core@magentocommerce.com> */ -class Renderer extends \Magento\Checkout\Block\Item\Price\Renderer +class Renderer extends \Magento\Framework\View\Element\Template { /** * @var \Magento\Tax\Helper\Data */ protected $taxHelper; + /** + * @var QuoteItem|OrderItem|InvoiceItem|CreditMemoItem + */ + protected $item; + + /** + * @var string|int|null + */ + protected $storeId = null; + + /** + * Set the display area, e.g., cart, sales, etc. + * + * @var string + */ + protected $zone = null; + /** * Constructor * @@ -45,12 +68,70 @@ class Renderer extends \Magento\Checkout\Block\Item\Price\Renderer * @param TaxHelper $taxHelper * @param array $data */ - public function __construct(Context $context, TaxHelper $taxHelper, array $data = array()) - { + public function __construct( + Context $context, + TaxHelper $taxHelper, + array $data = array() + ) { $this->taxHelper = $taxHelper; + if (isset($data['zone'])) { + $this->zone = $data['zone']; + } parent::__construct($context, $data); } + /** + * Set item for render + * + * @param QuoteItem|OrderItem|InvoiceItem|CreditMemoItem $item + * @return $this + */ + public function setItem($item) + { + $this->item = $item; + $this->storeId = $item->getStoreId(); + return $this; + } + + /** + * Get display zone + * + * @return string|null + */ + public function getZone() + { + return $this->zone; + } + + /** + * Set display zone + * + * @param string $zone + * @return $this + */ + public function setZone($zone) + { + $this->zone = $zone; + return $this; + } + + /** + * @return int|null|string + */ + public function getStoreId() + { + return $this->storeId; + } + /** + * Get quote or order item + * + * @return CreditMemoItem|InvoiceItem|OrderItem|QuoteItem + */ + public function getItem() + { + return $this->item; + } + /** * Return whether display setting is to display price including tax * @@ -58,7 +139,15 @@ class Renderer extends \Magento\Checkout\Block\Item\Price\Renderer */ public function displayPriceInclTax() { - return $this->taxHelper->displayCartPriceInclTax(); + switch ($this->zone) { + case PricingRender::ZONE_CART: + return $this->taxHelper->displayCartPriceInclTax($this->storeId); + case PricingRender::ZONE_EMAIL: + case PricingRender::ZONE_SALES: + return $this->taxHelper->displaySalesPriceInclTax($this->storeId); + default: + return $this->taxHelper->displayCartPriceInclTax($this->storeId); + } } /** @@ -68,7 +157,15 @@ class Renderer extends \Magento\Checkout\Block\Item\Price\Renderer */ public function displayPriceExclTax() { - return $this->taxHelper->displayCartPriceExclTax(); + switch ($this->zone) { + case PricingRender::ZONE_CART: + return $this->taxHelper->displayCartPriceExclTax($this->storeId); + case PricingRender::ZONE_EMAIL: + case PricingRender::ZONE_SALES: + return $this->taxHelper->displaySalesPriceExclTax($this->storeId); + default: + return $this->taxHelper->displayCartPriceExclTax($this->storeId); + } } /** @@ -78,6 +175,80 @@ class Renderer extends \Magento\Checkout\Block\Item\Price\Renderer */ public function displayBothPrices() { - return $this->taxHelper->displayCartBothPrices(); + switch ($this->zone) { + case PricingRender::ZONE_CART: + return $this->taxHelper->displayCartBothPrices($this->storeId); + case PricingRender::ZONE_EMAIL: + case PricingRender::ZONE_SALES: + return $this->taxHelper->displaySalesBothPrices($this->storeId); + default: + return $this->taxHelper->displayCartBothPrices($this->storeId); + } + } + + /** + * Format price + * + * @param float $price + * @return string + */ + public function formatPrice($price) + { + $item = $this->getItem(); + if ($item instanceof QuoteItem) { + return $item->getStore()->formatPrice($price); + } elseif ($item instanceof OrderItem) { + return $item->getOrder()->formatPrice($price); + } else { + return $item->getOrderItem()->getOrder()->formatPrice($price); + } + } + + /** + * Get item price in display currency or order currency depending + * on item type + * + * @return float + */ + public function getItemDisplayPriceExclTax() + { + $item = $this->getItem(); + if ($item instanceof QuoteItem) { + return $item->getCalculationPrice(); + } else { + return $item->getPrice(); + } + } + + /** + * Return the total amount minus discount + * + * @param OrderItem|InvoiceItem|CreditmemoItem $item + * @return mixed + */ + public function getTotalAmount($item) + { + $totalAmount = $item->getRowTotal() + - $item->getDiscountAmount() + + $item->getTaxAmount() + + $item->getHiddenTaxAmount(); + + return $totalAmount; + } + + /** + * Return the total amount minus discount + * + * @param OrderItem|InvoiceItem|CreditmemoItem $item + * @return mixed + */ + public function getBaseTotalAmount($item) + { + $totalAmount = $item->getBaseRowTotal() + - $item->getBaseDiscountAmount() + + $item->getBaseTaxAmount() + + $item->getBaseHiddenTaxAmount(); + + return $totalAmount; } } diff --git a/app/code/Magento/Tax/Model/Resource/Calculation.php b/app/code/Magento/Tax/Model/Resource/Calculation.php index 46f270187aef17b8040912dc9020a61c4d883cfe..73ea7a4fc0ab8cfff4ff2d0a11976df187faa41c 100644 --- a/app/code/Magento/Tax/Model/Resource/Calculation.php +++ b/app/code/Magento/Tax/Model/Resource/Calculation.php @@ -30,6 +30,11 @@ namespace Magento\Tax\Model\Resource; class Calculation extends \Magento\Framework\Model\Resource\Db\AbstractDb { + /** + * Store ISO 3166-1 alpha-2 USA country code + */ + const USA_COUNTRY_CODE = 'US'; + /** * Rates cache * @@ -187,14 +192,15 @@ class Calculation extends \Magento\Framework\Model\Resource\Db\AbstractDb } $row['rates'][] = $oneRate; + $ruleId = null; if (isset($rates[$i + 1]['tax_calculation_rule_id'])) { - $rule = $rate['tax_calculation_rule_id']; + $ruleId = $rate['tax_calculation_rule_id']; } $priority = $rate['priority']; $ids[] = $rate['code']; if (isset($rates[$i + 1]['tax_calculation_rule_id'])) { - while (isset($rates[$i + 1]) && $rates[$i + 1]['tax_calculation_rule_id'] == $rule) { + while (isset($rates[$i + 1]) && $rates[$i + 1]['tax_calculation_rule_id'] == $ruleId) { $i++; } } @@ -214,7 +220,7 @@ class Calculation extends \Magento\Framework\Model\Resource\Db\AbstractDb $row['percent'] = $this->_collectPercent($totalPercent, $currentRate); $totalPercent += $row['percent']; } - $row['id'] = implode($ids); + $row['id'] = implode('', $ids); $result[] = $row; $row = array(); $ids = array(); @@ -242,22 +248,28 @@ class Calculation extends \Magento\Framework\Model\Resource\Db\AbstractDb * Create search templates for postcode * * @param string $postcode + * @param string|null $exactPostcode * @return string[] */ - protected function _createSearchPostCodeTemplates($postcode) + protected function _createSearchPostCodeTemplates($postcode, $exactPostcode = null) { + // as needed, reduce the postcode to the correct length $len = $this->_taxData->getPostCodeSubStringLength(); - $strlen = strlen($postcode); - if ($strlen > $len) { - $postcode = substr($postcode, 0, $len); - $strlen = $len; + $postcode = substr($postcode, 0, $len); + + // begin creating the search template array + $strArr = [$postcode, $postcode . '*']; + + // if supplied, use the exact postcode as the basis for the search templates + if ($exactPostcode) { + $postcode = substr($exactPostcode, 0, $len); + $strArr[] = $postcode; } - $strArr = array((string)$postcode, $postcode . '*'); - if ($strlen > 1) { - for ($i = 1; $i < $strlen; $i++) { - $strArr[] = sprintf('%s*', substr($postcode, 0, -$i)); - } + // finish building out the search template array + $strlen = strlen($postcode); + for ($i = 1; $i < $strlen; $i++) { + $strArr[] = sprintf('%s*', substr($postcode, 0, -$i)); } return $strArr; @@ -347,10 +359,18 @@ class Calculation extends \Magento\Framework\Model\Resource\Db\AbstractDb array(0, (int)$regionId) ); $postcodeIsNumeric = is_numeric($postcode); - $postcodeIsRange = is_string($postcode) && preg_match('/^(.+)-(.+)$/', $postcode, $matches); - if ($postcodeIsRange) { - $zipFrom = $matches[1]; - $zipTo = $matches[2]; + $postcodeIsRange = false; + $originalPostcode = null; + if (is_string($postcode) && preg_match('/^(.+)-(.+)$/', $postcode, $matches)) { + if ($countryId == self::USA_COUNTRY_CODE && is_numeric($matches[2]) && strlen($matches[2]) == 4) { + $postcodeIsNumeric = true; + $originalPostcode = $postcode; + $postcode = $matches[1]; + } else { + $postcodeIsRange = true; + $zipFrom = $matches[1]; + $zipTo = $matches[2]; + } } if ($postcodeIsNumeric || $postcodeIsRange) { @@ -362,7 +382,7 @@ class Calculation extends \Magento\Framework\Model\Resource\Db\AbstractDb if ($postcode != '*' || $postcodeIsRange) { $select->where( "rate.tax_postcode IS NULL OR rate.tax_postcode IN('*', '', ?)", - $postcodeIsRange ? $postcode : $this->_createSearchPostCodeTemplates($postcode) + $postcodeIsRange ? $postcode : $this->_createSearchPostCodeTemplates($postcode, $originalPostcode) ); if ($postcodeIsNumeric) { $selectClone->where('? BETWEEN rate.zip_from AND rate.zip_to', $postcode); diff --git a/app/code/Magento/Tax/composer.json b/app/code/Magento/Tax/composer.json index e7870a63e7aa516c290a28a2082f50f3955f7530..12c89937e413a2ef0394a4968106eba8f05566ab 100644 --- a/app/code/Magento/Tax/composer.json +++ b/app/code/Magento/Tax/composer.json @@ -3,24 +3,24 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-shipping": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-reports": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-configurable-product": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-shipping": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-reports": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-configurable-product": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Tax/view/adminhtml/layout/sales_creditmemo_item_price.xml b/app/code/Magento/Tax/view/adminhtml/layout/sales_creditmemo_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..00ceda94217856f709ddaf6a6bcd6fdd85f7a518 --- /dev/null +++ b/app/code/Magento/Tax/view/adminhtml/layout/sales_creditmemo_item_price.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="creditmemo_items"> + <block class="Magento\Tax\Block\Adminhtml\Items\Price\Renderer" name="column_price" template="items/price/unit.phtml" group="column"/> + <block class="Magento\Tax\Block\Adminhtml\Items\Price\Renderer" name="column_subtotal" template="items/price/row.phtml" group="column"/> + <block class="Magento\Tax\Block\Adminhtml\Items\Price\Renderer" name="column_total" template="items/price/total.phtml" group="column"/> + </referenceBlock> +</page> diff --git a/app/code/Magento/Tax/view/adminhtml/layout/sales_invoice_item_price.xml b/app/code/Magento/Tax/view/adminhtml/layout/sales_invoice_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..d3176f17fadd07ac68ffc6e37198fe1c64a66d69 --- /dev/null +++ b/app/code/Magento/Tax/view/adminhtml/layout/sales_invoice_item_price.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="invoice_items"> + <block class="Magento\Tax\Block\Adminhtml\Items\Price\Renderer" name="column_price" template="items/price/unit.phtml" group="column"/> + <block class="Magento\Tax\Block\Adminhtml\Items\Price\Renderer" name="column_subtotal" template="items/price/row.phtml" group="column"/> + <block class="Magento\Tax\Block\Adminhtml\Items\Price\Renderer" name="column_total" template="items/price/total.phtml" group="column"/> + </referenceBlock> +</page> diff --git a/app/code/Magento/Tax/view/adminhtml/layout/sales_order_create_item_price.xml b/app/code/Magento/Tax/view/adminhtml/layout/sales_order_create_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..e6bcd4e4990f83f3a2bd890bf8070a3a339806cb --- /dev/null +++ b/app/code/Magento/Tax/view/adminhtml/layout/sales_order_create_item_price.xml @@ -0,0 +1,42 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <block class="Magento\Tax\Block\Item\Price\Renderer" name="item_unit_price" template="order/create/items/price/unit.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> + <block class="Magento\Tax\Block\Item\Price\Renderer" name="item_row_total" template="order/create/items/price/row.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> + <block class="Magento\Tax\Block\Item\Price\Renderer" name="item_row_total_with_discount" template="order/create/items/price/total.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> +</page> diff --git a/app/code/Magento/Tax/view/adminhtml/layout/sales_order_item_price.xml b/app/code/Magento/Tax/view/adminhtml/layout/sales_order_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..bf0e841e1e33e73fb97aae238b1ed8cafe395512 --- /dev/null +++ b/app/code/Magento/Tax/view/adminhtml/layout/sales_order_item_price.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="order_items"> + <block class="Magento\Tax\Block\Adminhtml\Items\Price\Renderer" name="column_price" template="items/price/unit.phtml" group="column"/> + <block class="Magento\Tax\Block\Adminhtml\Items\Price\Renderer" name="column_subtotal" template="items/price/row.phtml" group="column"/> + <block class="Magento\Tax\Block\Adminhtml\Items\Price\Renderer" name="column_total" template="items/price/total.phtml" group="column"/> + </referenceBlock> +</page> diff --git a/app/code/Magento/Tax/view/adminhtml/templates/items/price/row.phtml b/app/code/Magento/Tax/view/adminhtml/templates/items/price/row.phtml new file mode 100644 index 0000000000000000000000000000000000000000..7f80366081422e065d7a315984845f3283844c15 --- /dev/null +++ b/app/code/Magento/Tax/view/adminhtml/templates/items/price/row.phtml @@ -0,0 +1,48 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Tax\Block\Adminhtml\Items\Price\Renderer $this */ + +$_item = $this->getItem(); +?> + +<?php if ($this->displayBothPrices() || $this->displayPriceExclTax()): ?> + <div class="price-excl-tax"> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?> + </div> +<?php endif; ?> +<?php if ($this->displayBothPrices() || $this->displayPriceInclTax()): ?> + <div class="price-incl-tax"> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> + <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBaseSubtotalInclTax($_item); ?> + <?php echo $this->displayPrices($_baseIncl, $_incl) ?> + </div> +<?php endif; ?> diff --git a/app/code/Magento/Tax/view/adminhtml/templates/items/price/total.phtml b/app/code/Magento/Tax/view/adminhtml/templates/items/price/total.phtml new file mode 100644 index 0000000000000000000000000000000000000000..3a0d0193ba033e24ed8c954d124fc64eb7d39d02 --- /dev/null +++ b/app/code/Magento/Tax/view/adminhtml/templates/items/price/total.phtml @@ -0,0 +1,31 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Tax\Block\Adminhtml\Items\Price\Renderer $this */ + +$_item = $this->getItem(); +?> + +<?php echo $this->displayPrices($this->getBaseTotalAmount($_item), $this->getTotalAmount($_item)) ?> diff --git a/app/code/Magento/Tax/view/adminhtml/templates/items/price/unit.phtml b/app/code/Magento/Tax/view/adminhtml/templates/items/price/unit.phtml new file mode 100644 index 0000000000000000000000000000000000000000..4deec41ead9d58eb76a5034989e677a98e9a972d --- /dev/null +++ b/app/code/Magento/Tax/view/adminhtml/templates/items/price/unit.phtml @@ -0,0 +1,51 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Tax\Block\Adminhtml\Items\Price\Renderer $this */ + +$_item = $this->getItem(); +?> + +<?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceExclTax()): ?> + <div class="price-excl-tax"> + <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + + <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?> + </div> +<?php endif; ?> +<?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices() || $this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax()): ?> + <div class="price-incl-tax"> + <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices()): ?> + <span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> + <?php $_baseIncl = $this->helper('Magento\Checkout\Helper\Data')->getBasePriceInclTax($_item); ?> + + <?php echo $this->displayPrices($_baseIncl, $_incl) ?> + + </div> +<?php endif; ?> diff --git a/app/code/Magento/Tax/view/adminhtml/templates/order/create/items/price/row.phtml b/app/code/Magento/Tax/view/adminhtml/templates/order/create/items/price/row.phtml new file mode 100644 index 0000000000000000000000000000000000000000..18969a7209d65f8e073917b1da1ab44c3c0744e4 --- /dev/null +++ b/app/code/Magento/Tax/view/adminhtml/templates/order/create/items/price/row.phtml @@ -0,0 +1,44 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Tax\Block\Adminhtml\Items\Price\Renderer $this */ + +$_item = $this->getItem(); +?> + +<?php if ($this->displayPriceExclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices($this->getStore())): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->formatPrice($_item->getRowTotal()) ?> +<?php endif; ?> + +<?php if ($this->displayPriceInclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> + <?php echo $this->formatPrice($_incl) ?> +<?php endif; ?> diff --git a/app/code/Magento/Tax/view/adminhtml/templates/order/create/items/price/total.phtml b/app/code/Magento/Tax/view/adminhtml/templates/order/create/items/price/total.phtml new file mode 100644 index 0000000000000000000000000000000000000000..f3850e61eed0d8aae99a33b975367dcc05696eb5 --- /dev/null +++ b/app/code/Magento/Tax/view/adminhtml/templates/order/create/items/price/total.phtml @@ -0,0 +1,46 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Tax\Block\Adminhtml\Items\Price\Renderer $this */ + +$_item = $this->getItem(); +?> + +<?php if ($this->displayPriceExclTax() || $this->displayBothPrices()): ?> + <?php $_rowTotalWithoutDiscount = $_item->getRowTotal() - $_item->getDiscountAmount(); ?> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->formatPrice(max(0, $_rowTotalWithoutDiscount)) ?> +<?php endif; ?> + + +<?php if ($this->displayPriceInclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices($this->getStore())): ?> + <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php $_incl = $_item->getPriceInclTax() * $_item->getQty() - $_item->getDiscountAmount(); ?> + <?php echo $this->formatPrice($_incl) ?> +<?php endif; ?> diff --git a/app/code/Magento/Tax/view/adminhtml/templates/order/create/items/price/unit.phtml b/app/code/Magento/Tax/view/adminhtml/templates/order/create/items/price/unit.phtml new file mode 100644 index 0000000000000000000000000000000000000000..cdfa5685d63ee9e3b3278d4aef7415307f190374 --- /dev/null +++ b/app/code/Magento/Tax/view/adminhtml/templates/order/create/items/price/unit.phtml @@ -0,0 +1,45 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Tax\Block\Adminhtml\Items\Price\Renderer $this */ + +$_item = $this->getItem(); +?> + +<?php if ($this->displayPriceExclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->formatPrice($_item->getCalculationPrice()) ?> +<?php endif; ?> + + +<?php if ($this->displayPriceInclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> + <?php echo $this->formatPrice($_incl) ?> +<?php endif; ?> diff --git a/app/code/Magento/Tax/view/frontend/layout/sales_email_item_price.xml b/app/code/Magento/Tax/view/frontend/layout/sales_email_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..8e860e82905b8c583ec3f4121ef84398cb508c0c --- /dev/null +++ b/app/code/Magento/Tax/view/frontend/layout/sales_email_item_price.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="items"> + <block class="Magento\Tax\Block\Item\Price\Renderer" name="item_price" template="email/items/price/row.phtml"> + <arguments> + <argument name="zone" xsi:type="string">email</argument> + </arguments> + </block> + </referenceBlock> +</page> diff --git a/app/code/Magento/Tax/view/frontend/layout/sales_order_item_price.xml b/app/code/Magento/Tax/view/frontend/layout/sales_order_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..e4560a2c2c39ee81b0b4a5c6b1f709dc869cc576 --- /dev/null +++ b/app/code/Magento/Tax/view/frontend/layout/sales_order_item_price.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <block class="Magento\Tax\Block\Item\Price\Renderer" name="item_unit_price" template="item/price/unit.phtml"> + <arguments> + <argument name="zone" xsi:type="string">sales</argument> + </arguments> + </block> + <block class="Magento\Tax\Block\Item\Price\Renderer" name="item_row_total" template="item/price/row.phtml"> + <arguments> + <argument name="zone" xsi:type="string">sales</argument> + </arguments> + </block> + <block class="Magento\Tax\Block\Item\Price\Renderer" name="item_row_total_after_discount" template="item/price/total_after_discount.phtml"/> +</page> diff --git a/app/code/Magento/Tax/view/frontend/templates/email/items/price/row.phtml b/app/code/Magento/Tax/view/frontend/templates/email/items/price/row.phtml new file mode 100644 index 0000000000000000000000000000000000000000..d5346fa72547e2bdc9375a71fd60a46f6ab8dd97 --- /dev/null +++ b/app/code/Magento/Tax/view/frontend/templates/email/items/price/row.phtml @@ -0,0 +1,47 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Tax\Block\Item\Price\Renderer $this */ + +$_item = $this->getItem(); +/** @var \Magento\Sales\Model\Order $_order */ +$_order = $_item->getOrder(); +?> + +<?php if ($this->displayPriceExclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $_order->formatPrice($_item->getRowTotal()) ?> +<?php endif; ?> + + +<?php if ($this->displayPriceInclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getSubtotalInclTax($_item); ?> + <?php echo $_order->formatPrice($_incl) ?> +<?php endif; ?> diff --git a/app/code/Magento/Tax/view/frontend/templates/item/price/row.phtml b/app/code/Magento/Tax/view/frontend/templates/item/price/row.phtml index 59506d4369b624aeca6eae326377e215096afc74..5a8143977d0b9cf77f4583fc5b5e7c4deef46ad9 100644 --- a/app/code/Magento/Tax/view/frontend/templates/item/price/row.phtml +++ b/app/code/Magento/Tax/view/frontend/templates/item/price/row.phtml @@ -29,7 +29,7 @@ $_item = $this->getItem(); <?php if (($this->displayPriceInclTax() || $this->displayBothPrices()) && !$_item->getNoSubtotal()): ?> <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax'));?>"> <span class="cart price"> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($_item->getRowTotalInclTax()) ?> + <?php echo $this->formatPrice($_item->getRowTotalInclTax()) ?> </span> </span> <?php endif; ?> @@ -37,7 +37,7 @@ $_item = $this->getItem(); <?php if (($this->displayPriceExclTax() || $this->displayBothPrices()) && !$_item->getNoSubtotal()): ?> <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax'));?>"> <span class="cart price"> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($_item->getRowTotal()) ?> + <?php echo $this->formatPrice($_item->getRowTotal()) ?> </span> </span> <?php endif; ?> diff --git a/app/code/Magento/Tax/view/frontend/templates/item/price/total_after_discount.phtml b/app/code/Magento/Tax/view/frontend/templates/item/price/total_after_discount.phtml new file mode 100644 index 0000000000000000000000000000000000000000..d51574e8f2839879e1ecd4c71b2ad49baf4f6060 --- /dev/null +++ b/app/code/Magento/Tax/view/frontend/templates/item/price/total_after_discount.phtml @@ -0,0 +1,29 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/** @var \Magento\Tax\Block\Item\Price\Renderer $this */ +$_item = $this->getItem(); +?> +<?php $_order = $this->getItem()->getOrderItem()->getOrder() ?> +<?php echo $_order->formatPrice($this->getTotalAmount($_item))?> \ No newline at end of file diff --git a/app/code/Magento/Tax/view/frontend/templates/item/price/unit.phtml b/app/code/Magento/Tax/view/frontend/templates/item/price/unit.phtml index 0e55d449a60c2ac1d025878ee5eae9e2ed6da087..59ed24ece87216f9b8446b1458d73d547543e4d5 100644 --- a/app/code/Magento/Tax/view/frontend/templates/item/price/unit.phtml +++ b/app/code/Magento/Tax/view/frontend/templates/item/price/unit.phtml @@ -29,9 +29,9 @@ $_item = $this->getItem(); <?php if ($this->displayPriceInclTax() || $this->displayBothPrices()): ?> <span class="incl tax" data-th="<?php echo $this->escapeHtml(__('Incl. Tax')); ?>"> - <?php $_incl = $this->helper('Magento\Checkout\Helper\Data')->getPriceInclTax($_item); ?> + <?php $_incl = $_item->getPriceInclTax(); ?> <span class="cart price"> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($_incl) ?> + <?php echo $this->formatPrice($_incl) ?> </span> </span> <?php endif; ?> @@ -39,7 +39,7 @@ $_item = $this->getItem(); <?php if ($this->displayPriceExclTax() || $this->displayBothPrices()): ?> <span class="excl tax" data-th="<?php echo $this->escapeHtml(__('Excl. Tax')); ?>"> <span class="cart price"> - <?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($_item->getCalculationPrice()) ?> + <?php echo $this->formatPrice($this->getItemDisplayPriceExclTax()) ?> </span> </span> <?php endif; ?> diff --git a/app/code/Magento/Theme/composer.json b/app/code/Magento/Theme/composer.json index 52a8f435b0d876bc32621dea7423116c4d0fdd42..ad63426c75abb4ed0d109cf570d4fc0b8791b63c 100644 --- a/app/code/Magento/Theme/composer.json +++ b/app/code/Magento/Theme/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/module-translation": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/module-translation": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Theme/view/adminhtml/web/js/bootstrap.js b/app/code/Magento/Theme/view/adminhtml/web/js/bootstrap.js index 82ba24f40ed1f3b9b84cbaa966254a4961e4bb1c..13a4e1c35af2fe880fdbed0f84c0327c08fe62fb 100644 --- a/app/code/Magento/Theme/view/adminhtml/web/js/bootstrap.js +++ b/app/code/Magento/Theme/view/adminhtml/web/js/bootstrap.js @@ -22,7 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ require([ - "jquery/file-uploader", + "jquery/fileUploader/jquery.fileupload-ui", "mage/adminhtml/browser", "Magento_Theme/js/form", "Magento_Theme/js/sortable" diff --git a/app/code/Magento/Translation/composer.json b/app/code/Magento/Translation/composer.json index 7b89e76b425d10f14e7e64ca4f058735216e1f13..e6dba2e8d788bac00e0122741d5a37420165f54b 100644 --- a/app/code/Magento/Translation/composer.json +++ b/app/code/Magento/Translation/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-core": "0.1.0-alpha92", - "magento/module-store": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-core": "0.1.0-alpha93", + "magento/module-store": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Ups/composer.json b/app/code/Magento/Ups/composer.json index 7e1cdf0adfd7d335af2aa7002feb8b49af1d3b52..f2939aace84c9529bfee2b7ed7d8d0cb0db581e7 100644 --- a/app/code/Magento/Ups/composer.json +++ b/app/code/Magento/Ups/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-shipping": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-shipping": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/UrlRedirect/composer.json b/app/code/Magento/UrlRedirect/composer.json index 01da2de0e8e80aecf6db35c75d058c02fe8eaf61..6d0e67acab6cedac89477c1cfb148124505b24e8 100644 --- a/app/code/Magento/UrlRedirect/composer.json +++ b/app/code/Magento/UrlRedirect/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-install": "0.1.0-alpha92", - "magento/module-store": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92" + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-install": "0.1.0-alpha93", + "magento/module-store": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/UrlRewrite/Model/UrlRewrite.php b/app/code/Magento/UrlRewrite/Model/UrlRewrite.php index e9ca1cfcbc7fc51c8b0da21111d65192871358fb..6334646455d648789e3ad4af0ae67c45932f769a 100644 --- a/app/code/Magento/UrlRewrite/Model/UrlRewrite.php +++ b/app/code/Magento/UrlRewrite/Model/UrlRewrite.php @@ -61,6 +61,11 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel */ const TYPE_CUSTOM = 3; + /** + * Field name for loading path + */ + const PATH_FIELD = 'id_path'; + /** * Cache tag for clear cache in after save and after delete * @@ -76,9 +81,14 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel protected $_scopeConfig; /** - * @var \Magento\Framework\Stdlib\Cookie + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory + */ + protected $_cookieMetadataFactory; + + /** + * @var \Magento\Framework\Stdlib\CookieManager */ - protected $_cookie; + protected $_cookieManager; /** * @var \Magento\Store\Model\StoreManagerInterface @@ -94,7 +104,8 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig - * @param \Magento\Framework\Stdlib\Cookie $cookie + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager, * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\App\Http\Context $httpContext * @param \Magento\Framework\Model\Resource\AbstractResource $resource @@ -105,7 +116,8 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, - \Magento\Framework\Stdlib\Cookie $cookie, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, + \Magento\Framework\Stdlib\CookieManager $cookieManager, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\App\Http\Context $httpContext, \Magento\Framework\Model\Resource\AbstractResource $resource = null, @@ -114,7 +126,8 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel ) { $this->_scopeConfig = $scopeConfig; parent::__construct($context, $registry, $resource, $resourceCollection, $data); - $this->_cookie = $cookie; + $this->_cookieManager = $cookieManager; + $this->_cookieMetadataFactory = $cookieMetadataFactory; $this->_storeManager = $storeManager; $this->_httpContext = $httpContext; } @@ -171,39 +184,7 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel */ public function loadByIdPath($path) { - $this->setId(null)->load($path, 'id_path'); - return $this; - } - - /** - * @param mixed $tags - * @return $this - */ - public function loadByTags($tags) - { - $this->setId(null); - - $loadTags = is_array($tags) ? $tags : explode(',', $tags); - - $search = $this->getResourceCollection(); - foreach ($loadTags as $key => $tag) { - if (!is_numeric($key)) { - $tag = $key . '=' . $tag; - } - $search->addTagsFilter($tag); - } - if (!is_null($this->getStoreId())) { - $search->addStoreFilter($this->getStoreId()); - } - - $search->setPageSize(1)->load(); - - if ($search->getSize() > 0) { - foreach ($search as $rewrite) { - $this->setData($rewrite->getData()); - } - } - + $this->setId(null)->load($path, self::PATH_FIELD); return $this; } @@ -218,56 +199,6 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel return array_search($key, $optArr) !== false; } - /** - * @param mixed $tags - * @return $this - */ - public function addTag($tags) - { - $curTags = $this->getTags(); - - $addTags = is_array($tags) ? $tags : explode(',', $tags); - - foreach ($addTags as $key => $tag) { - if (!is_numeric($key)) { - $tag = $key . '=' . $tag; - } - if (!in_array($tag, $curTags)) { - $curTags[] = $tag; - } - } - - $this->setTags($curTags); - - return $this; - } - - /** - * @param mixed $tags - * @return $this - */ - public function removeTag($tags) - { - $curTags = $this->getTags(); - - $removeTags = is_array($tags) ? $tags : explode(',', $tags); - - foreach ($removeTags as $key => $tag) { - if (!is_numeric($key)) { - $tag = $key . '=' . $tag; - } - - $tagKey = array_search($tag, $curTags); - if ($tagKey) { - unset($curTags[$tagKey]); - } - } - - $this->setTags(',', $curTags); - - return $this; - } - /** * Perform custom url rewrites * @@ -308,6 +239,7 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel $this->loadByRequestPath($requestCases); + $targetUrl = $request->getBaseUrl(); /** * Try to find rewrite by request path at first, if no luck - try to find by id_path */ @@ -325,8 +257,14 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel $currentStore = $this->_storeManager->getStore(); $this->setStoreId($currentStore->getId())->loadByIdPath($this->getIdPath()); - $this->_cookie->set(\Magento\Store\Model\Store::COOKIE_NAME, $currentStore->getCode(), true); - $targetUrl = $request->getBaseUrl() . '/' . $this->getRequestPath(); + $cookieMetadata = $this->_cookieMetadataFactory->createPublicCookieMetadata() + ->setDurationOneYear(); + $this->_cookieManager->setPublicCookie( + \Magento\Store\Model\Store::COOKIE_NAME, + $currentStore->getCode(), + $cookieMetadata + ); + $targetUrl .= '/' . $this->getRequestPath(); $this->_sendRedirectHeaders($targetUrl, true); } @@ -341,10 +279,18 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel $isPermanentRedirectOption = $this->hasOption('RP'); if ($external === 'http:/' || $external === 'https:') { $destinationStoreCode = $this->_storeManager->getStore($this->getStoreId())->getCode(); - $this->_cookie->set(\Magento\Store\Model\Store::COOKIE_NAME, $destinationStoreCode, true); + + $cookieMetadata = $this->_cookieMetadataFactory->createPublicCookieMetadata() + ->setDurationOneYear(); + $this->_cookieManager->setPublicCookie( + \Magento\Store\Model\Store::COOKIE_NAME, + $destinationStoreCode, + $cookieMetadata + ); + $this->_sendRedirectHeaders($this->getTargetPath(), $isPermanentRedirectOption); } else { - $targetUrl = $request->getBaseUrl() . '/' . $this->getTargetPath(); + $targetUrl .= '/' . $this->getTargetPath(); } $isRedirectOption = $this->hasOption('R'); $isStoreInUrl = $this->_scopeConfig->getValue( @@ -353,21 +299,24 @@ class UrlRewrite extends \Magento\Framework\Model\AbstractModel ); if ($isRedirectOption || $isPermanentRedirectOption) { if ($isStoreInUrl && ($storeCode = $this->_storeManager->getStore()->getCode())) { - $targetUrl = $request->getBaseUrl() . '/' . $storeCode . '/' . $this->getTargetPath(); + $targetUrl .= '/' . $storeCode . '/' . $this->getTargetPath(); } $this->_sendRedirectHeaders($targetUrl, $isPermanentRedirectOption); } if ($isStoreInUrl && ($storeCode = $this->_storeManager->getStore()->getCode())) { - $targetUrl = $request->getBaseUrl() . '/' . $storeCode . '/' . $this->getTargetPath(); + $targetUrl .= '/' . $storeCode . '/' . $this->getTargetPath(); } $queryString = $this->_getQueryString(); if ($queryString) { + + $targetUrl .= '?' . $queryString; } + $request->setRequestUri($targetUrl); $request->setPathInfo($this->getTargetPath()); diff --git a/app/code/Magento/UrlRewrite/composer.json b/app/code/Magento/UrlRewrite/composer.json index 673c72448680386f43aaee9bf2f46a434025e707..5c70fd9304b27a816c2ff1f4d0929ebc6d7a3473 100644 --- a/app/code/Magento/UrlRewrite/composer.json +++ b/app/code/Magento/UrlRewrite/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-store": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-store": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/UrlRewrite/etc/module.xml b/app/code/Magento/UrlRewrite/etc/module.xml index 61de1204f9f430ea565e4e08b7353a78970d2729..cfc1b944e80ddd5a459211daaee3654446f7d707 100644 --- a/app/code/Magento/UrlRewrite/etc/module.xml +++ b/app/code/Magento/UrlRewrite/etc/module.xml @@ -26,9 +26,9 @@ <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name="Magento_UrlRewrite" schema_version="1.0.0.0" active="true"> <depends> - <module name="Magento_Catalog" /> - <module name="Magento_Core" /> <module name="Magento_Store" /> + <module name="Magento_Core" /> + <module name="Magento_Catalog" /> </depends> </module> </config> diff --git a/app/code/Magento/User/composer.json b/app/code/Magento/User/composer.json index 38febed7db2f07228633d0db9038c07e4fefed39..b9e6dfec78ed34c1f02864b773384968a05bd2b5 100644 --- a/app/code/Magento/User/composer.json +++ b/app/code/Magento/User/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-authorization": "0.1.0-alpha92", - "magento/module-store": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-integration": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-authorization": "0.1.0-alpha93", + "magento/module-store": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-integration": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Usps/composer.json b/app/code/Magento/Usps/composer.json index 68f8e2d434025949e4c62347a8e2fc245d5e5776..bfeb6ca5f14f2dc9ca58fb586ab00b1ebed78473 100644 --- a/app/code/Magento/Usps/composer.json +++ b/app/code/Magento/Usps/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-shipping": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-shipping": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Webapi/Controller/Request.php b/app/code/Magento/Webapi/Controller/Request.php index 56e8a01f2c3e6c3c32772ce545e1fbfba987465f..0a53badc0c12a8458565c8fa57ae8456c315148f 100644 --- a/app/code/Magento/Webapi/Controller/Request.php +++ b/app/code/Magento/Webapi/Controller/Request.php @@ -30,16 +30,23 @@ class Request extends \Zend_Controller_Request_Http implements \Magento\Framewor /** @var int */ protected $_consumerId = 0; + /** + * @var \Magento\Framework\Stdlib\CookieManager + */ + protected $_cookieManager; + /** * Modify pathInfo: strip down the front name and query parameters. * * @param \Magento\Framework\App\AreaList $areaList * @param \Magento\Framework\Config\ScopeInterface $configScope + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager * @param null|string|\Zend_Uri $uri */ public function __construct( \Magento\Framework\App\AreaList $areaList, \Magento\Framework\Config\ScopeInterface $configScope, + \Magento\Framework\Stdlib\CookieManager $cookieManager, $uri = null ) { parent::__construct($uri); @@ -49,5 +56,18 @@ class Request extends \Zend_Controller_Request_Http implements \Magento\Framewor $this->_pathInfo = preg_replace("#.*?/{$areaFrontName}/?#", '/', $this->_pathInfo); /** Remove GET parameters from path */ $this->_pathInfo = preg_replace('#\?.*#', '', $this->_pathInfo); + $this->_cookieManager = $cookieManager; + } + + /** + * Retrieve a value from a cookie. + * + * @param string|null $name + * @param string|null $default The default value to return if no value could be found for the given $name. + * @return string|null + */ + public function getCookie($name = null, $default = null) + { + return $this->_cookieManager->getCookie($name, $default); } } diff --git a/app/code/Magento/Webapi/Controller/Rest/Request.php b/app/code/Magento/Webapi/Controller/Rest/Request.php index cc9dc28f537097aa65efa0b8784479209655d543..ffa2c62e932b804dd8a462a38add3a24534f98c4 100644 --- a/app/code/Magento/Webapi/Controller/Rest/Request.php +++ b/app/code/Magento/Webapi/Controller/Rest/Request.php @@ -52,16 +52,18 @@ class Request extends \Magento\Webapi\Controller\Request * * @param \Magento\Framework\App\AreaList $areaList * @param \Magento\Framework\Config\ScopeInterface $configScope + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager * @param \Magento\Webapi\Controller\Rest\Request\Deserializer\Factory $deserializerFactory * @param null|string $uri */ public function __construct( \Magento\Framework\App\AreaList $areaList, \Magento\Framework\Config\ScopeInterface $configScope, + \Magento\Framework\Stdlib\CookieManager $cookieManager, \Magento\Webapi\Controller\Rest\Request\Deserializer\Factory $deserializerFactory, $uri = null ) { - parent::__construct($areaList, $configScope, $uri); + parent::__construct($areaList, $configScope, $cookieManager, $uri); $this->_deserializerFactory = $deserializerFactory; } diff --git a/app/code/Magento/Webapi/Model/Config/ClassReflector/TypeProcessor.php b/app/code/Magento/Webapi/Model/Config/ClassReflector/TypeProcessor.php index 46ec6fa7a867d92b78e112cb9c49595559bc440f..d88613edaa3baf91f3185abc9c203e64b36cf771 100644 --- a/app/code/Magento/Webapi/Model/Config/ClassReflector/TypeProcessor.php +++ b/app/code/Magento/Webapi/Model/Config/ClassReflector/TypeProcessor.php @@ -438,6 +438,8 @@ class TypeProcessor * @param string $type Convert given value to the this simple type * @return int|string|float|int[]|string[]|float[] Return the value which is converted to type * @throws \Magento\Webapi\Exception + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function processSimpleAndAnyType($value, $type) { @@ -445,12 +447,12 @@ class TypeProcessor if ($this->isArrayType($type) && is_array($value)) { $arrayItemType = $this->getArrayItemType($type); foreach (array_keys($value) as $key) { - if (!settype($value[$key], $arrayItemType)) { + if ($value !== null && !settype($value[$key], $arrayItemType)) { throw new \Magento\Webapi\Exception(sprintf($invalidTypeMsg, $value, $type)); } } } elseif (!$this->isArrayType($type) && !is_array($value)) { - if ($type !== self::ANY_TYPE && !settype($value, $type)) { + if ($value !== null && $type !== self::ANY_TYPE && !settype($value, $type)) { throw new \Magento\Webapi\Exception(sprintf($invalidTypeMsg, $value, $type)); } } else { diff --git a/app/code/Magento/Webapi/composer.json b/app/code/Magento/Webapi/composer.json index 49b014ad840fb065267d9cb21ffb0de28ab71083..e24e855b52e80d044c18f1f62d8a2ac6690c79a1 100644 --- a/app/code/Magento/Webapi/composer.json +++ b/app/code/Magento/Webapi/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-authorization": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-integration": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-user": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-authorization": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-integration": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-user": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Weee/Block/Adminhtml/Items/Price/Renderer.php b/app/code/Magento/Weee/Block/Adminhtml/Items/Price/Renderer.php new file mode 100644 index 0000000000000000000000000000000000000000..690eaccd8d279b434fe5ee6a33531101c7a164f3 --- /dev/null +++ b/app/code/Magento/Weee/Block/Adminhtml/Items/Price/Renderer.php @@ -0,0 +1,202 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Weee\Block\Adminhtml\Items\Price; + +use Magento\Weee\Block\Item\Price\Renderer as ItemPriceRenderer; +use Magento\Sales\Model\Order\Item; +use Magento\Sales\Model\Quote\Item\AbstractItem as QuoteItem; +use Magento\Sales\Model\Order\Invoice\Item as InvoiceItem; +use Magento\Sales\Model\Order\Creditmemo\Item as CreditmemoItem; + +/** + * Sales Order items price column renderer + */ +class Renderer extends \Magento\Tax\Block\Adminhtml\Items\Price\Renderer +{ + /** + * @var \Magento\Weee\Block\Item\Price\Renderer + */ + protected $itemPriceRenderer; + + /** + * @param \Magento\Backend\Block\Template\Context $context + * @param \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn $defaultColumnRenderer + * @param \Magento\Tax\Helper\Data $taxHelper + * @param ItemPriceRenderer $itemPriceRenderer + * @param array $data + */ + public function __construct( + \Magento\Backend\Block\Template\Context $context, + \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn $defaultColumnRenderer, + \Magento\Tax\Helper\Data $taxHelper, + ItemPriceRenderer $itemPriceRenderer, + array $data = array() + ) { + parent::__construct( + $context, + $defaultColumnRenderer, + $taxHelper, + $itemPriceRenderer, + $data + ); + } + + /** + * Whether to display weee details together with price + * + * @return bool + */ + public function displayPriceWithWeeeDetails() + { + return $this->itemPriceRenderer->displayPriceWithWeeeDetails(); + } + + /** + * Whether to display final price that include Weee amounts + * + * @return bool + */ + public function displayFinalPrice() + { + return $this->itemPriceRenderer->displayFinalPrice(); + } + + /** + * Return HTML for unit price excl tax + * + * @return string + */ + public function getUnitPriceExclTaxHtml() + { + $baseUnitPriceExclTax = $this->itemPriceRenderer->getBaseUnitDisplayPriceExclTax(); + $unitPriceExclTax = $this->itemPriceRenderer->getUnitDisplayPriceExclTax(); + return $this->displayPrices($baseUnitPriceExclTax, $unitPriceExclTax); + } + + /** + * Return HTML for row price excl tax + * + * @return string + */ + public function getRowPriceExclTaxHtml() + { + $baseRowPriceExclTax = $this->itemPriceRenderer->getBaseRowDisplayPriceExclTax(); + $rowPriceExclTax = $this->itemPriceRenderer->getRowDisplayPriceExclTax(); + return $this->displayPrices($baseRowPriceExclTax, $rowPriceExclTax); + } + + /** + * Return HTML for unit price incl tax + * + * @return string + */ + public function getUnitPriceInclTaxHtml() + { + $baseUnitPriceInclTax = $this->itemPriceRenderer->getBaseUnitDisplayPriceInclTax(); + $unitPriceInclTax = $this->itemPriceRenderer->getUnitDisplayPriceInclTax(); + return $this->displayPrices($baseUnitPriceInclTax, $unitPriceInclTax); + } + + /** + * Return HTML for row price incl tax + * + * @return string + */ + public function getRowPriceInclTaxHtml() + { + $baseRowPriceInclTax = $this->itemPriceRenderer->getBaseRowDisplayPriceInclTax(); + $rowPriceInclTax = $this->itemPriceRenderer->getRowDisplayPriceInclTax(); + return $this->displayPrices($baseRowPriceInclTax, $rowPriceInclTax); + } + + /** + * Return HTML for final unit price excl tax + * + * @return string + */ + public function getFinalUnitPriceExclTaxHtml() + { + $baseUnitPriceExclTax = $this->itemPriceRenderer->getBaseFinalUnitDisplayPriceExclTax(); + $unitPriceExclTax = $this->itemPriceRenderer->getFinalUnitDisplayPriceExclTax(); + return $this->displayPrices($baseUnitPriceExclTax, $unitPriceExclTax); + } + + /** + * Return HTML for final row price excl tax + * + * @return string + */ + public function getFinalRowPriceExclTaxHtml() + { + $baseRowPriceExclTax = $this->itemPriceRenderer->getBaseFinalRowDisplayPriceExclTax(); + $rowPriceExclTax = $this->itemPriceRenderer->getFinalRowDisplayPriceExclTax(); + return $this->displayPrices($baseRowPriceExclTax, $rowPriceExclTax); + } + + /** + * Return HTML for final unit price incl tax + * + * @return string + */ + public function getFinalUnitPriceInclTaxHtml() + { + $baseUnitPriceInclTax = $this->itemPriceRenderer->getBaseFinalUnitDisplayPriceInclTax(); + $unitPriceInclTax = $this->itemPriceRenderer->getFinalUnitDisplayPriceInclTax(); + return $this->displayPrices($baseUnitPriceInclTax, $unitPriceInclTax); + } + + /** + * Return HTML for final row price incl tax + * + * @return string + */ + public function getFinalRowPriceInclTaxHtml() + { + $baseRowPriceInclTax = $this->itemPriceRenderer->getBaseFinalRowDisplayPriceInclTax(); + $rowPriceInclTax = $this->itemPriceRenderer->getFinalRowDisplayPriceInclTax(); + return $this->displayPrices($baseRowPriceInclTax, $rowPriceInclTax); + } + + /** + * Calculate total amount for the item + * + * @param Item|QuoteItem|InvoiceItem|CreditmemoItem $item + * @return mixed + */ + public function getTotalAmount($item) + { + return $this->itemPriceRenderer->getTotalAmount($item); + } + + /** + * Calculate base total amount for the item + * + * @param Item|QuoteItem|InvoiceItem|CreditmemoItem $item + * @return mixed + */ + public function getBaseTotalAmount($item) + { + return $this->itemPriceRenderer->getBaseTotalAmount($item); + } +} diff --git a/app/code/Magento/Weee/Block/Item/Price/Renderer.php b/app/code/Magento/Weee/Block/Item/Price/Renderer.php index b9731673b3213b00e8ee5d9c075987b5923e3d61..31e241ea5026fa3541935ca74e22e6fde3ef165b 100644 --- a/app/code/Magento/Weee/Block/Item/Price/Renderer.php +++ b/app/code/Magento/Weee/Block/Item/Price/Renderer.php @@ -24,7 +24,9 @@ namespace Magento\Weee\Block\Item\Price; use Magento\Weee\Model\Tax as WeeeDisplayConfig; -use Magento\Framework\Pricing\PriceCurrencyInterface; +use Magento\Sales\Model\Order\Item as OrderItem; +use Magento\Sales\Model\Order\Invoice\Item as InvoiceItem; +use Magento\Sales\Model\Order\CreditMemo\Item as CreditMemoItem; /** * Item price render block @@ -38,27 +40,19 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer */ protected $weeeHelper; - /** - * @var \Magento\Framework\Pricing\PriceCurrencyInterface - */ - protected $priceCurrency; - /** * @param \Magento\Framework\View\Element\Template\Context $context * @param \Magento\Tax\Helper\Data $taxHelper * @param \Magento\Weee\Helper\Data $weeeHelper - * @param PriceCurrencyInterface $priceCurrency * @param array $data */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Tax\Helper\Data $taxHelper, \Magento\Weee\Helper\Data $weeeHelper, - PriceCurrencyInterface $priceCurrency, array $data = array() ) { $this->weeeHelper = $weeeHelper; - $this->priceCurrency = $priceCurrency; parent::__construct($context, $taxHelper, $data); $this->_isScopePrivate = true; } @@ -74,7 +68,12 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer return false; } - if (!$this->weeeHelper->typeOfDisplay([WeeeDisplayConfig::DISPLAY_INCL_DESCR], 'sales')) { + $displayWeeeDetails = $this->weeeHelper->typeOfDisplay( + [WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_EXCL_DESCR_INCL], + $this->getZone(), + $this->getStoreId() + ); + if (!$displayWeeeDetails) { return false; } @@ -85,6 +84,21 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer return true; } + /** + * Return the flag whether to include weee in the price + * + * @return bool|int + */ + public function getIncludeWeeeFlag() + { + $includeWeee = $this->weeeHelper->typeOfDisplay( + [WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], + $this->getZone(), + $this->getStoreId() + ); + return $includeWeee; + } + /** * Get display price for unit price including tax. The Weee amount will be added to unit price including tax * depending on Weee display setting @@ -99,14 +113,34 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer return $priceInclTax; } - if ($this->weeeHelper - ->typeOfDisplay([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], 'sales')) { + if ($this->getIncludeWeeeFlag()) { return $priceInclTax + $this->weeeHelper->getWeeeTaxInclTax($this->getItem()); } return $priceInclTax; } + /** + * Get base price for unit price including tax. The Weee amount will be added to unit price including tax + * depending on Weee display setting + * + * @return float + */ + public function getBaseUnitDisplayPriceInclTax() + { + $basePriceInclTax = $this->getItem()->getBasePriceInclTax(); + + if (!$this->weeeHelper->isEnabled()) { + return $basePriceInclTax; + } + + if ($this->getIncludeWeeeFlag()) { + return $basePriceInclTax + $this->weeeHelper->getBaseWeeeTaxInclTax($this->getItem()); + } + + return $basePriceInclTax; + } + /** * Get display price for row total including tax. The Weee amount will be added to row total including tax * depending on Weee display setting @@ -121,14 +155,34 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer return $rowTotalInclTax; } - if ($this->weeeHelper-> - typeOfDisplay([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], 'sales')) { + if ($this->getIncludeWeeeFlag()) { return $rowTotalInclTax + $this->weeeHelper->getRowWeeeTaxInclTax($this->getItem()); } return $rowTotalInclTax; } + /** + * Get base price for row total including tax. The Weee amount will be added to row total including tax + * depending on Weee display setting + * + * @return float + */ + public function getBaseRowDisplayPriceInclTax() + { + $baseRowTotalInclTax = $this->getItem()->getBaseRowTotalInclTax(); + + if (!$this->weeeHelper->isEnabled()) { + return $baseRowTotalInclTax; + } + + if ($this->getIncludeWeeeFlag()) { + return $baseRowTotalInclTax + $this->weeeHelper->getBaseRowWeeeTaxInclTax($this->getItem()); + } + + return $baseRowTotalInclTax; + } + /** * Get display price for unit price excluding tax. The Weee amount will be added to unit price * depending on Weee display setting @@ -137,20 +191,40 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer */ public function getUnitDisplayPriceExclTax() { - $priceExclTax = $this->getItem()->getCalculationPrice(); + $priceExclTax = $this->getItemDisplayPriceExclTax(); if (!$this->weeeHelper->isEnabled()) { return $priceExclTax; } - if ($this->weeeHelper - ->typeOfDisplay([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], 'sales')) { + if ($this->getIncludeWeeeFlag()) { return $priceExclTax + $this->getItem()->getWeeeTaxAppliedAmount(); } return $priceExclTax; } + /** + * Get base price for unit price excluding tax. The Weee amount will be added to unit price + * depending on Weee display setting + * + * @return float + */ + public function getBaseUnitDisplayPriceExclTax() + { + $basePriceExclTax = $this->getItem()->getBasePrice(); + + if (!$this->weeeHelper->isEnabled()) { + return $basePriceExclTax; + } + + if ($this->getIncludeWeeeFlag()) { + return $basePriceExclTax + $this->getItem()->getBaseWeeeTaxAppliedAmount(); + } + + return $basePriceExclTax; + } + /** * Get display price for row total excluding tax. The Weee amount will be added to row total * depending on Weee display setting @@ -165,14 +239,34 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer return $rowTotalExclTax; } - if ($this->weeeHelper - ->typeOfDisplay([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], 'sales')) { + if ($this->getIncludeWeeeFlag()) { return $rowTotalExclTax + $this->getItem()->getWeeeTaxAppliedRowAmount(); } return $rowTotalExclTax; } + /** + * Get base price for row total excluding tax. The Weee amount will be added to row total + * depending on Weee display setting + * + * @return float + */ + public function getBaseRowDisplayPriceExclTax() + { + $baseRowTotalExclTax = $this->getItem()->getBaseRowTotal(); + + if (!$this->weeeHelper->isEnabled()) { + return $baseRowTotalExclTax; + } + + if ($this->getIncludeWeeeFlag()) { + return $baseRowTotalExclTax + $this->getItem()->getBaseWeeeTaxAppliedRowAmnt(); + } + + return $baseRowTotalExclTax; + } + /** * Get final unit display price including tax, this will add Weee amount to unit price include tax * @@ -189,6 +283,22 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer return $priceInclTax + $this->weeeHelper->getWeeeTaxInclTax($this->getItem()); } + /** + * Get base final unit display price including tax, this will add Weee amount to unit price include tax + * + * @return float + */ + public function getBaseFinalUnitDisplayPriceInclTax() + { + $basePriceInclTax = $this->getItem()->getBasePriceInclTax(); + + if (!$this->weeeHelper->isEnabled()) { + return $basePriceInclTax; + } + + return $basePriceInclTax + $this->weeeHelper->getBaseWeeeTaxInclTax($this->getItem()); + } + /** * Get final row display price including tax, this will add weee amount to rowTotalInclTax * @@ -205,6 +315,22 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer return $rowTotalInclTax + $this->weeeHelper->getRowWeeeTaxInclTax($this->getItem()); } + /** + * Get base final row display price including tax, this will add weee amount to rowTotalInclTax + * + * @return float + */ + public function getBaseFinalRowDisplayPriceInclTax() + { + $baseRowTotalInclTax = $this->getItem()->getBaseRowTotalInclTax(); + + if (!$this->weeeHelper->isEnabled()) { + return $baseRowTotalInclTax; + } + + return $baseRowTotalInclTax + $this->weeeHelper->getBaseRowWeeeTaxInclTax($this->getItem()); + } + /** * Get final unit display price excluding tax * @@ -212,7 +338,7 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer */ public function getFinalUnitDisplayPriceExclTax() { - $priceExclTax = $this->getItem()->getCalculationPrice(); + $priceExclTax = $this->getItemDisplayPriceExclTax(); if (!$this->weeeHelper->isEnabled()) { return $priceExclTax; @@ -221,6 +347,22 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer return $priceExclTax + $this->getItem()->getWeeeTaxAppliedAmount(); } + /** + * Get base final unit display price excluding tax + * + * @return float + */ + public function getBaseFinalUnitDisplayPriceExclTax() + { + $basePriceExclTax = $this->getItem()->getBasePrice(); + + if (!$this->weeeHelper->isEnabled()) { + return $basePriceExclTax; + } + + return $basePriceExclTax + $this->getItem()->getBaseWeeeTaxAppliedAmount(); + } + /** * Get final row display price excluding tax, this will add Weee amount to rowTotal * @@ -237,6 +379,22 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer return $rowTotalExclTax + $this->getItem()->getWeeeTaxAppliedRowAmount(); } + /** + * Get base final row display price excluding tax, this will add Weee amount to rowTotal + * + * @return float + */ + public function getBaseFinalRowDisplayPriceExclTax() + { + $baseRowTotalExclTax = $this->getItem()->getBaseRowTotal(); + + if (!$this->weeeHelper->isEnabled()) { + return $baseRowTotalExclTax; + } + + return $baseRowTotalExclTax + $this->getItem()->getBaseWeeeTaxAppliedRowAmnt(); + } + /** * Whether to display final price that include Weee amounts * @@ -244,7 +402,13 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer */ public function displayFinalPrice() { - if (!$this->weeeHelper->typeOfDisplay(WeeeDisplayConfig::DISPLAY_EXCL_DESCR_INCL, 'sales')) { + $flag = $this->weeeHelper->typeOfDisplay( + WeeeDisplayConfig::DISPLAY_EXCL_DESCR_INCL, + $this->getZone(), + $this->getStoreId() + ); + + if (!$flag) { return false; } @@ -255,13 +419,36 @@ class Renderer extends \Magento\Tax\Block\Item\Price\Renderer } /** - * Format price + * Return the total amount minus discount + * + * @param OrderItem|InvoiceItem|CreditMemoItem $item + * @return mixed + */ + public function getTotalAmount($item) + { + $totalAmount = $item->getRowTotal() + - $item->getDiscountAmount() + + $item->getTaxAmount() + + $item->getHiddenTaxAmount() + + $this->weeeHelper->getRowWeeeTaxInclTax($item); + + return $totalAmount; + } + + /** + * Return the total amount minus discount * - * @param float $price - * @return string + * @param OrderItem|InvoiceItem|CreditMemoItem $item + * @return mixed */ - public function formatPrice($price) + public function getBaseTotalAmount($item) { - return $this->priceCurrency->format($price); + $totalAmount = $item->getBaseRowTotal() + - $item->getBaseDiscountAmount() + + $item->getBaseTaxAmount() + + $item->getBaseHiddenTaxAmount() + + $this->weeeHelper->getBaseRowWeeeTaxInclTax($item); + + return $totalAmount; } } diff --git a/app/code/Magento/Weee/Helper/Data.php b/app/code/Magento/Weee/Helper/Data.php index da26c0d20dcafa77310f8b3b0d426be8fac29179..0de6a7aa9ea523354ee3e5d606e859c69ce9f580 100644 --- a/app/code/Magento/Weee/Helper/Data.php +++ b/app/code/Magento/Weee/Helper/Data.php @@ -221,7 +221,7 @@ class Data extends \Magento\Framework\App\Helper\AbstractHelper * * @param int|int[]|null $compareTo * @param string $zone - * @param Store $store + * @param Store|int|string $store * @return bool|int */ public function typeOfDisplay( @@ -240,6 +240,7 @@ class Data extends \Magento\Framework\App\Helper\AbstractHelper $type = $this->getListPriceDisplayType($store); break; case \Magento\Framework\Pricing\Render::ZONE_SALES: + case \Magento\Framework\Pricing\Render::ZONE_CART: $type = $this->getSalesPriceDisplayType($store); break; case \Magento\Framework\Pricing\Render::ZONE_EMAIL: diff --git a/app/code/Magento/Weee/composer.json b/app/code/Magento/Weee/composer.json index b1fee54436b1468886c4ee85cd2bc31646417da1..c56c0412be1984dc26bbc21da7837fdf3172c4a8 100644 --- a/app/code/Magento/Weee/composer.json +++ b/app/code/Magento/Weee/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-tax": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-directory": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-eav": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-bundle": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-tax": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-directory": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-eav": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-bundle": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Weee/view/adminhtml/layout/sales_creditmemo_item_price.xml b/app/code/Magento/Weee/view/adminhtml/layout/sales_creditmemo_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..60e34e325d034becef5672a84031c794e702237d --- /dev/null +++ b/app/code/Magento/Weee/view/adminhtml/layout/sales_creditmemo_item_price.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="creditmemo_items"> + <block class="Magento\Weee\Block\Adminhtml\Items\Price\Renderer" name="column_price" template="items/price/unit.phtml" group="column"/> + <block class="Magento\Weee\Block\Adminhtml\Items\Price\Renderer" name="column_subtotal" template="items/price/row.phtml" group="column"/> + <block class="Magento\Weee\Block\Adminhtml\Items\Price\Renderer" name="column_total" template="items/price/total.phtml" group="column"/> + </referenceBlock> +</page> diff --git a/app/code/Magento/Weee/view/adminhtml/layout/sales_invoice_item_price.xml b/app/code/Magento/Weee/view/adminhtml/layout/sales_invoice_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..12aaf4b4e51ed0e6c26808e9ba92fe490c0ad314 --- /dev/null +++ b/app/code/Magento/Weee/view/adminhtml/layout/sales_invoice_item_price.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="invoice_items"> + <block class="Magento\Weee\Block\Adminhtml\Items\Price\Renderer" name="column_price" template="items/price/unit.phtml" group="column"/> + <block class="Magento\Weee\Block\Adminhtml\Items\Price\Renderer" name="column_subtotal" template="items/price/row.phtml" group="column"/> + <block class="Magento\Weee\Block\Adminhtml\Items\Price\Renderer" name="column_total" template="items/price/total.phtml" group="column"/> + </referenceBlock> +</page> diff --git a/app/code/Magento/Weee/view/adminhtml/layout/sales_order_create_item_price.xml b/app/code/Magento/Weee/view/adminhtml/layout/sales_order_create_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..b5fd4edb48f5a283cc4a092ca8d86378fe6a9645 --- /dev/null +++ b/app/code/Magento/Weee/view/adminhtml/layout/sales_order_create_item_price.xml @@ -0,0 +1,42 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="item_unit_price" template="order/create/items/price/unit.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="item_row_total" template="order/create/items/price/row.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="item_row_total_with_discount" template="order/create/items/price/total.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> +</page> diff --git a/app/code/Magento/Weee/view/adminhtml/layout/sales_order_item_price.xml b/app/code/Magento/Weee/view/adminhtml/layout/sales_order_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..d2f4cbbfc3ebfef677212536c4df2e3e7ea101b5 --- /dev/null +++ b/app/code/Magento/Weee/view/adminhtml/layout/sales_order_item_price.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="order_items"> + <block class="Magento\Weee\Block\Adminhtml\Items\Price\Renderer" name="column_price" template="items/price/unit.phtml" group="column"/> + <block class="Magento\Weee\Block\Adminhtml\Items\Price\Renderer" name="column_subtotal" template="items/price/row.phtml" group="column"/> + <block class="Magento\Weee\Block\Adminhtml\Items\Price\Renderer" name="column_total" template="items/price/total.phtml" group="column"/> + </referenceBlock> +</page> diff --git a/app/code/Magento/Weee/view/adminhtml/templates/items/price/row.phtml b/app/code/Magento/Weee/view/adminhtml/templates/items/price/row.phtml new file mode 100644 index 0000000000000000000000000000000000000000..5269b64f3f8afa97173cee6a9e2d9dee5f20ca5f --- /dev/null +++ b/app/code/Magento/Weee/view/adminhtml/templates/items/price/row.phtml @@ -0,0 +1,85 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Weee\Block\Adminhtml\Items\Price\Renderer $this */ + +/** @var $_weeeHelper \Magento\Weee\Helper\Data */ +$_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); + +$_item = $this->getItem(); +?> + +<?php if ($this->displayBothPrices() || $this->displayPriceExclTax()): ?> + <div class="price-excl-tax"> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + + <?php echo $this->getRowPriceExclTaxHtml() ?> + + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <br /> + <span class="nobr"><?php echo __('Total'); ?>:<br /> + <?php echo $this->getFinalRowPriceExclTaxHtml(); ?> + </span> + <?php endif; ?> + <?php endif; ?> + </div> +<?php endif; ?> +<?php if ($this->displayBothPrices() || $this->displayPriceInclTax()): ?> + <div class="price-incl-tax"> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->getRowPriceInclTaxHtml(); ?> + + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <br /> + <span class="nobr"><?php echo __('Total'); ?>:<br /> + <?php echo $this->getFinalRowPriceInclTaxHtml(); ?> + </span> + <?php endif; ?> + <?php endif; ?> + </div> +<?php endif; ?> diff --git a/app/code/Magento/Weee/view/adminhtml/templates/items/price/total.phtml b/app/code/Magento/Weee/view/adminhtml/templates/items/price/total.phtml new file mode 100644 index 0000000000000000000000000000000000000000..2be9c6b6fc3f1b9d15644a3ae62f5bdbbd648c94 --- /dev/null +++ b/app/code/Magento/Weee/view/adminhtml/templates/items/price/total.phtml @@ -0,0 +1,31 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Weee\Block\Adminhtml\Items\Price\Renderer $this */ + +$_item = $this->getItem(); +?> + +<?php echo $this->displayPrices($this->getBaseTotalAmount($_item), $this->getTotalAmount($_item)) ?> diff --git a/app/code/Magento/Weee/view/adminhtml/templates/items/price/unit.phtml b/app/code/Magento/Weee/view/adminhtml/templates/items/price/unit.phtml new file mode 100644 index 0000000000000000000000000000000000000000..dee7a501be39af204dc9f5533a6f0f4e28901b79 --- /dev/null +++ b/app/code/Magento/Weee/view/adminhtml/templates/items/price/unit.phtml @@ -0,0 +1,86 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Weee\Block\Adminhtml\Items\Price\Renderer $this */ + +/** @var $_weeeHelper \Magento\Weee\Helper\Data */ +$_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); + +$_item = $this->getItem(); +?> + +<?php if ($this->displayBothPrices() || $this->displayPriceExclTax()): ?> + <div class="price-excl-tax"> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + + <?php echo $this->getUnitPriceExclTaxHtml() ?> + + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <br /> + <span class="nobr"><?php echo __('Total'); ?>:<br /> + <?php echo $this->getFinalUnitPriceExclTaxHtml(); ?> + </span> + <?php endif; ?> + <?php endif; ?> + </div> +<?php endif; ?> +<?php if ($this->displayBothPrices() || $this->displayPriceInclTax()): ?> + <div class="price-incl-tax"> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->getUnitPriceInclTaxHtml(); ?> + + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <br /> + <span class="nobr"><?php echo __('Total'); ?>:<br /> + <?php echo $this->getFinalUnitPriceInclTaxHtml(); ?> + </span> + <?php endif; ?> + <?php endif; ?> + </div> +<?php endif; ?> diff --git a/app/code/Magento/Weee/view/adminhtml/templates/order/create/items/price/row.phtml b/app/code/Magento/Weee/view/adminhtml/templates/order/create/items/price/row.phtml new file mode 100644 index 0000000000000000000000000000000000000000..fad1500e97fd2e0436712cf62f840982b9c38a14 --- /dev/null +++ b/app/code/Magento/Weee/view/adminhtml/templates/order/create/items/price/row.phtml @@ -0,0 +1,78 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var $this \Magento\Weee\Block\Item\Price\Renderer */ + +$_item = $this->getItem(); +?> + +<?php if ($this->displayPriceExclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->formatPrice($this->getRowDisplayPriceExclTax()); ?> + + + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <br /> + <span class="nobr"><?php echo __('Total'); ?>:<br /> + <?php echo $this->formatPrice($this->getFinalRowDisplayPriceExclTax()); ?> + </span> + <?php endif; ?> + <?php endif; ?> +<?php endif; ?> + +<?php if ($this->displayPriceInclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->formatPrice($this->getRowDisplayPriceInclTax()); ?> + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> + <?php echo $this->formatPrice($this->getFinalRowDisplayPriceInclTax()); ?> + </span> + <?php endif; ?> + <?php endif; ?> +<?php endif; ?> diff --git a/app/code/Magento/Weee/view/adminhtml/templates/order/create/items/price/total.phtml b/app/code/Magento/Weee/view/adminhtml/templates/order/create/items/price/total.phtml new file mode 100644 index 0000000000000000000000000000000000000000..0b7d5b97636772b90ac0cf45e05d9d446cbf167e --- /dev/null +++ b/app/code/Magento/Weee/view/adminhtml/templates/order/create/items/price/total.phtml @@ -0,0 +1,82 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Weee\Block\Item\Price\Renderer $this */ + +$_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); +$_item = $this->getItem(); +?> + +<?php if ($this->displayPriceExclTax() || $this->displayBothPrices()): ?> + <?php $_rowTotalWithoutDiscount = $this->getRowDisplayPriceExclTax() - $_item->getDiscountAmount(); ?> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->formatPrice(max(0, $_rowTotalWithoutDiscount)) ?> + + + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <br /> + <span class="nobr"><?php echo __('Total'); ?>:<br /> + <?php echo $this->formatPrice($this->getFinalRowDisplayPriceExclTax() - $_item->getDiscountAmount()); ?> + </span> + <?php endif; ?> + <?php endif; ?> +<?php endif; ?> + + +<?php if ($this->displayPriceInclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php $_incl = $this->getRowDisplayPriceInclTax() - $_item->getDiscountAmount(); ?> + <?php echo $this->formatPrice(max(0, $_incl)) ?> + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> + <?php echo $this->formatPrice($this->getFinalRowDisplayPriceInclTax() - $_item->getDiscountAmount()); ?> + </span> + <?php endif; ?> + <?php endif; ?> +<?php endif; ?> diff --git a/app/code/Magento/Weee/view/adminhtml/templates/order/create/items/price/unit.phtml b/app/code/Magento/Weee/view/adminhtml/templates/order/create/items/price/unit.phtml new file mode 100644 index 0000000000000000000000000000000000000000..cc14f6c97ebcd73bfc94f5056eea1adcd22d9c95 --- /dev/null +++ b/app/code/Magento/Weee/view/adminhtml/templates/order/create/items/price/unit.phtml @@ -0,0 +1,79 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Weee\Block\Item\Price\Renderer $this */ + +$_item = $this->getItem(); +?> + +<?php if ($this->displayPriceExclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->formatPrice($this->getUnitDisplayPriceExclTax()); ?> + + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <br /> + <span class="nobr"><?php echo __('Total'); ?>:<br /> + <?php echo $this->formatPrice($this->getFinalUnitDisplayPriceExclTax()); ?> + </span> + <?php endif; ?> + <?php endif; ?> +<?php endif; ?> + + +<?php if ($this->displayPriceInclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $this->formatPrice($this->getUnitDisplayPriceInclTax()); ?> + + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->formatPrice($tax['amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> + <?php echo $this->formatPrice($this->getFinalUnitDisplayPriceInclTax()); ?> + </span> + <?php endif; ?> + <?php endif; ?> +<?php endif; ?> diff --git a/app/code/Magento/Weee/view/frontend/layout/checkout_cart_sidebar_item_price_renderers.xml b/app/code/Magento/Weee/view/frontend/layout/checkout_cart_sidebar_item_price_renderers.xml index d35990e84859881705dec85194a09af9d6088d02..18b588de5840b2971804d656ffd2b8062e04f0e2 100644 --- a/app/code/Magento/Weee/view/frontend/layout/checkout_cart_sidebar_item_price_renderers.xml +++ b/app/code/Magento/Weee/view/frontend/layout/checkout_cart_sidebar_item_price_renderers.xml @@ -25,6 +25,10 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> <referenceBlock name="minicart"> - <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.cart.item.price.sidebar" template="Magento_Weee::checkout/cart/item/price/sidebar.phtml"/> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.cart.item.price.sidebar" template="checkout/cart/item/price/sidebar.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> </referenceBlock> </page> diff --git a/app/code/Magento/Weee/view/frontend/layout/checkout_item_price_renderers.xml b/app/code/Magento/Weee/view/frontend/layout/checkout_item_price_renderers.xml index aa5efb0e7e06c23d34ee692a4fd5bc91b3cba370..015f0599240a8258431b6cbb1c9ccca21d9172f4 100644 --- a/app/code/Magento/Weee/view/frontend/layout/checkout_item_price_renderers.xml +++ b/app/code/Magento/Weee/view/frontend/layout/checkout_item_price_renderers.xml @@ -24,11 +24,35 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> - <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.item.price.unit" template="Magento_Weee::item/price/unit.phtml"/> - <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.item.price.row" template="Magento_Weee::item/price/row.phtml"/> - <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.onepage.review.item.price.unit.excl" template="checkout/onepage/review/item/price/unit_excl_tax.phtml"/> - <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.onepage.review.item.price.unit.incl" template="checkout/onepage/review/item/price/unit_incl_tax.phtml"/> - <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.onepage.review.item.price.rowtotal.excl" template="checkout/onepage/review/item/price/row_excl_tax.phtml"/> - <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.onepage.review.item.price.rowtotal.incl" template="checkout/onepage/review/item/price/row_incl_tax.phtml"/> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.onepage.review.item.price.unit.excl" template="checkout/onepage/review/item/price/unit_excl_tax.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.onepage.review.item.price.unit.incl" template="checkout/onepage/review/item/price/unit_incl_tax.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.onepage.review.item.price.rowtotal.excl" template="checkout/onepage/review/item/price/row_excl_tax.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.onepage.review.item.price.rowtotal.incl" template="checkout/onepage/review/item/price/row_incl_tax.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.item.price.unit" template="item/price/unit.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="checkout.item.price.row" template="item/price/row.phtml"> + <arguments> + <argument name="zone" xsi:type="string">cart</argument> + </arguments> + </block> </page> diff --git a/app/code/Magento/Weee/view/frontend/layout/sales_email_item_price.xml b/app/code/Magento/Weee/view/frontend/layout/sales_email_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..8e66e4a7566eef1afa7f28a78b0d5e787a204cf3 --- /dev/null +++ b/app/code/Magento/Weee/view/frontend/layout/sales_email_item_price.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <referenceBlock name="items"> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="item_price" template="email/items/price/row.phtml"> + <arguments> + <argument name="zone" xsi:type="string">email</argument> + </arguments> + </block> + </referenceBlock> +</page> diff --git a/app/code/Magento/Weee/view/frontend/layout/sales_order_item_price.xml b/app/code/Magento/Weee/view/frontend/layout/sales_order_item_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..d8886b438ac625e3aaa4248113d3bf57819c9d6e --- /dev/null +++ b/app/code/Magento/Weee/view/frontend/layout/sales_order_item_price.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/page.xsd"> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="item_unit_price" template="item/price/unit.phtml"> + <arguments> + <argument name="zone" xsi:type="string">sales</argument> + </arguments> + </block> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="item_row_total" template="item/price/row.phtml"> + <arguments> + <argument name="zone" xsi:type="string">sales</argument> + </arguments> + </block> + <block class="Magento\Weee\Block\Item\Price\Renderer" name="item_row_total_after_discount" template="item/price/total_after_discount.phtml"/> +</page> diff --git a/app/code/Magento/Weee/view/frontend/templates/email/items/price/row.phtml b/app/code/Magento/Weee/view/frontend/templates/email/items/price/row.phtml new file mode 100644 index 0000000000000000000000000000000000000000..5e8aba669ea9f3ee0f4bba83ff37f178f1f999c3 --- /dev/null +++ b/app/code/Magento/Weee/view/frontend/templates/email/items/price/row.phtml @@ -0,0 +1,79 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** @var \Magento\Weee\Block\Item\Price\Renderer $this */ + +/** @var $_weeeHelper \Magento\Weee\Helper\Data */ +$_weeeHelper = $this->helper('Magento\Weee\Helper\Data'); + +$_item = $this->getItem(); +/** @var \Magento\Sales\Model\Order $_order */ +$_order = $_item->getOrder(); +?> + +<?php if ($this->displayPriceExclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <span class="label"><?php echo __('Excl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $_order->formatPrice($this->getRowDisplayPriceExclTax()); ?> + + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <br /> + <span class="nobr"><?php echo __('Total'); ?>:<br /> <?php echo $_order->formatPrice($this->getFinalRowDisplayPriceExclTax()); ?></span> + <?php endif; ?> + <?php endif; ?> +<?php endif; ?> + + +<?php if ($this->displayPriceInclTax() || $this->displayBothPrices()): ?> + <?php if ($this->displayBothPrices()): ?> + <br /><span class="label"><?php echo __('Incl. Tax'); ?>:</span> + <?php endif; ?> + <?php echo $_order->formatPrice($this->getRowDisplayPriceInclTax()); ?> + <?php if ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item)): ?> + <br /> + <?php if ($this->displayPriceWithWeeeDetails()): ?> + <small> + <?php foreach ($this->helper('Magento\Weee\Helper\Data')->getApplied($_item) as $tax): ?> + <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $_order->formatPrice($tax['row_amount_incl_tax'],true,true); ?></span><br /> + <?php endforeach; ?> + </small> + <?php endif; ?> + + <?php if ($this->displayFinalPrice()): ?> + <span class="nobr"><?php echo __('Total incl. tax'); ?>:<br /> <?php echo $_order->formatPrice($this->getFinalRowDisplayPriceInclTax()); ?></span> + <?php endif; ?> + <?php endif; ?> +<?php endif; ?> diff --git a/app/code/Magento/Weee/view/frontend/templates/item/price/total_after_discount.phtml b/app/code/Magento/Weee/view/frontend/templates/item/price/total_after_discount.phtml new file mode 100644 index 0000000000000000000000000000000000000000..137470ca099786eb8196573f925da672218775de --- /dev/null +++ b/app/code/Magento/Weee/view/frontend/templates/item/price/total_after_discount.phtml @@ -0,0 +1,29 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/** @var \Magento\Weee\Block\Item\Price\Renderer $this */ +$_item = $this->getItem(); +?> +<?php $_order = $this->getItem()->getOrderItem()->getOrder() ?> +<?php echo $_order->formatPrice($this->getTotalAmount($_item))?> \ No newline at end of file diff --git a/app/code/Magento/Widget/composer.json b/app/code/Magento/Widget/composer.json index ebd458e2e265c79c05b4be64b298249ce0d0c3d9..ecd48386ca537565affb81d44631c3be3c7302ce 100644 --- a/app/code/Magento/Widget/composer.json +++ b/app/code/Magento/Widget/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-cms": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-cms": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Sales/Service/V1/OrderCancelInterface.php b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Actions.php similarity index 75% rename from app/code/Magento/Sales/Service/V1/OrderCancelInterface.php rename to app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Actions.php index 6fcdae3e1477b024b440c1a9de028514dbb86f3a..5c19595bb0e3f9b5c8653272791c319150a1e7d6 100644 --- a/app/code/Magento/Sales/Service/V1/OrderCancelInterface.php +++ b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Actions.php @@ -21,19 +21,14 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; /** - * Interface OrderCancelInterface + * Wishlist for item column in customer wishlist + * + * @author Magento Core Team <core@magentocommerce.com> */ -interface OrderCancelInterface +namespace Magento\Wishlist\Block\Customer\Wishlist\Item\Column; + +class Actions extends \Magento\Wishlist\Block\Customer\Wishlist\Item\Column { - /** - * Invoke getOrder service - * - * @param int $id - * @return bool - * @throws \Magento\Framework\Exception\NoSuchEntityException - */ - public function invoke($id); } diff --git a/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Edit.php b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Edit.php new file mode 100644 index 0000000000000000000000000000000000000000..0b57ce0a7ece93bf7559fdcfe3a9bd0f551d0d5e --- /dev/null +++ b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Edit.php @@ -0,0 +1,34 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +/** + * Edit item in customer wishlist table + * + * @author Magento Core Team <core@magentocommerce.com> + */ +namespace Magento\Wishlist\Block\Customer\Wishlist\Item\Column; + +class Edit extends \Magento\Wishlist\Block\Customer\Wishlist\Item\Column +{ +} diff --git a/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Info.php b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Info.php new file mode 100644 index 0000000000000000000000000000000000000000..833992b6b5bdc02217a65a9917f86e8061b378c5 --- /dev/null +++ b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Info.php @@ -0,0 +1,34 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +/** + * Wishlist block customer item cart column + * + * @author Magento Core Team <core@magentocommerce.com> + */ +namespace Magento\Wishlist\Block\Customer\Wishlist\Item\Column; + +class Info extends \Magento\Wishlist\Block\Customer\Wishlist\Item\Column +{ +} diff --git a/app/code/Magento/Wishlist/Block/Rss.php b/app/code/Magento/Wishlist/Block/Rss.php index e07b25c14f6a91b82c3c09a6aa308bb249c27686..5b6ecaa490ce09b6af3d275185d36a1fee961294 100644 --- a/app/code/Magento/Wishlist/Block/Rss.php +++ b/app/code/Magento/Wishlist/Block/Rss.php @@ -98,7 +98,8 @@ class Rss extends \Magento\Wishlist\Block\AbstractBlock { if (is_null($this->_wishlist)) { $this->_wishlist = parent::_getWishlist(); - if ($this->_wishlist->getCustomerId() != $this->_getHelper()->getCustomer()->getId()) { + $currentCustomerId = $this->_getHelper()->getCustomer()->getId(); + if (!$this->_wishlist->getVisibility() && ($this->_wishlist->getCustomerId() != $currentCustomerId)) { $this->_wishlist->unsetData(); } } diff --git a/app/code/Magento/Wishlist/Helper/Data.php b/app/code/Magento/Wishlist/Helper/Data.php index eb8a6bad771ffe7b3bf1dd4626140d656ba0016d..9e3b36d7ac771ff1a055b7f223fb7da46dd008d9 100644 --- a/app/code/Magento/Wishlist/Helper/Data.php +++ b/app/code/Magento/Wishlist/Helper/Data.php @@ -513,7 +513,7 @@ class Data extends \Magento\Framework\App\Helper\AbstractHelper */ public function defaultCommentString() { - return __('Please enter your comments.'); + return __('Comment'); } /** diff --git a/app/code/Magento/Wishlist/composer.json b/app/code/Magento/Wishlist/composer.json index 3158f34b60cafa2142fa13fa2a78119b8e7b09f4..d1471bf4a8af166b5a403680d5c9f8671d321190 100644 --- a/app/code/Magento/Wishlist/composer.json +++ b/app/code/Magento/Wishlist/composer.json @@ -3,25 +3,25 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha92", - "magento/module-customer": "0.1.0-alpha92", - "magento/module-catalog": "0.1.0-alpha92", - "magento/module-core": "0.1.0-alpha92", - "magento/module-checkout": "0.1.0-alpha92", - "magento/module-theme": "0.1.0-alpha92", - "magento/module-catalog-inventory": "0.1.0-alpha92", - "magento/module-rss": "0.1.0-alpha92", - "magento/module-backend": "0.1.0-alpha92", - "magento/module-bundle": "0.1.0-alpha92", - "magento/module-sales": "0.1.0-alpha92", - "magento/module-grouped-product": "0.1.0-alpha92", - "magento/module-configurable-product": "0.1.0-alpha92", - "magento/module-downloadable": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/module-store": "0.1.0-alpha93", + "magento/module-customer": "0.1.0-alpha93", + "magento/module-catalog": "0.1.0-alpha93", + "magento/module-core": "0.1.0-alpha93", + "magento/module-checkout": "0.1.0-alpha93", + "magento/module-theme": "0.1.0-alpha93", + "magento/module-catalog-inventory": "0.1.0-alpha93", + "magento/module-rss": "0.1.0-alpha93", + "magento/module-backend": "0.1.0-alpha93", + "magento/module-bundle": "0.1.0-alpha93", + "magento/module-sales": "0.1.0-alpha93", + "magento/module-grouped-product": "0.1.0-alpha93", + "magento/module-configurable-product": "0.1.0-alpha93", + "magento/module-downloadable": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_index.xml b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_index.xml index 8eea8ecf041f281781e48781daa20ec93c289d36..755f9aeeac82b996d07739a32741ce6edf05e7de 100644 --- a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_index.xml +++ b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_index.xml @@ -31,41 +31,38 @@ <referenceContainer name="content"> <block class="Magento\Wishlist\Block\Customer\Wishlist" name="customer.wishlist" template="view.phtml" cacheable="false"> <block class="Magento\Wishlist\Block\Customer\Wishlist\Items" name="customer.wishlist.items" as="items" template="item/list.phtml" cacheable="false"> - <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Image" name="customer.wishlist.item.image" before="-" template="item/column/image.phtml" cacheable="false"> - <arguments> - <argument name="col_class" xsi:type="string">photo</argument> - </arguments> - </block> - <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Comment" name="customer.wishlist.item.info" template="item/column/info.phtml" cacheable="false"> - <arguments> - <argument name="col_class" xsi:type="string">item</argument> - <argument name="title" translate="true" xsi:type="string">Product Details and Comment</argument> - </arguments> - </block> - <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Cart" name="customer.wishlist.item.cart" template="item/column/cart.phtml" cacheable="false"> - <arguments> - <argument name="col_class" xsi:type="string">actions</argument> - <argument name="title" translate="true" xsi:type="string">Add to Cart</argument> - </arguments> + <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Image" name="customer.wishlist.item.image" template="item/column/image.phtml" cacheable="false" /> + <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Info" name="customer.wishlist.item.name" template="item/column/name.phtml" cacheable="false" /> + <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Cart" name="customer.wishlist.item.price" template="item/column/price.phtml" cacheable="false"> <block class="Magento\Catalog\Pricing\Render" name="product.price.render.wishlist"> <arguments> <argument name="price_render" xsi:type="string">product.price.render.default</argument> <argument name="price_type_code" xsi:type="string">configured_price</argument> + <argument name="price_label" xsi:type="boolean">false</argument> <argument name="zone" xsi:type="string">item_list</argument> </arguments> </block> <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Options" name="customer.wishlist.item.options" cacheable="false"/> </block> - <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Remove" name="customer.wishlist.item.remove" template="item/column/remove.phtml" cacheable="false"> + <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Comment" name="customer.wishlist.item.comment" template="item/column/comment.phtml" cacheable="false"> + <arguments> + <argument name="title" translate="true" xsi:type="string">Product Details and Comment</argument> + </arguments> + </block> + <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Cart" name="customer.wishlist.item.cart" template="item/column/cart.phtml" cacheable="false"> <arguments> - <argument name="col_class" xsi:type="string">remove</argument> + <argument name="title" translate="true" xsi:type="string">Add to Cart</argument> </arguments> </block> + <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Actions" name="customer.wishlist.item.actions" template="item/column/actions.phtml" cacheable="false"> + <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Edit" name="customer.wishlist.item.edit" template="item/column/edit.phtml" before="-" cacheable="false" /> + <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Remove" name="customer.wishlist.item.remove" template="item/column/remove.phtml" cacheable="false"/> + </block> </block> <container name="customer.wishlist.buttons" as="control_buttons" label="Wishlist Control Buttons"> + <block class="Magento\Wishlist\Block\Customer\Wishlist\Button" name="customer.wishlist.button.update" template="button/update.phtml" cacheable="false"/> <block class="Magento\Wishlist\Block\Customer\Wishlist\Button" name="customer.wishlist.button.share" template="button/share.phtml" cacheable="false"/> <block class="Magento\Wishlist\Block\Customer\Wishlist\Button" name="customer.wishlist.button.toCart" template="button/tocart.phtml" cacheable="false"/> - <block class="Magento\Wishlist\Block\Customer\Wishlist\Button" name="customer.wishlist.button.update" template="button/update.phtml" cacheable="false"/> </container> </block> </referenceContainer> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/item/column/info.phtml b/app/code/Magento/Wishlist/view/frontend/templates/item/column/actions.phtml similarity index 62% rename from app/code/Magento/Wishlist/view/frontend/templates/item/column/info.phtml rename to app/code/Magento/Wishlist/view/frontend/templates/item/column/actions.phtml index 32289cb494b715e1e7f22d0a2b38927628e47ea1..9281ed0105afea3bd17a4642e18d53e8947d1f47 100644 --- a/app/code/Magento/Wishlist/view/frontend/templates/item/column/info.phtml +++ b/app/code/Magento/Wishlist/view/frontend/templates/item/column/actions.phtml @@ -23,21 +23,11 @@ */ /* @var \Magento\Wishlist\Model\Item $item */ -$item = $this->getItem(); -$product = $item->getProduct(); ?> -<strong class="product name"> - <a href="<?php echo $this->getProductUrl($item) ?>" title="<?php echo $this->escapeHtml($product->getName()) ?>"> - <?php echo $this->escapeHtml($product->getName()) ?> - </a> -</strong> -<div class="product description"> - <?php echo $this->escapeHtml($this->stripTags($product->getShortDescription()));?> -</div> -<textarea placeholder="<?php echo $this->helper('Magento\Wishlist\Helper\Data')->defaultCommentString() ?>" name="description[<?php echo $item->getWishlistItemId() ?>]" rows="3" cols="5" title="<?php echo __('Comment') ?>"><?php echo($this->escapeHtml($item->getDescription())) ?></textarea> + <?php $children = $this->getChildNames(); ?> <?php if ($children): ?> - <div class="product manage"> + <div class="product-item-actions"> <?php foreach($children as $childName):?> <?php echo $this->getLayout()->renderElement($childName, false);?> <?php endforeach;?> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/item/column/cart.phtml b/app/code/Magento/Wishlist/view/frontend/templates/item/column/cart.phtml index 85299fdcd3686c28d0c688b2a474e199a5ff7f39..cd2d7de36927674e5d94245b1e18bcf339393711 100644 --- a/app/code/Magento/Wishlist/view/frontend/templates/item/column/cart.phtml +++ b/app/code/Magento/Wishlist/view/frontend/templates/item/column/cart.phtml @@ -31,15 +31,24 @@ $product = $item->getProduct(); <?php echo $this->getLayout()->renderElement($childName, false); ?> <?php endforeach;?> <div class="box-tocart"> + <fieldset class="fieldset"> <?php if ($item->canHaveQty() && $product->isVisibleInSiteVisibility()): ?> - <input type="number" data-role="qty" class="input-text qty" data-validate="{required:true,'validate-greater-than-zero':true}" + <div class="field qty"> + <label class="label" for="qty[<?php echo $item->getId() ?>]"><span><?php echo __('Qty') ?></span></label> + <div class="control"> + <input type="number" data-role="qty" id="qty[<?php echo $item->getId() ?>]" class="input-text qty" data-validate="{required:true,'validate-greater-than-zero':true}" name="qty[<?php echo $item->getId() ?>]" value="<?php echo $this->getAddToCartQty($item) * 1 ?>"> - + </div> + </div> <?php endif; ?> <?php if ($product->isSaleable()): ?> - <button type="button" data-role="tocart" title="<?php echo __('Add to Cart') ?>" data-item-id="<?php echo $item->getId()?>" class="action tocart primary"> - <span><?php echo __('Add to Cart') ?></span> - </button> + <div class="product-item-actions"> + <div class="actions-primary"> + <button type="button" data-role="tocart" title="<?php echo __('Add to Cart') ?>" data-item-id="<?php echo $item->getId()?>" class="action tocart primary"> + <span><?php echo __('Add to Cart') ?></span> + </button> + </div> + </div> <?php else: ?> <?php if ($product->getIsSalable()): ?> <p class="available stock" title="<?php echo __('Availability') ?>"> @@ -51,12 +60,5 @@ $product = $item->getProduct(); </p> <?php endif; ?> <?php endif; ?> + </fieldset> </div> - -<?php if ($product->isVisibleInSiteVisibility()): ?> - <p> - <a class="action edit" href="<?php echo $this->getItemConfigureUrl($item) ?>"> - <span><?php echo __('Edit') ?></span> - </a> - </p> -<?php endif ?> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/item/column/comment.phtml b/app/code/Magento/Wishlist/view/frontend/templates/item/column/comment.phtml new file mode 100644 index 0000000000000000000000000000000000000000..4e793ba41d3c5eb0794f4747d107e7371fdc1609 --- /dev/null +++ b/app/code/Magento/Wishlist/view/frontend/templates/item/column/comment.phtml @@ -0,0 +1,30 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/* @var \Magento\Wishlist\Model\Item $item */ + +$item = $this->getItem(); +?> + +<textarea placeholder="<?php echo $this->helper('Magento\Wishlist\Helper\Data')->defaultCommentString() ?>" name="description[<?php echo $item->getWishlistItemId() ?>]" title="<?php echo __('Comment') ?>" class="product-item-comment"><?php echo($this->escapeHtml($item->getDescription())) ?></textarea> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/item/column/edit.phtml b/app/code/Magento/Wishlist/view/frontend/templates/item/column/edit.phtml new file mode 100644 index 0000000000000000000000000000000000000000..513577a5a6440b23817d6578fda41d549f5b0130 --- /dev/null +++ b/app/code/Magento/Wishlist/view/frontend/templates/item/column/edit.phtml @@ -0,0 +1,34 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/* @var \Magento\Wishlist\Model\Item $item */ +$item = $this->getItem(); +$product = $item->getProduct(); +?> + +<?php if ($product->isVisibleInSiteVisibility()): ?> + <a class="action edit" href="<?php echo $this->getItemConfigureUrl($item) ?>"> + <span><?php echo __('Edit') ?></span> + </a> +<?php endif ?> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/item/column/image.phtml b/app/code/Magento/Wishlist/view/frontend/templates/item/column/image.phtml index f01abe193f3d0df60134d615a33da67b0baafafb..4470e63b2699b2b7e5bd2626cfb9f2cdd1441acc 100644 --- a/app/code/Magento/Wishlist/view/frontend/templates/item/column/image.phtml +++ b/app/code/Magento/Wishlist/view/frontend/templates/item/column/image.phtml @@ -27,6 +27,6 @@ $item = $this->getItem(); $product = $item->getProduct(); $imageBlock = $this->getLayout()->createBlock('Magento\Catalog\Block\Product\Image'); ?> -<a class="product photo" href="<?php echo $this->getProductUrl($item) ?>" title="<?php echo $this->escapeHtml($product->getName()) ?>"> +<a class="product-item-photo" href="<?php echo $this->getProductUrl($item) ?>" title="<?php echo $this->escapeHtml($product->getName()) ?>"> <?php echo $imageBlock->init($product, 'wishlist_thumbnail')->toHtml() ?> </a> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/item/column/name.phtml b/app/code/Magento/Wishlist/view/frontend/templates/item/column/name.phtml new file mode 100644 index 0000000000000000000000000000000000000000..721cae2a9e35422f7e3af67f925c4252faf6d701 --- /dev/null +++ b/app/code/Magento/Wishlist/view/frontend/templates/item/column/name.phtml @@ -0,0 +1,33 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/* @var \Magento\Wishlist\Model\Item $item */ +$item = $this->getItem(); +$product = $item->getProduct(); +?> +<strong class="product-item-name"> + <a href="<?php echo $this->getProductUrl($item) ?>" title="<?php echo $this->escapeHtml($product->getName()) ?>" class="product-item-link"> + <?php echo $this->escapeHtml($product->getName()) ?> + </a> +</strong> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/item/column/price.phtml b/app/code/Magento/Wishlist/view/frontend/templates/item/column/price.phtml new file mode 100644 index 0000000000000000000000000000000000000000..42ffe94668a428ab95cd0a843837a77a8de69629 --- /dev/null +++ b/app/code/Magento/Wishlist/view/frontend/templates/item/column/price.phtml @@ -0,0 +1,30 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + +/* @var \Magento\Wishlist\Model\Item $item */ +?> + +<?php foreach ($this->getChildNames() as $childName): ?> + <?php echo $this->getLayout()->renderElement($childName, false); ?> +<?php endforeach;?> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/item/list.phtml b/app/code/Magento/Wishlist/view/frontend/templates/item/list.phtml index da4421f4f50f9e1dd8e1c2938377749a724fa82f..91c766864274167dadc6ed413cd539dacf87abd9 100644 --- a/app/code/Magento/Wishlist/view/frontend/templates/item/list.phtml +++ b/app/code/Magento/Wishlist/view/frontend/templates/item/list.phtml @@ -26,33 +26,26 @@ /** @var \Magento\Wishlist\Block\Customer\Wishlist\Items $this */ $columns = $this->getColumns(); ?> -<div class="wishlist table-wrapper"> - <table class="table data wishlist" id="wishlist-table"> - <caption class="table caption"><?php echo __('Wish List') ?></caption> - <thead> - <tr> + +<div class="products-grid wishlist"> + <?php $iterator = 1; ?> + <?php if (count($this->getItems())): ?> + <ol class="product-items"> + <?php foreach ($this->getItems() as $item): ?> + <?php echo ($iterator++==1) ? '<li class="product-item" id="item_<?php echo $item->getId();?>">' : '</li><li class="product-item" id="item_<?php echo $item->getId();?>">' ?> + <div class="product-item-info"> <?php foreach ($columns as $column): ?> - <th class="col <?php echo $column->getColClass(); ?>"><?php echo $column->getTitle();?></th> + <?php $column->setItem($item); echo $column->toHtml($item);?> <?php endforeach; ?> - </tr> - </thead> - <tbody> - <?php if (count($this->getItems())): ?> - <?php foreach ($this->getItems() as $item): ?> - <tr id="item_<?php echo $item->getId();?>"> - <?php foreach ($columns as $column): ?> - <td class="col <?php echo $column->getColClass(); ?>"> - <?php $column->setItem($item); echo $column->toHtml($item);?> - </td> - <?php endforeach; ?> - </tr> - <?php endforeach ?> - <?php else: ?> - <td colspan="<?php echo count($columns);?>" class="col empty"><?php echo __('This Wish List has no Items');?></td> - <?php endif; ?> - </tbody> - </table> + </div> + <?php echo ($iterator==count($this->getItems())+1) ? '</li>' : '' ?> + <?php endforeach; ?> + </ol> + <?php else: ?> + <div class="message info empty"><span><?php echo __('This Wish List has no Items');?></span></div> + <?php endif; ?> </div> + <?php foreach ($columns as $column): ?> <?php echo $column->getAdditionalHtml();?> <?php endforeach; ?> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/options_list.phtml b/app/code/Magento/Wishlist/view/frontend/templates/options_list.phtml index ef9406f32ce468dce40dee559c75ce6f8144f451..cf61fe92d8297c00543808807d8d1934cd7af266 100644 --- a/app/code/Magento/Wishlist/view/frontend/templates/options_list.phtml +++ b/app/code/Magento/Wishlist/view/frontend/templates/options_list.phtml @@ -26,7 +26,7 @@ <?php $options = $this->getOptionList(); ?> <?php if ($options): ?> -<div class="tooltip wrapper"> +<div class="tooltip wrapper product-item-tooltip"> <span class="action details tooltip toggle"><?php echo __('View Details') ?></span> <div class="tooltip content"> <strong class="subtitle"><?php echo __('Options Details'); ?></strong> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/view.phtml b/app/code/Magento/Wishlist/view/frontend/templates/view.phtml index 9b18af283ce73339ec8b98c05e71f65ecb032011..29dda8ffdfac4223e9e22e8e6625c2a4d844537a 100644 --- a/app/code/Magento/Wishlist/view/frontend/templates/view.phtml +++ b/app/code/Magento/Wishlist/view/frontend/templates/view.phtml @@ -30,7 +30,7 @@ <span><?php echo __('RSS Feed') ?></span> </a> <?php endif; ?> - <form class="form wishlist items" id="wishlist-view-form" + <form class="form-wishlist-items" id="wishlist-view-form" data-mage-init='{"wishlist":{ "dataAttribute":"item-id", "nameFormat":"qty[{0}]", diff --git a/app/design/adminhtml/Magento/backend/Magento_Catalog/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_Catalog/web/css/source/module.less index f107b302f13c388cee49c6d30efc27607dd51c3e..979408ffd95d22c5013c4fc0a836d59452b61840 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Catalog/web/css/source/module.less +++ b/app/design/adminhtml/Magento/backend/Magento_Catalog/web/css/source/module.less @@ -36,3 +36,135 @@ } } +// +// Product Massaction page +//-------------------------------------- + +// Attributes +.attributes-edit-form { + .field { + &:not(.field-weight) { + .addon { + display: block; + position: relative; + input[type="text"] { + border-width: 1px; + } + .addafter { + display: block; + border: 0; + height: auto; + width: auto; + } + input:focus ~ .addafter { + box-shadow: none; + } + } + } + } + + .with-addon .textarea { + margin: 0; + } + + .attribute-change-checkbox { + display: block; + margin-top: 5px; + .label { + float: none; + padding: 0; + width: auto; + } + .checkbox { + margin-right: 5px; + width: auto; + } + } + + .field-price, + .field-special_price, + .field-gift_wrapping_price, + .field-msrp, + .field-gift_wrapping_price { + .addon > input { + padding-left: 23px; + } + .addafter { + > strong { + left: 5px; + position: absolute; + top: 3px; + } + } + } + + .field.type-price, + .field-price, + .field-special_price, + .field-msrp, + .field-weight { + input:focus + label { + box-shadow: none; + } + } + + .field-special_from_date, + .field-special_to_date, + .field-news_from_date, + .field-news_to_date, + .field-custom_design_from, + .field-custom_design_to { + > .control .input-text { + border-width: 1px; + width: 130px; + } + } + + .field-weight { + .fields-group-2 { + .control { + padding-right: 27px; + .addafter + .addafter { + border-width: 1px 1px 1px 0; + border-style: solid; + height: 28px; + right: 0; + position: absolute; + top: 0; + } + .addafter strong { + line-height: 28px; + } + > input:focus + .addafter + .addafter { + box-shadow: 0 0 8px rgba(82, 168, 236, 0.6); + } + } + } + } + + .field-gift_message_available, + .field-gift_wrapping_available { + .addon { + > input[type="checkbox"] { + width: auto; + margin-right: 5px; + } + } + } + + .fieldset > .addafter { + display: none; + } + +} + +// Inventory +.advanced-inventory-edit { + .field.choice { + display: block; + margin: 3px 0 0; + .label { + padding-top: 1px; + } + } +} diff --git a/app/design/adminhtml/Magento/backend/composer.json b/app/design/adminhtml/Magento/backend/composer.json index 9309de8d7a418f084199635f8adcbe97cc2fec30..80cf9ae3a72ab5d90078fffb6124fa05ba8a8ff6 100644 --- a/app/design/adminhtml/Magento/backend/composer.json +++ b/app/design/adminhtml/Magento/backend/composer.json @@ -3,11 +3,11 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/framework": "0.1.0-alpha92", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-theme", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/design/adminhtml/Magento/backend/theme.xml b/app/design/adminhtml/Magento/backend/theme.xml index 9956b848f4702b430addb514ed7b938dcea39603..ba642ec99a1214f50a213cb276188d440a685ffd 100644 --- a/app/design/adminhtml/Magento/backend/theme.xml +++ b/app/design/adminhtml/Magento/backend/theme.xml @@ -24,5 +24,5 @@ --> <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd"> <title>Magento 2 backend</title> - <version>0.1.0-alpha92</version> + <version>0.1.0-alpha93</version> </theme> diff --git a/app/design/adminhtml/Magento/backend/web/css/admin.less b/app/design/adminhtml/Magento/backend/web/css/admin.less index 6333aaf2fa21753d8fd81d49fe27a973ae86c56e..7fc011493c8dd2faeb53694cbbaac6d917e44c48 100644 --- a/app/design/adminhtml/Magento/backend/web/css/admin.less +++ b/app/design/adminhtml/Magento/backend/web/css/admin.less @@ -1338,7 +1338,8 @@ input.mage-error ~ .addafter { .field.type-price input ~ label.addafter strong, .field-price input ~ label.addafter strong, .field-special_price input ~ label.addafter strong, -.field-msrp input ~ label.addafter strong { +.field-msrp input ~ label.addafter strong, +.field-gift_wrapping_price input ~ label.addafter strong { margin-left: 2px; margin-right: -2px; } @@ -3021,115 +3022,9 @@ tr.dynamic-grid input.input-text { } } -/* - Product Massaction page - TODO: css code below should be removed after element.html refactoring --------------------------------------- */ -.attributes-edit-form .attribute-change-checkbox { - white-space: nowrap; - display: block; -} - -.attributes-edit-form .attribute-change-checkbox > label > input { - width: auto; -} - -.attributes-edit-form .field:last-child, -.attributes-edit-form .field-name, -.attributes-edit-form .field.type-price, -.attributes-edit-form .field-price, -.attributes-edit-form .field-special_price, -.attributes-edit-form .field-meta_title, -.attributes-edit-form .field-visibility, -.attributes-edit-form .field-custom_design, -.attributes-edit-form .field-page_layout, -.attributes-edit-form .field-options_container, -.attributes-edit-form .field-country_of_manufacture, -.attributes-edit-form .field-msrp_display_actual_price_type, -.attributes-edit-form .field-tax_class_id, -.attributes-edit-form .field-is_returnable, -.attributes-edit-form .field-msrp, -.attributes-edit-form .field-gift_wrapping_price { - margin-bottom: 50px; -} - -.attributes-edit-form .field .control { - position: relative; -} - -.attributes-edit-form .field-name .attribute-change-checkbox, -.attributes-edit-form .field-meta_title .attribute-change-checkbox, -.attributes-edit-form .field-gift_wrapping_price .attribute-change-checkbox, -.attributes-edit-form .field .control select + .addafter { - position: absolute; - left: 0; - top: 35px; -} - -.attributes-edit-form .field.type-price .attribute-change-checkbox, -.attributes-edit-form .field-price .attribute-change-checkbox, -.attributes-edit-form .field-special_price .attribute-change-checkbox, -.attributes-edit-form .field-msrp .attribute-change-checkbox { - position: absolute; - top: 35px; -} - -.attributes-edit-form .field-special_from_date > .control .input-text, -.attributes-edit-form .field-special_to_date > .control .input-text, -.attributes-edit-form .field-news_from_date > .control .input-text, -.attributes-edit-form .field-news_to_date > .control .input-text, -.attributes-edit-form .field-custom_design_from > .control .input-text, -.attributes-edit-form .field-custom_design_to > .control .input-text { - border-width: 1px; - border-radius: 4px; - width: 130px; -} - -.attributes-edit-form .field-special_from_date .attribute-change-checkbox, -.attributes-edit-form .field-special_to_date .attribute-change-checkbox, -.attributes-edit-form .field-news_from_date .attribute-change-checkbox, -.attributes-edit-form .field-news_to_date .attribute-change-checkbox, -.attributes-edit-form .field-custom_design_from .attribute-change-checkbox, -.attributes-edit-form .field-custom_design_to .attribute-change-checkbox { - margin-top: 5px; -} - -.attributes-edit-form .field-weight .fields-group-2 .control { - width: 160px; -} - -.attributes-edit-form .field-weight .fields-group-2 .control > input { - width: 130px; - float: left; -} - -.attributes-edit-form .field-weight .fields-group-2 .control > input + .addafter { - position: absolute; - top: 35px; -} - -.attributes-edit-form .field-weight .fields-group-2 .control .addafter strong { - line-height: 26px; -} - -.attributes-edit-form .field .control select { - border-radius: 4px; -} - -.attributes-edit-form .field-gift_message_available .addon > .select, -.attributes-edit-form .field-gift_wrapping_available .addon > .select { - margin-bottom: 25px; -} - -.attributes-edit-form .field-gift_message_available .addon > input[type="checkbox"], -.attributes-edit-form .field-gift_wrapping_available .addon > input[type="checkbox"] { - width: auto; - margin-right: 5px; -} - -/* - Widgets --------------------------------------- */ +// +// Widgets +//-------------------------------------- .widget-layout-updates .fieldset-wrapper, .widget-layout-updates .data-table { margin: 0 0 18px; diff --git a/app/design/frontend/Magento/blank/Magento_Bundle/web/css/source/module.less b/app/design/frontend/Magento/blank/Magento_Bundle/web/css/source/module.less index 4b7645a1abbbdd9cf303a97d2669d06a2654b5b6..60a53b115969cb3b2167a9aabb8cb93e7ae70412 100644 --- a/app/design/frontend/Magento/blank/Magento_Bundle/web/css/source/module.less +++ b/app/design/frontend/Magento/blank/Magento_Bundle/web/css/source/module.less @@ -130,9 +130,9 @@ .product-options-wrapper, .product-options-bottom, .block-bundle-summary { - .page-layout-2column-left &, - .page-layout-2column-right &, - .page-layout-3column & { + .page-layout-2columns-left &, + .page-layout-2columns-right &, + .page-layout-3columns & { width: 48%; } } diff --git a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/listings.less b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/listings.less new file mode 100644 index 0000000000000000000000000000000000000000..f5074295d65e8955115c518929fb0b04c6b004bc --- /dev/null +++ b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/listings.less @@ -0,0 +1,240 @@ +// /** +// // * Magento +// * +// * NOTICE OF LICENSE +// * +// * This source file is subject to the Academic Free License (AFL 3.0) +// * that is bundled with this package in the file LICENSE_AFL.txt. +// * It is also available through the world-wide-web at this URL: +// * http://opensource.org/licenses/afl-3.0.php +// * If you did not receive a copy of the license and are unable to +// * obtain it through the world-wide-web, please send an email +// * to license@magentocommerce.com so we can send you a copy immediately. +// * +// * DISCLAIMER +// * +// * Do not edit or add to this file if you wish to upgrade Magento to newer +// * versions in the future. If you wish to customize Magento for your +// * needs please refer to http://www.magentocommerce.com for more information. +// * +// * @category design +// * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) +// * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +// */ + +@product-name-text-decoration: none; +@product-name-text-decoration-hover: @link-text-decoration-hover; + +.product-name() { + font-weight: @font-weight-base; + > a { + .link( + @_link-color: @text-color, + @_link-text-decoration: @product-name-text-decoration, + @_link-color-visited: @text-color, + @_link-text-decoration-visited: @product-name-text-decoration, + @_link-color-hover: @text-color, + @_link-text-decoration-hover: @product-name-text-decoration-hover, + @_link-color-active: @text-color, + @_link-text-decoration-active: @product-name-text-decoration-hover + ); + } +} + +// Product Lists +.products { + margin: @indent-l-base 0; +} +.product { + &-items { + &:extend(.reset-list all); + margin-left: -20px; + } + &-item { + vertical-align: top; + .products-grid & { + width: 100%/2; + display: inline-block; + } + .box-sizing(); + padding-left: 20px; + + &-name { + .product-name(); + display: block; + margin: @indent-xs-base 0; + -ms-word-break: break-all; + word-break: break-all; + + // Non standard for webkit + word-break: break-word; + + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + } + + &-info { + width: 150px; + max-width: 100%; + .page-products & { + width: 200px; + } + } + + &-actions { + display: none; + .actions-secondary { + > .action { + &:extend(.abstract-actions-addto-gridlist all); + &:before { + margin: 0; + } + span { + &:extend(.visually-hidden all); + } + } + } + } + &-description { + margin: @indent-m-base 0; + } + .product-reviews-summary { + .rating-summary { + margin: 0 4px 0 0; + } + .reviews-actions { + margin-top: 5px; + text-transform: lowercase; + font-size: @font-size-s; + } + } + + .price-box { + margin: @indent-s-base 0 @indent-m-base; + .price { + font-weight: bold; + } + .price-label { + font-size: @font-size-s; + color: @text-color-muted; + } + + } + .special-price, + .old-price { + display: inline; + } + .old-price { + color: @text-color-muted; + .price { + font-weight: normal; + } + } + .tocompare { + .icon-font-symbol( + @icon-compare-empty + ); + } + .tocart { + white-space: nowrap; + } + } +} + +.products-list .product { + &-item { + display: table; + width: 100%; + + &-info { + display: table-row; + } + &-photo { + width: 1%; + padding: 0 @indent-l-base @indent-l-base 0; + vertical-align: top; + display: table-cell; + } + &-details { + vertical-align: top; + display: table-cell; + } + } +} + +.responsive-smaller (@break) when (@break = @screen-s) { + .products-list .product { + &-item { + table-layout: fixed; + &-photo { + padding: 0 @indent-s-base @indent-s-base 0; + width: 30%; + } + } + } +} + +.responsive(@break) when (@break = @screen-s) { + .product { + &-item { + .products-grid & { + margin-bottom: @indent-l-base; + } + &-info { + } + + &-actions { + display: block; + .products-grid & { + margin: @indent-s-base 0; + } + .actions-primary + .actions-secondary { + display: table-cell; + width: 50%; + padding-left: 5px; + white-space: nowrap; + > * { + white-space: normal; + } + > .action { + } + } + .actions-primary { display: table-cell; } + } + } + } +} + +.responsive(@break) when (@break = @screen-s) { + .products-grid .product-item { width: 100%/3 } + .layout-1 .products-grid .product-item { width: 100%/3 } + .layout-3 .products-grid .product-item { width: 100%/3 } + .page-products .products-grid .product-item { width: 100%/3 } + .page-products.layout-1 .products-grid .product-item { width: 100%/3 } + .page-products.layout-3 .products-grid .product-item { width: 100%/3 } +} +.responsive(@break) when (@break = @screen-m) { + .page-products .products-grid .product-item{ width: 100%/3 } + .page-products.layout-1 .products-grid .product-item { width: 100%/4 } + .page-products.layout-3 .products-grid .product-item { width: 100%/2 } +} +.responsive(@break) when (@break = @screen-l) { + .products-grid .product-item { width: 100%/5 } + .layout-1 .products-grid .product-item { width: 100%/6 } + .layout-3 .products-grid .product-item { width: 100%/4 } + .page-products .products-grid .product-items { margin: 0; } + .page-products .products-grid .product-item { + width: 100%/4; + width: 200px; + //margin: 0; + margin-left: calc(~"(100% - 4 * 200px) / 3"); + padding: 0; + &:nth-child(4n+1) { + margin-left: 0; + } + } + .page-products.layout-1 .products-grid .product-item { width: 100%/5 } + .page-products.layout-3 .products-grid .product-item { width: 100%/4 } +} diff --git a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/module.less b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/module.less index 9069515b799cc3f02bce5cc466931f4069e6ee60..145a9a0314d819c568663bdb446001c33b59aaa7 100644 --- a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/module.less +++ b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/module.less @@ -48,34 +48,9 @@ @toolbar-mode-icon-font-size: 26px; +@import "listings.less"; @import "toolbar.less"; -.product-item-grid(@_layout-class, @_product-items) when not (@_layout-class = false) and not (@_product-items = '') { - .@{_layout-class} & { - .css(width, 100% / @_product-items); - } -} - -.product-item-grid(@_layout-class, @_product-items) when (@_layout-class = false) and not (@_product-items = '') { - .css(width, 100% / @_product-items); -} - -.product-name() { - font-weight: @font-weight-base; - > a { - .link( - @_link-color: @text-color, - @_link-text-decoration: @product-name-text-decoration, - @_link-color-visited: @text-color, - @_link-text-decoration-visited: @product-name-text-decoration, - @_link-color-hover: @text-color, - @_link-text-decoration-hover: @product-name-text-decoration-hover, - @_link-color-active: @text-color, - @_link-text-decoration-active: @product-name-text-decoration-hover - ); - } -} - // // Category view //-------------------------------------- @@ -106,40 +81,6 @@ } } -// -// Category page layout -//-------------------------------------- -.products.grid .item.product { - .product-item-grid(@_layout-class: false, @product-grid-items-per-row-layout-default); -} - -.responsive(@break) when (@break = @screen-s) { - .products.grid .item.product { - .product-item-grid(@layout-class-1column, @product-grid-items-per-row-layout-1-screen-s); - .product-item-grid(@layout-class-2columns-left, @product-grid-items-per-row-layout-2-left-screen-s); - .product-item-grid(@layout-class-2columns-right, @product-grid-items-per-row-layout-2-right-screen-s); - .product-item-grid(@layout-class-3columns, @product-grid-items-per-row-layout-3-screen-s); - } -} - -.responsive(@break) when (@break = @screen-m) { - .products.grid .item.product { - .product-item-grid(@layout-class-1column, @product-grid-items-per-row-layout-1-screen-m); - .product-item-grid(@layout-class-2columns-left, @product-grid-items-per-row-layout-2-left-screen-m); - .product-item-grid(@layout-class-2columns-right, @product-grid-items-per-row-layout-2-right-screen-m); - .product-item-grid(@layout-class-3columns, @product-grid-items-per-row-layout-3-screen-m); - } -} - -.responsive(@break) when (@break = @screen-l) { - .products.grid .item.product { - .product-item-grid(@layout-class-1column, @product-grid-items-per-row-layout-1-screen-l); - .product-item-grid(@layout-class-2columns-left, @product-grid-items-per-row-layout-2-left-screen-l); - .product-item-grid(@layout-class-2columns-right, @product-grid-items-per-row-layout-2-right-screen-l); - .product-item-grid(@layout-class-3columns, @product-grid-items-per-row-layout-3-screen-l); - } -} - // // Product grid and list item //-------------------------------------- @@ -169,106 +110,6 @@ } } -.products { - &.list.items { - &:extend(.reset-list all); - .item.product { - &:extend(.add-box-sizing all); - position: relative; - vertical-align: top; - } - .img.container { - max-width: 100%; - > .image { - max-width: 100%; - height: auto; - } - } - .name { - .product-name(); - display: block; - } - .price-box { - margin-top: 17px; - .price { - font-weight: @font-weight-bold; - } - } - .description { - padding-top: @indent-l-base; - color: @text-color-intense; - } - .actions { - > .secondary { - display: none; - vertical-align: top; - } - > .primary, - > .secondary { - margin: @indent-s-base 0 0 0; - } - .stock.unavailable { - margin: 7px 5px 0 0; - } - } - .action { - &.tocompare { - &:extend(.abstract-actions-addto-gridlist all); - } - &.tocompare { - .icon-font-symbol( - @icon-compare-empty - ); - } - } - } - &.wrapper.list { - .products.list.items { - .product-item { - display: block; - margin-bottom: @indent-l-base; - &-photo { - display: block; - } - &-details { - text-align: center; - } - &-name { - font-size: @font-size-l; - margin-bottom: @indent-base; - } - .actions { - > .actions-primary { - + .actions-secondary { - margin-top: @indent-s-base; - } - } - } - } - } - } - &.wrapper.grid { - .products.list.items { - .product-item { - display: inline-block; - padding: @product-grid-items-padding; - margin: @product-grid-items-margin; - } - .product-image-container { - margin-bottom: @indent-base; - } - .actions { - > .actions-primary { - display: inline-block; - + .actions-secondary { - margin-top: @indent-s-base; - } - } - } - } - } -} - // // Product view //-------------------------------------- @@ -502,82 +343,6 @@ .product-add-form { &:extend(.revert-field-type-desktop all); } - .products { - &.toolbar { - display: table; - width: 100%; - .settings, - .pager, - .pages { - display: table-cell; - vertical-align: middle; - } - .settings { - text-align: left; - } - .pager { - text-align: right; - } - .modes, - .sorter, - .limiter { - display: inline; - } - .sorter { - } - .limiter { - .text { - display: inline; - } - } - } - } - - .products { - &.list.items { - .actions { - > .secondary { - display: inline-block; - } - } - } - &.wrapper.list { - .products.list.items { - .item.product { - margin-bottom: 2 * @indent-xl-base; - > .product { - display: table; - width: 100%; - table-layout: fixed; - } - .product.photo { - display: table-cell; - vertical-align: top; - width: 30%; - padding-right: 1.75 * @indent-base; - } - .price-box { - width: 30%; - margin-right: 2%; - float: left; - } - .details { - display: table-cell; - vertical-align: top; - text-align: left; - } - .description { - clear: both; - } - .actions { - > .primary { - display: inline-block; - } - } - } - } - } - } } // diff --git a/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/module.less b/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/module.less index f96d322cf8c0d829c0e205e7a6706208c8d809a5..5ec79a6c7a09cdfbb223ee3f0a9c27dec0689051 100644 --- a/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/module.less +++ b/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/module.less @@ -130,7 +130,9 @@ } .sidebar .block-account-nav { .css(background, @sidebar-background); - margin: 0 0 40px; + } + .sidebar-additional { + margin-top: 40px; } .block-account-nav { .title { @@ -233,6 +235,9 @@ //-------------------------------------- .responsive-smaller(@break) when (@break = @screen-m) { .account { + .page.messages { + margin-bottom: 40px; + } .data.table { &:extend(.table-vertical-mobile all); .col.actions { @@ -255,34 +260,10 @@ margin-right: -@layout-width-xs-indent; margin-top: -(@indent-base + 1); .title { - .icon-font( - @_icon-font-content: @icon-down, - @_icon-font-size: 30px, - @_icon-font-position: after - ); - border-top: @border-width-base solid @border-color-base; - border-bottom: @border-width-base solid @border-color-base; - cursor: pointer; - display: block; - font-weight: @font-weight-semibold; - margin-bottom: 0; - overflow: hidden; - padding: 7px 20px; - position: relative; - &:after { - position: absolute; - right: 0; - top: -5px; - } + &:extend(.abstract-toggling-title-mobile all); strong { margin: 0; } - &.active { - .icon-font-symbol( - @_icon-font-content: @icon-prev, - @_icon-font-position: after - ); - } } .content { display: none; @@ -342,7 +323,7 @@ } // My account - .account.page-layout-2column-left { + .account.page-layout-2columns-left { .sidebar-main, .sidebar-additional { width: 22.3%; diff --git a/app/design/frontend/Magento/blank/Magento_Wishlist/web/css/source/module.less b/app/design/frontend/Magento/blank/Magento_Wishlist/web/css/source/module.less index b8b4b04e3b2298a826e335704ed002f8ecd67eed..472caa4ef5d3d24b35a9e24f1f89d84aa0b90134 100644 --- a/app/design/frontend/Magento/blank/Magento_Wishlist/web/css/source/module.less +++ b/app/design/frontend/Magento/blank/Magento_Wishlist/web/css/source/module.less @@ -138,3 +138,217 @@ } } } + +.products-grid.wishlist { + .product { + &-item { + &-info { + } + &-photo { + margin-bottom: @indent-s-base; + display: inline-block; + } + &-name { + margin-top: 0; + } + .price-box { + margin: 0; + } + &-tooltip { + } + &-comment { + display: block; + margin: @indent-s-base 0; + height: 42px; + } + &-actions { + > * { + margin-right: 15px; + &:last-child { + margin-right: 0; + } + } + } + .box-tocart { + input.qty { + height: 32px; + &:extend(.abstract-input-qty all); + } + } + } + } +} +// +// Mobile +//-------------------------------------- +.responsive-smaller(@break) when (@break = @screen-m) { + .products-grid.wishlist { + margin-right: -@indent-s-base; + margin-bottom: @indent-l-base; + .product { + &-item { + padding: @indent-base @indent-s-base @indent-base @indent-base; + position: relative; + border-bottom: 1px solid @color-secondary; + &:first-child { + border-top: 1px solid @color-secondary; + } + &-info { + } + &-photo { + margin-right: @indent-base; + float: left; + } + &-name { + .font-size(16); + } + &-tooltip { + } + &-comment { + } + &-actions { + display: block; + .action { + margin-right: 15px; + &:last-child { + margin-right: 0; + } + &.edit { + float: left; + } + &.delete { + float: right; + } + &.edit, + &.delete { + margin-top: 7px; + } + } + } + &-name, + &-description, + .price-box, + &-tooltip { + margin-left: 95px; + } + .box-tocart { + float: left; + margin-right: @indent-base; + .stock { + margin-top: 7px; + } + } + .giftregisty-dropdown, + .field.qty { + display: none; + } + } + &-image-container { + max-width: 80px; + } + } + } +} +// +// Desktop +//-------------------------------------- +.responsive(@break) when (@break = @screen-m) { + .products-grid.wishlist { + .product { + &-item { + &-info { + } + &-photo { + } + &-name { + } + &-tooltip { + display: inline-block; + } + &-comment { + } + &-actions { + margin: @indent-s-base 0 0; + } + .fieldset { + .field.qty, + .product-item-actions { + } + .field.qty { + padding-right: @indent-s-base; + margin-bottom: @indent-s-base; + } + } + .box-tocart { + .actions-primary { + margin: 0; + } + .stock { + margin: @indent-base 0 0; + } + } + } + } + } +} + +// +// Grid view for wishlist +//-------------------------------------- +// +// Mobile +//-------------------------------------- +.responsive-smaller(@break) when (@break = @screen-m) { + .wishlist-index-index { + .product { + &-item { + width: 100%; + &-info { + width: auto; + } + } + } + } + +} + +// +// Desktop +//-------------------------------------- +.responsive(@break) when (@break = @screen-m) { + .wishlist-index-index { + .product { + &-item { + &-info { + width: 200px; + } + } + } + } +} + +.responsive(@break) when (@break = @screen-s) { + //.wishlist-index-index .products-grid .product-item { width: 100%/3 } +} +.responsive(@break) when (@break = @screen-m) { + //.wishlist-index-index .products-grid .product-item { width: 100%/3 } +} +.responsive(@break) when (@break = @screen-l) { + .wishlist-index-index .products-grid .product-items { margin: 0; } + .wishlist-index-index .products-grid .product-item { + width: 100%/4; + width: 200px; + //margin: 0; + margin-left: calc(~"(100% - 4 * 200px) / 3"); + padding: 0; + &:nth-child(4n+1) { + margin-left: 0; + } + } + .products-grid.wishlist { + .product { + &-item { + } + } + } +} diff --git a/app/design/frontend/Magento/blank/composer.json b/app/design/frontend/Magento/blank/composer.json index e7005b4400b0c3a6d430894d831c06789a63fb29..5ce04c2e04ce01ae87dee25914d1f6b1e43fe06a 100644 --- a/app/design/frontend/Magento/blank/composer.json +++ b/app/design/frontend/Magento/blank/composer.json @@ -3,11 +3,11 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/framework": "0.1.0-alpha92", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-theme", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 64f596f55384c80d47053289c0c1aa30a078e102..687d5e3514b2ccee450e55599081cf4545e23e44 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -150,9 +150,9 @@ <var name="customer_shared_wishlist:height">113</var> <var name="wishlist_thumbnail:type">small_image</var> - <var name="wishlist_thumbnail:width">113</var> + <var name="wishlist_thumbnail:width">200</var> <var name="wishlist_thumbnail:ratio">1</var> - <var name="wishlist_thumbnail:height">113</var> + <var name="wishlist_thumbnail:height">200</var> <var name="wishlist_sidebar_block:type">thumbnail</var> <var name="wishlist_sidebar_block:width">50</var> diff --git a/app/design/frontend/Magento/blank/theme.xml b/app/design/frontend/Magento/blank/theme.xml index 53d9e5ba7fd5eab3cc3257366dff24c92accc54f..da4da4de597a8267cb16ac10c85614793d4220fe 100644 --- a/app/design/frontend/Magento/blank/theme.xml +++ b/app/design/frontend/Magento/blank/theme.xml @@ -24,7 +24,7 @@ --> <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd"> <title>Magento Blank</title> - <version>0.1.0-alpha92</version> + <version>0.1.0-alpha93</version> <media> <preview_image>media/preview.jpg</preview_image> </media> diff --git a/app/design/frontend/Magento/blank/web/css/source/abstract.less b/app/design/frontend/Magento/blank/web/css/source/abstract.less index 3aebfd5c2dd9eec37a8ae65a7ad39828f7411b4b..4fb54beb6d1329f9d718372b1eda7a330d0d47e6 100644 --- a/app/design/frontend/Magento/blank/web/css/source/abstract.less +++ b/app/design/frontend/Magento/blank/web/css/source/abstract.less @@ -114,12 +114,13 @@ // // Simple Dropdown //-------------------------------------- -.dropdown-simple { - line-height: normal; - .dropdown(); - ul.items.dropdown { - min-width: 155px; - } +.abstract-dropdown-simple { + .dropdown( + @_dropdown-list-item-padding: 5px 5px 5px 23px, + @_dropdown-list-min-width: 200px, + @_icon-font-margin: 0 0 0 5px, + @_icon-font-vertical-align: middle + ); } // @@ -499,3 +500,86 @@ ); } } + +// +// Add colon +//-------------------------------------- +.abstract-colon { + &:after { + content: ": "; + } +} + +// +// Icon - create add +//-------------------------------------- +.abstract-icon-add { + .icon-font( + @_icon-font-content: @icon-expand, + @_icon-font-size: 10px, + @_icon-font-line-height: 10px, + @_icon-font-vertical-align: middle + ); +} +.responsive-smaller(@break) when (@break = @screen-m) { + .abstract-icon-add-mobile { + .icon-font( + @_icon-font-content: @icon-expand, + @_icon-font-size: 10px, + @_icon-font-line-height: 10px, + @_icon-font-vertical-align: middle, + @_icon-font-margin: 0 5px 0 0, + @_icon-font-display: block + ); + } +} + +// +// Dropdown items - create new +//-------------------------------------- +.abstract-dropdown-items-new { + .items .item:last-child { + &:hover { + background: @dropdown-list-item-hover; + } + } + .action.new { + &:extend(.abstract-icon-add all); + &:before { + margin-left: -17px; + margin-right: 5px; + } + } +} + +// +// Abstract toggle title block +//-------------------------------------- +.responsive-smaller(@break) when (@break = @screen-m) { + .abstract-toggling-title-mobile { + border-top: @border-width-base solid @border-color-base; + border-bottom: @border-width-base solid @border-color-base; + cursor: pointer; + margin-bottom: 0; + padding: 10px 40px 10px 20px; + position: relative; + .icon-font( + @_icon-font-content: @icon-down, + @_icon-font-size: 28px, + @_icon-font-text-hide: false, + @_icon-font-position: after, + @_icon-font-display: block + ); + &:after { + position: absolute; + right: 10px; + top: 0; + } + &.active { + .icon-font-symbol( + @_icon-font-content: @icon-up, + @_icon-font-position: after + ); + } + } +} diff --git a/app/design/frontend/Magento/blank/web/css/source/layout.less b/app/design/frontend/Magento/blank/web/css/source/layout.less index 915763854a14809e75c9ecbc8125e4fbdf27bc94..4c00f8bc03a769d5b5865d154dfe3b1e2dd2ee9b 100644 --- a/app/design/frontend/Magento/blank/web/css/source/layout.less +++ b/app/design/frontend/Magento/blank/web/css/source/layout.less @@ -95,7 +95,7 @@ &:extend(.add-box-sizing-desktop all); } - .page-layout-2column-right .sidebar-main { + .page-layout-2columns-right .sidebar-main { padding-right: 0; padding-left: @layout-column-main-sidebar-offset; } @@ -107,7 +107,7 @@ &:extend(.add-box-sizing-desktop all); } - .page-layout-2column-left { + .page-layout-2columns-left { .sidebar-additional { padding-right: @layout-column-additional-sidebar-offset; padding-left: 0; diff --git a/app/design/frontend/Magento/plushe/composer.json b/app/design/frontend/Magento/plushe/composer.json index c8b3ce1d3d2297f15593b4436817e5df9fd4a18b..3f3da8e404f2f33c587deb233b5088e62a29fc2f 100644 --- a/app/design/frontend/Magento/plushe/composer.json +++ b/app/design/frontend/Magento/plushe/composer.json @@ -3,12 +3,12 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/theme-frontend-blank": "0.1.0-alpha92", - "magento/framework": "0.1.0-alpha92", + "magento/theme-frontend-blank": "0.1.0-alpha93", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-theme", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "extra": { "map": [ [ diff --git a/app/design/frontend/Magento/plushe/theme.xml b/app/design/frontend/Magento/plushe/theme.xml index c0b39a9f3764df1254c7cb1de977aeb53836e766..62a89bd64e8b056ed94b65a0010fa259fc4bc979 100644 --- a/app/design/frontend/Magento/plushe/theme.xml +++ b/app/design/frontend/Magento/plushe/theme.xml @@ -24,7 +24,7 @@ --> <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd"> <title>Magento Plushe</title> - <version>0.1.0-alpha92</version> + <version>0.1.0-alpha93</version> <parent>Magento/blank</parent> <media> <preview_image>media/preview.jpg</preview_image> diff --git a/app/design/install/Magento/basic/theme.xml b/app/design/install/Magento/basic/theme.xml index 42cb97ca0009280337493a9b94eae5959948775f..925ab98d7852ec7467c2ebf13d1fe9a339df495e 100644 --- a/app/design/install/Magento/basic/theme.xml +++ b/app/design/install/Magento/basic/theme.xml @@ -24,5 +24,5 @@ --> <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd"> <title>Magento Basic</title> - <version>0.1.0-alpha92</version> + <version>0.1.0-alpha93</version> </theme> diff --git a/app/etc/di.xml b/app/etc/di.xml index c6ef9807ad5779746b17ed8e59c06e4dc86179bb..e3fcfb233e755f9526f27f81c711c7611894d685 100644 --- a/app/etc/di.xml +++ b/app/etc/di.xml @@ -79,6 +79,7 @@ <preference for="Magento\Framework\View\Design\Theme\Image\PathInterface" type="Magento\Core\Model\Theme\Image\Path" /> <preference for="Magento\Framework\Session\Config\ConfigInterface" type="Magento\Framework\Session\Config" /> <preference for="Magento\Framework\Session\SidResolverInterface" type="Magento\Framework\Session\SidResolver\Proxy" /> + <preference for="Magento\Framework\Stdlib\CookieManager" type="Magento\Framework\Stdlib\Cookie\PhpCookieManager" /> <preference for="Magento\Framework\TranslateInterface" type="Magento\Framework\Translate" /> <preference for="Magento\Framework\Config\ScopeListInterface" type="interceptionConfigScope" /> <preference for="Magento\Framework\View\Design\Theme\Label\ListInterface" type="Magento\Core\Model\Resource\Theme\Collection" /> diff --git a/app/i18n/magento/de_de/composer.json b/app/i18n/magento/de_de/composer.json index cfafe951a37bc72797fb941b555fd87bccae64a0..4f6de92be49f7218fc8bf9e6ddb9eb2137567df8 100644 --- a/app/i18n/magento/de_de/composer.json +++ b/app/i18n/magento/de_de/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-de_de", "description": "German (Germany) language", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "require": { - "magento/framework": "0.1.0-alpha92", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/en_us/composer.json b/app/i18n/magento/en_us/composer.json index c1de5ebb5dec63807d25e17c052e26436a67ef1b..c6fe319270c42931e1a9d2e26eadf98f88935a86 100644 --- a/app/i18n/magento/en_us/composer.json +++ b/app/i18n/magento/en_us/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-en_us", "description": "English (United States) language", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "require": { - "magento/framework": "0.1.0-alpha92", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/es_es/composer.json b/app/i18n/magento/es_es/composer.json index 35110dd92adbd8266fb0aad99d6b03582e308676..c70aaa9dd2da9504e6f193a0c7c188730388231f 100644 --- a/app/i18n/magento/es_es/composer.json +++ b/app/i18n/magento/es_es/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-es_es", "description": "Spanish (Spain) language", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "require": { - "magento/framework": "0.1.0-alpha92", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/fr_fr/composer.json b/app/i18n/magento/fr_fr/composer.json index e4ac4b9d6c8a92a981dbf4a30a84d07820ede1f0..54022c5d88879f4aa83f63b2a1532281f602cc75 100644 --- a/app/i18n/magento/fr_fr/composer.json +++ b/app/i18n/magento/fr_fr/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-fr_fr", "description": "French (France) language", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "require": { - "magento/framework": "0.1.0-alpha92", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/nl_nl/composer.json b/app/i18n/magento/nl_nl/composer.json index b04200d1f4ac5e8ba3ff0e0782bb8621f4282189..fdda8fce7dd57969ae5836b074ba145c97e97954 100644 --- a/app/i18n/magento/nl_nl/composer.json +++ b/app/i18n/magento/nl_nl/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-nl_nl", "description": "Dutch (Netherlands) language", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "require": { - "magento/framework": "0.1.0-alpha92", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/pt_br/composer.json b/app/i18n/magento/pt_br/composer.json index b8e98a3a222fcdfe8fe9facdb35a89082b3e9b55..8ee23683dd9eead1fbf64d2d36e0775bc447d0db 100644 --- a/app/i18n/magento/pt_br/composer.json +++ b/app/i18n/magento/pt_br/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-pt_br", "description": "Portuguese (Brazil) language", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "require": { - "magento/framework": "0.1.0-alpha92", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/zh_cn/composer.json b/app/i18n/magento/zh_cn/composer.json index 033e6ee477e751a83f45cd7ed52103341e101a1b..d87bc5280f988c0ae65090a1f54a0b2882205eb3 100644 --- a/app/i18n/magento/zh_cn/composer.json +++ b/app/i18n/magento/zh_cn/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-zh_cn", "description": "Chinese (China) language", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "require": { - "magento/framework": "0.1.0-alpha92", + "magento/framework": "0.1.0-alpha93", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/composer.json b/composer.json index b1284d44e3600f5fd5079f8623b0080a957c796d..4eb3f4103a3ea6ca8c3a622f398c99a7bcbe308d 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "magento/project-community-edition", "description": "Magento project (Community Edition)", "type": "project", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "require": { "php": "~5.4.11|~5.5.0" }, diff --git a/dev/tests/integration/framework/Magento/TestFramework/Application.php b/dev/tests/integration/framework/Magento/TestFramework/Application.php index 4a4e97a721fe728b6fa9a788fead160ce889a170..fc8a5f50ecb278088a090e0793fe28a213eea1e2 100644 --- a/dev/tests/integration/framework/Magento/TestFramework/Application.php +++ b/dev/tests/integration/framework/Magento/TestFramework/Application.php @@ -251,6 +251,9 @@ class Application ); $this->loadArea(\Magento\TestFramework\Application::DEFAULT_APP_AREA); + \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->configure( + $objectManager->get('Magento\Framework\ObjectManager\DynamicConfigInterface')->getConfiguration() + ); \Magento\Framework\Phrase::setRenderer($objectManager->get('Magento\Framework\Phrase\RendererInterface')); /** @var \Magento\Framework\App\Filesystem\DirectoryList\Verification $verification */ diff --git a/dev/tests/integration/framework/Magento/TestFramework/Cookie.php b/dev/tests/integration/framework/Magento/TestFramework/CookieManager.php similarity index 66% rename from dev/tests/integration/framework/Magento/TestFramework/Cookie.php rename to dev/tests/integration/framework/Magento/TestFramework/CookieManager.php index 40f807ae777581d6f9bdcf5adbb2bec2f66c92eb..1a94a516684d19cfa8cafb2a0d9726d4645626b0 100644 --- a/dev/tests/integration/framework/Magento/TestFramework/Cookie.php +++ b/dev/tests/integration/framework/Magento/TestFramework/CookieManager.php @@ -23,29 +23,23 @@ */ /** - * Replacement for the native cookie model that doesn't send cookie headers in testing environment + * Replacement for PhpCookieManager model that doesn't send cookie headers in testing environment */ namespace Magento\TestFramework; -class Cookie extends \Magento\Framework\Stdlib\Cookie +class CookieManager extends \Magento\Framework\Stdlib\Cookie\PhpCookieManager { /** * Dummy function, which sets value directly to $_COOKIE super-global array instead of calling setcookie() * - * @param string $name The cookie name - * @param string $value The cookie value - * @param int $period Lifetime period - * @param string $path - * @param string $domain - * @param bool|int|string $secure - * @param bool|string $httponly - * @return \Magento\TestFramework\Cookie - * + * @param string $name + * @param string $value + * @param array $metadataArray + * @return void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ - public function set($name, $value, $period = 0, $path = '', $domain = '', $secure = '', $httponly = '') + protected function setCookie($name, $value, array $metadataArray) { $_COOKIE[$name] = $value; - return $this; } } diff --git a/dev/tests/integration/framework/Magento/TestFramework/ObjectManager/Configurator.php b/dev/tests/integration/framework/Magento/TestFramework/ObjectManager/Configurator.php index 7614c1939aa7c7a0a7b2055abba11ef0709e0cf6..7e651f27d33972b38c1c2e052856521aa8fb9129 100644 --- a/dev/tests/integration/framework/Magento/TestFramework/ObjectManager/Configurator.php +++ b/dev/tests/integration/framework/Magento/TestFramework/ObjectManager/Configurator.php @@ -32,6 +32,11 @@ class Configurator implements \Magento\Framework\ObjectManager\DynamicConfigInte */ public function getConfiguration() { - return array('preferences' => array('Magento\Framework\Stdlib\Cookie' => 'Magento\TestFramework\Cookie')); + return [ + 'preferences' => [ + 'Magento\Framework\Stdlib\Cookie' => 'Magento\TestFramework\Cookie', + 'Magento\Framework\Stdlib\CookieManager' => 'Magento\TestFramework\CookieManager', + ] + ]; } } diff --git a/dev/tests/integration/framework/Magento/TestFramework/ObjectManagerFactory.php b/dev/tests/integration/framework/Magento/TestFramework/ObjectManagerFactory.php index 318fd9f7419cdb131726536571d0dff63e21b813..e0ae647b2ac620937f14ea95467cb56f28b2f204 100644 --- a/dev/tests/integration/framework/Magento/TestFramework/ObjectManagerFactory.php +++ b/dev/tests/integration/framework/Magento/TestFramework/ObjectManagerFactory.php @@ -135,6 +135,9 @@ class ObjectManagerFactory extends \Magento\Framework\App\ObjectManagerFactory $this->_primaryConfigData['preferences'] = array_replace( $this->_primaryConfigData['preferences'], [ + 'Magento\Framework\Stdlib\CookieManager' => 'Magento\TestFramework\CookieManager', + 'Magento\Framework\ObjectManager\DynamicConfigInterface' => + '\Magento\TestFramework\ObjectManager\Configurator', 'Magento\Framework\Stdlib\Cookie' => 'Magento\TestFramework\Cookie', 'Magento\Framework\App\RequestInterface' => 'Magento\TestFramework\Request', 'Magento\Framework\App\Request\Http' => 'Magento\TestFramework\Request', diff --git a/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/RequestTest.php b/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/RequestTest.php index 9284547bfc2a47a4169374cdee330c3a5d1a2960..b4fb5187b5e695d684039db2b56a496dc0ef8945 100644 --- a/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/RequestTest.php +++ b/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/RequestTest.php @@ -33,8 +33,9 @@ class RequestTest extends \PHPUnit_Framework_TestCase protected function setUp() { $this->_model = new \Magento\TestFramework\Request( - $this->getMock('Magento\Framework\App\Route\ConfigInterface', array(), array(), '', false), - $this->getMock('Magento\Framework\App\Request\PathInfoProcessorInterface', array(), array(), '', false) + $this->getMock('Magento\Framework\App\Route\ConfigInterface', [], [], '', false), + $this->getMock('Magento\Framework\App\Request\PathInfoProcessorInterface', [], [], '', false), + $this->getMock('Magento\Framework\Stdlib\CookieManager', [], [], '', false) ); } diff --git a/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/ResponseTest.php b/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/ResponseTest.php index 4d42a3ad4b9d39fdc9201ad3280090a09a68cb9b..5d820c4edab77584157c4973be08385d20d8baf8 100644 --- a/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/ResponseTest.php +++ b/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/ResponseTest.php @@ -28,8 +28,9 @@ class ResponseTest extends \PHPUnit_Framework_TestCase public function testCanSendHeaders() { $response = new \Magento\TestFramework\Response( - $this->getMock('\Magento\Framework\Stdlib\Cookie', array(), array(), '', false), - $this->getMock('Magento\Framework\App\Http\Context', array(), array(), '', false) + $this->getMock('Magento\Framework\Stdlib\CookieManager', [], [], '', false), + $this->getMock('Magento\Framework\Stdlib\Cookie\CookieMetadataFactory', [], [], '', false), + $this->getMock('Magento\Framework\App\Http\Context', [], [], '', false) ); $this->assertTrue($response->canSendHeaders()); $this->assertTrue($response->canSendHeaders(false)); diff --git a/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/TestCase/ControllerAbstractTest.php b/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/TestCase/ControllerAbstractTest.php index 2f46e552b180ba2f133bc97c5a6cbc1f5826a9bc..a554a38b2e8de6e10ef51972bd912a42a959380b 100644 --- a/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/TestCase/ControllerAbstractTest.php +++ b/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/TestCase/ControllerAbstractTest.php @@ -37,12 +37,14 @@ class ControllerAbstractTest extends \Magento\TestFramework\TestCase\AbstractCon { $this->messageManager = $this->getMock('\Magento\Framework\Message\Manager', array(), array(), '', false); $request = new \Magento\TestFramework\Request( - $this->getMock('\Magento\Framework\App\Route\ConfigInterface', array(), array(), '', false), - $this->getMock('Magento\Framework\App\Request\PathInfoProcessorInterface', array(), array(), '', false) + $this->getMock('Magento\Framework\App\Route\ConfigInterface', [], [], '', false), + $this->getMock('Magento\Framework\App\Request\PathInfoProcessorInterface', [], [], '', false), + $this->getMock('Magento\Framework\Stdlib\CookieManager', [], [], '', false) ); $response = new \Magento\TestFramework\Response( - $this->getMock('\Magento\Framework\Stdlib\Cookie', array(), array(), '', false), - $this->getMock('Magento\Framework\App\Http\Context', array(), array(), '', false) + $this->getMock('Magento\Framework\Stdlib\CookieManager', [], [], '', false), + $this->getMock('Magento\Framework\Stdlib\Cookie\CookieMetadataFactory', [], [], '', false), + $this->getMock('Magento\Framework\App\Http\Context', [], [], '', false) ); $this->_objectManager = $this->getMock( diff --git a/dev/tests/integration/testsuite/Magento/Backend/Model/Config/Backend/DomainTest.php b/dev/tests/integration/testsuite/Magento/Backend/Model/Config/Backend/DomainTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fec92ee622f3717fefb8c9cf83a8835b55c42e51 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Backend/Model/Config/Backend/DomainTest.php @@ -0,0 +1,78 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Backend\Model\Config\Backend; +use Magento\Framework\Model\Exception; + +/** + * Test \Magento\Backend\Model\Config\Backend\Domain + * + * @magentoAppArea adminhtml + */ +class DomainTest extends \PHPUnit_Framework_TestCase +{ + /** + * @param string $value + * @param string $exceptionMessage + * @magentoDbIsolation enabled + * @dataProvider beforeSaveDataProvider + */ + public function testBeforeSave($value, $exceptionMessage = null) + { + /** @var $domain \Magento\Backend\Model\Config\Backend\Domain */ + $domain = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + 'Magento\Backend\Model\Config\Backend\Domain' + ); + $domain->setValue($value); + try { + $domain->save(); + if ($exceptionMessage ) { + $this->fail('Failed to throw exception'); + } else { + $this->assertNotNull($domain->getId()); + } + } catch (Exception $e) { + $this->assertContains('Invalid domain name: ', $e->getMessage()); + $this->assertContains($exceptionMessage, $e->getMessage()); + $this->assertNull($domain->getId()); + } + } + + /** + * @return array + */ + public function beforeSaveDataProvider() + { + return [ + 'not string' => [['array'], 'Invalid type given. String expected'], + 'invalid hostname' => [ + 'http://', + 'The input does not match the expected structure for a DNS hostname; ' + . 'The input does not appear to be a valid URI hostname; ' + . 'The input does not appear to be a valid local network name' + ], + 'valid hostname' => ['hostname.com'], + 'empty string' => [''], + ]; + } +} diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ProductList/ToolbarTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ProductList/ToolbarTest.php new file mode 100644 index 0000000000000000000000000000000000000000..957498e0921d8069600996a8965d73b2eef1552b --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ProductList/ToolbarTest.php @@ -0,0 +1,76 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Catalog\Model\Product\ProductList; + +/** + * Test \Magento\Catalog\Model\Product\ProductList\Toolbar + */ +class ToolbarTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Catalog\Model\Product\ProductList\Toolbar + */ + protected $toolbar; + + protected function setUp() + { + $this->toolbar = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + 'Magento\Catalog\Model\Product\ProductList\Toolbar' + ); + $_COOKIE = []; + } + + public function tearDown() + { + $_COOKIE = []; + } + + public function testGetOrder() + { + $this->assertNull($this->toolbar->getOrder()); + $_COOKIE[Toolbar::ORDER_COOKIE_NAME] = 'orderCookie'; + $this->assertEquals('orderCookie', $this->toolbar->getOrder()); + } + + public function testGetDirection() + { + $this->assertNull($this->toolbar->getDirection()); + $_COOKIE[Toolbar::DIRECTION_COOKIE_NAME] = 'directionCookie'; + $this->assertEquals('directionCookie', $this->toolbar->getDirection()); + } + + public function testGetMode() + { + $this->assertNull($this->toolbar->getMode()); + $_COOKIE[Toolbar::MODE_COOKIE_NAME] = 'modeCookie'; + $this->assertEquals('modeCookie', $this->toolbar->getMode()); + } + + public function testGetLimit() + { + $this->assertNull($this->toolbar->getLimit()); + $_COOKIE[Toolbar::LIMIT_COOKIE_NAME] = 'limitCookie'; + $this->assertEquals('limitCookie', $this->toolbar->getLimit()); + } +} diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php index 5d2b8f9259108a3d9652c9d04f28ee00b9925434..5e4747d7632a06fd2cc9ea0ec7909e6f62f616c3 100644 --- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php +++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php @@ -176,6 +176,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase $stockItemAfterImport->loadByProduct($productId); $this->assertEquals($stockItmBeforeImport->getQty(), $stockItemAfterImport->getQty()); + $this->assertEquals(1, $stockItemAfterImport->getIsInStock()); unset($stockItemAfterImport); } diff --git a/dev/tests/integration/testsuite/Magento/Framework/Search/Request/Config/ConverterTest.php b/dev/tests/integration/testsuite/Magento/Framework/Search/Request/Config/ConverterTest.php index d4f1d81359729c8dd7c532ad6dfe121cad0cdd4e..cbea998933115544373f092b793b7616f695d152 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Search/Request/Config/ConverterTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Search/Request/Config/ConverterTest.php @@ -42,4 +42,4 @@ class ConverterTest extends \PHPUnit_Framework_TestCase $expected = include __DIR__ . '/../../_files/search_request_config.php'; $this->assertEquals($expected, $result); } -} \ No newline at end of file +} diff --git a/dev/tests/integration/testsuite/Magento/Framework/Search/Request/MapperTest.php b/dev/tests/integration/testsuite/Magento/Framework/Search/Request/MapperTest.php index 6a0e2c08cfb4d0b6742e89f1e432d6b945c8aaa9..eb75216b09172e97e3caca22ae0f5038d0c76591 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Search/Request/MapperTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Search/Request/MapperTest.php @@ -25,21 +25,55 @@ namespace Magento\Framework\Search\Request; class MapperTest extends \PHPUnit_Framework_TestCase { - public function testGet() + /** + * @var \Magento\Framework\Search\Request\Mapper + */ + protected $mapper; + + public function setUp() { $config = include __DIR__ . '/../_files/search_request_config.php'; $request = reset($config); - $mapper = $this->object = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $this->mapper = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() ->create( - '\Magento\Framework\Search\Request\Mapper', + 'Magento\Framework\Search\Request\Mapper', [ 'queries' => $request['queries'], + 'rootQueryName' => 'suggested_search_container', 'filters' => $request['filters'], + 'aggregation' => $request['aggregation'], ] ); + } + + public function testGet() + { $this->assertInstanceOf( '\Magento\Framework\Search\Request\QueryInterface', - $mapper->get('suggested_search_container') + $this->mapper->getRootQuery() ); } -} \ No newline at end of file + + public function testGetBuckets() + { + $buckets = $this->mapper->getBuckets(); + $this->assertEquals(2, count($buckets)); + + $this->assertInstanceOf('\Magento\Framework\Search\Request\Aggregation\TermBucket', $buckets[0]); + $this->assertEquals('category_bucket', $buckets[0]->getName()); + $this->assertEquals('category', $buckets[0]->getField()); + $this->assertEquals(\Magento\Framework\Search\Request\BucketInterface::TYPE_TERM, $buckets[0]->getType()); + $metrics = $buckets[0]->getMetrics(); + $this->assertInstanceOf('\Magento\Framework\Search\Request\Aggregation\Metric', $metrics[0]); + + $this->assertInstanceOf('\Magento\Framework\Search\Request\Aggregation\RangeBucket', $buckets[1]); + $this->assertEquals('price_bucket', $buckets[1]->getName()); + $this->assertEquals('price', $buckets[1]->getField()); + $this->assertEquals(\Magento\Framework\Search\Request\BucketInterface::TYPE_RANGE, $buckets[1]->getType()); + $metrics = $buckets[1]->getMetrics(); + $ranges = $buckets[1]->getRanges(); + $this->assertInstanceOf('\Magento\Framework\Search\Request\Aggregation\Metric', $metrics[0]); + $this->assertInstanceOf('\Magento\Framework\Search\Request\Aggregation\Range', $ranges[0]); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Framework/Search/_files/search_request.xml b/dev/tests/integration/testsuite/Magento/Framework/Search/_files/search_request.xml index e98914a49b9a567414425dc2fd2da731a4bf2653..c5b97e2e6e6af7f7cc9926315c6d4051059e9d09 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Search/_files/search_request.xml +++ b/dev/tests/integration/testsuite/Magento/Framework/Search/_files/search_request.xml @@ -25,16 +25,15 @@ --> <requests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <request query="suggested_search_container" index="product"> + <dimensions> + <dimension name="scope" value="default" /> + </dimensions> <queries> <query xsi:type="boolQuery" name="suggested_search_container" boost="2"> <queryReference clause="must" ref="fulltext_search_query" /> <queryReference clause="should" ref="fulltext_search_query2" /> </query> - <query xsi:type="filteredQuery" name="fulltext_search_query1"> - <queryReference ref="fulltext_search_query" /> - </query> - <query xsi:type="matchQuery" name="fulltext_search_query" boost="5"> <match field="title" value="$request.title" boost="2" /> <match field="description" value="%request.description%" /> @@ -52,6 +51,29 @@ <filter xsi:type="rangeFilter" field="promoted_boost" name="price_name" from="10" to="100" /> <filter xsi:type="termFilter" name="price_name1" field="price_name" value="$name" /> </filters> + <aggregation> + <bucket xsi:type="termBucket" name="category_bucket" field="category"> + <metrics> + <metric type="sum" /> + <metric type="count" /> + <metric type="min" /> + <metric type="max" /> + </metrics> + </bucket> + <bucket xsi:type="rangeBucket" name="price_bucket" field="price"> + <metrics> + <metric type="sum" /> + <metric type="count" /> + <metric type="min" /> + <metric type="max" /> + </metrics> + <ranges> + <range from="" to="50" /> + <range from="50" to="100" /> + <range from="100" to=""/> + </ranges> + </bucket> + </aggregation> <from>10</from> <size>10</size> </request> diff --git a/dev/tests/integration/testsuite/Magento/Framework/Search/_files/search_request_config.php b/dev/tests/integration/testsuite/Magento/Framework/Search/_files/search_request_config.php index c63f48f3df757ed90ea6336c4fd6b34c5b3ad38b..84066fed20ac512893aeae8b2762e4ebdac71c7f 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Search/_files/search_request_config.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Search/_files/search_request_config.php @@ -23,6 +23,12 @@ */ return [ "suggested_search_container" => [ + "dimensions" => [ + "scope" => [ + "name" => "scope", + "value" => "default" + ] + ], "queries" => [ "suggested_search_container" => [ "name" => "suggested_search_container", @@ -39,15 +45,6 @@ return [ ], "type" => "boolQuery" ], - "fulltext_search_query1" => [ - "name" => "fulltext_search_query1", - "queryReference" => [ - [ - "ref" => "fulltext_search_query" - ] - ], - "type" => "filteredQuery" - ], "fulltext_search_query" => [ "name" => "fulltext_search_query", "boost" => "5", @@ -103,6 +100,60 @@ return [ "type" => "termFilter" ] ], + "aggregation" => [ + "category_bucket" => [ + "name" => "category_bucket", + "field" => "category", + "metric" => [ + [ + "type" => "sum", + ], + [ + "type" => "count", + ], + [ + "type" => "min", + ], + [ + "type" => "max", + ] + ], + "type" => "termBucket", + ], + "price_bucket" => [ + "name" => "price_bucket", + "field" => "price", + "metric" => [ + [ + "type" => "sum", + ], + [ + "type" => "count", + ], + [ + "type" => "min", + ], + [ + "type" => "max", + ] + ], + "range" => [ + [ + "from" => "", + "to" => "50", + ], + [ + "from" => "50", + "to" => "100", + ], + [ + "from" => "100", + "to" => "", + ], + ], + "type" => "rangeBucket", + ] + ], "from" => "10", "size" => "10", "query" => "suggested_search_container", diff --git a/dev/tests/integration/testsuite/Magento/Framework/Session/ConfigTest.php b/dev/tests/integration/testsuite/Magento/Framework/Session/ConfigTest.php index c0477d2dddfef1987bb9f6a496db9f8d053eef26..af90e50f940bdc8d06f6b27be54fd324dd06bf3c 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Session/ConfigTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Session/ConfigTest.php @@ -46,7 +46,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase /** @var $sessionManager \Magento\Framework\Session\SessionManager */ $sessionManager = $this->_objectManager->get('Magento\Framework\Session\SessionManager'); if ($sessionManager->isSessionExists()) { - $sessionManager->destroy(); + $sessionManager->writeClose(); } $this->_model = $this->_objectManager->create( 'Magento\Framework\Session\Config', @@ -81,7 +81,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->assertEquals('localhost', $this->_model->getCookieDomain()); $this->assertEquals(false, $this->_model->getCookieSecure()); $this->assertEquals(true, $this->_model->getCookieHttpOnly()); - $this->assertEquals($this->_model->getOption('save_path'), ini_get('session.save_path')); + $this->assertEquals($this->_model->getSavePath(), $this->_model->getOption('save_path')); } /** @@ -91,4 +91,14 @@ class ConfigTest extends \PHPUnit_Framework_TestCase { $this->assertEquals('files', $this->_model->getSaveHandler()); } + + /** + * Unable to add integration tests for testGetLifetimePathNonDefault + * + * Error: Cannot modify header information - headers already sent + */ + public function testGetLifetimePathNonDefault() + { + + } } diff --git a/dev/tests/integration/testsuite/Magento/Persistent/Model/Observer/SessionTest.php b/dev/tests/integration/testsuite/Magento/Persistent/Model/Observer/SessionTest.php index ad653d0a789c42bfb5adc9624404997065e2b658..a8cc0ccb3bd6fcb147287ea1b435a371e3fac609 100644 --- a/dev/tests/integration/testsuite/Magento/Persistent/Model/Observer/SessionTest.php +++ b/dev/tests/integration/testsuite/Magento/Persistent/Model/Observer/SessionTest.php @@ -43,11 +43,6 @@ class SessionTest extends \PHPUnit_Framework_TestCase */ protected $_persistentSession; - /** - * @var \Magento\Framework\Stdlib\Cookie|\PHPUnit_Framework_MockObject_MockObject - */ - protected $_cookieMock; - /** * @var \Magento\Customer\Model\Session */ @@ -57,15 +52,13 @@ class SessionTest extends \PHPUnit_Framework_TestCase { $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->_persistentSession = $this->_objectManager->get('Magento\Persistent\Helper\Session'); - $this->_cookieMock = $this->getMock('Magento\Framework\Stdlib\Cookie', array('set'), array(), '', false); $this->_customerSession = $this->_objectManager->get('Magento\Customer\Model\Session'); $this->_model = $this->_objectManager->create( 'Magento\Persistent\Model\Observer\Session', - array( + [ 'persistentSession' => $this->_persistentSession, - 'cookie' => $this->_cookieMock, 'customerSession' => $this->_customerSession - ) + ] ); } @@ -75,10 +68,10 @@ class SessionTest extends \PHPUnit_Framework_TestCase public function testSynchronizePersistentOnLogin() { $event = new \Magento\Framework\Event(); - $observer = new \Magento\Framework\Event\Observer(array('event' => $event)); + $observer = new \Magento\Framework\Event\Observer(['event' => $event]); /** @var \Magento\Customer\Service\V1\CustomerAccountServiceInterface $customerAccountService */ - $customerAccountService = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + $customerAccountService = $this->_objectManager->create( 'Magento\Customer\Service\V1\CustomerAccountServiceInterface' ); @@ -86,16 +79,6 @@ class SessionTest extends \PHPUnit_Framework_TestCase $customer = $customerAccountService->getCustomer(1); $event->setData('customer', $customer); $this->_persistentSession->setRememberMeChecked(true); - $this->_cookieMock->expects( - $this->once() - )->method( - 'set' - )->with( - \Magento\Persistent\Model\Session::COOKIE_NAME, - $this->anything(), - $this->anything(), - $this->_customerSession->getCookiePath() - ); $this->_model->synchronizePersistentOnLogin($observer); // check that persistent session has been stored for Customer diff --git a/dev/tests/integration/testsuite/Magento/Persistent/Model/SessionTest.php b/dev/tests/integration/testsuite/Magento/Persistent/Model/SessionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0446fcf542ed2caefb76bbc1d38ddf5dc1711920 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Persistent/Model/SessionTest.php @@ -0,0 +1,120 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Persistent\Model; + +class SessionTest extends \PHPUnit_Framework_TestCase +{ + /** + * Session model + * + * @var \Magento\Persistent\Model\Session + */ + protected $session; + + /** + * Object manager + * + * @var \Magento\Framework\ObjectManager + */ + protected $objectManager; + + /** + * The existing cookies + * + * @var array + */ + protected $existingCookies; + + public function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + $this->session = $this->objectManager->create( + 'Magento\Persistent\Model\Session' + ); + $this->existingCookies = $_COOKIE; + } + + public function tearDown() + { + $_COOKIE = $this->existingCookies; + } + + public function testSetPersistentCookie() + { + $this->assertArrayNotHasKey(Session::COOKIE_NAME, $_COOKIE); + $key = 'sessionKey'; + $this->session->setKey($key); + $this->session->setPersistentCookie(1000, '/'); + $this->assertEquals($key, $_COOKIE[Session::COOKIE_NAME]); + } + + public function testRemovePersistendCookie() + { + $_COOKIE[Session::COOKIE_NAME] = 'cookieValue'; + $this->session->removePersistentCookie(); + $this->assertArrayNotHasKey(Session::COOKIE_NAME, $_COOKIE); + } + + /** + * @param int $duration + * @param string $cookieValue + * @dataProvider renewPersistentCookieDataProvider + */ + public function testRenewPersistentCookie($duration, $cookieValue = 'cookieValue') + { + $_COOKIE[Session::COOKIE_NAME] = $cookieValue; + $this->session->renewPersistentCookie($duration, '/'); + $this->assertEquals($cookieValue, $_COOKIE[Session::COOKIE_NAME]); + } + + public function renewPersistentCookieDataProvider() + { + return [ + 'no duration' => [null], + 'no cookie' => [1000, null], + 'all' => [1000], + ]; + } + + /** + * @magentoDataFixture Magento/Customer/_files/customer.php + */ + public function testLoadByCookieKey() + { + /** @var \Magento\Persistent\Model\Session $preSession */ + $preSession = $this->objectManager->get('Magento\Persistent\Model\SessionFactory') + ->create() + ->loadByCookieKey(); + $this->assertNull($preSession->getCustomerId()); + + $this->session->setCustomerId(1)->save(); + $this->session->setPersistentCookie(1000, '/'); + + /** @var \Magento\Persistent\Model\Session $postSession */ + $postSession = $this->objectManager->get('Magento\Persistent\Model\SessionFactory') + ->create() + ->loadByCookieKey(); + $this->assertEquals(1, $postSession->getCustomerId()); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo.php b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo.php index 0915824d8893eed60771b338511428e0f512e44c..458d62ca206e9c6173043b98d577aeb957b43fa2 100644 --- a/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo.php +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo.php @@ -22,6 +22,7 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +require 'default_rollback.php'; require __DIR__ . '/order.php'; /** @var \Magento\Sales\Model\Order $order */ diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_for_get.php b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_for_get.php new file mode 100644 index 0000000000000000000000000000000000000000..749da06554b4ca8fb70685d0c1b8b46fa58d3171 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_for_get.php @@ -0,0 +1,56 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +require 'default_rollback.php'; +require __DIR__ . '/order.php'; + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); +/** @var \Magento\Sales\Model\Order $order */ +$order = $objectManager->create('Magento\Sales\Model\Order'); +$order->loadByIncrementId('100000001'); + +/** @var Magento\Sales\Model\Service\Order $service */ +$service = $objectManager->get('Magento\Sales\Model\Service\Order'); +$creditmemo = $service->prepareCreditmemo($order->getData()); +$creditmemo->setOrder($order); +$creditmemo->setState(Magento\Sales\Model\Order\Creditmemo::STATE_OPEN); +$creditmemo->setIncrementId('100000001'); +$creditmemo->save(); + +/** @var \Magento\Sales\Model\Order\Item $orderItem */ +$orderItem = $objectManager->get('\Magento\Sales\Model\Order\Item'); +$orderItem->setName('Test item') + ->setQtyRefunded(1) + ->setQtyInvoiced(10) + ->setId(1) + ->setOriginalPrice(20); + +/** @var \Magento\Sales\Model\Order\Creditmemo\Item $creditItem */ +$creditItem = $objectManager->get('Magento\Sales\Model\Order\Creditmemo\Item'); +$creditItem->setCreditmemo($creditmemo) + ->setOrderItem($orderItem) + ->setName('Creditmemo item') + ->setQty(1) + ->setPrice(20) + ->save(); diff --git a/lib/internal/Magento/Framework/Search/Response.php b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_for_get_rollback.php similarity index 89% rename from lib/internal/Magento/Framework/Search/Response.php rename to dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_for_get_rollback.php index d9bd14fbb4dcae43097d90b746985148e7f88990..a0fd0a5186db3229078f36e582baaf39e551da74 100644 --- a/lib/internal/Magento/Framework/Search/Response.php +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_for_get_rollback.php @@ -1,7 +1,5 @@ <?php /** - * Search Response - * * Magento * * NOTICE OF LICENSE @@ -23,8 +21,5 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Framework\Search; -class Response implements ResponseInterface -{ -} +require 'default_rollback.php'; \ No newline at end of file diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_rollback.php b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_rollback.php new file mode 100644 index 0000000000000000000000000000000000000000..a0fd0a5186db3229078f36e582baaf39e551da74 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_rollback.php @@ -0,0 +1,25 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +require 'default_rollback.php'; \ No newline at end of file diff --git a/app/code/Magento/Sales/Service/V1/OrderAddressUpdateInterface.php b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_with_list.php similarity index 58% rename from app/code/Magento/Sales/Service/V1/OrderAddressUpdateInterface.php rename to dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_with_list.php index 16237cbe85e5a7fb83f19f5e6cd79ba6340e8fb0..bd7fa9f96b7e58825101b69e904ecb944bcb48a9 100644 --- a/app/code/Magento/Sales/Service/V1/OrderAddressUpdateInterface.php +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_with_list.php @@ -21,20 +21,19 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; -/** - * Interface OrderAddressUpdate - * @package Magento\Sales\Service\V1 - */ -interface OrderAddressUpdateInterface -{ - /** - * Invoke orderAddressUpdate service - * - * @param \Magento\Sales\Service\V1\Data\OrderAddress $orderAddress - * @return bool - * @throws void - */ - public function invoke(\Magento\Sales\Service\V1\Data\OrderAddress $orderAddress); -} +require 'default_rollback.php'; +require __DIR__ . '/order.php'; + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); +/** @var \Magento\Sales\Model\Order $order */ +$order = $objectManager->create('Magento\Sales\Model\Order'); +$order->loadByIncrementId('100000001'); + +/** @var Magento\Sales\Model\Service\Order $service */ +$service = $objectManager->get('Magento\Sales\Model\Service\Order'); +$creditmemo = $service->prepareCreditmemo($order->getData()); +$creditmemo->setOrder($order); +$creditmemo->setState(Magento\Sales\Model\Order\Creditmemo::STATE_OPEN); +$creditmemo->setIncrementId('100000001'); +$creditmemo->save(); diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_with_list_rollback.php b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_with_list_rollback.php new file mode 100644 index 0000000000000000000000000000000000000000..a0fd0a5186db3229078f36e582baaf39e551da74 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/creditmemo_with_list_rollback.php @@ -0,0 +1,25 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +require 'default_rollback.php'; \ No newline at end of file diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/default_rollback.php b/dev/tests/integration/testsuite/Magento/Sales/_files/default_rollback.php new file mode 100644 index 0000000000000000000000000000000000000000..a306b89d5f2b72a28f83133e165f380021733622 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/default_rollback.php @@ -0,0 +1,45 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +use Magento\TestFramework\Helper\Bootstrap; + +/** @var \Magento\Framework\Registry $registry */ +$registry = Bootstrap::getObjectManager()->get('Magento\Framework\Registry'); +$registry->unregister('isSecureArea'); +$registry->register('isSecureArea', true); + +/** @var $order \Magento\Sales\Model\Order */ +$orderCollection = Bootstrap::getObjectManager()->create('Magento\Sales\Model\Resource\Order\Collection'); +foreach ($orderCollection as $order) { + $order->delete(); +} + +/** @var $product \Magento\Catalog\Model\Product */ +$productCollection = Bootstrap::getObjectManager()->create('Magento\Catalog\Model\Resource\Product\Collection'); +foreach ($productCollection as $product) { + $product->delete(); +} + +$registry->unregister('isSecureArea'); +$registry->register('isSecureArea', false); diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/invoice.php b/dev/tests/integration/testsuite/Magento/Sales/_files/invoice.php index cd374a766b4cca361ef91c046eb8e1516d0ae730..72c2371407f5312999d0129901f4ec36b5bb1e40 100644 --- a/dev/tests/integration/testsuite/Magento/Sales/_files/invoice.php +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/invoice.php @@ -24,6 +24,7 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +require 'default_rollback.php'; require 'order.php'; /** @var \Magento\Sales\Model\Order $order */ diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/invoice_rollback.php b/dev/tests/integration/testsuite/Magento/Sales/_files/invoice_rollback.php new file mode 100644 index 0000000000000000000000000000000000000000..a0fd0a5186db3229078f36e582baaf39e551da74 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/invoice_rollback.php @@ -0,0 +1,25 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +require 'default_rollback.php'; \ No newline at end of file diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/order.php b/dev/tests/integration/testsuite/Magento/Sales/_files/order.php index 35528f933142acb12e4d35a9889878b2a286dbb1..2f0c89bd1acc11bb9066c9b6943ac2f43270f296 100644 --- a/dev/tests/integration/testsuite/Magento/Sales/_files/order.php +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/order.php @@ -21,6 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +require 'default_rollback.php'; require __DIR__ . '/../../../Magento/Catalog/_files/product_simple.php'; /** @var \Magento\Catalog\Model\Product $product */ @@ -40,6 +41,9 @@ $payment->setMethod('checkmo'); /** @var \Magento\Sales\Model\Order\Item $orderItem */ $orderItem = $objectManager->create('Magento\Sales\Model\Order\Item'); $orderItem->setProductId($product->getId())->setQtyOrdered(2); +$orderItem->setBasePrice($product->getPrice()); +$orderItem->setPrice($product->getPrice()); +$orderItem->setRowTotal($product->getPrice()); /** @var \Magento\Sales\Model\Order $order */ $order = $objectManager->create('Magento\Sales\Model\Order'); @@ -51,6 +55,8 @@ $order->setIncrementId( 100 )->setBaseSubtotal( 100 +)->setBaseGrandTotal( + 100 )->setCustomerIsGuest( true )->setCustomerEmail( diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/order_rollback.php b/dev/tests/integration/testsuite/Magento/Sales/_files/order_rollback.php new file mode 100644 index 0000000000000000000000000000000000000000..a0fd0a5186db3229078f36e582baaf39e551da74 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/order_rollback.php @@ -0,0 +1,25 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +require 'default_rollback.php'; \ No newline at end of file diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/shipment.php b/dev/tests/integration/testsuite/Magento/Sales/_files/shipment.php new file mode 100644 index 0000000000000000000000000000000000000000..5d9303944bc38f15d8a94a873f1046f90f1e3aef --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/shipment.php @@ -0,0 +1,43 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +require 'default_rollback.php'; +require __DIR__ . '/../../../Magento/Sales/_files/order.php'; + +$payment = $order->getPayment(); +$paymentInfoBlock = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->get('Magento\Payment\Helper\Data') + ->getInfoBlock($payment); +$payment->setBlockMock($paymentInfoBlock); + +/** @var \Magento\Sales\Model\Order\Shipment $shipment */ +$shipment = $objectManager->create('Magento\Sales\Model\Order\Shipment'); +$shipment->setOrder($order); + +$shipmentItem = $objectManager->create('Magento\Sales\Model\Order\Shipment\Item'); +$shipmentItem->setOrderItem($orderItem); +$shipment->addItem($shipmentItem); +$shipment->setPackages([['1'], ['2']]); +$shipment->setShipmentStatus(\Magento\Sales\Model\Order\Shipment::STATUS_NEW); + +$shipment->save(); diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/shipment_rollback.php b/dev/tests/integration/testsuite/Magento/Sales/_files/shipment_rollback.php new file mode 100644 index 0000000000000000000000000000000000000000..a2107bf865739895bdef42ff8fda2760b9a22227 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/shipment_rollback.php @@ -0,0 +1,24 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +require 'default_rollback.php'; \ No newline at end of file diff --git a/dev/tests/integration/testsuite/Magento/Store/Model/StoreTest.php b/dev/tests/integration/testsuite/Magento/Store/Model/StoreTest.php index cff8fecfced1789f29423357190257d8d0cda851..cc861ac6958a348d6c3c0d437e2e7f6483083bc5 100644 --- a/dev/tests/integration/testsuite/Magento/Store/Model/StoreTest.php +++ b/dev/tests/integration/testsuite/Magento/Store/Model/StoreTest.php @@ -46,7 +46,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase protected function _getStoreModel() { $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); - $this->_modelParams = array( + $this->_modelParams = [ 'context' => $objectManager->get('Magento\Framework\Model\Context'), 'registry' => $objectManager->get('Magento\Framework\Registry'), 'resource' => $objectManager->get('Magento\Store\Model\Resource\Store'), @@ -59,14 +59,15 @@ class StoreTest extends \PHPUnit_Framework_TestCase 'config' => $objectManager->get('Magento\Framework\App\Config\ReinitableConfigInterface'), 'storeManager' => $objectManager->get('Magento\Store\Model\StoreManager'), 'sidResolver' => $objectManager->get('Magento\Framework\Session\SidResolverInterface'), - 'cookie' => $objectManager->get('Magento\Framework\Stdlib\Cookie'), + 'cookieMetadataFactory' => $objectManager->get('Magento\Framework\Stdlib\Cookie\CookieMetadataFactory'), + 'cookieManager' => $objectManager->get('Magento\Framework\Stdlib\CookieManager'), 'httpContext' => $objectManager->get('Magento\Framework\App\Http\Context'), 'session' => $objectManager->get('Magento\Framework\Session\SessionManagerInterface'), 'currencyFactory' => $objectManager->get('Magento\Directory\Model\CurrencyFactory'), 'currencyInstalled' => 'system/currency/installed', - ); + ]; - return $this->getMock('Magento\Store\Model\Store', array('getUrl'), $this->_modelParams); + return $this->getMock('Magento\Store\Model\Store', ['getUrl'], $this->_modelParams); } protected function tearDown() @@ -88,7 +89,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase */ public function loadDataProvider() { - return array(array(1, 1), array('default', 1), array('nostore', null)); + return [[1, 1], ['default', 1], ['nostore', null]]; } public function testSetGetWebsite() @@ -151,28 +152,28 @@ class StoreTest extends \PHPUnit_Framework_TestCase */ public function getBaseUrlDataProvider() { - return array( - array(\Magento\Framework\UrlInterface::URL_TYPE_WEB, false, false, 'http://localhost/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_WEB, false, true, 'http://localhost/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_WEB, true, false, 'http://localhost/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_WEB, true, true, 'http://localhost/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_LINK, false, false, 'http://localhost/index.php/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_LINK, false, true, 'http://localhost/index.php/default/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_LINK, true, false, 'http://localhost/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_LINK, true, true, 'http://localhost/default/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, false, false, 'http://localhost/index.php/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, false, true, 'http://localhost/index.php/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, true, false, 'http://localhost/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, true, true, 'http://localhost/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_STATIC, false, false, 'http://localhost/pub/static/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_STATIC, false, true, 'http://localhost/pub/static/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_STATIC, true, false, 'http://localhost/pub/static/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_STATIC, true, true, 'http://localhost/pub/static/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, false, false, 'http://localhost/pub/media/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, false, true, 'http://localhost/pub/media/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, true, false, 'http://localhost/pub/media/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, true, true, 'http://localhost/pub/media/') - ); + return [ + [\Magento\Framework\UrlInterface::URL_TYPE_WEB, false, false, 'http://localhost/'], + [\Magento\Framework\UrlInterface::URL_TYPE_WEB, false, true, 'http://localhost/'], + [\Magento\Framework\UrlInterface::URL_TYPE_WEB, true, false, 'http://localhost/'], + [\Magento\Framework\UrlInterface::URL_TYPE_WEB, true, true, 'http://localhost/'], + [\Magento\Framework\UrlInterface::URL_TYPE_LINK, false, false, 'http://localhost/index.php/'], + [\Magento\Framework\UrlInterface::URL_TYPE_LINK, false, true, 'http://localhost/index.php/default/'], + [\Magento\Framework\UrlInterface::URL_TYPE_LINK, true, false, 'http://localhost/'], + [\Magento\Framework\UrlInterface::URL_TYPE_LINK, true, true, 'http://localhost/default/'], + [\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, false, false, 'http://localhost/index.php/'], + [\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, false, true, 'http://localhost/index.php/'], + [\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, true, false, 'http://localhost/'], + [\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, true, true, 'http://localhost/'], + [\Magento\Framework\UrlInterface::URL_TYPE_STATIC, false, false, 'http://localhost/pub/static/'], + [\Magento\Framework\UrlInterface::URL_TYPE_STATIC, false, true, 'http://localhost/pub/static/'], + [\Magento\Framework\UrlInterface::URL_TYPE_STATIC, true, false, 'http://localhost/pub/static/'], + [\Magento\Framework\UrlInterface::URL_TYPE_STATIC, true, true, 'http://localhost/pub/static/'], + [\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, false, false, 'http://localhost/pub/media/'], + [\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, false, true, 'http://localhost/pub/media/'], + [\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, true, false, 'http://localhost/pub/media/'], + [\Magento\Framework\UrlInterface::URL_TYPE_MEDIA, true, true, 'http://localhost/pub/media/'] + ]; } /** @@ -181,11 +182,11 @@ class StoreTest extends \PHPUnit_Framework_TestCase public function testGetBaseUrlInPub() { \Magento\TestFramework\Helper\Bootstrap::getInstance()->reinitialize( - array( - \Magento\Framework\App\Filesystem::PARAM_APP_DIRS => array( - \Magento\Framework\App\Filesystem::PUB_DIR => array('uri' => '') - ) - ) + [ + \Magento\Framework\App\Filesystem::PARAM_APP_DIRS => [ + \Magento\Framework\App\Filesystem::PUB_DIR => ['uri' => ''] + ] + ] ); $this->_model = $this->_getStoreModel(); $this->_model->load('default'); @@ -245,31 +246,31 @@ class StoreTest extends \PHPUnit_Framework_TestCase */ public function getBaseUrlForCustomEntryPointDataProvider() { - return array( - array(\Magento\Framework\UrlInterface::URL_TYPE_LINK, false, false, 'http://localhost/custom_entry.php/'), - array( + return [ + [\Magento\Framework\UrlInterface::URL_TYPE_LINK, false, false, 'http://localhost/custom_entry.php/'], + [ \Magento\Framework\UrlInterface::URL_TYPE_LINK, false, true, 'http://localhost/custom_entry.php/default/' - ), - array(\Magento\Framework\UrlInterface::URL_TYPE_LINK, true, false, 'http://localhost/index.php/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_LINK, true, true, 'http://localhost/index.php/default/'), - array( + ], + [\Magento\Framework\UrlInterface::URL_TYPE_LINK, true, false, 'http://localhost/index.php/'], + [\Magento\Framework\UrlInterface::URL_TYPE_LINK, true, true, 'http://localhost/index.php/default/'], + [ \Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, false, false, 'http://localhost/custom_entry.php/' - ), - array( + ], + [ \Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, false, true, 'http://localhost/custom_entry.php/' - ), - array(\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, true, false, 'http://localhost/index.php/'), - array(\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, true, true, 'http://localhost/index.php/') - ); + ], + [\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, true, false, 'http://localhost/index.php/'], + [\Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK, true, true, 'http://localhost/index.php/'] + ]; } public function testGetDefaultCurrency() @@ -313,17 +314,19 @@ class StoreTest extends \PHPUnit_Framework_TestCase public function testCRUD() { $this->_model->setData( - array( + [ 'code' => 'test', 'website_id' => 1, 'group_id' => 1, 'name' => 'test name', 'sort_order' => 0, 'is_active' => 1 - ) + ] ); $crud = new \Magento\TestFramework\Entity( - $this->_model, array('name' => 'new name'), 'Magento\Store\Model\Store' + $this->_model, + ['name' => 'new name'], + 'Magento\Store\Model\Store' ); $crud->testCrud(); } @@ -339,14 +342,14 @@ class StoreTest extends \PHPUnit_Framework_TestCase */ public function testSaveValidation($badStoreData) { - $normalStoreData = array( + $normalStoreData = [ 'code' => 'test', 'website_id' => 1, 'group_id' => 1, 'name' => 'test name', 'sort_order' => 0, 'is_active' => 1 - ); + ]; $data = array_merge($normalStoreData, $badStoreData); $this->_model->setData($data); $this->_model->save(); @@ -357,11 +360,11 @@ class StoreTest extends \PHPUnit_Framework_TestCase */ public static function saveValidationDataProvider() { - return array( - 'empty store name' => array(array('name' => '')), - 'empty store code' => array(array('code' => '')), - 'invalid store code' => array(array('code' => '^_^')) - ); + return [ + 'empty store name' => [['name' => '']], + 'empty store code' => [['code' => '']], + 'invalid store code' => [['code' => '^_^']] + ]; } /** @@ -371,13 +374,13 @@ class StoreTest extends \PHPUnit_Framework_TestCase { $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $configMock = $this->getMock('Magento\Framework\App\Config\ReinitableConfigInterface'); - $appStateMock = $this->getMock('Magento\Framework\App\State', array(), array(), '', false, false); + $appStateMock = $this->getMock('Magento\Framework\App\State', [], [], '', false, false); $appStateMock->expects($this->any())->method('isInstalled')->will($this->returnValue($isInstalled)); $params = $this->_modelParams; $params['context'] = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( 'Magento\Framework\Model\Context', - array('appState' => $appStateMock) + ['appState' => $appStateMock] ); $configMock->expects( @@ -401,12 +404,12 @@ class StoreTest extends \PHPUnit_Framework_TestCase */ public function isUseStoreInUrlDataProvider() { - return array( - array(true, true, null, true), - array(false, true, null, false), - array(true, false, null, false), - array(true, true, true, false), - array(true, true, false, true) - ); + return [ + [true, true, null, true], + [false, true, null, false], + [true, false, null, false], + [true, true, true, false], + [true, true, false, true] + ]; } } diff --git a/dev/tests/integration/testsuite/Magento/UrlRewrite/Model/UrlRewriteTest.php b/dev/tests/integration/testsuite/Magento/UrlRewrite/Model/UrlRewriteTest.php index f7fa42e3fb3fac39726bfc8728fafe72756be17d..1eb5581561931ff6fadd36ad0c70616d608489b4 100644 --- a/dev/tests/integration/testsuite/Magento/UrlRewrite/Model/UrlRewriteTest.php +++ b/dev/tests/integration/testsuite/Magento/UrlRewrite/Model/UrlRewriteTest.php @@ -22,25 +22,38 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ namespace Magento\UrlRewrite\Model; +use \Magento\TestFramework\Helper\Bootstrap; class UrlRewriteTest extends \PHPUnit_Framework_TestCase { /** * @var \Magento\UrlRewrite\Model\UrlRewrite */ - protected $_model; + protected $model; + + /** + * @var \Magento\Framework\ObjectManager + */ + protected $objectManager; protected function setUp() { - $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + $this->objectManager = Bootstrap::getObjectManager(); + + $this->model = $this->objectManager->create( 'Magento\UrlRewrite\Model\UrlRewrite' ); } + /** + * @magentoDbIsolation enabled + * + * @throws \Exception + */ public function testLoadByRequestPath() { - $this->_model->setStoreId( - \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + $this->model->setStoreId( + $this->objectManager->get( 'Magento\Store\Model\StoreManagerInterface' )->getDefaultStoreView()->getId() )->setRequestPath( @@ -54,33 +67,37 @@ class UrlRewriteTest extends \PHPUnit_Framework_TestCase )->save(); try { - $read = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + $read = $this->objectManager->create( 'Magento\UrlRewrite\Model\UrlRewrite' ); $read->setStoreId( - \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + $this->objectManager->get( 'Magento\Store\Model\StoreManagerInterface' )->getDefaultStoreView()->getId() )->loadByRequestPath( 'fancy/url.html' ); - $this->assertEquals($this->_model->getStoreId(), $read->getStoreId()); - $this->assertEquals($this->_model->getRequestPath(), $read->getRequestPath()); - $this->assertEquals($this->_model->getTargetPath(), $read->getTargetPath()); - $this->assertEquals($this->_model->getIsSystem(), $read->getIsSystem()); - $this->assertEquals($this->_model->getOptions(), $read->getOptions()); - $this->_model->delete(); + $this->assertEquals($this->model->getStoreId(), $read->getStoreId()); + $this->assertEquals($this->model->getRequestPath(), $read->getRequestPath()); + $this->assertEquals($this->model->getTargetPath(), $read->getTargetPath()); + $this->assertEquals($this->model->getIsSystem(), $read->getIsSystem()); + $this->assertEquals($this->model->getOptions(), $read->getOptions()); + $this->model->delete(); } catch (\Exception $e) { - $this->_model->delete(); + $this->model->delete(); throw $e; } } + /** + * @magentoDbIsolation enabled + * @throws \Exception + */ public function testLoadByIdPath() { - $this->_model->setStoreId( - \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + $this->model->setStoreId( + $this->objectManager->get( 'Magento\Store\Model\StoreManagerInterface' )->getDefaultStoreView()->getId() )->setRequestPath( @@ -96,45 +113,53 @@ class UrlRewriteTest extends \PHPUnit_Framework_TestCase )->save(); try { - $read = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + $read = $this->objectManager->create( 'Magento\UrlRewrite\Model\UrlRewrite' ); $read->setStoreId( - \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + $this->objectManager->get( 'Magento\Store\Model\StoreManagerInterface' )->getDefaultStoreView()->getId() )->loadByIdPath( 'product/1' ); - $this->assertEquals($this->_model->getStoreId(), $read->getStoreId()); - $this->assertEquals($this->_model->getRequestPath(), $read->getRequestPath()); - $this->assertEquals($this->_model->getTargetPath(), $read->getTargetPath()); - $this->assertEquals($this->_model->getIdPath(), $read->getIdPath()); - $this->assertEquals($this->_model->getIsSystem(), $read->getIsSystem()); - $this->assertEquals($this->_model->getOptions(), $read->getOptions()); - $this->_model->delete(); + $this->assertEquals($this->model->getStoreId(), $read->getStoreId()); + $this->assertEquals($this->model->getRequestPath(), $read->getRequestPath()); + $this->assertEquals($this->model->getTargetPath(), $read->getTargetPath()); + $this->assertEquals($this->model->getIdPath(), $read->getIdPath()); + $this->assertEquals($this->model->getIsSystem(), $read->getIsSystem()); + $this->assertEquals($this->model->getOptions(), $read->getOptions()); + $this->model->delete(); } catch (\Exception $e) { - $this->_model->delete(); + $this->model->delete(); throw $e; } } + /** + * @magentoDbIsolation enabled + */ public function testHasOption() { - $this->_model->setOptions('RP'); - $this->assertTrue($this->_model->hasOption('RP')); + $this->model->setOptions('RP'); + $this->assertTrue($this->model->hasOption('RP')); } + /** + * + * @magentoDbIsolation enabled + * @throws \Exception + */ public function testRewrite() { - $request = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + $request = $this->objectManager->create( 'Magento\Framework\App\RequestInterface' )->setPathInfo( 'fancy/url.html' ); $_SERVER['QUERY_STRING'] = 'foo=bar&___fooo=bar'; - $this->_model->setRequestPath( + $this->model->setRequestPath( 'fancy/url.html' )->setTargetPath( 'another/fancy/url.html' @@ -143,51 +168,136 @@ class UrlRewriteTest extends \PHPUnit_Framework_TestCase )->save(); try { - $this->assertTrue($this->_model->rewrite($request)); + $this->assertTrue($this->model->rewrite($request)); $this->assertEquals('/another/fancy/url.html?foo=bar', $request->getRequestUri()); $this->assertEquals('another/fancy/url.html', $request->getPathInfo()); - $this->_model->delete(); + $this->model->delete(); } catch (\Exception $e) { - $this->_model->delete(); + $this->model->delete(); throw $e; } } + /** + * @magentoDbIsolation enabled + */ + public function testRewriteSetCookie() + { + $_SERVER['QUERY_STRING'] = 'foo=bar'; + + $context = $this->objectManager->create( + '\Magento\Framework\Model\Context' + ); + $registry = $this->objectManager->create( + '\Magento\Framework\Registry' + ); + $scopeConfig = $this->objectManager->create( + '\Magento\Framework\App\Config\ScopeConfigInterface' + ); + $cookieMetadataFactory = $this->objectManager->create( + '\Magento\Framework\Stdlib\Cookie\CookieMetadataFactory' + ); + $cookieManager = $this->objectManager->create( + '\Magento\Framework\Stdlib\CookieManager' + ); + $storeManager = $this->objectManager->create( + '\Magento\Store\Model\StoreManagerInterface' + ); + $httpContext = $this->objectManager->create( + '\Magento\Framework\App\Http\Context' + ); + + $constructorArgs = [ + 'context' => $context, + 'registry' => $registry, + 'scopeConfig' => $scopeConfig, + 'cookieMetadataFactory' => $cookieMetadataFactory, + 'cookieManager' => $cookieManager, + 'storeManager' => $storeManager, + 'httpContext' => $httpContext, + ]; + + //SUT must be mocked out for this test to prevent headers from being sent, + //causing errors. + + /** @var \PHPUnit_Framework_MockObject_MockObject /\Magento\UrlRewrite\Model\UrlRewrite $modelMock */ + $modelMock = $this->getMock('\Magento\UrlRewrite\Model\UrlRewrite', + ['_sendRedirectHeaders'], + $constructorArgs + ); + + $modelMock->setRequestPath('http://fancy/url.html') + ->setTargetPath('http://another/fancy/url.html') + ->setIsSystem(1) + ->setOptions('R') + ->save(); + + $modelMock->expects($this->exactly(2)) + ->method('_sendRedirectHeaders'); + + $request = $this->objectManager + ->create('Magento\Framework\App\RequestInterface') + ->setPathInfo('http://fancy/url.html'); + + $this->assertTrue($modelMock->rewrite($request)); + $this->assertEquals('admin', $_COOKIE[\Magento\Store\Model\Store::COOKIE_NAME]); + + $modelMock->delete(); + + } + + /** + * @magentoDbIsolation enabled + */ public function testRewriteNonExistingRecord() { - $request = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + $request = $this->objectManager ->create('Magento\Framework\App\RequestInterface'); - $this->assertFalse($this->_model->rewrite($request)); + $this->assertFalse($this->model->rewrite($request)); } + /** + * @magentoDbIsolation enabled + */ public function testRewriteWrongStore() { - $request = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + $request = $this->objectManager ->create('Magento\Framework\App\RequestInterface'); $_GET['___from_store'] = uniqid('store'); - $this->assertFalse($this->_model->rewrite($request)); + $this->assertFalse($this->model->rewrite($request)); } + /** + * @magentoDbIsolation enabled + */ public function testRewriteNonExistingRecordCorrectStore() { - $request = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + $request = $this->objectManager ->create('Magento\Framework\App\RequestInterface'); - $_GET['___from_store'] = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + $_GET['___from_store'] = $this->objectManager->get( 'Magento\Store\Model\StoreManagerInterface' )->getDefaultStoreView()->getCode(); - $this->assertFalse($this->_model->rewrite($request)); + $this->assertFalse($this->model->rewrite($request)); } + /** + * @magentoDbIsolation enabled + */ public function testGetStoreId() { - $this->_model->setStoreId(10); - $this->assertEquals(10, $this->_model->getStoreId()); + $this->model->setStoreId(10); + $this->assertEquals(10, $this->model->getStoreId()); } + /** + * @magentoDbIsolation enabled + * + * @throws \Exception + */ public function testCRUD() { - $this->_model->setStoreId( - \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + $this->model->setStoreId( + $this->objectManager->get( 'Magento\Store\Model\StoreManagerInterface' )->getDefaultStoreView()->getId() )->setRequestPath( @@ -199,7 +309,7 @@ class UrlRewriteTest extends \PHPUnit_Framework_TestCase )->setOptions( 'RP' ); - $crud = new \Magento\TestFramework\Entity($this->_model, array('request_path' => 'fancy/url2.html')); + $crud = new \Magento\TestFramework\Entity($this->model, ['request_path' => 'fancy/url2.html']); $crud->testCrud(); } } diff --git a/dev/tests/static/framework/Magento/TestFramework/Utility/Classes.php b/dev/tests/static/framework/Magento/TestFramework/Utility/Classes.php index 5aabe6c1bab6cec865c71585c1422252d9fcee88..97b0c15c578dd0b7d5656779146e698a79937069 100644 --- a/dev/tests/static/framework/Magento/TestFramework/Utility/Classes.php +++ b/dev/tests/static/framework/Magento/TestFramework/Utility/Classes.php @@ -177,7 +177,7 @@ class Classes */ public static function collectLayoutClasses(\SimpleXMLElement $xml) { - $classes = self::getXmlAttributeValues($xml, '/layout//block[@type]', 'type'); + $classes = self::getXmlAttributeValues($xml, '/layout//block[@class]', 'class'); $classes = array_merge( $classes, self::getXmlNodeValues( diff --git a/dev/tests/static/framework/Magento/TestFramework/Utility/Files.php b/dev/tests/static/framework/Magento/TestFramework/Utility/Files.php index 7d0990be9448e55efc0034daac9c5ceb130e1cb4..5b0c61349f7b9b3b897b394afed937a609268ecf 100644 --- a/dev/tests/static/framework/Magento/TestFramework/Utility/Files.php +++ b/dev/tests/static/framework/Magento/TestFramework/Utility/Files.php @@ -904,7 +904,7 @@ class Files * of file names * Note that realpath() automatically changes directory separator to the OS-native */ - if (realpath($fullPath) == str_replace(array('/', '\\'), '/', $fullPath)) { + if (realpath($fullPath) == str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $fullPath)) { $fileContent = file_get_contents($fullPath); if (strpos( $fileContent, diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/DependencyTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/DependencyTest.php index df58487d10f070b5eefb1844cf874c3eee62fa8e..eb1fc3a0acc65848f5ef759131a82a3476702374 100644 --- a/dev/tests/static/testsuite/Magento/Test/Integrity/DependencyTest.php +++ b/dev/tests/static/testsuite/Magento/Test/Integrity/DependencyTest.php @@ -500,7 +500,7 @@ class DependencyTest extends \PHPUnit_Framework_TestCase foreach ($files as $file) { if (preg_match('/(?<namespace>[A-Z][a-z]+)[_\/\\\\](?<module>[A-Z][a-zA-Z]+)/', $file, $matches)) { $module = $matches['namespace'] . '\\' . $matches['module']; - self::$_listRoutesXml[$module] = $file; + self::$_listRoutesXml[$module][] = $file; } } } @@ -517,28 +517,44 @@ class DependencyTest extends \PHPUnit_Framework_TestCase foreach ($files as $file) { if (preg_match($pattern, $file, $matches)) { $module = $matches['namespace'] . '\\' . $matches['module']; - if (isset(self::$_listRoutesXml[$module])) { - // Read module's routes.xml file - $config = simplexml_load_file(self::$_listRoutesXml[$module]); - $nodes = $config->xpath("/config/router/*"); - foreach ($nodes as $node) { - $id = (string)$node['id']; - if ($id != 'adminhtml' && '' == (string)$node['frontName']) { - // Exclude overridden routers - continue; - } - if (!isset(self::$_mapRouters[$id])) { - self::$_mapRouters[$id] = array(); - } - if (!in_array($module, self::$_mapRouters[$id])) { - self::$_mapRouters[$id][] = $module; - } + if (!empty(self::$_listRoutesXml[$module])) { + foreach (self::$_listRoutesXml[$module] as $configFile) { + self::updateRoutersMap($module, $configFile); + } } } } } + /** + * Update routers map for the module basing on the routing config file + * + * @param string $module + * @param string $configFile + * + * @return void + */ + private static function updateRoutersMap($module, $configFile) + { + // Read module's routes.xml file + $config = simplexml_load_file($configFile); + $nodes = $config->xpath("/config/router/*"); + foreach ($nodes as $node) { + $id = (string)$node['id']; + if ($id != 'adminhtml' && '' == (string)$node['frontName']) { + // Exclude overridden routers + continue; + } + if (!isset(self::$_mapRouters[$id])) { + self::$_mapRouters[$id] = array(); + } + if (!in_array($module, self::$_mapRouters[$id])) { + self::$_mapRouters[$id][] = $module; + } + } + } + /** * Prepare map of layout blocks */ diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/ConfigTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/ConfigTest.php index df0577ac49d5d6c7594594ff5620fb01dd1a5ca6..b85b880e4f1078eb56370e33cf91aa712d0d06a7 100644 --- a/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/ConfigTest.php +++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/ConfigTest.php @@ -104,6 +104,7 @@ Element 'queryReference': No match found for key-sequence ['fulltext_search_quer explode( "\n", " +Element 'dimensions': Missing child element(s). Expected is ( dimension ) Element 'queryReference': The attribute 'ref' is required but missing. Element 'filterReference': The attribute 'ref' is required but missing. Element 'filter': The attribute 'field' is required but missing. diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/_files/invalid_partial.xml b/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/_files/invalid_partial.xml index 6dffe42beca90623f602df71648a9f6031dc75eb..82b5fb547aa6bbc49c150b209834bd0409aa17b8 100644 --- a/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/_files/invalid_partial.xml +++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/_files/invalid_partial.xml @@ -25,6 +25,8 @@ --> <requests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <request query="sugested_search_container" index="product"> + <dimensions> + </dimensions> <queries> <query xsi:type="boolQuery" name="sugested_search_container" boost="2"> <queryReference clause="not" ref="fulltext_search_query" /> diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/_files/valid.xml b/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/_files/valid.xml index 090a3c76b9a160ac52566f5bc8daf3a2a3ceb889..5f42427c8902c2f71088b5eea7f5a27868f99bd5 100644 --- a/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/_files/valid.xml +++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Framework/Search/_files/valid.xml @@ -25,6 +25,9 @@ --> <requests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <request query="sugegsted_search_container_1" index="product_1"> + <dimensions> + <dimension name="scope" value="default" /> + </dimensions> <queries> <query xsi:type="boolQuery" name="sugegsted_search_container_1" boost="2"> <queryReference clause="must" ref="fulltext_search_query" /> diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php index 8944cce44cff923904336532ad19ecfeb9f7c184..b1591e13986909f1541e7269da64e1fea53dc76c 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php @@ -2736,4 +2736,5 @@ return array( ['Magento\CatalogSearch\Model\Fulltext\Observer'], ['Magento\CatalogSearch\Model\Resource\Indexer\Fulltext'], ['\Magento\Theme\Helper\Layout'], + ['Magento\Framework\Stdlib\Cookie', 'Magento\Framework\Stdlib\CookieManager'], ); diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php index e0e2739668006221199eb343fa7ed37b7e6373b0..74d5668b0587d7b1d69c9392bc28242debe7c455 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php @@ -36,7 +36,12 @@ return array( array('_afterSetConfig', 'Magento\Eav\Model\Entity\AbstractEntity'), array('_aggregateByOrderCreatedAt', 'Magento\SalesRule\Model\Resource\Report\Rule'), array('_amountByCookies', 'Magento\Sendfriend\Model\Sendfriend'), - array('_amountByIp', 'Magento\Sendfriend\Model\Sendfriend'), + array('setCookie', 'Magento\Sendfriend\Model\Sendfriend'), + array('getCookie', 'Magento\Sendfriend\Model\Sendfriend'), + array('setRemoteAddr', 'Magento\Sendfriend\Model\Sendfriend'), + array('getRemoteAddr', 'Magento\Sendfriend\Model\Sendfriend'), + array('setWebsiteId', 'Magento\Sendfriend\Model\Sendfriend'), + array('getWebsiteId', 'Magento\Sendfriend\Model\Sendfriend'), array('_applyClassRewrites', 'Magento\Core\Model\Config'), array('_applyCustomDesignSettings'), array('_applyCustomizationFiles', 'Magento\Core\Model\Theme'), @@ -1907,4 +1912,7 @@ return array( 'updateCategoryIndex', 'Magento\CatalogSearch\Model\Resource\Fulltext', ], + ['removeTag', '\Magento\UrlRewrite\Model\UrlRewrite'], + ['addTag', '\Magento\UrlRewrite\Model\UrlRewrite'], + ['loadByTags', '\Magento\UrlRewrite\Model\UrlRewrite'], ); diff --git a/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcpd/blacklist/common.txt b/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcpd/blacklist/common.txt index 5838cc49d923a273dc07d3771961aaa3e148be76..81e78ef60f1579e325822a4369af1f08a4eafbc3 100644 --- a/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcpd/blacklist/common.txt +++ b/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcpd/blacklist/common.txt @@ -124,4 +124,5 @@ Magento/Shipping/Model Magento/Catalog/Service/V1/Category Magento/UrlRedirect/Model setup -Magento/Sales/Service/V1/Data \ No newline at end of file +Magento/Sales/Service/V1 +Magento/Shipping/Controller/Adminhtml/Order/Shipment \ No newline at end of file diff --git a/dev/tests/unit/framework/tests/unit/testsuite/Magento/TestFramework/Matcher/MethodInvokedAtIndexTest.php b/dev/tests/unit/framework/tests/unit/testsuite/Magento/TestFramework/Matcher/MethodInvokedAtIndexTest.php index ca2e1d5bcb8a6fa8095b0214c105f9e7aaf9d267..acf291e0cbf8650270d4ba7226321ce758c2a661 100644 --- a/dev/tests/unit/framework/tests/unit/testsuite/Magento/TestFramework/Matcher/MethodInvokedAtIndexTest.php +++ b/dev/tests/unit/framework/tests/unit/testsuite/Magento/TestFramework/Matcher/MethodInvokedAtIndexTest.php @@ -23,8 +23,6 @@ */ namespace Magento\TestFramework\Matcher; -use Magento\TestFramework\Matcher\MethodInvokedAtIndex; - class MethodInvokedAtIndexTest extends \PHPUnit_Framework_TestCase { public function testMatches() diff --git a/dev/tests/unit/testsuite/Magento/Backend/AdminConfigTest.php b/dev/tests/unit/testsuite/Magento/Backend/AdminConfigTest.php new file mode 100644 index 0000000000000000000000000000000000000000..a0dbec84e0534bfc8d334540cc12f5d32fdbc9a5 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Backend/AdminConfigTest.php @@ -0,0 +1,91 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +/** + * Test class for \Magento\Backend\AdminConfig + */ +namespace Magento\Backend; + +use Magento\TestFramework\Helper\Bootstrap; +use Magento\TestFramework\ObjectManager; + +class AdminConfigTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Framework\App\RequestInterface + */ + private $requestMock; + + /** + * @var \Magento\Framework\App\State + */ + private $appState; + + + protected function setUp() + { + $this->requestMock = $this->getMock( + '\Magento\Framework\App\Request\Http', + ['getBasePath', 'isSecure', 'getHttpHost'], + [], + '', + false, + false + ); + $this->requestMock->expects($this->atLeastOnce())->method('getBasePath')->will($this->returnValue('/')); + $this->requestMock->expects( + $this->atLeastOnce() + )->method( + 'getHttpHost' + )->will( + $this->returnValue('init.host') + ); + $this->appState = $this->getMock('\Magento\Framework\App\State', + ['isInstalled'], [], '', false, false); + $this->appState->expects($this->atLeastOnce())->method('isInstalled')->will($this->returnValue(true)); + } + + public function testSetCookiePathNonDefault() + { + $mockFrontNameResolver = $this->getMockBuilder('\Magento\Backend\App\Area\FrontNameResolver') + ->disableOriginalConstructor() + ->getMock(); + + $mockFrontNameResolver + ->method('getFrontName') + ->will($this->returnValue('backend')); + + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $adminConfig = $objectManager->getObject( + 'Magento\Backend\AdminConfig', + [ + 'request' => $this->requestMock, + 'appState' => $this->appState, + 'frontNameResolver' => $mockFrontNameResolver, + ] + ); + + $this->assertEquals('/backend', $adminConfig->getCookiePath()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Backend/App/Response/Http/FileFactoryTest.php b/dev/tests/unit/testsuite/Magento/Backend/App/Response/Http/FileFactoryTest.php index 98a7db2730828c127cb04a40ff9d71081f01a6be..aa92d624b939d3b44aade45996dab293174f0535 100644 --- a/dev/tests/unit/testsuite/Magento/Backend/App/Response/Http/FileFactoryTest.php +++ b/dev/tests/unit/testsuite/Magento/Backend/App/Response/Http/FileFactoryTest.php @@ -55,8 +55,8 @@ class FileFactoryTest extends \PHPUnit_Framework_TestCase $helper = new \Magento\TestFramework\Helper\ObjectManager($this); $this->_responseMock = $this->getMock( 'Magento\Framework\App\Response\Http', - array('setRedirect'), - array(), + ['setRedirect', '__wakeup'], + [], '', false ); @@ -74,16 +74,16 @@ class FileFactoryTest extends \PHPUnit_Framework_TestCase '', false ); - $this->_backendUrl = $this->getMock('Magento\Backend\Model\Url', array(), array(), '', false); - $this->_authMock = $this->getMock('Magento\Backend\Model\Auth', array(), array(), '', false); + $this->_backendUrl = $this->getMock('Magento\Backend\Model\Url', [], [], '', false); + $this->_authMock = $this->getMock('Magento\Backend\Model\Auth', [], [], '', false); $this->_model = $helper->getObject( 'Magento\Backend\App\Response\Http\FileFactory', - array( + [ 'response' => $this->_responseMock, 'auth' => $this->_authMock, 'backendUrl' => $this->_backendUrl, 'session' => $this->_sessionMock - ) + ] ); } diff --git a/dev/tests/unit/testsuite/Magento/Backend/Model/Auth/SessionTest.php b/dev/tests/unit/testsuite/Magento/Backend/Model/Auth/SessionTest.php index e195b11056623fbab19ff561b70fbaf2c5fe67d1..76d49939148304a72ef1c416bce15210ad065550 100644 --- a/dev/tests/unit/testsuite/Magento/Backend/Model/Auth/SessionTest.php +++ b/dev/tests/unit/testsuite/Magento/Backend/Model/Auth/SessionTest.php @@ -26,7 +26,7 @@ namespace Magento\Backend\Model\Auth; use Magento\TestFramework\Helper\ObjectManager; /** - * Class SessionTest + * Class SessionTest tests Magento\Backend\Model\Auth\Session */ class SessionTest extends \PHPUnit_Framework_TestCase { @@ -41,9 +41,14 @@ class SessionTest extends \PHPUnit_Framework_TestCase protected $sessionConfig; /** - * @var \Magento\Framework\Stdlib\Cookie | \PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Stdlib\CookieManager | \PHPUnit_Framework_MockObject_MockObject */ - protected $cookie; + protected $cookieManager; + + /** + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory | \PHPUnit_Framework_MockObject_MockObject + */ + protected $cookieMetadataFactory; /** * @var \Magento\Framework\Session\Storage | \PHPUnit_Framework_MockObject_MockObject @@ -57,8 +62,22 @@ class SessionTest extends \PHPUnit_Framework_TestCase protected function setUp() { + $this->cookieMetadataFactory = $this->getMock( + 'Magento\Framework\Stdlib\Cookie\CookieMetadataFactory', + ['createPublicCookieMetadata'], + [], + '', + false + ); + $this->config = $this->getMock('Magento\Backend\App\Config', ['getValue'], [], '', false); - $this->cookie = $this->getMock('Magento\Framework\Stdlib\Cookie', ['get', 'set'], [], '', false); + $this->cookieManager = $this->getMock( + 'Magento\Framework\Stdlib\Cookie\PhpCookieManager', + ['getCookie', 'setPublicCookie'], + [], + '', + false + ); $this->storage = $this->getMock('Magento\Framework\Session\Storage', ['getUser'], [], '', false); $this->sessionConfig = $this->getMock( 'Magento\Framework\Session\Config', @@ -73,7 +92,8 @@ class SessionTest extends \PHPUnit_Framework_TestCase [ 'config' => $this->config, 'sessionConfig' => $this->sessionConfig, - 'cookie' => $this->cookie, + 'cookieManager' => $this->cookieManager, + 'cookieMetadataFactory' => $this->cookieMetadataFactory, 'storage' => $this->storage ] ); @@ -118,13 +138,39 @@ class SessionTest extends \PHPUnit_Framework_TestCase $secure = true; $httpOnly = true; - $this->cookie->expects($this->once()) - ->method('get') + $cookieMetadata = $this->getMock('Magento\Framework\Stdlib\Cookie\PublicCookieMetadata'); + $cookieMetadata->expects($this->once()) + ->method('setDuration') + ->with($lifetime) + ->will($this->returnSelf()); + $cookieMetadata->expects($this->once()) + ->method('setPath') + ->with($path) + ->will($this->returnSelf()); + $cookieMetadata->expects($this->once()) + ->method('setDomain') + ->with($domain) + ->will($this->returnSelf()); + $cookieMetadata->expects($this->once()) + ->method('setSecure') + ->with($secure) + ->will($this->returnSelf()); + $cookieMetadata->expects($this->once()) + ->method('setHttpOnly') + ->with($httpOnly) + ->will($this->returnSelf()); + + $this->cookieMetadataFactory->expects($this->once()) + ->method('createPublicCookieMetadata') + ->will($this->returnValue($cookieMetadata)); + + $this->cookieManager->expects($this->once()) + ->method('getCookie') ->with($name) ->will($this->returnValue($cookie)); - $this->cookie->expects($this->once()) - ->method('set') - ->with($name, $cookie, $lifetime, $path, $domain, $secure, $httpOnly); + $this->cookieManager->expects($this->once()) + ->method('setPublicCookie') + ->with($name, $cookie, $cookieMetadata); $this->config->expects($this->once()) ->method('getValue') diff --git a/dev/tests/unit/testsuite/Magento/Backend/Model/Config/Backend/DomainTest.php b/dev/tests/unit/testsuite/Magento/Backend/Model/Config/Backend/DomainTest.php new file mode 100644 index 0000000000000000000000000000000000000000..ea89dbef4ebb6df4f63f5a4c0eb4c014cc98adad --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Backend/Model/Config/Backend/DomainTest.php @@ -0,0 +1,121 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Backend\Model\Config\Backend; + +use Magento\Framework\Model\Exception; + +/** + * Test \Magento\Backend\Model\Config\Backend\Domain + */ +class DomainTest extends \PHPUnit_Framework_TestCase +{ + /** @var \Magento\Framework\Model\Resource\AbstractResource | \PHPUnit_Framework_MockObject_MockObject */ + protected $resourceMock; + + /** @var \Magento\Backend\Model\Config\Backend\Domain */ + protected $domain; + + protected function setUp() + { + $eventDispatcherMock = $this->getMock('Magento\Framework\Event\Manager', [], [], '', false); + $contextMock = $this->getMock('Magento\Framework\Model\Context', [], [], '', false); + $contextMock->expects( + $this->any() + )->method( + 'getEventDispatcher' + )->will( + $this->returnValue($eventDispatcherMock) + ); + + $this->resourceMock = $this->getMock( + 'Magento\Framework\Model\Resource\AbstractResource', + [ + '_construct', + '_getReadAdapter', + '_getWriteAdapter', + 'getIdFieldName', + 'beginTransaction', + 'save', + 'commit', + 'addCommitCallback', + 'rollBack', + ], + [], + '', + false + ); + + $helper = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->domain = $helper->getObject( + 'Magento\Backend\Model\Config\Backend\Domain', + [ + 'context' => $contextMock, + 'resource' => $this->resourceMock, + ] + ); + } + + /** + * @covers \Magento\Backend\Model\Config\Backend\Domain::_beforeSave + * @dataProvider beforeSaveDataProvider + * + * @param string $value + * @param string $exceptionMessage + */ + public function testBeforeSave($value, $exceptionMessage = null) + { + $this->resourceMock->expects($this->any())->method('addCommitCallback')->will($this->returnSelf()); + $this->resourceMock->expects($this->any())->method('commit')->will($this->returnSelf()); + $this->resourceMock->expects($this->any())->method('rollBack')->will($this->returnSelf()); + + $this->domain->setValue($value); + try { + $this->domain->save(); + if ($exceptionMessage ) { + $this->fail('Failed to throw exception'); + } + } catch (Exception $e) { + $this->assertContains('Invalid domain name: ', $e->getMessage()); + $this->assertContains($exceptionMessage, $e->getMessage()); + } + } + + /** + * @return array + */ + public function beforeSaveDataProvider() + { + return [ + 'not string' => [['array'], 'Invalid type given. String expected'], + 'invalid hostname' => [ + 'http://', + 'The input does not match the expected structure for a DNS hostname; ' + . 'The input does not appear to be a valid URI hostname; ' + . 'The input does not appear to be a valid local network name' + ], + 'valid hostname' => ['hostname.com'], + 'empty string' => [''], + ]; + } +} diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Adjustment/CalculatorTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Adjustment/CalculatorTest.php index fa08eec1a864df246e1e2fb0df31779d0c2f02f3..f7cb2446164efd414b2522a8b7fcb12fc04499c5 100644 --- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Adjustment/CalculatorTest.php +++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Adjustment/CalculatorTest.php @@ -23,8 +23,9 @@ */ namespace Magento\Bundle\Pricing\Adjustment; -use Magento\Bundle\Pricing\Price; use Magento\Bundle\Model\Product\Price as ProductPrice; +use Magento\Bundle\Pricing\Price; +use Magento\TestFramework\Helper\ObjectManager; /** * Test for \Magento\Bundle\Pricing\Adjustment\Calculator @@ -78,12 +79,16 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); $priceInfo = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false); - $priceInfo->expects($this->any())->method('getPrice')->will($this->returnCallback(function ($type) { - if (!isset($this->priceMocks[$type])) { - throw new \PHPUnit_Framework_ExpectationFailedException('Unexpected type of price model'); - } - return $this->priceMocks[$type]; - })); + $priceInfo->expects($this->any())->method('getPrice')->will( + $this->returnCallback( + function ($type) { + if (!isset($this->priceMocks[$type])) { + throw new \PHPUnit_Framework_ExpectationFailedException('Unexpected type of price model'); + } + return $this->priceMocks[$type]; + } + ) + ); $this->saleableItem->expects($this->any())->method('getPriceInfo')->will($this->returnValue($priceInfo)); $store = $this->getMockBuilder('Magento\Store\Model\Store') @@ -99,35 +104,35 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); - $factoryCallback = $this->returnCallback(function () { - list(, $selectionMock) = func_get_args(); - $bundlePrice = $this->getMockBuilder('Magento\Bundle\Pricing\Price\BundleSelectionPrice') - ->setMethods(['getAmount']) - ->disableOriginalConstructor() - ->getMock(); - $bundlePrice->expects($this->any())->method('getAmount') - ->will($this->returnValue($selectionMock->getAmountMock())); - return $bundlePrice; - }); + $factoryCallback = $this->returnCallback( + function () { + list(, $selectionMock) = func_get_args(); + $bundlePrice = $this->getMockBuilder('Magento\Bundle\Pricing\Price\BundleSelectionPrice') + ->setMethods(['getAmount']) + ->disableOriginalConstructor() + ->getMock(); + $bundlePrice->expects($this->any())->method('getAmount') + ->will($this->returnValue($selectionMock->getAmountMock())); + return $bundlePrice; + } + ); $this->selectionFactory->expects($this->any())->method('create')->will($factoryCallback); $this->taxData = $this->getMockBuilder('Magento\Tax\Helper\Data') ->disableOriginalConstructor() ->getMock(); - $this->model = new Calculator( - $this->baseCalculator, - $this->amountFactory, - $this->selectionFactory, - $this->taxData + $this->model = (new ObjectManager($this))->getObject( + 'Magento\Bundle\Pricing\Adjustment\Calculator', + [ + 'calculator' => $this->baseCalculator, + 'amountFactory' => $this->amountFactory, + 'bundleSelectionFactory' => $this->selectionFactory, + 'taxHelper' => $this->taxData + ] ); } - protected function tearDown() - { - $this->priceMocks = []; - } - public function testEmptySelectionPriceList() { $option = $this->getMock('Magento\Bundle\Model\Option', ['getSelections', '__wakeup'], [], '', false); @@ -155,9 +160,11 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase $this->priceMocks[Price\BundleOptionPrice::PRICE_CODE] = $price; // Price type of saleable items - $this->saleableItem->expects($this->any())->method('getPriceType')->will($this->returnValue( - ProductPrice::PRICE_TYPE_DYNAMIC - )); + $this->saleableItem->expects($this->any())->method('getPriceType')->will( + $this->returnValue( + ProductPrice::PRICE_TYPE_DYNAMIC + ) + ); $this->amountFactory->expects($this->atLeastOnce())->method('create') ->with($expectedResult['fullAmount'], $expectedResult['adjustments']); @@ -168,6 +175,28 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase } } + /** + * @return array + */ + public function dataProviderForGetterAmount() + { + return [ + // first case with minimal amount + 'case with getting minimal amount' => $this->getCaseWithMinAmount(), + // second case with maximum amount + 'case with getting maximum amount' => $this->getCaseWithMaxAmount(), + // third case without saleable items + 'case without saleable items' => $this->getCaseWithoutSaleableItems(), + // fourth case without require options + 'case without required options' => $this->getCaseMinAmountWithoutRequiredOptions(), + ]; + } + + protected function tearDown() + { + $this->priceMocks = []; + } + /** * Create amount mock * @@ -227,26 +256,6 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase return $selection; } - /** - * @return array - */ - public function dataProviderForGetterAmount() - { - return [ - // first case with minimal amount - 'case with getting minimal amount' => $this->getCaseWithMinAmount(), - - // second case with maximum amount - 'case with getting maximum amount' => $this->getCaseWithMaxAmount(), - - // third case without saleable items - 'case without saleable items' => $this->getCaseWithoutSaleableItems(), - - // fourth case without require options - 'case without required options' => $this->getCaseMinAmountWithoutRequiredOptions(), - ]; - } - /** * Array for data provider dataProviderForGetterAmount for case 'case with getting minimal amount' * @@ -264,30 +273,30 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase [ 'isMultiSelection' => false, 'data' => [ - 'title' => 'test option 1', + 'title' => 'test option 1', 'default_title' => 'test option 1', - 'type' => 'select', - 'option_id' => '1', - 'position' => '0', - 'required' => '1', + 'type' => 'select', + 'option_id' => '1', + 'position' => '0', + 'required' => '1', ], 'selections' => [ - 'first product selection' => [ - 'data' => ['price' => 70.], + 'first product selection' => [ + 'data' => ['price' => 70.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 8, 'weee' => 10], 'amount' => 18 ] ], 'second product selection' => [ - 'data' => ['price' => 80.], + 'data' => ['price' => 80.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 18], 'amount' => 28 ] ], - 'third product selection with the lowest price' => [ - 'data' => ['price' => 50.], + 'third product selection with the lowest price' => [ + 'data' => ['price' => 50.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 8, 'weee' => 10], 'amount' => 8 @@ -298,7 +307,7 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase ], 'expectedResult' => [ 'isMinAmount' => true, - 'fullAmount' => 790., + 'fullAmount' => 790., 'adjustments' => ['tax' => 110, 'weee' => 10] ] ]; @@ -321,23 +330,23 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase [ 'isMultiSelection' => false, 'data' => [ - 'title' => 'test option 1', + 'title' => 'test option 1', 'default_title' => 'test option 1', - 'type' => 'select', - 'option_id' => '1', - 'position' => '0', - 'required' => '1', + 'type' => 'select', + 'option_id' => '1', + 'position' => '0', + 'required' => '1', ], 'selections' => [ - 'first product selection' => [ - 'data' => ['price' => 50.], + 'first product selection' => [ + 'data' => ['price' => 50.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 8, 'weee' => 10], 'amount' => 8 ] ], 'second product selection' => [ - 'data' => ['price' => 80.], + 'data' => ['price' => 80.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 18], 'amount' => 8 @@ -349,30 +358,30 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase [ 'isMultiSelection' => true, 'data' => [ - 'title' => 'test option 2', + 'title' => 'test option 2', 'default_title' => 'test option 2', - 'type' => 'select', - 'option_id' => '2', - 'position' => '1', - 'required' => '1', + 'type' => 'select', + 'option_id' => '2', + 'position' => '1', + 'required' => '1', ], 'selections' => [ - 'first product selection' => [ - 'data' => ['price' => 20.], + 'first product selection' => [ + 'data' => ['price' => 20.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 8], 'amount' => 8 ] ], 'second product selection' => [ - 'data' => ['price' => 110.], + 'data' => ['price' => 110.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 28], 'amount' => 28 ] ], 'third product selection' => [ - 'data' => ['price' => 50.], + 'data' => ['price' => 50.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 18], 'amount' => 18 @@ -383,7 +392,7 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase ], 'expectedResult' => [ 'isMinAmount' => false, - 'fullAmount' => 844., + 'fullAmount' => 844., 'adjustments' => ['tax' => 164, 'weee' => 10] ] ]; @@ -406,19 +415,19 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase [ 'isMultiSelection' => false, 'data' => [ - 'title' => 'test option 1', + 'title' => 'test option 1', 'default_title' => 'test option 1', - 'type' => 'select', - 'option_id' => '1', - 'position' => '0', - 'required' => '1', + 'type' => 'select', + 'option_id' => '1', + 'position' => '0', + 'required' => '1', ], 'selections' => [] ], ], 'expectedResult' => [ 'isMinAmount' => true, - 'fullAmount' => 782., + 'fullAmount' => 782., 'adjustments' => ['tax' => 102] ] ]; @@ -441,23 +450,23 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase [ 'isMultiSelection' => false, 'data' => [ - 'title' => 'test option 1', + 'title' => 'test option 1', 'default_title' => 'test option 1', - 'type' => 'select', - 'option_id' => '1', - 'position' => '0', - 'required' => '0', + 'type' => 'select', + 'option_id' => '1', + 'position' => '0', + 'required' => '0', ], 'selections' => [ - 'first product selection' => [ - 'data' => ['price' => 20.], + 'first product selection' => [ + 'data' => ['price' => 20.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 8], 'amount' => 8 ] ], - 'second product selection' => [ - 'data' => ['price' => 30.], + 'second product selection' => [ + 'data' => ['price' => 30.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 10], 'amount' => 12 @@ -469,23 +478,23 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase [ 'isMultiSelection' => false, 'data' => [ - 'title' => 'test option 2', + 'title' => 'test option 2', 'default_title' => 'test option 2', - 'type' => 'select', - 'option_id' => '2', - 'position' => '1', - 'required' => '0', + 'type' => 'select', + 'option_id' => '2', + 'position' => '1', + 'required' => '0', ], 'selections' => [ - 'first product selection' => [ - 'data' => ['price' => 25.], + 'first product selection' => [ + 'data' => ['price' => 25.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 8], 'amount' => 9 ] ], - 'second product selection' => [ - 'data' => ['price' => 35.], + 'second product selection' => [ + 'data' => ['price' => 35.], 'amount' => [ 'adjustmentsAmounts' => ['tax' => 10], 'amount' => 10 @@ -496,7 +505,7 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase ], 'expectedResult' => [ 'isMinAmount' => true, - 'fullAmount' => 8., + 'fullAmount' => 8., 'adjustments' => ['tax' => 8] ] ]; diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/GroupPriceTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/GroupPriceTest.php index 6039a1bf000b84fa291b4df2398b4da5754ea333..bc50c0437969d0f246621ed981030c6a4c6429ba 100644 --- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/GroupPriceTest.php +++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/GroupPriceTest.php @@ -74,6 +74,7 @@ class GroupPriceTest extends \PHPUnit_Framework_TestCase * @var \Magento\Catalog\Pricing\Price\RegularPrice|\PHPUnit_Framework_MockObject_MockObject */ protected $regularPrice; + /** * Set up test case */ @@ -189,15 +190,37 @@ class GroupPriceTest extends \PHPUnit_Framework_TestCase $this->equalTo('group_price'), $this->equalTo(null) ) - ->will($this->returnValue( - [ + ->will( + $this->returnValue( [ - 'cust_group' => 3, - 'website_price' => 80 + [ + 'cust_group' => 3, + 'website_price' => 80 + ] ] - ] - )); + ) + ); + $this->assertEquals(20, $this->groupPrice->getValue()); $this->assertEquals(20, $this->groupPrice->getValue()); } + + public function testGetValueNotGroupPrice() + { + $this->productMock->expects($this->once()) + ->method('getCustomerGroupId') + ->will($this->returnValue(null)); + $this->customerSessionMock->expects($this->once()) + ->method('getCustomerGroupId') + ->will($this->returnValue(3)); + $this->productMock->expects($this->once()) + ->method('getResource') + ->will($this->returnValue($this->productResourceMock)); + $this->productResourceMock->expects($this->once()) + ->method('getAttribute') + ->with($this->equalTo('group_price')) + ->will($this->returnValue(null)); + + $this->assertFalse($this->groupPrice->getValue()); + } } diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php index c144c696fd813e565681c4e58e43a4aa753a5cef..5e884ad818159ba590b86ab7da7a0d21faf9c679 100644 --- a/dev/tests/unit/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php +++ b/dev/tests/unit/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php @@ -132,7 +132,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase { $this->request = $this->getMock( 'Magento\Framework\App\RequestInterface', - ['getParam', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName'], + ['getParam', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getCookie'], [], '', false diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Model/LayerTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Model/LayerTest.php new file mode 100644 index 0000000000000000000000000000000000000000..5c75256055c929eff949c9d27483f9c1e4276983 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Catalog/Model/LayerTest.php @@ -0,0 +1,342 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Catalog\Model; + +use Magento\TestFramework\Helper\ObjectManager; + +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class LayerTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Catalog\Model\Layer + */ + private $model; + + /** + * @var \Magento\Catalog\Model\Category|\PHPUnit_Framework_MockObject_MockObject + */ + private $category; + + /** + * @var \Magento\Catalog\Model\CategoryFactory|\PHPUnit_Framework_MockObject_MockObject + */ + private $categoryFactory; + + /** + * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject + */ + private $registry; + + /** + * @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $storeManager; + + /** + * @var \Magento\Store\Model\Store|\PHPUnit_Framework_MockObject_MockObject + */ + private $store; + + /** + * @var \Magento\Catalog\Model\Layer\ContextInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $context; + + /** + * @var \Magento\Catalog\Model\Layer\Category\StateKey|\PHPUnit_Framework_MockObject_MockObject + */ + private $stateKeyGenerator; + + /** + * @var \Magento\Catalog\Model\Layer\StateFactory|\PHPUnit_Framework_MockObject_MockObject + */ + private $stateFactory; + + /** + * @var \Magento\Catalog\Model\Layer\State|\PHPUnit_Framework_MockObject_MockObject + */ + private $state; + + /** + * @var \Magento\Catalog\Model\Layer\Category\CollectionFilter|\PHPUnit_Framework_MockObject_MockObject + */ + private $collectionFilter; + + /** + * @var \Magento\Catalog\Model\Resource\Product\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + private $collection; + + /** + * @var \Magento\Catalog\Model\Layer\ItemCollectionProviderInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $collectionProvider; + + /** + * @var \Magento\Catalog\Model\Layer\Filter\Item|\PHPUnit_Framework_MockObject_MockObject + */ + private $filter; + + /** + * @var \Magento\Catalog\Model\Layer\Filter\AbstractFilter|\PHPUnit_Framework_MockObject_MockObject + */ + private $abstractFilter; + + protected function setUp() + { + $helper = new ObjectManager($this); + + $this->category = $this->getMockBuilder('Magento\Catalog\Model\Category') + ->setMethods(['load', 'getId', '__wakeup']) + ->disableOriginalConstructor() + ->getMock(); + + $this->categoryFactory = $this->getMockBuilder('Magento\Catalog\Model\CategoryFactory') + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + $this->categoryFactory->expects($this->any())->method('create') + ->will($this->returnValue($this->category)); + + $this->registry = $this->getMockBuilder('Magento\Framework\Registry') + ->setMethods(['registry']) + ->disableOriginalConstructor() + ->getMock(); + + $this->store = $this->getMockBuilder('Magento\Store\Model\Store') + ->setMethods(['getRootCategoryId', 'getFilters', '__wakeup']) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + + $this->storeManager = $this->getMockBuilder('Magento\Store\Model\StoreManagerInterface') + ->setMethods(['getStore']) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $this->storeManager->expects($this->any())->method('getStore') + ->will($this->returnValue($this->store)); + + $this->stateKeyGenerator = $this->getMockBuilder('Magento\Catalog\Model\Layer\Category\StateKey') + ->setMethods(['toString']) + ->disableOriginalConstructor() + ->getMock(); + + $this->collectionFilter = $this->getMockBuilder('Magento\Catalog\Model\Layer\Category\CollectionFilter') + ->setMethods(['filter']) + ->disableOriginalConstructor() + ->getMock(); + + $this->collectionProvider = $this->getMockBuilder('Magento\Catalog\Model\Layer\ItemCollectionProviderInterface') + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + + $this->filter = $this->getMockBuilder('Magento\Catalog\Model\Layer\Filter\Item') + ->setMethods(['getFilter', 'getValueString']) + ->disableOriginalConstructor() + ->getMock(); + + $this->abstractFilter = $this->getMockBuilder('Magento\Catalog\Model\Layer\Filter\AbstractFilter') + ->setMethods(['getRequestVar']) + ->disableOriginalConstructor() + ->getMock(); + + $this->context = $this->getMockBuilder('Magento\Catalog\Model\Layer\ContextInterface') + ->setMethods(['getStateKey', 'getCollectionFilter']) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $this->context->expects($this->any())->method('getStateKey') + ->will($this->returnValue($this->stateKeyGenerator)); + $this->context->expects($this->any())->method('getCollectionFilter') + ->will($this->returnValue($this->collectionFilter)); + $this->context->expects($this->any())->method('getCollectionProvider') + ->will($this->returnValue($this->collectionProvider)); + + $this->state = $this->getMockBuilder('Magento\Catalog\Model\Layer\State') + ->disableOriginalConstructor() + ->getMock(); + + $this->stateFactory = $this->getMockBuilder('Magento\Catalog\Model\Layer\StateFactory') + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + $this->stateFactory->expects($this->any())->method('create')->will($this->returnValue($this->state)); + + $this->collection = $this->getMockBuilder('Magento\Catalog\Model\Resource\Product\Collection') + ->disableOriginalConstructor() + ->getMock(); + + $this->model = $helper->getObject( + 'Magento\Catalog\Model\Layer', + [ + 'registry' => $this->registry, + 'categoryFactory' => $this->categoryFactory, + 'storeManager' => $this->storeManager, + 'context' => $this->context, + 'layerStateFactory' => $this->stateFactory + ] + ); + } + + public function testGetState() + { + $this->assertInstanceOf('\Magento\Catalog\Model\Layer\State', $this->model->getState()); + } + + public function testGetStateKey() + { + $stateKey = 'sk'; + $this->registry->expects($this->once())->method('registry')->with($this->equalTo('current_category')) + ->will($this->returnValue($this->category)); + + $this->stateKeyGenerator->expects($this->once())->method('toString') + ->with($this->equalTo($this->category)) + ->will($this->returnValue($stateKey)); + + $this->assertEquals($stateKey, $this->model->getStateKey()); + } + + public function testGetProductCollection() + { + $this->registry->expects($this->once())->method('registry')->with($this->equalTo('current_category')) + ->will($this->returnValue($this->category)); + + $this->category->expects($this->any())->method('getId')->will($this->returnValue(333)); + + $this->collectionFilter->expects($this->once())->method('filter') + ->with($this->equalTo($this->collection), $this->equalTo($this->category)); + + $this->collectionProvider->expects($this->once())->method('getCollection') + ->with($this->equalTo($this->category)) + ->will($this->returnValue($this->collection)); + + $result = $this->model->getProductCollection(); + $this->assertInstanceOf('\Magento\Catalog\Model\Resource\Product\Collection', $result); + $result = $this->model->getProductCollection(); + $this->assertInstanceOf('\Magento\Catalog\Model\Resource\Product\Collection', $result); + } + + public function testApply() + { + $stateKey = 'sk'; + $this->registry->expects($this->once())->method('registry')->with($this->equalTo('current_category')) + ->will($this->returnValue($this->category)); + + $this->stateKeyGenerator->expects($this->once())->method('toString') + ->with($this->equalTo($this->category)) + ->will($this->returnValue($stateKey)); + + $this->state->expects($this->any())->method('getFilters')->will($this->returnValue([$this->filter])); + + $this->filter->expects($this->once())->method('getFilter')->will($this->returnValue($this->abstractFilter)); + $this->filter->expects($this->once())->method('getValueString')->will($this->returnValue('t')); + + $this->abstractFilter->expects($this->once())->method('getRequestVar')->will($this->returnValue('t')); + + $result = $this->model->apply(); + $this->assertInstanceOf('\Magento\Catalog\Model\Layer', $result); + } + + public function testPrepareProductCollection() + { + $this->registry->expects($this->once())->method('registry')->with($this->equalTo('current_category')) + ->will($this->returnValue($this->category)); + + $this->collectionFilter->expects($this->once())->method('filter') + ->with($this->equalTo($this->collection), $this->equalTo($this->category)); + + $result = $this->model->prepareProductCollection($this->collection); + $this->assertInstanceOf('\Magento\Catalog\Model\Layer', $result); + } + + public function testGetCurrentStore() + { + $this->assertInstanceOf('\Magento\Store\Model\Store', $this->model->getCurrentStore()); + } + + public function testSetCurrentCategory() + { + $categoryId = 333; + + $this->category->expects($this->once())->method('load')->with($this->equalTo($categoryId)) + ->will($this->returnValue($this->category)); + $this->category->expects($this->at(0))->method('getId')->will($this->returnValue($categoryId)); + $this->category->expects($this->at(1))->method('getId')->will($this->returnValue($categoryId)); + $this->category->expects($this->at(2))->method('getId')->will($this->returnValue($categoryId - 1)); + + $this->registry->expects($this->once())->method('registry')->with($this->equalTo('current_category')) + ->will($this->returnValue($this->category)); + + $result = $this->model->setCurrentCategory($categoryId); + $this->assertInstanceOf('\Magento\Catalog\Model\Layer', $result); + } + + /** + * @expectedException \Magento\Framework\Model\Exception + * @expectedExceptionMessage The category must be an instance of \Magento\Catalog\Model\Category. + */ + public function testSetCurrentCategoryInstanceOfException() + { + $this->model->setCurrentCategory(null); + } + + /** + * @expectedException \Magento\Framework\Model\Exception + * @expectedExceptionMessage Please correct the category. + */ + public function testSetCurrentCategoryNotFoundException() + { + $this->category->expects($this->at(0))->method('getId')->will($this->returnValue(null)); + + $this->model->setCurrentCategory($this->category); + } + + /** + * @dataProvider currentCategoryProvider + */ + public function testGetCurrentCategory($currentCategory) + { + $rootCategoryId = 333; + $this->registry->expects($this->once())->method('registry')->with($this->equalTo('current_category')) + ->will($this->returnValue($currentCategory)); + + $this->category->expects($this->any())->method('load')->with($this->equalTo($rootCategoryId)) + ->will($this->returnValue($this->category)); + + $this->store->expects($this->any())->method('getRootCategoryId') + ->will($this->returnValue($rootCategoryId)); + + $result = $this->model->getCurrentCategory(); + $this->assertInstanceOf('\Magento\Catalog\Model\Category', $result); + } + + public function currentCategoryProvider() + { + $category = $this->getMockBuilder('Magento\Catalog\Model\Category') + ->disableOriginalConstructor() + ->getMock(); + + return [[$category], [null]]; + } +} diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Model/Product/ProductList/ToolbarTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Model/Product/ProductList/ToolbarTest.php index d19ffccee4bb6ca3935908e96511ab0d04aaa698..fd746b2f5c7e6f1a73fd7e13e382a170821bf1ac 100644 --- a/dev/tests/unit/testsuite/Magento/Catalog/Model/Product/ProductList/ToolbarTest.php +++ b/dev/tests/unit/testsuite/Magento/Catalog/Model/Product/ProductList/ToolbarTest.php @@ -24,6 +24,8 @@ namespace Magento\Catalog\Model\Product\ProductList; +use Magento\TestFramework\Helper\ObjectManager; + class ToolbarTest extends \PHPUnit_Framework_TestCase { /** @@ -32,23 +34,33 @@ class ToolbarTest extends \PHPUnit_Framework_TestCase protected $toolbarModel; /** - * @var \Magento\Framework\Stdlib\Cookie |\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Stdlib\CookieManager |\PHPUnit_Framework_MockObject_MockObject */ - protected $cookie; + protected $cookieManagerMock; /** * @var \Magento\Framework\App\Request\Http |\PHPUnit_Framework_MockObject_MockObject */ - protected $request; + protected $requestMock; /** * Set up */ public function setUp() { - $this->cookie = $this->getMock('Magento\Framework\Stdlib\Cookie', array('get'), array(), '', false); - $this->request = $this->getMock('Magento\Framework\App\Request\Http', array('getParam'), array(), '', false); - $this->toolbarModel = new Toolbar($this->cookie, $this->request); + $this->cookieManagerMock = $this->getMockBuilder('Magento\Framework\Stdlib\CookieManager') + ->disableOriginalConstructor() + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->getMock(); + $this->toolbarModel = (new ObjectManager($this))->getObject( + 'Magento\Catalog\Model\Product\ProductList\Toolbar', + [ + 'cookieManager' => $this->cookieManagerMock, + 'request' => $this->requestMock, + ] + ); } /** @@ -57,8 +69,8 @@ class ToolbarTest extends \PHPUnit_Framework_TestCase */ public function testGetOrder($param) { - $this->cookie->expects($this->once()) - ->method('get') + $this->cookieManagerMock->expects($this->once()) + ->method('getCookie') ->with(Toolbar::ORDER_COOKIE_NAME) ->will($this->returnValue($param)); $this->assertEquals($param, $this->toolbarModel->getOrder()); @@ -70,8 +82,8 @@ class ToolbarTest extends \PHPUnit_Framework_TestCase */ public function testGetDirection($param) { - $this->cookie->expects($this->once()) - ->method('get') + $this->cookieManagerMock->expects($this->once()) + ->method('getCookie') ->with(Toolbar::DIRECTION_COOKIE_NAME) ->will($this->returnValue($param)); $this->assertEquals($param, $this->toolbarModel->getDirection()); @@ -83,8 +95,8 @@ class ToolbarTest extends \PHPUnit_Framework_TestCase */ public function testGetMode($param) { - $this->cookie->expects($this->once()) - ->method('get') + $this->cookieManagerMock->expects($this->once()) + ->method('getCookie') ->with(Toolbar::MODE_COOKIE_NAME) ->will($this->returnValue($param)); $this->assertEquals($param, $this->toolbarModel->getMode()); @@ -96,8 +108,8 @@ class ToolbarTest extends \PHPUnit_Framework_TestCase */ public function testGetLimit($param) { - $this->cookie->expects($this->once()) - ->method('get') + $this->cookieManagerMock->expects($this->once()) + ->method('getCookie') ->with(Toolbar::LIMIT_COOKIE_NAME) ->will($this->returnValue($param)); $this->assertEquals($param, $this->toolbarModel->getLimit()); @@ -109,7 +121,7 @@ class ToolbarTest extends \PHPUnit_Framework_TestCase */ public function testGetCurrentPage($param) { - $this->request->expects($this->once()) + $this->requestMock->expects($this->once()) ->method('getParam') ->with(Toolbar::PAGE_PARM_NAME) ->will($this->returnValue($param)); @@ -118,7 +130,7 @@ class ToolbarTest extends \PHPUnit_Framework_TestCase public function testGetCurrentPageNoParam() { - $this->request->expects($this->once()) + $this->requestMock->expects($this->once()) ->method('getParam') ->with(Toolbar::PAGE_PARM_NAME) ->will($this->returnValue(false)); @@ -127,17 +139,17 @@ class ToolbarTest extends \PHPUnit_Framework_TestCase public function stringParamProvider() { - return array( - array('stringParam') - ); + return [ + ['stringParam'] + ]; } public function intParamProvider() { - return array( - array('2'), - array(3) - ); + return [ + ['2'], + [3] + ]; } } diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Category/ProductLinks/ReadServiceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Category/ProductLinks/ReadServiceTest.php index 5d173eb2e4ca76558641f6d30cfcb3c01a37d146..54f0b44f91f399a4aaf190eac0bbef121f60fe58 100644 --- a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Category/ProductLinks/ReadServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Category/ProductLinks/ReadServiceTest.php @@ -113,7 +113,7 @@ class ReadServiceTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue([$productId => $productObject])); $this->category->expects($this->once())->method('load')->with($this->equalTo($categoryId)); - $this->category->expects($this->once())->method('getId')->will($this->returnValue(true)); + $this->category->expects($this->once())->method('getId')->will($this->returnValue(333)); $this->category->expects($this->once())->method('getProductsPosition') ->will($this->returnValue([$productId => $productPosition])); $this->category->expects($this->once())->method('getProductCollection') @@ -130,4 +130,30 @@ class ReadServiceTest extends \PHPUnit_Framework_TestCase $this->assertEquals([$productDto], $this->model->assignedProducts($categoryId)); } + + /** + * @expectedException \Magento\Framework\Exception\NoSuchEntityException + */ + public function testGetCategoryNoSuchEntityException() + { + $categoryId = 3; + $productId = $categoryId + 6; + + /** @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject $productObject */ + $productObject = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() + ->getMock(); + + /** @var \Magento\Framework\Data\Collection\Db|\PHPUnit_Framework_MockObject_MockObject $productCollection */ + $productCollection = $this->getMockBuilder('Magento\Framework\Data\Collection\Db') + ->disableOriginalConstructor() + ->getMock(); + $productCollection->expects($this->any())->method('getItems') + ->will($this->returnValue([$productId => $productObject])); + + $this->category->expects($this->once())->method('load')->with($this->equalTo($categoryId)); + $this->category->expects($this->once())->method('getId')->will($this->returnValue(0)); + + $this->model->assignedProducts($categoryId); + } } diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Category/WriteServiceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Category/WriteServiceTest.php index 7668158e8108e9bee286ddcb302ff9f9540a3a61..dc75ffd48b713cd5e2966d19cfba2c04f00c2c99 100644 --- a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Category/WriteServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Category/WriteServiceTest.php @@ -103,7 +103,10 @@ class WriteServiceTest extends \PHPUnit_Framework_TestCase $storeManager = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false); $store = $this->getMock( 'Magento\Store\Model\Store', - ['getRootCategoryId', '__sleep', '__wakeup'], [], '', false + ['getRootCategoryId', '__sleep', '__wakeup'], + [], + '', + false ); $store->expects($this->any())->method('getRootCategoryId')->will($this->returnValue($parentId)); $storeManager->expects($this->any())->method('getStore')->will($this->returnValue($store)); diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Data/Category/MapperTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Data/Category/MapperTest.php index 9382a19bdf2a703aadec3e2fc3f319a1d1f691ab..229cbf74d681ac481480dcf60f7e74c018782bc1 100644 --- a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Data/Category/MapperTest.php +++ b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Data/Category/MapperTest.php @@ -38,7 +38,8 @@ class MapperTest extends \PHPUnit_Framework_TestCase public function testToModel() { $categoryFactory = $this->getMock('Magento\Catalog\Model\CategoryFactory', ['create'], [], '', false); - $categoryMapper = $this->objectManagerHelper->getObject('Magento\Catalog\Service\V1\Data\Category\Mapper', + $categoryMapper = $this->objectManagerHelper->getObject( + 'Magento\Catalog\Service\V1\Data\Category\Mapper', [ 'categoryFactory' => $categoryFactory ] @@ -46,18 +47,23 @@ class MapperTest extends \PHPUnit_Framework_TestCase $categoryModel = $this->getMock( 'Magento\Catalog\Model\Category', - ['setPath', 'getDefaultAttributeSetId', '__sleep', '__wakeup'], [], '', false + ['setPath', 'getDefaultAttributeSetId', '__sleep', '__wakeup'], + [], + '', + false ); $categoryFactory->expects($this->at(0))->method('create')->will($this->returnValue($categoryModel)); $categoryObj = $this->getMock('Magento\Catalog\Service\V1\Data\Category', [], [], '', false); $categoryObj->expects($this->any())->method('__toArray') - ->will($this->returnValue( - [ - 'test_code' => 'test_value', - ] - )); + ->will( + $this->returnValue( + [ + 'test_code' => 'test_value', + ] + ) + ); $this->assertEquals($categoryModel, $categoryMapper->toModel($categoryObj)); } diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Data/ProductMapperTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Data/ProductMapperTest.php index f35c932d4f2e1f40db9fb1e51c8a6495844efed3..0aa5e5ed0fc79118044ca4432be2fc765f03ae9f 100644 --- a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Data/ProductMapperTest.php +++ b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Data/ProductMapperTest.php @@ -54,9 +54,8 @@ class ProductMapperTest extends \PHPUnit_Framework_TestCase $product = $this->getMockBuilder('Magento\Catalog\Service\V1\Data\Product') ->disableOriginalConstructor() ->getMock(); - $product->expects($this->once())->method('__toArray')->will($this->returnValue([ - 'test_code' => 'test_value', - ])); + $product->expects($this->once())->method('__toArray') + ->will($this->returnValue(['test_code' => 'test_value'])); /** @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject $productModel */ $productModel = $this->getMockBuilder('Magento\Catalog\Model\Product') @@ -66,6 +65,48 @@ class ProductMapperTest extends \PHPUnit_Framework_TestCase $productFactory->expects($this->once())->method('create')->will($this->returnValue($productModel)); $this->assertEquals($productModel, $productMapper->toModel($product)); + } + + /** + * @expectedException \RuntimeException + * @expectedExceptionMessage Illegal product type + */ + public function testToModelRuntimeException() + { + $productFactory = $this->getMockBuilder('Magento\Catalog\Model\ProductFactory') + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + + /** @var \Magento\Catalog\Service\V1\Data\ProductMapper $productMapper */ + $productMapper = $this->objectManagerHelper->getObject( + 'Magento\Catalog\Service\V1\Data\ProductMapper', + ['productFactory' => $productFactory] + ); + + $product = $this->getMockBuilder('Magento\Catalog\Service\V1\Data\Product') + ->disableOriginalConstructor() + ->getMock(); + $product->expects($this->once())->method('__toArray') + ->will($this->returnValue(['test_code' => 'test_value'])); + + /** @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject $productModel */ + $productModel = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->setMethods(['hasTypeId', 'getTypeId', 'getDefaultAttributeSetId', 'setAttributeSetId', '__wakeup']) + ->disableOriginalConstructor() + ->getMock(); + + $productModel->expects($this->once())->method('hasTypeId') + ->will($this->returnValue(true)); + $productModel->expects($this->once())->method('getTypeId') + ->will($this->returnValue(333)); + $productModel->expects($this->once())->method('getDefaultAttributeSetId') + ->will($this->returnValue(333)); + $productModel->expects($this->once())->method('setAttributeSetId') + ->with($this->equalTo(333)); + + $productFactory->expects($this->once())->method('create')->will($this->returnValue($productModel)); + $productMapper->toModel($product); } -} \ No newline at end of file +} diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/MetadataServiceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/MetadataServiceTest.php index e36b4859be1f0bf2376b122e0982623c1dad526d..f5d9ba5d8070be0f60220b1059b5193ca3343ddf 100644 --- a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/MetadataServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/MetadataServiceTest.php @@ -25,62 +25,152 @@ namespace Magento\Catalog\Service\V1; class MetadataServiceTest extends \PHPUnit_Framework_TestCase { + /** @var \Magento\Eav\Model\Resource\Entity\Attribute\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject */ + private $attributeCollectionFactory; + /** @var \Magento\Eav\Model\Resource\Entity\Attribute\Collection|\PHPUnit_Framework_MockObject_MockObject */ + private $attributeCollection; + /** @var \Magento\Catalog\Service\V1\Data\Eav\AttributeMetadataBuilder */ + private $attributeMetadataBuilder; + /** @var \Magento\Catalog\Service\V1\Data\Eav\Product\Attribute\FrontendLabelBuilder */ + private $frontendLabelBuilder; + /** @var \Magento\Catalog\Service\V1\Data\Eav\OptionBuilder */ + private $optionBuilder; + /** @var \Magento\Catalog\Service\V1\Data\Eav\ValidationRuleBuilder */ + private $validationRuleBuilder; + /** @var \Magento\TestFramework\Helper\ObjectManager */ + private $objectManager; + /** @var \Magento\Eav\Model\Config|\PHPUnit_Framework_MockObject_MockObject */ + private $eavConfigMock; + /** @var \Magento\Catalog\Service\V1\MetadataService */ + private $service; + + protected function setUp() + { + $this->objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->eavConfigMock = $this->getMock('Magento\Eav\Model\Config', array('getAttribute'), array(), '', false); + $this->validationRuleBuilder = $this->objectManager->getObject( + '\Magento\Catalog\Service\V1\Data\Eav\ValidationRuleBuilder' + ); + $this->optionBuilder = $this->objectManager->getObject('\Magento\Catalog\Service\V1\Data\Eav\OptionBuilder'); + $this->frontendLabelBuilder = $this->objectManager->getObject( + '\Magento\Catalog\Service\V1\Data\Eav\Product\Attribute\FrontendLabelBuilder' + ); + /** @var \Magento\Catalog\Service\V1\Data\Eav\AttributeMetadataBuilder $attrMetadataBuilder */ + $this->attributeMetadataBuilder = $this->objectManager->getObject( + 'Magento\Catalog\Service\V1\Data\Eav\AttributeMetadataBuilder', + [ + 'optionBuilder' => $this->optionBuilder, + 'validationRuleBuilder' => $this->validationRuleBuilder, + 'frontendLabelBuilder' => $this->frontendLabelBuilder, + ] + ); + + $this->attributeCollectionFactory = $this->getMockBuilder( + 'Magento\Eav\Model\Resource\Entity\Attribute\CollectionFactory' + ) + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + + $this->attributeCollection = $this->getMockBuilder('Magento\Eav\Model\Resource\Entity\Attribute\Collection') + ->disableOriginalConstructor() + ->setMethods( + ['__wakeup', 'getTable', 'join', 'addFieldToFilter', 'addAttributeGrouping', 'getSize', 'getIterator'] + ) + ->getMock(); + + $this->service = $this->objectManager->getObject( + 'Magento\Catalog\Service\V1\MetadataService', + array( + 'eavConfig' => $this->eavConfigMock, + 'attributeMetadataBuilder' => $this->attributeMetadataBuilder, + 'attributeCollectionFactory' => $this->attributeCollectionFactory, + ) + ); + } + /** * Test getAttributeMetadata */ public function testGetAttributeMetadata() { - $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); - - $data = array( + $data = [ 'attribute_id' => 1, 'attribute_code' => 'description', 'frontend_label' => 'English', 'store_labels' => array(1 => 'France'), 'frontend_input' => 'textarea', - ); + ]; - //attributeMock $attributeMock = $this->getMock( 'Magento\Framework\Object', - array('usesSource', 'getSource', 'isScopeGlobal'), + array('usesSource', 'getSource', 'isScopeGlobal', 'getId'), array('data' => $data) ); + $attributeMock->expects($this->once())->method('getId')->will($this->returnValue($data['attribute_id'])); $attributeMock->expects($this->any())->method('isScopeGlobal')->will($this->returnValue(true)); $attributeMock->expects($this->any())->method('usesSource')->will($this->returnValue(true)); $attributeMock->expects($this->any())->method('getSource') ->will($this->returnValue(new \Magento\Framework\Object())); - // eavConfigMock - $eavConfigMock = $this->getMock('Magento\Eav\Model\Config', array('getAttribute'), array(), '', false); - $eavConfigMock->expects($this->any())->method('getAttribute')->will($this->returnValue($attributeMock)); + $this->eavConfigMock->expects($this->any())->method('getAttribute')->will($this->returnValue($attributeMock)); - $helper = new \Magento\TestFramework\Helper\ObjectManager($this); - $validationRuleBuilder = $helper->getObject('\Magento\Catalog\Service\V1\Data\Eav\ValidationRuleBuilder'); - $optionBuilder = $helper->getObject('\Magento\Catalog\Service\V1\Data\Eav\OptionBuilder'); - $frontendLabelBuilder = $helper - ->getObject('\Magento\Catalog\Service\V1\Data\Eav\Product\Attribute\FrontendLabelBuilder'); - /** @var \Magento\Catalog\Service\V1\Data\Eav\AttributeMetadataBuilder $attrMetadataBuilder */ - $attrMetadataBuilder = $objectManager->getObject( - 'Magento\Catalog\Service\V1\Data\Eav\AttributeMetadataBuilder', - [ - 'optionBuilder' => $optionBuilder, - 'validationRuleBuilder' => $validationRuleBuilder, - 'frontendLabelBuilder' => $frontendLabelBuilder, - ] - ); + $dto = $this->service->getAttributeMetadata('entity_type', 'attr_code'); + $this->assertInstanceOf('Magento\Framework\Service\Data\AbstractObject', $dto); + $this->assertEquals($attributeMock->getFrontendInput(), $dto->getFrontendInput()); - // create service - /** @var \Magento\Catalog\Service\V1\MetadataService $service */ - $service = $objectManager->getObject('Magento\Catalog\Service\V1\MetadataService', - array( - 'eavConfig' => $eavConfigMock, - 'attributeMetadataBuilder' - => $attrMetadataBuilder - ) + $this->assertEquals(0, $dto->getFrontendLabel()[0]->getStoreId()); + $this->assertEquals(1, $dto->getFrontendLabel()[1]->getStoreId()); + $this->assertEquals('English', $dto->getFrontendLabel()[0]->getLabel()); + $this->assertEquals('France', $dto->getFrontendLabel()[1]->getLabel()); + } + + /** + * Test getAllAttributeMetadata + */ + public function testGetAllAttributeMetadata() + { + $data = [ + 'attribute_id' => 1, + 'attribute_code' => 'description', + 'frontend_label' => 'English', + 'store_labels' => array(1 => 'France'), + 'frontend_input' => 'textarea', + ]; + + $attributeMock = $this->getMock( + 'Magento\Framework\Object', + array('usesSource', 'getSource', 'isScopeGlobal', 'getId'), + array('data' => $data) ); + $attributeMock->expects($this->once())->method('getId')->will($this->returnValue($data['attribute_id'])); + $attributeMock->expects($this->any())->method('isScopeGlobal')->will($this->returnValue(true)); + $attributeMock->expects($this->any())->method('usesSource')->will($this->returnValue(true)); + $attributeMock->expects($this->any())->method('getSource') + ->will($this->returnValue(new \Magento\Framework\Object())); + $this->eavConfigMock->expects($this->any())->method('getAttribute')->will($this->returnValue($attributeMock)); + + $this->attributeCollectionFactory + ->expects($this->once()) + ->method('create') + ->will($this->returnValue($this->attributeCollection)); - $dto = $service->getAttributeMetadata('entity_type', 'attr_code'); + $searchCriteria = $this->getMockBuilder('\Magento\Framework\Service\V1\Data\SearchCriteria') + ->disableOriginalConstructor() + ->setMethods(['getFilterGroups']) + ->getMock(); + $searchCriteria->expects($this->once()) + ->method('getFilterGroups') + ->will($this->returnValue(array())); + $this->attributeCollection->expects($this->once()) + ->method('getSize') + ->will($this->returnValue(1)); + $this->attributeCollection->expects($this->once()) + ->method('getIterator') + ->will($this->returnValue(new \ArrayIterator(array($attributeMock)))); + /** @var \Magento\Catalog\Service\V1\Data\Product\Attribute\SearchResults $searchResult */ + $searchResult = $this->service->getAllAttributeMetadata('entity_type', $searchCriteria); + $dto = $searchResult->getItems()[0]; $this->assertInstanceOf('Magento\Framework\Service\Data\AbstractObject', $dto); $this->assertEquals($attributeMock->getFrontendInput(), $dto->getFrontendInput()); @@ -89,4 +179,33 @@ class MetadataServiceTest extends \PHPUnit_Framework_TestCase $this->assertEquals('English', $dto->getFrontendLabel()[0]->getLabel()); $this->assertEquals('France', $dto->getFrontendLabel()[1]->getLabel()); } + + /** + * Test NoSuchEntityException getAttributeMetadata + * @expectedException \Magento\Framework\Exception\NoSuchEntityException + * @expectedExceptionMessage No such entity with attributeCode = attr_code + */ + public function testGetAttributeMetadataNoSuchEntityException() + { + $data = [ + 'attribute_id' => 1, + 'attribute_code' => 'description', + 'frontend_label' => 'English', + 'store_labels' => array(1 => 'France'), + 'frontend_input' => 'textarea', + ]; + + $attributeMock = $this->getMock( + 'Magento\Framework\Object', + array('getId'), + array('data' => $data) + ); + + $this->eavConfigMock->expects($this->once())->method('getAttribute')->will($this->returnValue($attributeMock)); + $attributeMock->expects($this->once()) + ->method('getId') + ->will($this->returnValue(null)); + + $this->service->getAttributeMetadata('entity_type', 'attr_code'); + } } diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/GroupPriceServiceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/GroupPriceServiceTest.php index 20f35475e105b70b2e096b7b8e10abdc4d95d26c..f65de7c82496cbcf2db5c8dcdec6d64fc519c789 100644 --- a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/GroupPriceServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/GroupPriceServiceTest.php @@ -1,6 +1,5 @@ <?php /** - * * Magento * * NOTICE OF LICENSE @@ -76,20 +75,36 @@ class GroupPriceServiceTest extends \PHPUnit_Framework_TestCase protected function setUp() { $this->repositoryMock = $this->getMock( - '\Magento\Catalog\Model\ProductRepository', array(), array(), '', false + '\Magento\Catalog\Model\ProductRepository', + array(), + array(), + '', + false ); $this->priceBuilderMock = $this->getMock( - 'Magento\Catalog\Service\V1\Data\Product\GroupPriceBuilder', array(), array(), '', false + 'Magento\Catalog\Service\V1\Data\Product\GroupPriceBuilder', + array(), + array(), + '', + false ); - $this->storeManagerMock = $this->getMock('\Magento\Store\Model\StoreManagerInterface'); + $this->storeManagerMock = $this->getMockBuilder('\Magento\Store\Model\StoreManagerInterface') + ->setMethods(['getWebsite']) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); $this->groupServiceMock = $this->getMock('\Magento\Customer\Service\V1\CustomerGroupServiceInterface'); $this->priceModifierMock = $this->getMock('Magento\Catalog\Model\Product\PriceModifier', array(), array(), '', false); $this->websiteMock = $this->getMock('Magento\Store\Model\Website', array('getId', '__wakeup'), array(), '', false); - $this->productMock = $this->getMock('Magento\Catalog\Model\Product', - array('getData', 'setData', 'validate', 'save', 'getIdBySku', 'load', '__wakeup'), array(), '', false); + $this->productMock = $this->getMock( + 'Magento\Catalog\Model\Product', + array('getData', 'setData', 'validate', 'save', 'getIdBySku', 'load', '__wakeup'), + array(), + '', + false + ); $this->repositoryMock->expects($this->any())->method('get')->with('product_sku') ->will($this->returnValue($this->productMock)); $this->configMock = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface'); @@ -105,7 +120,7 @@ class GroupPriceServiceTest extends \PHPUnit_Framework_TestCase /** * @param string $configValue - * @param array $groupData + * @param array $groupData * @param array $expected * @dataProvider getListDataProvider */ @@ -202,15 +217,27 @@ class GroupPriceServiceTest extends \PHPUnit_Framework_TestCase public function testSetNewPriceWithGlobalPriceScope() { $priceBuilder = $this->getMock( - '\Magento\Catalog\Service\V1\Data\Product\GroupPriceBuilder', array(), array(), '', false + '\Magento\Catalog\Service\V1\Data\Product\GroupPriceBuilder', + array(), + array(), + '', + false + ); + $priceBuilder->expects($this->any())->method('getData')->will( + $this->returnValue( + array( + 'customer_group_id' => 1, + 'value' => 100 + ) + ) ); - $priceBuilder->expects($this->any())->method('getData')->will($this->returnValue(array( - 'customer_group_id' => 1, - 'value' => 100 - ))); $price = new \Magento\Catalog\Service\V1\Data\Product\GroupPrice($priceBuilder); $groupBuilder = $this->getMock( - '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', array(), array(), '', false + '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', + array(), + array(), + '', + false ); $groupBuilder->expects($this->any())->method('getData')->will($this->returnValue(array('id' => 1))); $group = new \Magento\Customer\Service\V1\Data\CustomerGroup($groupBuilder); @@ -224,6 +251,10 @@ class GroupPriceServiceTest extends \PHPUnit_Framework_TestCase ->expects($this->once()) ->method('getValue') ->with('catalog/price/scope', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE) + ->will($this->returnValue(1)); + $this->storeManagerMock->expects($this->once())->method('getWebsite') + ->will($this->returnValue($this->websiteMock)); + $this->websiteMock->expects($this->once())->method('getId') ->will($this->returnValue(0)); $this->productMock->expects($this->once())->method('setData')->with( @@ -240,15 +271,27 @@ class GroupPriceServiceTest extends \PHPUnit_Framework_TestCase public function testSetUpdatedPriceWithGlobalPriceScope() { $priceBuilder = $this->getMock( - '\Magento\Catalog\Service\V1\Data\Product\GroupPriceBuilder', array(), array(), '', false + '\Magento\Catalog\Service\V1\Data\Product\GroupPriceBuilder', + array(), + array(), + '', + false + ); + $priceBuilder->expects($this->any())->method('getData')->will( + $this->returnValue( + array( + 'customer_group_id' => 2, + 'value' => 100 + ) + ) ); - $priceBuilder->expects($this->any())->method('getData')->will($this->returnValue(array( - 'customer_group_id' => 2, - 'value' => 100 - ))); $price = new \Magento\Catalog\Service\V1\Data\Product\GroupPrice($priceBuilder); $groupBuilder = $this->getMock( - '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', array(), array(), '', false + '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', + array(), + array(), + '', + false ); $groupBuilder->expects($this->any())->method('getData')->will($this->returnValue(array('id' => 1))); $group = new \Magento\Customer\Service\V1\Data\CustomerGroup($groupBuilder); @@ -281,15 +324,27 @@ class GroupPriceServiceTest extends \PHPUnit_Framework_TestCase public function testSetThrowsExceptionIfDoesntValidate() { $priceBuilder = $this->getMock( - '\Magento\Catalog\Service\V1\Data\Product\GroupPriceBuilder', array(), array(), '', false + '\Magento\Catalog\Service\V1\Data\Product\GroupPriceBuilder', + array(), + array(), + '', + false ); - $priceBuilder->expects($this->any())->method('getData')->will($this->returnValue(array( + $priceBuilder->expects($this->any())->method('getData')->will( + $this->returnValue( + array( 'customer_group_id' => 2, 'value' => 100 - ))); + ) + ) + ); $price = new \Magento\Catalog\Service\V1\Data\Product\GroupPrice($priceBuilder); $groupBuilder = $this->getMock( - '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', array(), array(), '', false + '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', + array(), + array(), + '', + false ); $groupBuilder->expects($this->any())->method('getData')->will($this->returnValue(array('id' => 1))); $group = new \Magento\Customer\Service\V1\Data\CustomerGroup($groupBuilder); @@ -300,9 +355,11 @@ class GroupPriceServiceTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue(array())); $this->groupServiceMock->expects($this->once())->method('getGroup')->will($this->returnValue($group)); - $this->productMock->expects($this->once())->method('validate')->will($this->returnValue( - array('attr1' => '', 'attr2' => '') - )); + $this->productMock->expects($this->once())->method('validate')->will( + $this->returnValue( + array('attr1' => '', 'attr2' => '') + ) + ); $this->productMock->expects($this->never())->method('save'); $this->service->set('product_sku', $price); } @@ -313,15 +370,27 @@ class GroupPriceServiceTest extends \PHPUnit_Framework_TestCase public function testSetThrowsExceptionIfCantSave() { $priceBuilder = $this->getMock( - '\Magento\Catalog\Service\V1\Data\Product\GroupPriceBuilder', array(), array(), '', false + '\Magento\Catalog\Service\V1\Data\Product\GroupPriceBuilder', + array(), + array(), + '', + false + ); + $priceBuilder->expects($this->any())->method('getData')->will( + $this->returnValue( + array( + 'customer_group_id' => 2, + 'value' => 100 + ) + ) ); - $priceBuilder->expects($this->any())->method('getData')->will($this->returnValue(array( - 'customer_group_id' => 2, - 'value' => 100 - ))); $price = new \Magento\Catalog\Service\V1\Data\Product\GroupPrice($priceBuilder); $groupBuilder = $this->getMock( - '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', array(), array(), '', false + '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', + array(), + array(), + '', + false ); $groupBuilder->expects($this->any())->method('getData')->will($this->returnValue(array('id' => 1))); $group = new \Magento\Customer\Service\V1\Data\CustomerGroup($groupBuilder); diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/MetadataServiceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/MetadataServiceTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0cd0e88c706d68880ee1176d9754483248616cfa --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/MetadataServiceTest.php @@ -0,0 +1,162 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Catalog\Service\V1\Product; + +use Magento\TestFramework\Helper\ObjectManager; + +class MetadataServiceTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Catalog\Service\V1\Product\MetadataService + */ + private $service; + + /** + * @var \Magento\Catalog\Service\V1\MetadataService|\PHPUnit_Framework_MockObject_MockObject + */ + private $metadataService; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + private $searchCriteriaBuilder; + + /** + * @var \Magento\Framework\Service\V1\Data\FilterBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + private $filterBuilder; + + /** + * @var \Magento\Framework\Service\V1\Data\Filter|\PHPUnit_Framework_MockObject_MockObject + */ + private $filter; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteria|\PHPUnit_Framework_MockObject_MockObject + */ + private $searchCriteria; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchResults|\PHPUnit_Framework_MockObject_MockObject + */ + private $searchResult; + + /** + * @var \Magento\Framework\Service\Config\MetadataConfig|\PHPUnit_Framework_MockObject_MockObject + */ + private $metadataConfig; + + protected function setUp() + { + $helper = new ObjectManager($this); + + $this->metadataConfig = $this->getMockBuilder('Magento\Framework\Service\Config\MetadataConfig') + ->setMethods(['getCustomAttributesMetadata']) + ->disableOriginalConstructor() + ->getMock(); + + $this->metadataService = $this->getMockBuilder('Magento\Catalog\Service\V1\MetadataService') + ->setMethods(['getAllAttributeMetadata']) + ->disableOriginalConstructor() + ->getMock(); + + $this->searchCriteriaBuilder = $this->getMockBuilder('Magento\Framework\Service\V1\Data\SearchCriteriaBuilder') + ->setMethods(['addFilter', 'create']) + ->disableOriginalConstructor() + ->getMock(); + + $this->filterBuilder = $this->getMockBuilder('Magento\Framework\Service\V1\Data\FilterBuilder') + ->setMethods(['setField', 'setValue', 'create']) + ->disableOriginalConstructor() + ->getMock(); + + $this->filter = $this->getMockBuilder('Magento\Framework\Service\V1\Data\Filter') + ->disableOriginalConstructor() + ->getMock(); + + $this->searchCriteria = $this->getMockBuilder('Magento\Framework\Service\V1\Data\SearchCriteria') + ->disableOriginalConstructor() + ->getMock(); + + $this->searchResult = $this->getMockBuilder('Magento\Framework\Service\V1\Data\SearchResults') + ->setMethods(['getItems']) + ->disableOriginalConstructor() + ->getMock(); + + $this->service = $helper->getObject( + 'Magento\Catalog\Service\V1\Product\MetadataService', + [ + 'metadataService' => $this->metadataService, + 'searchCriteriaBuilder' => $this->searchCriteriaBuilder, + 'filterBuilder' => $this->filterBuilder, + 'metadataConfig' => $this->metadataConfig + ] + ); + } + + public function testGetCustomAttributesMetadata() + { + $this->getProductAttributesMetadata(MetadataServiceInterface::DEFAULT_ATTRIBUTE_SET_ID); + + $this->metadataConfig->expects($this->once())->method('getCustomAttributesMetadata') + ->with($this->equalTo(MetadataServiceInterface::DEFAULT_ATTRIBUTE_SET_ID)) + ->will($this->returnValue([])); + + $result = $this->service->getCustomAttributesMetadata(MetadataServiceInterface::DEFAULT_ATTRIBUTE_SET_ID); + + $this->assertEquals([$this->metadataService], $result); + } + + public function testGetProductAttributesMetadata() + { + $this->getProductAttributesMetadata(MetadataServiceInterface::DEFAULT_ATTRIBUTE_SET_ID); + + $result = $this->service->getProductAttributesMetadata(MetadataServiceInterface::DEFAULT_ATTRIBUTE_SET_ID); + + $this->assertEquals([$this->metadataService], $result); + } + + private function getProductAttributesMetadata($attributeSetId) + { + $this->searchCriteriaBuilder->expects($this->once())->method('addFilter') + ->with($this->equalTo([$this->filter])); + $this->searchCriteriaBuilder->expects($this->once())->method('create') + ->will($this->returnValue($this->searchCriteria)); + + $this->filterBuilder->expects($this->once())->method('setField') + ->with($this->equalTo('attribute_set_id')) + ->will($this->returnValue($this->filterBuilder)); + $this->filterBuilder->expects($this->once())->method('setValue') + ->with($this->equalTo($attributeSetId)) + ->will($this->returnValue($this->filterBuilder)); + $this->filterBuilder->expects($this->once())->method('create') + ->will($this->returnValue($this->filter)); + + $this->metadataService->expects($this->once())->method('getAllAttributeMetadata') + ->with($this->equalTo(MetadataServiceInterface::ENTITY_TYPE), $this->equalTo($this->searchCriteria)) + ->will($this->returnValue($this->searchResult)); + $this->searchResult->expects($this->once())->method('getItems') + ->will($this->returnValue([$this->metadataService])); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/TierPriceServiceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/TierPriceServiceTest.php index 476cc986eda16264b912a25c1bf2af1233e39a28..b8e46e7697194d5927a3801d8f8d2bcbea22c97e 100644 --- a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/TierPriceServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/Product/TierPriceServiceTest.php @@ -1,6 +1,5 @@ <?php /** - * * Magento * * NOTICE OF LICENSE @@ -76,17 +75,30 @@ class TierPriceServiceTest extends \PHPUnit_Framework_TestCase protected function setUp() { $this->repositoryMock = $this->getMock( - '\Magento\Catalog\Model\ProductRepository', array(), array(), '', false + '\Magento\Catalog\Model\ProductRepository', + array(), + array(), + '', + false ); $this->priceBuilderMock = $this->getMock( - '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', array(), array(), '', false + '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', + array(), + array(), + '', + false ); $this->storeManagerMock = $this->getMock('\Magento\Store\Model\StoreManagerInterface'); $this->groupServiceMock = $this->getMock('\Magento\Customer\Service\V1\CustomerGroupServiceInterface'); $this->websiteMock = $this->getMock('Magento\Store\Model\Website', array('getId', '__wakeup'), array(), '', false); - $this->productMock = $this->getMock('Magento\Catalog\Model\Product', - array('getData', 'getIdBySku', 'load', '__wakeup', 'save', 'validate', 'setData'), array(), '', false); + $this->productMock = $this->getMock( + 'Magento\Catalog\Model\Product', + array('getData', 'getIdBySku', 'load', '__wakeup', 'save', 'validate', 'setData'), + array(), + '', + false + ); $this->configMock = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface'); $this->priceModifierMock = $this->getMock('Magento\Catalog\Model\Product\PriceModifier', array(), array(), '', false); @@ -214,18 +226,99 @@ class TierPriceServiceTest extends \PHPUnit_Framework_TestCase $this->assertEquals(true, $this->service->delete('product_sku', 4, 5, 6)); } + public function testSetNewPriceWithGlobalPriceScopeAll() + { + $priceBuilder = $this->getMock( + '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', + array(), + array(), + '', + false + ); + $priceBuilder->expects($this->any())->method('getData')->will( + $this->returnValue( + array( + 'qty' => 3, + 'value' => 100 + ) + ) + ); + $price = new \Magento\Catalog\Service\V1\Data\Product\TierPrice($priceBuilder); + $groupBuilder = $this->getMock( + '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', + array(), + array(), + '', + false + ); + + $websiteMock = $this->getMockBuilder('Magento\Store\Model\Website') + ->setMethods(['getId', '__wakeup']) + ->disableOriginalConstructor() + ->getMock(); + $websiteMock->expects($this->once())->method('getId')->will($this->returnValue(0)); + + $this->storeManagerMock->expects($this->once())->method('getWebsite')->will($this->returnValue($websiteMock)); + + $groupBuilder->expects($this->any())->method('getData')->will($this->returnValue(array('id' => 1))); + $group = new \Magento\Customer\Service\V1\Data\CustomerGroup($groupBuilder); + $this->groupServiceMock->expects($this->once())->method('getGroup')->will($this->returnValue($group)); + $this->productMock + ->expects($this->once()) + ->method('getData') + ->with('tier_price') + ->will( + $this->returnValue( + array(array('all_groups' => 0, 'website_id' => 0, 'price_qty' => 4, 'price' => 50)) + ) + ); + $this->configMock + ->expects($this->once()) + ->method('getValue') + ->with('catalog/price/scope', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE) + ->will($this->returnValue(1)); + + $this->productMock->expects($this->once())->method('setData')->with( + 'tier_price', + array( + array('all_groups' => 0, 'website_id' => 0, 'price_qty' => 4, 'price' => 50), + array( + 'cust_group' => 32000, + 'price' => 100, + 'website_price' => 100, + 'website_id' => 0, + 'price_qty' => 3 + ) + ) + ); + $this->productMock->expects($this->once())->method('save'); + $this->service->set('product_sku', 'all', $price); + } + public function testSetNewPriceWithGlobalPriceScope() { $priceBuilder = $this->getMock( - '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', array(), array(), '', false + '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', + array(), + array(), + '', + false + ); + $priceBuilder->expects($this->any())->method('getData')->will( + $this->returnValue( + array( + 'qty' => 3, + 'value' => 100 + ) + ) ); - $priceBuilder->expects($this->any())->method('getData')->will($this->returnValue(array( - 'qty' => 3, - 'value' => 100 - ))); $price = new \Magento\Catalog\Service\V1\Data\Product\TierPrice($priceBuilder); $groupBuilder = $this->getMock( - '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', array(), array(), '', false + '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', + array(), + array(), + '', + false ); $groupBuilder->expects($this->any())->method('getData')->will($this->returnValue(array('id' => 1))); $group = new \Magento\Customer\Service\V1\Data\CustomerGroup($groupBuilder); @@ -234,9 +327,11 @@ class TierPriceServiceTest extends \PHPUnit_Framework_TestCase ->expects($this->once()) ->method('getData') ->with('tier_price') - ->will($this->returnValue( - array(array('cust_group' => 1, 'website_id' => 0, 'price_qty' => 4, 'price' => 50)) - )); + ->will( + $this->returnValue( + array(array('cust_group' => 1, 'website_id' => 0, 'price_qty' => 4, 'price' => 50)) + ) + ); $this->configMock ->expects($this->once()) ->method('getValue') @@ -257,15 +352,27 @@ class TierPriceServiceTest extends \PHPUnit_Framework_TestCase public function testSetUpdatedPriceWithGlobalPriceScope() { $priceBuilder = $this->getMock( - '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', array(), array(), '', false + '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', + array(), + array(), + '', + false + ); + $priceBuilder->expects($this->any())->method('getData')->will( + $this->returnValue( + array( + 'qty' => 3, + 'value' => 100 + ) + ) ); - $priceBuilder->expects($this->any())->method('getData')->will($this->returnValue(array( - 'qty' => 3, - 'value' => 100 - ))); $price = new \Magento\Catalog\Service\V1\Data\Product\TierPrice($priceBuilder); $groupBuilder = $this->getMock( - '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', array(), array(), '', false + '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', + array(), + array(), + '', + false ); $groupBuilder->expects($this->any())->method('getData')->will($this->returnValue(array('id' => 1))); $group = new \Magento\Customer\Service\V1\Data\CustomerGroup($groupBuilder); @@ -274,8 +381,10 @@ class TierPriceServiceTest extends \PHPUnit_Framework_TestCase ->expects($this->once()) ->method('getData') ->with('tier_price') - ->will($this->returnValue( - array(array('cust_group' => 1, 'website_id' => 0, 'price_qty' => 3, 'price' => 50))) + ->will( + $this->returnValue( + array(array('cust_group' => 1, 'website_id' => 0, 'price_qty' => 3, 'price' => 50)) + ) ); $this->configMock ->expects($this->once()) @@ -300,15 +409,27 @@ class TierPriceServiceTest extends \PHPUnit_Framework_TestCase public function testSetThrowsExceptionIfDoesntValidate() { $priceBuilder = $this->getMock( - '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', array(), array(), '', false + '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', + array(), + array(), + '', + false + ); + $priceBuilder->expects($this->any())->method('getData')->will( + $this->returnValue( + array( + 'qty' => 2, + 'value' => 100 + ) + ) ); - $priceBuilder->expects($this->any())->method('getData')->will($this->returnValue(array( - 'qty' => 2, - 'value' => 100 - ))); $price = new \Magento\Catalog\Service\V1\Data\Product\TierPrice($priceBuilder); $groupBuilder = $this->getMock( - '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', array(), array(), '', false + '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', + array(), + array(), + '', + false ); $groupBuilder->expects($this->any())->method('getData')->will($this->returnValue(array('id' => 1))); $group = new \Magento\Customer\Service\V1\Data\CustomerGroup($groupBuilder); @@ -319,9 +440,11 @@ class TierPriceServiceTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue(array())); $this->groupServiceMock->expects($this->once())->method('getGroup')->will($this->returnValue($group)); - $this->productMock->expects($this->once())->method('validate')->will($this->returnValue( + $this->productMock->expects($this->once())->method('validate')->will( + $this->returnValue( array('attr1' => '', 'attr2' => '') - )); + ) + ); $this->productMock->expects($this->never())->method('save'); $this->service->set('product_sku', 1, $price); } @@ -332,15 +455,27 @@ class TierPriceServiceTest extends \PHPUnit_Framework_TestCase public function testSetThrowsExceptionIfCantSave() { $priceBuilder = $this->getMock( - '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', array(), array(), '', false + '\Magento\Catalog\Service\V1\Data\Product\TierPriceBuilder', + array(), + array(), + '', + false + ); + $priceBuilder->expects($this->any())->method('getData')->will( + $this->returnValue( + array( + 'qty' => 2, + 'value' => 100 + ) + ) ); - $priceBuilder->expects($this->any())->method('getData')->will($this->returnValue(array( - 'qty' => 2, - 'value' => 100 - ))); $price = new \Magento\Catalog\Service\V1\Data\Product\TierPrice($priceBuilder); $groupBuilder = $this->getMock( - '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', array(), array(), '', false + '\Magento\Customer\Service\V1\Data\CustomerGroupBuilder', + array(), + array(), + '', + false ); $groupBuilder->expects($this->any())->method('getData')->will($this->returnValue(array('id' => 1))); $group = new \Magento\Customer\Service\V1\Data\CustomerGroup($groupBuilder); diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/ProductServiceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/ProductServiceTest.php index 5a2b458add886237c0449dc7f30bde1e6c7d0f47..5630dc19d696b144978c16d2ab4af4ae529114e7 100644 --- a/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/ProductServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/Catalog/Service/V1/ProductServiceTest.php @@ -101,8 +101,8 @@ class ProductServiceTest extends \PHPUnit_Framework_TestCase ->getMock(); $this->searchResultsBuilderMock = $this->getMockBuilder( - 'Magento\Catalog\Service\V1\Data\Product\SearchResultsBuilder' - )->disableOriginalConstructor() + 'Magento\Catalog\Service\V1\Data\Product\SearchResultsBuilder' + )->disableOriginalConstructor() ->getMock(); $this->metadataServiceMock = $this->getMockBuilder( @@ -151,20 +151,6 @@ class ProductServiceTest extends \PHPUnit_Framework_TestCase $productService->delete($productSku); } - /** - * @return ProductService - */ - private function _createService() - { - $productService = $this->_objectManager->getObject( - 'Magento\Catalog\Service\V1\ProductService', - [ - 'productLoader' => $this->_productLoaderMock - ] - ); - return $productService; - } - public function testSearch() { $metadata = array(); @@ -250,17 +236,6 @@ class ProductServiceTest extends \PHPUnit_Framework_TestCase $productService->search($this->_searchBuilder->create()); } - /** - * @param \PHPUnit_Framework_MockObject_MockObject $mock - * @param array $valueMap - */ - private function _mockReturnValue($mock, $valueMap) - { - foreach ($valueMap as $method => $value) { - $mock->expects($this->any())->method($method)->will($this->returnValue($value)); - } - } - public function testGet() { $productId = 100; @@ -347,6 +322,115 @@ class ProductServiceTest extends \PHPUnit_Framework_TestCase $this->assertEquals($productSku, $productService->create($product)); } + /** + * @expectedException \Magento\Framework\Exception\StateException + * @expectedExceptionMessage Unable to save product + */ + public function testCreateStateException() + { + $initializationHelper = $this + ->getMockBuilder('Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper') + ->disableOriginalConstructor() + ->getMock(); + + $productMapper = $this + ->getMockBuilder('Magento\Catalog\Service\V1\Data\ProductMapper') + ->disableOriginalConstructor() + ->getMock(); + + $productTypeManager = $this + ->getMockBuilder('Magento\Catalog\Model\Product\TypeTransitionManager') + ->disableOriginalConstructor() + ->getMock(); + + /** @var \Magento\Catalog\Service\V1\ProductService $productService */ + $productService = $this->_objectManager->getObject( + 'Magento\Catalog\Service\V1\ProductService', + [ + 'initializationHelper' => $initializationHelper, + 'productMapper' => $productMapper, + 'productTypeManager' => $productTypeManager, + 'productLoader' => $this->_productLoaderMock, + ] + ); + + $productModel = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() + ->getMock(); + + $product = $this->getMockBuilder('Magento\Catalog\Service\V1\Data\Product') + ->disableOriginalConstructor() + ->getMock(); + + $productMapper->expects($this->once())->method('toModel')->with($product) + ->will($this->returnValue($productModel)); + + $initializationHelper->expects($this->once())->method('initialize')->with($productModel); + + $productModel->expects($this->once())->method('validate'); + $productModel->expects($this->once())->method('save'); + + $productModel->expects($this->once())->method('getId')->will($this->returnValue(0)); + + $productService->create($product); + } + + /** + * @expectedException \Magento\Framework\Exception\InputException + */ + public function testCreateInputException() + { + $initializationHelper = $this + ->getMockBuilder('Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper') + ->disableOriginalConstructor() + ->getMock(); + + $productMapper = $this + ->getMockBuilder('Magento\Catalog\Service\V1\Data\ProductMapper') + ->disableOriginalConstructor() + ->getMock(); + + $productTypeManager = $this + ->getMockBuilder('Magento\Catalog\Model\Product\TypeTransitionManager') + ->disableOriginalConstructor() + ->getMock(); + + /** @var \Magento\Catalog\Service\V1\ProductService $productService */ + $productService = $this->_objectManager->getObject( + 'Magento\Catalog\Service\V1\ProductService', + [ + 'initializationHelper' => $initializationHelper, + 'productMapper' => $productMapper, + 'productTypeManager' => $productTypeManager, + 'productLoader' => $this->_productLoaderMock, + ] + ); + + $productModel = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() + ->getMock(); + + $product = $this->getMockBuilder('Magento\Catalog\Service\V1\Data\Product') + ->disableOriginalConstructor() + ->getMock(); + + $productMapper->expects($this->once())->method('toModel')->with($product) + ->will($this->returnValue($productModel)); + + $initializationHelper->expects($this->once())->method('initialize')->with($productModel); + + $productModel->expects($this->once())->method('validate'); + $productModel->expects($this->once())->method('save')->will( + $this->returnCallback( + function () { + throw new \Magento\Eav\Model\Entity\Attribute\Exception(); + } + ) + ); + + $productService->create($product); + } + public function testUpdate() { $initializationHelper = $this @@ -405,4 +489,94 @@ class ProductServiceTest extends \PHPUnit_Framework_TestCase $this->assertEquals($productSku, $productService->update(5, $product)); } + + /** + * @expectedException \Magento\Framework\Exception\InputException + */ + public function testUpdateInputException() + { + $initializationHelper = $this + ->getMockBuilder('Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper') + ->disableOriginalConstructor() + ->getMock(); + + $productMapper = $this + ->getMockBuilder('Magento\Catalog\Service\V1\Data\ProductMapper') + ->disableOriginalConstructor() + ->getMock(); + + $productTypeManager = $this + ->getMockBuilder('Magento\Catalog\Model\Product\TypeTransitionManager') + ->disableOriginalConstructor() + ->getMock(); + + $productLoader = $this + ->getMockBuilder('Magento\Catalog\Service\V1\Product\ProductLoader') + ->setMethods(['load']) + ->disableOriginalConstructor() + ->getMock(); + + /** @var \Magento\Catalog\Service\V1\ProductService $productService */ + $productService = $this->_objectManager->getObject( + 'Magento\Catalog\Service\V1\ProductService', + [ + 'initializationHelper' => $initializationHelper, + 'productMapper' => $productMapper, + 'productTypeManager' => $productTypeManager, + 'productLoader' => $productLoader, + ] + ); + + $productModel = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() + ->getMock(); + + $product = $this->getMockBuilder('Magento\Catalog\Service\V1\Data\Product') + ->disableOriginalConstructor() + ->getMock(); + $productLoader->expects($this->once())->method('load') + ->will($this->returnValue($productModel)); + + $productMapper->expects($this->once())->method('toModel')->with($product, $productModel) + ->will($this->returnValue($productModel)); + + $initializationHelper->expects($this->once())->method('initialize')->with($productModel); + $productTypeManager->expects($this->once())->method('processProduct')->with($productModel); + + $productModel->expects($this->once())->method('validate'); + $productModel->expects($this->once())->method('save')->will( + $this->returnCallback( + function () { + throw new \Magento\Eav\Model\Entity\Attribute\Exception(); + } + ) + ); + + $productService->update(5, $product); + } + + /** + * @return ProductService + */ + private function _createService() + { + $productService = $this->_objectManager->getObject( + 'Magento\Catalog\Service\V1\ProductService', + [ + 'productLoader' => $this->_productLoaderMock + ] + ); + return $productService; + } + + /** + * @param \PHPUnit_Framework_MockObject_MockObject $mock + * @param array $valueMap + */ + private function _mockReturnValue($mock, $valueMap) + { + foreach ($valueMap as $method => $value) { + $mock->expects($this->any())->method($method)->will($this->returnValue($value)); + } + } } diff --git a/dev/tests/unit/testsuite/Magento/CatalogInventory/Model/Stock/ItemTest.php b/dev/tests/unit/testsuite/Magento/CatalogInventory/Model/Stock/ItemTest.php index 25bbf5ecac298d6fa58ffa5bdbeace746d1f587f..6bb83f07178cb312193f7073d3433211398b3757 100644 --- a/dev/tests/unit/testsuite/Magento/CatalogInventory/Model/Stock/ItemTest.php +++ b/dev/tests/unit/testsuite/Magento/CatalogInventory/Model/Stock/ItemTest.php @@ -68,6 +68,9 @@ class ItemTest extends \PHPUnit_Framework_TestCase /** @var \Magento\CatalogInventory\Model\Stock\ItemRegistry|\PHPUnit_Framework_MockObject_MockObject */ protected $stockItemRegistry; + /** @var \Magento\CatalogInventory\Service\V1\StockItemService|\PHPUnit_Framework_MockObject_MockObject */ + protected $stockItemService; + protected function setUp() { $this->resource = $this->getMock( @@ -120,6 +123,14 @@ class ItemTest extends \PHPUnit_Framework_TestCase false ); + $this->stockItemService = $this->getMock( + '\Magento\CatalogInventory\Service\V1\StockItemService', + [], + [], + '', + false + ); + $this->objectManagerHelper = new ObjectManagerHelper($this); $this->item = $this->objectManagerHelper->getObject( 'Magento\CatalogInventory\Model\Stock\Item', @@ -131,7 +142,8 @@ class ItemTest extends \PHPUnit_Framework_TestCase 'storeManager' => $this->storeManager, 'productFactory' => $productFactory, 'resource' => $this->resource, - 'stockItemRegistry' => $this->stockItemRegistry + 'stockItemRegistry' => $this->stockItemRegistry, + 'stockItemService' => $this->stockItemService ] ); } @@ -155,6 +167,9 @@ class ItemTest extends \PHPUnit_Framework_TestCase $this->resource->expects($this->once()) ->method('addCommitCallback') ->will($this->returnValue($this->resource)); + $this->stockItemService->expects($this->any()) + ->method('isQty') + ->will($this->returnValue(true)); $this->assertEquals($this->item, $this->item->save()); } diff --git a/dev/tests/unit/testsuite/Magento/CatalogInventory/Service/V1/StockItemServiceTest.php b/dev/tests/unit/testsuite/Magento/CatalogInventory/Service/V1/StockItemServiceTest.php index 61357b0d5156126d3918b582a4247e493225f62e..d1a843d44b12a3504707631ca863f5dbc4c06615 100644 --- a/dev/tests/unit/testsuite/Magento/CatalogInventory/Service/V1/StockItemServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/CatalogInventory/Service/V1/StockItemServiceTest.php @@ -23,8 +23,9 @@ */ namespace Magento\CatalogInventory\Service\V1; -use Magento\CatalogInventory\Model\Stock\ItemRegistry; use Magento\Catalog\Model\ProductTypes\ConfigInterface; +use Magento\CatalogInventory\Model\Stock\ItemRegistry; +use Magento\TestFramework\Helper\ObjectManager; /** * Class StockItemTest @@ -74,7 +75,7 @@ class StockItemServiceTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); - $objectManagerHelper = new \Magento\TestFramework\Helper\ObjectManager($this); + $objectManagerHelper = new ObjectManager($this); $this->model = $objectManagerHelper->getObject( 'Magento\CatalogInventory\Service\V1\StockItemService', [ @@ -373,13 +374,11 @@ class StockItemServiceTest extends \PHPUnit_Framework_TestCase $product->expects($this->any())->method('getId')->will($this->returnValue($productId)); $stockItem->expects($this->any())->method('getData')->will($this->returnValue($stockItemData)); - $this->productLoader->expects($this->any())->method('load')->will($this->returnValueMap([ - [$productSku, $product] - ])); + $this->productLoader->expects($this->any())->method('load') + ->will($this->returnValueMap([[$productSku, $product]])); - $this->stockItemRegistry->expects($this->any())->method('retrieve')->will($this->returnValueMap([ - [$productId, $stockItem] - ])); + $this->stockItemRegistry->expects($this->any())->method('retrieve') + ->will($this->returnValueMap([[$productId, $stockItem]])); $this->stockItemBuilder->expects($this->any()) ->method('create') @@ -421,9 +420,8 @@ class StockItemServiceTest extends \PHPUnit_Framework_TestCase ->getMock(); // 2. Set fixtures - $this->productLoader->expects($this->any())->method('load')->will($this->returnValueMap([ - [$productSku, $product] - ])); + $this->productLoader->expects($this->any())->method('load') + ->will($this->returnValueMap([[$productSku, $product]])); $product->expects($this->any())->method('getId')->will($this->returnValue($productId)); // 3. Run tested method @@ -492,13 +490,11 @@ class StockItemServiceTest extends \PHPUnit_Framework_TestCase $stockItem->expects($this->any())->method('save')->will($this->returnSelf()); $stockItem->expects($this->any())->method('getId')->will($this->returnValue($savedStockItemId)); - $this->productLoader->expects($this->any())->method('load')->will($this->returnValueMap([ - [$productSku, $product] - ])); + $this->productLoader->expects($this->any())->method('load') + ->will($this->returnValueMap([[$productSku, $product]])); - $this->stockItemRegistry->expects($this->any())->method('retrieve')->will($this->returnValueMap([ - [$productId, $stockItem] - ])); + $this->stockItemRegistry->expects($this->any())->method('retrieve') + ->will($this->returnValueMap([[$productId, $stockItem]])); $this->stockItemBuilder->expects($this->any()) ->method('create') @@ -561,15 +557,33 @@ class StockItemServiceTest extends \PHPUnit_Framework_TestCase ->getMock(); // 2. Set fixtures - $this->productLoader->expects($this->any())->method('load')->will($this->returnValueMap([ - [$productSku, $product] - ])); + $this->productLoader->expects($this->any())->method('load') + ->will($this->returnValueMap([[$productSku, $product]])); $product->expects($this->any())->method('getId')->will($this->returnValue($productId)); // 3. Run tested method $this->model->saveStockItemBySku($productSku, $stockItemDetailsDo); } + public function testProcessIsInStock() + { + $stockData = ['product_id' => 333]; + + $stockItemModel = $this->getMockBuilder('Magento\CatalogInventory\Model\Stock\Item') + ->setMethods(['getData', 'setData', 'processIsInStock', '__wakeup']) + ->disableOriginalConstructor() + ->getMock(); + $this->stockItemRegistry->expects($this->once())->method('retrieve') + ->with($this->equalTo($stockData['product_id'])) + ->will($this->returnValue($stockItemModel)); + + $stockItemModel->expects($this->once())->method('setData')->with($this->equalTo($stockData)); + $stockItemModel->expects($this->once())->method('processIsInStock'); + $stockItemModel->expects($this->once())->method('getData')->will($this->returnValue($stockData)); + + $this->assertEquals($stockData, $this->model->processIsInStock($stockData)); + } + /** * @return array */ diff --git a/dev/tests/unit/testsuite/Magento/Checkout/Helper/CartTest.php b/dev/tests/unit/testsuite/Magento/Checkout/Helper/CartTest.php index 39e12d61df8003716f27b27a65f4b90181c2574d..b3c40a76ad5a8f112d1219b6c10bffb437718a7d 100644 --- a/dev/tests/unit/testsuite/Magento/Checkout/Helper/CartTest.php +++ b/dev/tests/unit/testsuite/Magento/Checkout/Helper/CartTest.php @@ -74,7 +74,7 @@ class CartTest extends \PHPUnit_Framework_TestCase $this->urlBuilderMock = $this->getMock('\Magento\Framework\UrlInterface'); $this->requestMock = $this->getMock( '\Magento\Framework\App\RequestInterface', - array( + [ 'getRouteName', 'getControllerName', 'getParam', @@ -82,7 +82,8 @@ class CartTest extends \PHPUnit_Framework_TestCase 'getActionName', 'setModuleName', 'getModuleName', - ) + 'getCookie' + ] ); $contextMock = $this->getMock('\Magento\Framework\App\Helper\Context', [], [], '', false); $contextMock->expects($this->any())->method('getUrlBuilder')->will($this->returnValue($this->urlBuilderMock)); @@ -116,17 +117,17 @@ class CartTest extends \PHPUnit_Framework_TestCase $quoteItemMock->expects($this->any())->method('getId')->will($this->returnValue($quoteItemId)); $currentUrl = 'http://www.example.com/'; $this->urlBuilderMock->expects($this->any())->method('getCurrentUrl')->will($this->returnValue($currentUrl)); - $params = array( + $params = [ 'id' => $quoteItemId, Action::PARAM_NAME_BASE64_URL => strtr(base64_encode($currentUrl), '+/=', '-_,'), - ); + ]; $this->urlBuilderMock->expects($this->once())->method('getUrl')->with('checkout/cart/delete', $params); $this->helper->getRemoveUrl($quoteItemMock); } public function testGetCartUrl() { - $this->urlBuilderMock->expects($this->once())->method('getUrl')->with('checkout/cart', array()); + $this->urlBuilderMock->expects($this->once())->method('getUrl')->with('checkout/cart', []); $this->helper->getCartUrl(); } @@ -185,7 +186,7 @@ class CartTest extends \PHPUnit_Framework_TestCase $productMock->expects($this->any())->method('getEntityId')->will($this->returnValue($productEntityId)); $productMock->expects($this->any())->method('hasUrlDataObject')->will($this->returnValue(true)); $productMock->expects($this->any())->method('getUrlDataObject') - ->will($this->returnValue(new Object(array('store_id' => $storeId)))); + ->will($this->returnValue(new Object(['store_id' => $storeId]))); $currentUrl = 'http://www.example.com/'; $this->urlBuilderMock->expects($this->any())->method('getCurrentUrl')->will($this->returnValue($currentUrl)); @@ -195,17 +196,17 @@ class CartTest extends \PHPUnit_Framework_TestCase $this->requestMock->expects($this->any())->method('getRouteName')->will($this->returnValue('checkout')); $this->requestMock->expects($this->any())->method('getControllerName')->will($this->returnValue('cart')); - $params = array( + $params = [ Action::PARAM_NAME_URL_ENCODED => $currentUrl, 'product' => $productEntityId, 'custom_param' => 'value', '_scope' => $storeId, '_scope_to_url' => true, 'in_cart' => 1, - ); + ]; $this->urlBuilderMock->expects($this->once())->method('getUrl')->with('checkout/cart/add', $params); - $this->helper->getAddUrl($productMock, array('custom_param' => 'value')); + $this->helper->getAddUrl($productMock, ['custom_param' => 'value']); } /** @@ -219,20 +220,20 @@ class CartTest extends \PHPUnit_Framework_TestCase public function testGetDeletePostJson($id, $url, $isAjax, $expectedPostData) { $storeManager = $this->getMockForAbstractClass('\Magento\Store\Model\StoreManagerInterface'); - $coreData = $this->getMock('\Magento\Core\Helper\Data', array(), array(), '', false); + $coreData = $this->getMock('\Magento\Core\Helper\Data', [], [], '', false); $scopeConfig = $this->getMockForAbstractClass('\Magento\Framework\App\Config\ScopeConfigInterface'); - $checkoutCart = $this->getMock('\Magento\Checkout\Model\Cart', array(), array(), '', false); - $checkoutSession = $this->getMock('\Magento\Checkout\Model\Session', array(), array(), '', false); + $checkoutCart = $this->getMock('\Magento\Checkout\Model\Cart', [], [], '', false); + $checkoutSession = $this->getMock('\Magento\Checkout\Model\Session', [], [], '', false); - $context = $this->getMock('\Magento\Framework\App\Helper\Context', array(), array(), '', false); + $context = $this->getMock('\Magento\Framework\App\Helper\Context', [], [], '', false); $urlBuilder = $this->getMock('Magento\Framework\UrlInterface'); $context->expects($this->once()) ->method('getUrlBuilder') ->will($this->returnValue($urlBuilder)); - $item = $this->getMock('Magento\Sales\Model\Quote\Item', array(), array(), '', false); - $request = $this->getMock('\Magento\Framework\App\Request\Http', array(), array(), '', false); + $item = $this->getMock('Magento\Sales\Model\Quote\Item', [], [], '', false); + $request = $this->getMock('\Magento\Framework\App\Request\Http', [], [], '', false); $context->expects($this->once()) ->method('getRequest') ->will($this->returnValue($request)); @@ -275,21 +276,21 @@ class CartTest extends \PHPUnit_Framework_TestCase $uenc = strtr(base64_encode($url), '+/=', '-_,'); $id = 1; $expectedPostData1 = json_encode( - array( + [ 'action' => $url, - 'data' => array('id' => $id, 'uenc' => $uenc) - ) + 'data' => ['id' => $id, 'uenc' => $uenc] + ] ); $expectedPostData2 = json_encode( - array( + [ 'action' => $url, - 'data' => array('id' => $id) - ) + 'data' => ['id' => $id] + ] ); - return array( - array($id, $url, false, $expectedPostData1), - array($id, $url, true, $expectedPostData2), - ); + return [ + [$id, $url, false, $expectedPostData1], + [$id, $url, true, $expectedPostData2], + ]; } } diff --git a/dev/tests/unit/testsuite/Magento/Checkout/Helper/ExpressRedirectTest.php b/dev/tests/unit/testsuite/Magento/Checkout/Helper/ExpressRedirectTest.php index 24942c146e41e7bf56416f44d91694cd4ead207d..d5b119bc336c0368a0119bc0f5e78f1b8d162ce0 100644 --- a/dev/tests/unit/testsuite/Magento/Checkout/Helper/ExpressRedirectTest.php +++ b/dev/tests/unit/testsuite/Magento/Checkout/Helper/ExpressRedirectTest.php @@ -156,7 +156,7 @@ class ExpressRedirectTest extends \PHPUnit_Framework_TestCase $responseMock = $this->getMockBuilder( 'Magento\Framework\App\Response\Http' )->disableOriginalConstructor()->setMethods( - array('setRedirect') + ['setRedirect', '__wakeup'] )->getMock(); $responseMock->expects($this->once())->method('setRedirect')->with($expectedLoginUrl); diff --git a/dev/tests/unit/testsuite/Magento/Checkout/Model/Type/OnepageTest.php b/dev/tests/unit/testsuite/Magento/Checkout/Model/Type/OnepageTest.php index 37aab269fdf758750eec1aacb81ff0c7369695d6..93c4e8b2c07c191a4fe489f3974d2227846d6f59 100644 --- a/dev/tests/unit/testsuite/Magento/Checkout/Model/Type/OnepageTest.php +++ b/dev/tests/unit/testsuite/Magento/Checkout/Model/Type/OnepageTest.php @@ -116,7 +116,7 @@ class OnepageTest extends \PHPUnit_Framework_TestCase $this->storeManagerMock = $this->getMock('Magento\Store\Model\StoreManagerInterface'); $this->requestMock = $this->getMock( 'Magento\Framework\App\RequestInterface', - ['isAjax', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam'] + ['isAjax', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam', 'getCookie'] ); $this->addressFactoryMock = $this->getMock('Magento\Customer\Model\AddressFactory'); $this->formFactoryMock = $this->getMock('Magento\Customer\Model\FormFactory'); diff --git a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Model/Attribute/LockValidatorTest.php b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Model/Attribute/LockValidatorTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c7d46959b2c821acddecbdbd3134f6502c1579e3 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Model/Attribute/LockValidatorTest.php @@ -0,0 +1,145 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\ConfigurableProduct\Model\Attribute; + +use Magento\TestFramework\Helper\ObjectManager; + +class LockValidatorTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\ConfigurableProduct\Model\Attribute\LockValidator + */ + private $model; + + /** + * @var \Magento\Framework\App\Resource|\PHPUnit_Framework_MockObject_MockObject + */ + private $resource; + + /** + * @var \Magento\Framework\DB\Adapter\AdapterInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $adapter; + + /** + * @var \Magento\Framework\DB\Select|\PHPUnit_Framework_MockObject_MockObject + */ + private $select; + + protected function setUp() + { + $helper = new ObjectManager($this); + + $this->resource = $this->getMockBuilder('Magento\Framework\App\Resource') + ->setMethods(['getConnection', 'getTableName']) + ->disableOriginalConstructor() + ->getMock(); + + $this->adapter = $this->getMockBuilder('Magento\Framework\DB\Adapter\AdapterInterface') + ->setMethods(['select', 'fetchOne']) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + + $this->select = $this->getMockBuilder('Magento\Framework\DB\Select') + ->setMethods(['reset', 'from', 'join', 'where', 'group', 'limit']) + ->disableOriginalConstructor() + ->getMock(); + + $this->model = $helper->getObject( + 'Magento\ConfigurableProduct\Model\Attribute\LockValidator', + ['resource' => $this->resource] + ); + } + + public function testValidate() + { + $this->validate(false); + } + + /** + * @expectedException \Magento\Framework\Model\Exception + * @expectedExceptionMessage This attribute is used in configurable products. + */ + public function testValidateException() + { + $this->validate(true); + } + + public function validate($exception) + { + $attrTable = 'someAttributeTable'; + $productTable = 'someProductTable'; + $attributeId = 333; + $attributeSet = 'attrSet'; + + $bind = ['attribute_id' => $attributeId, 'attribute_set_id' => $attributeSet]; + + /** @var \Magento\Framework\Model\AbstractModel|\PHPUnit_Framework_MockObject_MockObject $object */ + $object = $this->getMockBuilder('Magento\Framework\Model\AbstractModel') + ->setMethods(['getAttributeId', '__wakeup']) + ->disableOriginalConstructor() + ->getMock(); + $object->expects($this->once())->method('getAttributeId')->will($this->returnValue($attributeId)); + + $this->resource->expects($this->once())->method('getConnection')->with($this->equalTo('read')) + ->will($this->returnValue($this->adapter)); + $this->resource->expects($this->at(1))->method('getTableName') + ->with($this->equalTo('catalog_product_super_attribute')) + ->will($this->returnValue($attrTable)); + $this->resource->expects($this->at(2))->method('getTableName') + ->with($this->equalTo('catalog_product_entity')) + ->will($this->returnValue($productTable)); + + $this->adapter->expects($this->once())->method('select') + ->will($this->returnValue($this->select)); + $this->adapter->expects($this->once())->method('fetchOne') + ->with($this->equalTo($this->select), $this->equalTo($bind)) + ->will($this->returnValue($exception)); + + $this->select->expects($this->once())->method('reset') + ->will($this->returnValue($this->select)); + $this->select->expects($this->once())->method('from') + ->with( + $this->equalTo(['main_table' => $attrTable]), + $this->equalTo(['psa_count' => 'COUNT(product_super_attribute_id)']) + ) + ->will($this->returnValue($this->select)); + $this->select->expects($this->once())->method('join') + ->with( + $this->equalTo(['entity' => $productTable]), + $this->equalTo('main_table.product_id = entity.entity_id') + ) + ->will($this->returnValue($this->select)); + $this->select->expects($this->any())->method('where') + ->will($this->returnValue($this->select)); + $this->select->expects($this->once())->method('group') + ->with($this->equalTo('main_table.attribute_id')) + ->will($this->returnValue($this->select)); + $this->select->expects($this->once())->method('limit') + ->with($this->equalTo(1)) + ->will($this->returnValue($this->select)); + + $this->model->validate($object, $attributeSet); + } +} diff --git a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Model/Entity/Product/Attribute/Group/AttributeMapper/PluginTest.php b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Model/Entity/Product/Attribute/Group/AttributeMapper/PluginTest.php new file mode 100644 index 0000000000000000000000000000000000000000..ed5d9fd5a955c897fafce7bd1bd8a728ca9fd045 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Model/Entity/Product/Attribute/Group/AttributeMapper/PluginTest.php @@ -0,0 +1,130 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\ConfigurableProduct\Model\Entity\Product\Attribute\Group\AttributeMapper; + +use Magento\Eav\Model\Entity\Attribute; +use Magento\TestFramework\Helper\ObjectManager; + +class PluginTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\ConfigurableProduct\Model\Entity\Product\Attribute\Group\AttributeMapper\Plugin + */ + private $model; + + /** + * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject + */ + private $registry; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + private $attributeFactory; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + private $attribute; + + /** + * @var \Magento\Framework\Object|\PHPUnit_Framework_MockObject_MockObject + */ + private $magentoObject; + + protected function setUp() + { + $helper = new ObjectManager($this); + + $this->registry = $this->getMockBuilder('Magento\Framework\Registry') + ->setMethods(['registry']) + ->disableOriginalConstructor() + ->getMock(); + + $this->attributeFactory = $this->getMockBuilder( + 'Magento\ConfigurableProduct\Model\Resource\Product\Type\Configurable\AttributeFactory' + ) + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + + $this->attribute = $this->getMockBuilder( + 'Magento\ConfigurableProduct\Model\Resource\Product\Type\Configurable\Attribute' + ) + ->setMethods(['getUsedAttributes', 'getAttributeId', '__wakeup']) + ->disableOriginalConstructor() + ->getMock(); + + $this->magentoObject = $this->getMockBuilder('Magento\Framework\Object') + ->setMethods(['getId']) + ->disableOriginalConstructor() + ->getMock(); + + $this->model = $helper->getObject( + 'Magento\ConfigurableProduct\Model\Entity\Product\Attribute\Group\AttributeMapper\Plugin', + ['registry' => $this->registry, 'attributeFactory' => $this->attributeFactory] + ); + } + + public function testAroundMap() + { + $attrSetId = 333; + $expected = ['is_configurable' => 1]; + + /** @var \PHPUnit_Framework_MockObject_MockObject $attributeMapper */ + $attributeMapper = $this->getMockBuilder( + 'Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface' + ) + ->disableOriginalConstructor() + ->getMock(); + + /** @var \Magento\Eav\Model\Entity\Attribute|\PHPUnit_Framework_MockObject_MockObject $attribute */ + $attribute = $this->getMockBuilder('Magento\Eav\Model\Entity\Attribute') + ->disableOriginalConstructor() + ->getMock(); + + $proceed = function (Attribute $attribute) { + return []; + }; + + $this->attributeFactory->expects($this->once())->method('create') + ->will($this->returnValue($this->attribute)); + + $this->attribute->expects($this->once())->method('getUsedAttributes') + ->with($this->equalTo($attrSetId)) + ->will($this->returnValue([$attrSetId])); + + $attribute->expects($this->once())->method('getAttributeId') + ->will($this->returnValue($attrSetId)); + + $this->registry->expects($this->once())->method('registry') + ->with($this->equalTo('current_attribute_set')) + ->will($this->returnValue($this->magentoObject)); + + $this->magentoObject->expects($this->once())->method('getId')->will($this->returnValue($attrSetId)); + + $result = $this->model->aroundMap($attributeMapper, $proceed, $attribute); + $this->assertEquals($expected, $result); + } +} diff --git a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Data/OptionConverterTest.php b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Data/OptionConverterTest.php index 4595b470f1518f48f6d9bee6f97243dfffb399a7..d2cca1b00f302ebc9cfb02367dc105528bec43e4 100644 --- a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Data/OptionConverterTest.php +++ b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Data/OptionConverterTest.php @@ -83,7 +83,7 @@ class OptionConverterTest extends \PHPUnit_Framework_TestCase ->getMock(); $this->option = $this->getMockBuilder('Magento\ConfigurableProduct\Service\V1\Data\Option') - ->setMethods(['__toArray', 'getValues']) + ->setMethods(['__toArray', 'getValues', 'getAttributeId', 'getPosition', 'isUseDefault', 'getLabel']) ->disableOriginalConstructor() ->getMock(); @@ -158,6 +158,36 @@ class OptionConverterTest extends \PHPUnit_Framework_TestCase $this->assertEquals(true, $value->isPercent()); } + public function testConvertArrayFromData() + { + $values = [$this->value]; + $expected = [ + 'attribute_id' => 3, + 'position' => 333, + 'use_default' => true, + 'label' => 'someLabel', + 'values' => $values + ]; + + $this->option->expects($this->any())->method('getValues')->will($this->returnValue($values)); + $this->option->expects($this->once())->method('getAttributeId') + ->will($this->returnValue($expected['attribute_id'])); + $this->option->expects($this->once())->method('getPosition') + ->will($this->returnValue($expected['position'])); + $this->option->expects($this->once())->method('isUseDefault') + ->will($this->returnValue($expected['use_default'])); + $this->option->expects($this->once())->method('getLabel') + ->will($this->returnValue($expected['label'])); + + $this->valueConverter->expects($this->once())->method('convertArrayFromData') + ->with($this->equalTo($values[0])) + ->will($this->returnValue($values[0])); + + $result = $this->converter->convertArrayFromData($this->option); + + $this->assertEquals($expected, $result); + } + public function testGetModelFromData() { $data = ['data']; diff --git a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Link/WriteServiceTest.php b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Link/WriteServiceTest.php index e2c582fbba3ed5b077fb5583bc1b0a9b16b973cd..aac4ec37fb3c0d9fa2123642984c683154890ea8 100644 --- a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Link/WriteServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Link/WriteServiceTest.php @@ -186,4 +186,41 @@ class WriteServiceTest extends \PHPUnit_Framework_TestCase $this->assertTrue(true, $this->service->addChild($productSku, $childSku)); } + + /** + * @expectedException \Magento\Framework\Exception\StateException + * @expectedExceptionMessage Product has been already attached + */ + public function testAddChildStateException() + { + $productSku = 'configurable-sku'; + $childSku = 'simple-sku'; + + $configurable = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() + ->getMock(); + + $configurable->expects($this->any())->method('getId')->will($this->returnValue(666)); + + $simplee = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() + ->getMock(); + + $simplee->expects($this->any())->method('getId')->will($this->returnValue(1)); + + $this->productRepository->expects($this->at(0))->method('get')->with($productSku)->will( + $this->returnValue($configurable) + ); + + $this->productRepository->expects($this->at(1))->method('get')->with($childSku)->will( + $this->returnValue($simplee) + ); + + $this->configurableType->expects($this->once())->method('getChildrenIds')->with(666) + ->will( + $this->returnValue([0 => [1, 2, 3]]) + ); + + $this->assertTrue(true, $this->service->addChild($productSku, $childSku)); + } } diff --git a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteServiceTest.php b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteServiceTest.php index 4d73a7f403871d465484e8b7f9cf97853afbcedf..acc5b6256d4e3b9e606d968f7fdad3ca286d6527 100644 --- a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteServiceTest.php @@ -25,16 +25,15 @@ namespace Magento\ConfigurableProduct\Service\V1\Product\Option; use Magento\Catalog\Model\Product\Type as ProductType; use Magento\Catalog\Model\ProductRepository; -use Magento\ConfigurableProduct\Model\Product\Type\Configurable as ConfigurableType; use Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute; use Magento\ConfigurableProduct\Model\Product\Type\Configurable\AttributeFactory as ConfigurableAttributeFactory; +use Magento\ConfigurableProduct\Model\Product\Type\Configurable as ConfigurableType; use Magento\ConfigurableProduct\Model\Resource\Product\Type\Configurable\Attribute\Collection; use Magento\ConfigurableProduct\Service\V1\Data\Option; use Magento\TestFramework\Helper\ObjectManager; /** * Class WriteServiceTest - * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class WriteServiceTest extends \PHPUnit_Framework_TestCase @@ -216,6 +215,144 @@ class WriteServiceTest extends \PHPUnit_Framework_TestCase $this->writeService->add($productSku, $option); } + /** + * @expectedException \Magento\Framework\Exception\CouldNotSaveException + */ + public function testAddLoadNewOptionCouldNotSaveException() + { + $productSku = 'test_sku'; + $option = $this->getOption(); + + $productMock = $this->getMock( + 'Magento\Catalog\Model\Product', + ['save', 'setConfigurableAttributesData', 'setStoreId', 'getTypeId', 'setTypeId', '__sleep', '__wakeup'], + [], + '', + false + ); + $productMock->expects($this->any()) + ->method('getTypeId') + ->will($this->returnValue(ProductType::TYPE_SIMPLE)); + $this->productRepositoryMock->expects($this->any()) + ->method('get') + ->will($this->returnValue($productMock)); + + $confAttributeMock = $this->getMock( + 'Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute', + [], + [], + '', + false + ); + $this->confAttributeFactoryMock->expects($this->any()) + ->method('create') + ->will($this->returnValue($confAttributeMock)); + + $confAttributeMock->expects($this->exactly(2))->method('loadByProductAndAttribute'); + $confAttributeMock->expects($this->at(1))->method('getId')->will($this->returnValue(null)); + $confAttributeMock->expects($this->at(2))->method('getId')->will($this->returnValue(1)); + $confAttributeMock->expects($this->at(3))->method('getId')->will($this->returnValue(null)); + + $productMock->expects($this->once())->method('setTypeId')->with(ConfigurableType::TYPE_CODE); + $productMock->expects($this->once())->method('setConfigurableAttributesData'); + $productMock->expects($this->once())->method('setStoreId')->with(0); + $productMock->expects($this->once())->method('save'); + + $this->optionConverterMock->expects($this->once())->method('convertArrayFromData')->with($option); + + $this->writeService->add($productSku, $option); + } + + /** + * @expectedException \Magento\Framework\Exception\CouldNotSaveException + */ + public function testAddHasOptionCouldNotSaveException() + { + $productSku = 'test_sku'; + $option = $this->getOption(); + + $productMock = $this->getMock( + 'Magento\Catalog\Model\Product', + ['save', 'setConfigurableAttributesData', 'setStoreId', 'getTypeId', 'setTypeId', '__sleep', '__wakeup'], + [], + '', + false + ); + $productMock->expects($this->any()) + ->method('getTypeId') + ->will($this->returnValue(ProductType::TYPE_SIMPLE)); + $this->productRepositoryMock->expects($this->any()) + ->method('get') + ->will($this->returnValue($productMock)); + + $confAttributeMock = $this->getMock( + 'Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute', + [], + [], + '', + false + ); + $this->confAttributeFactoryMock->expects($this->any()) + ->method('create') + ->will($this->returnValue($confAttributeMock)); + + $confAttributeMock->expects($this->once())->method('loadByProductAndAttribute'); + $confAttributeMock->expects($this->once())->method('getId')->will($this->returnValue(1)); + + $this->writeService->add($productSku, $option); + } + + /** + * @expectedException \Magento\Framework\Exception\CouldNotSaveException + */ + public function testAddSAveExceptionCouldNotSaveException() + { + $productSku = 'test_sku'; + $option = $this->getOption(); + + $productMock = $this->getMock( + 'Magento\Catalog\Model\Product', + ['save', 'setConfigurableAttributesData', 'setStoreId', 'getTypeId', 'setTypeId', '__sleep', '__wakeup'], + [], + '', + false + ); + $productMock->expects($this->any()) + ->method('getTypeId') + ->will($this->returnValue(ProductType::TYPE_SIMPLE)); + $this->productRepositoryMock->expects($this->any()) + ->method('get') + ->will($this->returnValue($productMock)); + + $confAttributeMock = $this->getMock( + 'Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute', + [], + [], + '', + false + ); + $this->confAttributeFactoryMock->expects($this->any()) + ->method('create') + ->will($this->returnValue($confAttributeMock)); + + $confAttributeMock->expects($this->once())->method('loadByProductAndAttribute'); + $confAttributeMock->expects($this->once())->method('getId')->will($this->returnValue(null)); + + $productMock->expects($this->once())->method('setTypeId')->with(ConfigurableType::TYPE_CODE); + $productMock->expects($this->once())->method('setConfigurableAttributesData'); + $productMock->expects($this->once())->method('setStoreId')->with(0); + $productMock->expects($this->once())->method('save') + ->will( + $this->returnCallback( + function () { + throw new \Exception(); + } + ) + ); + + $this->writeService->add($productSku, $option); + } + /** * Invalid product type check * diff --git a/dev/tests/unit/testsuite/Magento/Core/Controller/Request/HttpTest.php b/dev/tests/unit/testsuite/Magento/Core/Controller/Request/HttpTest.php deleted file mode 100644 index 51f691cc3fd039fa134345eabc10fdfb4877c045..0000000000000000000000000000000000000000 --- a/dev/tests/unit/testsuite/Magento/Core/Controller/Request/HttpTest.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php -/** - * Magento - * - * NOTICE OF LICENSE - * - * This source file is subject to the Open Software License (OSL 3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://opensource.org/licenses/osl-3.0.php - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) - */ -namespace Magento\Core\Controller\Request; - -class HttpTest extends \PHPUnit_Framework_TestCase -{ - /** @var \Magento\Framework\App\RequestInterface */ - protected $_model; - - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $_routerListMock; - - protected function setUp() - { - $this->_routerListMock = $this->getMock('\Magento\Framework\App\Route\ConfigInterface'); - $infoProcessorMock = $this->getMock('Magento\Framework\App\Request\PathInfoProcessorInterface'); - $infoProcessorMock->expects($this->any())->method('process')->will($this->returnArgument(1)); - $this->_model = new \Magento\Framework\App\Request\Http($this->_routerListMock, $infoProcessorMock); - } - - /** - * @param $serverVariables array - * @param $expectedResult string - * @dataProvider serverVariablesProvider - */ - public function testGetDistroBaseUrl($serverVariables, $expectedResult) - { - $originalServerValue = $_SERVER; - $_SERVER = $serverVariables; - - $this->assertEquals($expectedResult, $this->_model->getDistroBaseUrl()); - - $_SERVER = $originalServerValue; - } - - public function serverVariablesProvider() - { - $returnValue = array(); - $defaultServerData = array( - 'SCRIPT_NAME' => 'index.php', - 'HTTP_HOST' => 'sample.host.com', - 'SERVER_PORT' => '80', - 'HTTPS' => '1' - ); - - $secureUnusualPort = $noHttpsData = $httpsOffData = $noHostData = $noScriptNameData = $defaultServerData; - - unset($noScriptNameData['SCRIPT_NAME']); - $returnValue['no SCRIPT_NAME'] = array($noScriptNameData, 'http://localhost/'); - - unset($noHostData['HTTP_HOST']); - $returnValue['no HTTP_HOST'] = array($noHostData, 'http://localhost/'); - - $httpsOffData['HTTPS'] = 'off'; - $returnValue['HTTPS off'] = array($httpsOffData, 'http://sample.host.com/'); - - unset($noHttpsData['HTTPS']); - $returnValue['no HTTPS'] = array($noHttpsData, 'http://sample.host.com/'); - - $noHttpsNoServerPort = $noHttpsData; - unset($noHttpsNoServerPort['SERVER_PORT']); - $returnValue['no SERVER_PORT'] = array($noHttpsNoServerPort, 'http://sample.host.com/'); - - $noHttpsButSecurePort = $noHttpsData; - $noHttpsButSecurePort['SERVER_PORT'] = 443; - $returnValue['no HTTP but secure port'] = array($noHttpsButSecurePort, 'https://sample.host.com/'); - - $notSecurePort = $noHttpsData; - $notSecurePort['SERVER_PORT'] = 81; - $notSecurePort['HTTP_HOST'] = 'sample.host.com:81'; - $returnValue['not secure not standard port'] = array($notSecurePort, 'http://sample.host.com:81/'); - - $secureUnusualPort['SERVER_PORT'] = 441; - $secureUnusualPort['HTTP_HOST'] = 'sample.host.com:441'; - $returnValue['not standard secure port'] = array($secureUnusualPort, 'https://sample.host.com:441/'); - - $customUrlPathData = $noHttpsData; - $customUrlPathData['SCRIPT_FILENAME'] = '/some/dir/custom.php'; - $returnValue['custom path'] = array($customUrlPathData, 'http://sample.host.com/'); - - return $returnValue; - } -} diff --git a/dev/tests/unit/testsuite/Magento/Core/Controller/Response/HttpTest.php b/dev/tests/unit/testsuite/Magento/Core/Controller/Response/HttpTest.php deleted file mode 100644 index 3580c111ecc69929ee83c89317067d284cbc96d8..0000000000000000000000000000000000000000 --- a/dev/tests/unit/testsuite/Magento/Core/Controller/Response/HttpTest.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php -/** - * Magento - * - * NOTICE OF LICENSE - * - * This source file is subject to the Open Software License (OSL 3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://opensource.org/licenses/osl-3.0.php - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) - */ - -/** - * Test class for \Magento\Framework\App\ResponseInterface - */ -namespace Magento\Core\Controller\Response; - -class HttpTest extends \PHPUnit_Framework_TestCase -{ - /** - * Test for getHeader method - * - * @dataProvider headersDataProvider - * @covers \Magento\Framework\App\Response\Http::getHeader - * @param string $header - */ - public function testGetHeaderExists($header) - { - $cookieMock = $this->getMock('\Magento\Framework\Stdlib\Cookie', array(), array(), '', false); - $contextMock = $this->getMock('Magento\Framework\App\Http\Context', array(), array(), '', false); - $response = new \Magento\Framework\App\Response\Http($cookieMock, $contextMock); - $response->headersSentThrowsException = false; - $response->setHeader($header['name'], $header['value'], $header['replace']); - $this->assertEquals($header, $response->getHeader($header['name'])); - } - - /** - * Data provider for testGetHeader - * - * @return array - */ - public function headersDataProvider() - { - return array( - array(array('name' => 'X-Frame-Options', 'value' => 'SAMEORIGIN', 'replace' => true)), - array(array('name' => 'Test2', 'value' => 'Test2', 'replace' => false)) - ); - } - - /** - * Test for getHeader method. Validation for attempt to get not existing header - * - * @covers \Magento\Framework\App\Response\Http::getHeader - */ - public function testGetHeaderNotExists() - { - $cookieMock = $this->getMock('\Magento\Framework\Stdlib\Cookie', array(), array(), '', false); - $contextMock = $this->getMock('Magento\Framework\App\Http\Context', array(), array(), '', false); - $response = new \Magento\Framework\App\Response\Http($cookieMock, $contextMock); - $response->headersSentThrowsException = false; - $response->setHeader('Name', 'value', true); - $this->assertFalse($response->getHeader('Wrong name')); - } -} diff --git a/dev/tests/unit/testsuite/Magento/Customer/Controller/Account/CreateTest.php b/dev/tests/unit/testsuite/Magento/Customer/Controller/Account/CreateTest.php index da09c3e82d2c0f16bd9285764e2d08d5dfa482b9..9be647b7443c3da3715a4811908572ddbc362437 100644 --- a/dev/tests/unit/testsuite/Magento/Customer/Controller/Account/CreateTest.php +++ b/dev/tests/unit/testsuite/Magento/Customer/Controller/Account/CreateTest.php @@ -65,8 +65,8 @@ class CreateTest extends \PHPUnit_Framework_TestCase $this->response = $this->getMock('Magento\Framework\App\ResponseInterface'); $this->request = $this->getMock( 'Magento\Framework\App\RequestInterface', - array('isPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam'), - array(), + ['isPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam', 'getCookie'], + [], '', false ); @@ -98,7 +98,7 @@ class CreateTest extends \PHPUnit_Framework_TestCase $this->redirectMock->expects($this->once()) ->method('redirect') - ->with($this->response, '*/*', array()) + ->with($this->response, '*/*', []) ->will($this->returnValue(false)); $this->viewMock->expects($this->never()) @@ -129,8 +129,8 @@ class CreateTest extends \PHPUnit_Framework_TestCase $layoutMock = $this->getMock( 'Magento\Framework\View\Layout', - array(), - array(), + [], + [], '', false ); diff --git a/dev/tests/unit/testsuite/Magento/Customer/Controller/Account/LoginPostTest.php b/dev/tests/unit/testsuite/Magento/Customer/Controller/Account/LoginPostTest.php index d0d24fe76c1259ef38094ca2466389e39d9e30bc..0df060f96a4130565349022e6de90ed80e06fac1 100644 --- a/dev/tests/unit/testsuite/Magento/Customer/Controller/Account/LoginPostTest.php +++ b/dev/tests/unit/testsuite/Magento/Customer/Controller/Account/LoginPostTest.php @@ -111,22 +111,22 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase { $this->request = $this->getMock( 'Magento\Framework\App\RequestInterface', - array('isPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam'), - array(), + ['isPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam', 'getCookie'], + [], '', false ); $this->response = $this->getMock( 'Magento\Framework\App\ResponseInterface', array('setRedirect', 'sendResponse'), - array(), + [], '', false ); $this->customerSession = $this->getMock( '\Magento\Customer\Model\Session', array('isLoggedIn', 'getLastCustomerId', 'getBeforeAuthUrl', 'setBeforeAuthUrl'), - array(), + [], '', false ); @@ -134,28 +134,28 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase $this->objectManager = $this->getMock( '\Magento\Framework\ObjectManager\ObjectManager', array('get'), - array(), + [], '', false ); $this->_formKeyValidator = $this->getMock( 'Magento\Core\App\Action\FormKeyValidator', - array(), - array(), + [], + [], '', false ); $this->customerHelperMock = $this->getMock( 'Magento\Customer\Helper\Data', - array(), - array(), + [], + [], '', false ); $this->formFactoryMock = $this->getMock( 'Magento\Customer\Model\Metadata\FormFactory', - array(), - array(), + [], + [], '', false ); @@ -214,7 +214,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase ), array( 'Magento\Core\Helper\Data', - $this->getMock('Magento\Core\Helper\Data', array(), array(), '', false) + $this->getMock('Magento\Core\Helper\Data', [], [], '', false) ) ) ) diff --git a/dev/tests/unit/testsuite/Magento/Customer/Controller/Adminhtml/Index/NewsletterTest.php b/dev/tests/unit/testsuite/Magento/Customer/Controller/Adminhtml/Index/NewsletterTest.php index ab555037798c72d7e072627db1d427568551820d..c1195b265f0dc2e7c19ad3af497435cf2454465c 100644 --- a/dev/tests/unit/testsuite/Magento/Customer/Controller/Adminhtml/Index/NewsletterTest.php +++ b/dev/tests/unit/testsuite/Magento/Customer/Controller/Adminhtml/Index/NewsletterTest.php @@ -92,11 +92,10 @@ class NewsletterTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); - $this->_response = $this->getMockBuilder( - 'Magento\Framework\App\Response\Http' - )->disableOriginalConstructor()->setMethods( - array('setRedirect', 'getHeader') - )->getMock(); + $this->_response = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods(['setRedirect', 'getHeader', '__wakeup']) + ->getMock(); $this->_response->expects( $this->any() diff --git a/dev/tests/unit/testsuite/Magento/Customer/Controller/Adminhtml/Index/ResetPasswordTest.php b/dev/tests/unit/testsuite/Magento/Customer/Controller/Adminhtml/Index/ResetPasswordTest.php index d2cbbce45a4ada3a96b5b6b37b2e22c42778dfb2..e8cb97c5574b287aedd34f9becd0d573c3f76d28 100644 --- a/dev/tests/unit/testsuite/Magento/Customer/Controller/Adminhtml/Index/ResetPasswordTest.php +++ b/dev/tests/unit/testsuite/Magento/Customer/Controller/Adminhtml/Index/ResetPasswordTest.php @@ -99,7 +99,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase $this->_response = $this->getMockBuilder( 'Magento\Framework\App\Response\Http' )->disableOriginalConstructor()->setMethods( - array('setRedirect', 'getHeader') + ['setRedirect', 'getHeader', '__wakeup'] )->getMock(); $this->_response->expects( diff --git a/dev/tests/unit/testsuite/Magento/Customer/Helper/DataTest.php b/dev/tests/unit/testsuite/Magento/Customer/Helper/DataTest.php index 742aeea189201ffba56a1779c078ae45a8b7cb5d..3974dd8b380bdbcace40c15a23d9a504b0bcc519 100644 --- a/dev/tests/unit/testsuite/Magento/Customer/Helper/DataTest.php +++ b/dev/tests/unit/testsuite/Magento/Customer/Helper/DataTest.php @@ -60,8 +60,8 @@ class DataTest extends \PHPUnit_Framework_TestCase $this->_mockRequest = $this->getMock( 'Magento\Framework\App\RequestInterface', - array('getPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam'), - array(), + ['getPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam', 'getCookie'], + [], '', false ); @@ -178,7 +178,7 @@ class DataTest extends \PHPUnit_Framework_TestCase )->with( self::ENTITY, self::FORM_CODE, - array(), + [], false, \Magento\Customer\Model\Metadata\Form::DONT_IGNORE_INVISIBLE )->will( diff --git a/dev/tests/unit/testsuite/Magento/Customer/Model/Metadata/Form/FileTest.php b/dev/tests/unit/testsuite/Magento/Customer/Model/Metadata/Form/FileTest.php index 96837c0f3a244cb7b534faa144b66a1e9f80bb91..7386b33efe2f9692fa541ae113700dcfc41e7b67 100644 --- a/dev/tests/unit/testsuite/Magento/Customer/Model/Metadata/Form/FileTest.php +++ b/dev/tests/unit/testsuite/Magento/Customer/Model/Metadata/Form/FileTest.php @@ -56,7 +56,7 @@ class FileTest extends AbstractFormTestCase $this->requestMock = $this->getMockBuilder( 'Magento\Framework\App\RequestInterface' )->disableOriginalConstructor()->setMethods( - array('getParam', 'getParams', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName') + ['getParam', 'getParams', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getCookie'] )->getMock(); } @@ -77,7 +77,7 @@ class FileTest extends AbstractFormTestCase )->method( 'getParam' )->will( - $this->returnValue(array('delete' => $delete)) + $this->returnValue(['delete' => $delete]) ); $this->attributeMetadataMock->expects( @@ -100,7 +100,7 @@ class FileTest extends AbstractFormTestCase { return array( 'ajax' => array(false, '', true), - 'no_file' => array(array()), + 'no_file' => array([]), 'delete' => array(array('delete' => true), '', false, true), 'file_delete' => array(array('attributeCodeValue', 'delete' => true), 'attributeCode', false, true), 'file_!delete' => array(array('attributeCodeValue'), 'attributeCode', false, false) @@ -155,7 +155,7 @@ class FileTest extends AbstractFormTestCase public function extractValueWithRequestScopeDataProvider() { return array( - 'requestScope' => array(array(), 'requestScope'), + 'requestScope' => array([], 'requestScope'), 'mainScope' => array( array('fileKey' => 'attributeValue'), 'mainScope', @@ -200,7 +200,7 @@ class FileTest extends AbstractFormTestCase public function validateValueNotToUploadDataProvider() { return array( - 'emptyValue' => array(true, array(), true), + 'emptyValue' => array(true, [], true), 'someValue' => array(true, array('some value')), 'delete_someValue' => array(true, array('delete' => true, 'some value'), false, false), 'null' => array(array('"attributeLabel" is a required value.'), null) @@ -213,7 +213,7 @@ class FileTest extends AbstractFormTestCase * @param array $parameters * @dataProvider validateValueToUploadDataProvider */ - public function testValidateValueToUpload($expected, $value, $parameters = array()) + public function testValidateValueToUpload($expected, $value, $parameters = []) { $parameters = array_merge(array('uploaded' => true, 'valid' => true), $parameters); $fileForm = $this->getClass($value, false); @@ -281,7 +281,7 @@ class FileTest extends AbstractFormTestCase public function compactValueDataProvider() { - return array('notDelete' => array('value', array()), 'delete' => array('', array('delete' => true))); + return array('notDelete' => array('value', []), 'delete' => array('', array('delete' => true))); } public function testRestoreValue() diff --git a/dev/tests/unit/testsuite/Magento/DesignEditor/Controller/Varien/Router/StandardTest.php b/dev/tests/unit/testsuite/Magento/DesignEditor/Controller/Varien/Router/StandardTest.php index 9a475293705d0e8698fbe26aaa582099007cc1a7..15e977101d837e473bfb373974797bb61d2c41b7 100644 --- a/dev/tests/unit/testsuite/Magento/DesignEditor/Controller/Varien/Router/StandardTest.php +++ b/dev/tests/unit/testsuite/Magento/DesignEditor/Controller/Varien/Router/StandardTest.php @@ -52,6 +52,17 @@ class StandardTest extends \PHPUnit_Framework_TestCase */ protected $_model; + /** + * @var \Magento\Framework\Stdlib\CookieManager + */ + protected $_cookieManagerMock; + + + public function setUp() + { + $this->_cookieManagerMock = $this->getMock('\Magento\Framework\Stdlib\CookieManager'); + } + /** * @param \Magento\Framework\App\RequestInterface $request * @param bool $isVde @@ -83,6 +94,7 @@ class StandardTest extends \PHPUnit_Framework_TestCase */ public function matchDataProvider() { + $this->_cookieManagerMock = $this->getMock('\Magento\Framework\Stdlib\CookieManager'); $uri = self::TEST_HOST . '/' . self::VDE_FRONT_NAME . self::TEST_PATH; $notVdeUrl = self::TEST_HOST . self::TEST_PATH; @@ -97,7 +109,7 @@ class StandardTest extends \PHPUnit_Framework_TestCase $matchedRequest = $this->getMock( 'Magento\Framework\App\Request\Http', array('_isFrontArea'), - array($routerListMock, $infoProcessorMock, $uri) + array($routerListMock, $infoProcessorMock, $this->_cookieManagerMock, $uri) ); $matchedController = $this->getMockForAbstractClass( @@ -132,14 +144,11 @@ class StandardTest extends \PHPUnit_Framework_TestCase array('matched' => $matchedRouter, 'not_matched' => $notMatchedRouter) ); - $infoProcessorMock = $this->getMock('Magento\Framework\App\Request\PathInfoProcessorInterface'); - $infoProcessorMock->expects($this->any())->method('process')->will($this->returnArgument(1)); - $routers = array( 'not vde request' => array( '$request' => $this->getMock( 'Magento\Framework\App\Request\Http', array('_isFrontArea'), array( - $routerListMock, $infoProcessorMock, $notVdeUrl + $routerListMock, $infoProcessorMock, $this->_cookieManagerMock, $notVdeUrl ) ), '$isVde' => false, @@ -149,7 +158,7 @@ class StandardTest extends \PHPUnit_Framework_TestCase '$request' => $this->getMock( 'Magento\Framework\App\Request\Http', array('_isFrontArea'), - array($routerListMock, $infoProcessorMock, $uri) + array($routerListMock, $infoProcessorMock, $this->_cookieManagerMock, $uri) ), '$isVde' => true, '$isLoggedIn' => false, @@ -158,7 +167,7 @@ class StandardTest extends \PHPUnit_Framework_TestCase '$request' => $this->getMock( 'Magento\Framework\App\Request\Http', array('_isFrontArea'), - array($routerListMock, $infoProcessorMock, $uri) + array($routerListMock, $infoProcessorMock, $this->_cookieManagerMock, $uri) ), '$isVde' => true, '$isLoggedIn' => true, diff --git a/dev/tests/unit/testsuite/Magento/Downloadable/Service/V1/Data/FileContentValidatorTest.php b/dev/tests/unit/testsuite/Magento/Downloadable/Service/V1/Data/FileContentValidatorTest.php index 9ca32b1c4b1519ccc2e31343478ab019476d2537..fc8885d3bc14b79c7bf445f4cd81d0a3128de3b3 100644 --- a/dev/tests/unit/testsuite/Magento/Downloadable/Service/V1/Data/FileContentValidatorTest.php +++ b/dev/tests/unit/testsuite/Magento/Downloadable/Service/V1/Data/FileContentValidatorTest.php @@ -1,6 +1,5 @@ <?php /** - * * Magento * * NOTICE OF LICENSE @@ -50,28 +49,29 @@ class FileContentValidatorTest extends \PHPUnit_Framework_TestCase public function testIsValid() { - $this->fileContentMock->expects($this->any())->method('getData')->will($this->returnValue( - base64_encode('test content') - )); - $this->fileContentMock->expects($this->any())->method('getName')->will($this->returnValue( - 'valid_name' - )); + $this->fileContentMock->expects($this->any())->method('getData') + ->will($this->returnValue(base64_encode('test content'))); + $this->fileContentMock->expects($this->any())->method('getName') + ->will($this->returnValue('valid_name')); $this->assertTrue($this->validator->isValid($this->fileContentMock)); } + public function testValidateLinkResourceInputExceptionUrl() + { + + } + /** * @expectedException \Magento\Framework\Exception\InputException * @expectedExceptionMessage Provided content must be valid base64 encoded data. */ public function testIsValidThrowsExceptionIfProvidedContentIsNotBase64Encoded() { - $this->fileContentMock->expects($this->any())->method('getData')->will($this->returnValue( - 'not_a_base64_encoded_content' - )); - $this->fileContentMock->expects($this->any())->method('getName')->will($this->returnValue( - 'valid_name' - )); + $this->fileContentMock->expects($this->any())->method('getData') + ->will($this->returnValue('not_a_base64_encoded_content')); + $this->fileContentMock->expects($this->any())->method('getName') + ->will($this->returnValue('valid_name')); $this->assertTrue($this->validator->isValid($this->fileContentMock)); } @@ -83,12 +83,10 @@ class FileContentValidatorTest extends \PHPUnit_Framework_TestCase */ public function testIsValidThrowsExceptionIfProvidedImageNameContainsForbiddenCharacters($fileName) { - $this->fileContentMock->expects($this->any())->method('getData')->will($this->returnValue( - base64_encode('test content') - )); - $this->fileContentMock->expects($this->any())->method('getName')->will($this->returnValue( - $fileName - )); + $this->fileContentMock->expects($this->any())->method('getData') + ->will($this->returnValue(base64_encode('test content'))); + $this->fileContentMock->expects($this->any())->method('getName') + ->will($this->returnValue($fileName)); $this->assertTrue($this->validator->isValid($this->fileContentMock)); } diff --git a/dev/tests/unit/testsuite/Magento/Eav/Model/Resource/Attribute/CollectionTest.php b/dev/tests/unit/testsuite/Magento/Eav/Model/Resource/Attribute/CollectionTest.php index 056c44d6fc5279322ae8bba72bd9fcbb52ecd427..8e005ca910a41632edf348345e1eb88168873414 100644 --- a/dev/tests/unit/testsuite/Magento/Eav/Model/Resource/Attribute/CollectionTest.php +++ b/dev/tests/unit/testsuite/Magento/Eav/Model/Resource/Attribute/CollectionTest.php @@ -205,7 +205,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase return array( 'main_table_expression' => array( 'col2', '1', - 'SELECT COUNT(*) FROM "some_main_table" AS "main_table"' . "\n" + 'SELECT COUNT(DISTINCT main_table.attribute_id) FROM "some_main_table" AS "main_table"' . "\n" . ' INNER JOIN "some_extra_table" AS "additional_table"' . ' ON additional_table.attribute_id = main_table.attribute_id' . "\n" . ' LEFT JOIN "some_extra_table" AS "scope_table"' @@ -216,7 +216,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase ), 'additional_table_expression' => array( 'col3', '2', - 'SELECT COUNT(*) FROM "some_main_table" AS "main_table"' . "\n" + 'SELECT COUNT(DISTINCT main_table.attribute_id) FROM "some_main_table" AS "main_table"' . "\n" . ' INNER JOIN "some_extra_table" AS "additional_table"' . ' ON additional_table.attribute_id = main_table.attribute_id'. "\n" . ' LEFT JOIN "some_extra_table" AS "scope_table"' diff --git a/dev/tests/unit/testsuite/Magento/Framework/App/Action/ActionTest.php b/dev/tests/unit/testsuite/Magento/Framework/App/Action/ActionTest.php index 6f753fe9727b77dddf45e45c8cc6db2557422c93..6e174fdf614292e70fad7c9547dea5aa8e28cf79 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/App/Action/ActionTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/App/Action/ActionTest.php @@ -105,7 +105,8 @@ class ActionTest extends \PHPUnit_Framework_TestCase 'setModuleName', 'getActionName', 'setActionName', - 'getParam' + 'getParam', + 'getCookie' ], [], '', diff --git a/dev/tests/unit/testsuite/Magento/Framework/App/Action/ForwardTest.php b/dev/tests/unit/testsuite/Magento/Framework/App/Action/ForwardTest.php index 095270a23827a5f317eff3bee0e920043ac12992..419f930f809d80ff29b47ed6013ef18fd3204eda 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/App/Action/ForwardTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/App/Action/ForwardTest.php @@ -23,35 +23,65 @@ */ namespace Magento\Framework\App\Action; +use Magento\TestFramework\Helper\ObjectManager; + +/** + * Test Forward + * + * getRequest,getResponse of AbstractAction class is also tested + */ class ForwardTest extends \PHPUnit_Framework_TestCase { /** * @var \Magento\Framework\App\Action\Forward */ - protected $_actionAbstract; + protected $actionAbstract; /** - * @var \Magento\Framework\App\RequestInterface + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\RequestInterface */ - protected $_request; + protected $request; /** * @var \Magento\Framework\App\ResponseInterface */ - protected $_response; + protected $response; protected function setUp() { - $this->_request = $this->getMock('Magento\Framework\App\Request\Http', array(), array(), '', false); - $this->_response = $this->getMock('\Magento\Framework\App\Response\Http', array(), array(), '', false); + $objectManager = new ObjectManager($this); + $cookieMetadataFactoryMock = $this->getMockBuilder( + 'Magento\Framework\Stdlib\Cookie\CookieMetadataFactory' + )->disableOriginalConstructor()->getMock(); + $cookieManagerMock = $this->getMockBuilder('Magento\Framework\Stdlib\CookieManager') + ->disableOriginalConstructor()->getMock(); + $contextMock = $this->getMockBuilder('Magento\Framework\App\Http\Context')->disableOriginalConstructor() + ->getMock(); + $this->response = $objectManager->getObject( + 'Magento\Framework\App\Response\Http', + [ + 'cookieManager' => $cookieManagerMock, + 'cookieMetadataFactory' => $cookieMetadataFactoryMock, + 'context' => $contextMock + ] + ); + + $this->request = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor()->getMock(); - $this->_actionAbstract = new \Magento\Framework\App\Action\Forward($this->_request, $this->_response); + $this->actionAbstract = $objectManager->getObject( + 'Magento\Framework\App\Action\Forward', + [ + 'request' => $this->request, + 'response' => $this->response + ] + ); } public function testDispatch() { - $this->_request->expects($this->once())->method('setDispatched')->with(false); - $this->_actionAbstract->dispatch($this->_request); + $this->request->expects($this->once())->method('setDispatched')->with(false); + $this->actionAbstract->dispatch($this->request); } /** @@ -62,7 +92,7 @@ class ForwardTest extends \PHPUnit_Framework_TestCase */ public function testGetRequest() { - $this->assertEquals($this->_request, $this->_actionAbstract->getRequest()); + $this->assertSame($this->request, $this->actionAbstract->getRequest()); } /** @@ -73,7 +103,7 @@ class ForwardTest extends \PHPUnit_Framework_TestCase */ public function testGetResponse() { - $this->assertEquals($this->_response, $this->_actionAbstract->getResponse()); + $this->assertSame($this->response, $this->actionAbstract->getResponse()); } /** @@ -84,15 +114,6 @@ class ForwardTest extends \PHPUnit_Framework_TestCase */ public function testResponseHeaders() { - $infoProcessorMock = $this->getMock('Magento\Framework\App\Request\PathInfoProcessorInterface'); - $routerListMock = $this->getMock('Magento\Framework\App\Route\ConfigInterface'); - $cookieMock = $this->getMock('Magento\Framework\Stdlib\Cookie', array(), array(), '', false); - $contextMock = $this->getMock('Magento\Framework\App\Http\Context', array(), array(), '', false); - $request = new \Magento\Framework\App\Request\Http($routerListMock, $infoProcessorMock); - $response = new \Magento\Framework\App\Response\Http($cookieMock, $contextMock); - $response->headersSentThrowsException = false; - $action = new \Magento\Framework\App\Action\Forward($request, $response); - - $this->assertEquals(array(), $action->getResponse()->getHeaders()); + $this->assertEmpty($this->actionAbstract->getResponse()->getHeaders()); } } diff --git a/dev/tests/unit/testsuite/Magento/Framework/App/HttpTest.php b/dev/tests/unit/testsuite/Magento/Framework/App/HttpTest.php index 106703fdabe1a5035f8c3bd740eabbbb297a8664..96fb6af315d312b4fad88c2d4864ee0c664f2877 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/App/HttpTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/App/HttpTest.php @@ -99,11 +99,10 @@ class HttpTest extends \PHPUnit_Framework_TestCase ->setMethods(['configure', 'get', 'create']) ->getMock(); $objectManagerMock->expects($this->once())->method('configure')->with($areaConfig); - $this->_responseMock = $this->getMockBuilder( - 'Magento\Framework\App\Response\Http' - )->disableOriginalConstructor()->setMethods( - ['setHttpResponseCode', 'setBody'] - )->getMock(); + $this->_responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods(['setHttpResponseCode', 'setBody', '__wakeup']) + ->getMock(); $this->_frontControllerMock = $this->getMockBuilder( 'Magento\Framework\App\FrontControllerInterface' )->disableOriginalConstructor()->setMethods(['dispatch'])->getMock(); diff --git a/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/FormKeyTest.php b/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/FormKeyTest.php index c395ef9a0213056530aeb3707e80b7ca97c0603b..8c194b0e626b78315590dbcce95c5eec424d6568 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/FormKeyTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/FormKeyTest.php @@ -39,27 +39,32 @@ class FormKeyTest extends \PHPUnit_Framework_TestCase /** * Cookie mock * - * @var \Magento\Framework\Stdlib\Cookie|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Stdlib\CookieManager|\PHPUnit_Framework_MockObject_MockObject */ - protected $cookieMock; + protected $cookieManagerMock; /** * Create cookie mock and FormKey instance */ public function setUp() { - $this->cookieMock = $this->getMock('Magento\Framework\Stdlib\Cookie', array('get'), array(), '', false); - $this->formKey = new \Magento\Framework\App\PageCache\FormKey($this->cookieMock); + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->cookieManagerMock = $this->getMockBuilder('Magento\Framework\Stdlib\CookieManager') + ->disableOriginalConstructor()->getMock(); + $this->formKey = $objectManager->getObject( + 'Magento\Framework\App\PageCache\FormKey', + ['cookieManager' => $this->cookieManagerMock] + ); } public function testGet() { //Data - $formKey = 'test from key'; + $formKey = 'test_from_key'; //Verification - $this->cookieMock->expects($this->once()) - ->method('get') + $this->cookieManagerMock->expects($this->once()) + ->method('getCookie') ->with(\Magento\Framework\App\PageCache\FormKey::COOKIE_NAME) ->will($this->returnValue($formKey)); diff --git a/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/KernelTest.php b/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/KernelTest.php index aace18f580077d78a7d383c0cf729b7e60959ebf..8dcbf13d103427d804c463486e1ef9b39a4fe216 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/KernelTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/KernelTest.php @@ -63,7 +63,7 @@ class KernelTest extends \PHPUnit_Framework_TestCase $this->responseMock = $this->getMockBuilder( 'Magento\Framework\App\Response\Http' )->setMethods( - array('getHeader', 'getHttpResponseCode', 'setNoCacheHeaders', 'clearHeader') + ['getHeader', 'getHttpResponseCode', 'setNoCacheHeaders', 'clearHeader', '__wakeup'] )->disableOriginalConstructor()->getMock(); } diff --git a/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/VersionTest.php b/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/VersionTest.php index 0fb9ba1342dda3b27b312ed26780e994266b5a1c..971325cc79f801260a21eaabff7f9684461886b4 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/VersionTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/App/PageCache/VersionTest.php @@ -23,6 +23,8 @@ */ namespace Magento\Framework\App\PageCache; +use Magento\TestFramework\ObjectManager; + class VersionTest extends \PHPUnit_Framework_TestCase { /** @@ -33,11 +35,18 @@ class VersionTest extends \PHPUnit_Framework_TestCase protected $version; /** - * Cookie mock + * Cookie manager mock + * + * @var \Magento\Framework\Stdlib\CookieManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $cookieManagerMock; + + /** + * Cookie manager mock * - * @var \Magento\Framework\Stdlib\Cookie|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory|\PHPUnit_Framework_MockObject_MockObject */ - protected $cookieMock; + protected $cookieMetadataFactoryMock; /** * Request mock @@ -51,9 +60,23 @@ class VersionTest extends \PHPUnit_Framework_TestCase */ public function setUp() { - $this->cookieMock = $this->getMock('Magento\Framework\Stdlib\Cookie', array('set'), array(), '', false); - $this->requestMock = $this->getMock('Magento\Framework\App\Request\Http', array('isPost'), array(), '', false); - $this->version = new Version($this->cookieMock, $this->requestMock); + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->cookieManagerMock = $this->getMockBuilder('Magento\Framework\Stdlib\CookieManager') + ->disableOriginalConstructor()->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor()->getMock(); + $this->cookieMetadataFactoryMock = $this->getMockBuilder( + 'Magento\Framework\Stdlib\Cookie\CookieMetadataFactory' + ) + ->disableOriginalConstructor()->getMock(); + $this->version = $objectManager->getObject( + 'Magento\Framework\App\PageCache\Version', + [ + 'cookieManager' => $this->cookieManagerMock, + 'cookieMetadataFactory' => $this->cookieMetadataFactoryMock, + 'request' => $this->requestMock + ] + ); } /** @@ -70,17 +93,40 @@ class VersionTest extends \PHPUnit_Framework_TestCase { $this->requestMock->expects($this->once())->method('isPost')->will($this->returnValue($isPost)); if ($isPost) { - $this->cookieMock->expects($this->once())->method('set'); + $publicCookieMetadataMock = $this->getMock('Magento\Framework\Stdlib\Cookie\PublicCookieMetadata'); + $publicCookieMetadataMock->expects($this->once()) + ->method('setPath') + ->with('/') + ->will($this->returnSelf()); + + $publicCookieMetadataMock->expects($this->once()) + ->method('setDuration') + ->with(Version::COOKIE_PERIOD) + ->will($this->returnSelf()); + + $this->cookieMetadataFactoryMock->expects($this->once()) + ->method('createPublicCookieMetadata') + ->with() + ->will( + $this->returnValue($publicCookieMetadataMock) + ); + + $this->cookieManagerMock->expects($this->once()) + ->method('setPublicCookie'); } $this->version->process(); } /** * Data provider for testProcess + * * @return array */ public function processProvider() { - return array(array(true), array(false)); + return [ + "post" => [true], + "notPost" => [false] + ]; } } diff --git a/dev/tests/unit/testsuite/Magento/Framework/App/Request/HttpTest.php b/dev/tests/unit/testsuite/Magento/Framework/App/Request/HttpTest.php index a449742e8b38133222053ff7956df22f12d182c7..f2382261466146346cf13951bd1ecb79111c800e 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/App/Request/HttpTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/App/Request/HttpTest.php @@ -43,35 +43,63 @@ class HttpTest extends \PHPUnit_Framework_TestCase */ protected $_infoProcessorMock; + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $_cookieManagerMock; + + /** + * @var \Magento\TestFramework\Helper\ObjectManager + */ + protected $_objectManager; + protected function setUp() { + $this->_objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->_routerListMock = $this->getMock('Magento\Framework\App\Route\ConfigInterface'); $this->_infoProcessorMock = $this->getMock('Magento\Framework\App\Request\PathInfoProcessorInterface'); $this->_infoProcessorMock->expects($this->any())->method('process')->will($this->returnArgument(1)); + $this->_cookieManagerMock = $this->getMock('Magento\Framework\Stdlib\CookieManager'); } public function testGetOriginalPathInfoWithTestUri() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock, 'http://test.com/value'); + $uri = 'http://test.com/value'; + $this->_model = $this->getModel($uri); + $this->assertEquals('/value', $this->_model->getOriginalPathInfo()); } + private function getModel($uri = null) + { + return $this->_objectManager->getObject( + 'Magento\Framework\App\Request\Http', + [ + 'pathInfoProcessor' => $this->_infoProcessorMock, + 'routeConfig' => $this->_routerListMock, + 'cookieManager' => $this->_cookieManagerMock, + 'uri' => $uri + ] + ); + } + public function testGetOriginalPathInfoWithEmptyUri() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock, null); + $this->_model = $this->_model = $this->getModel(); $this->assertEmpty($this->_model->getOriginalPathInfo()); } public function testSetPathInfoWithNullValue() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock, null); + $this->_model = $this->_model = $this->getModel(); $actual = $this->_model->setPathInfo(); $this->assertEquals($this->_model, $actual); } public function testSetPathInfoWithValue() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock, null); + $this->_model = $this->_model = $this->getModel(); $expected = 'testPathInfo'; $this->_model->setPathInfo($expected); $this->assertEquals($expected, $this->_model->getPathInfo()); @@ -79,11 +107,9 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testSetPathInfoWithQueryPart() { - $this->_model = new Request( - $this->_routerListMock, - $this->_infoProcessorMock, - 'http://test.com/node?queryValue' - ); + + $uri = 'http://test.com/node?queryValue'; + $this->_model = $this->_model = $this->getModel($uri); $this->_model->setPathInfo(); $this->assertEquals('/node', $this->_model->getPathInfo()); } @@ -91,7 +117,8 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testRewritePathInfoWithNewValue() { $expected = '/other/path'; - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock, 'http://test.com/one/two'); + $uri = 'http://test.com/one/two'; + $this->_model = $this->_model = $this->getModel($uri); $this->_model->rewritePathInfo($expected); $this->assertEquals($expected, $this->_model->getPathInfo()); } @@ -99,7 +126,9 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testRewritePathInfoWithSameValue() { $expected = '/one/two'; - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock, 'http://test.com' . $expected); + + $uri = 'http://test.com' . $expected; + $this->_model = $this->_model = $this->getModel($uri); $this->_model->rewritePathInfo($expected); $this->assertEquals($expected, $this->_model->getPathInfo()); } @@ -107,14 +136,14 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testGetBasePathWithPath() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_model->setBasePath('http:\/test.com\one/two'); $this->assertEquals('http://test.com/one/two', $this->_model->getBasePath()); } public function testGetBasePathWithoutPath() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_model->setBasePath(); $this->assertEquals('/', $this->_model->getBasePath()); } @@ -122,83 +151,85 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testGetBaseUrlWithUrl() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_model->setBaseUrl('http:\/test.com\one/two'); $this->assertEquals('http://test.com/one/two', $this->_model->getBaseUrl()); } public function testGetBaseUrlWithEmptyUrl() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_model->setBaseUrl(); $this->assertEmpty($this->_model->getBaseUrl()); } public function testSetRouteNameWithRouter() { - $router = $this->getMock('\Magento\Framework\App\Router\AbstractRouter', array(), array(), '', false); + $router = $this->getMock('Magento\Framework\App\Router\AbstractRouter', array(), array(), '', false); $this->_routerListMock->expects($this->any())->method('getRouteFrontName')->will($this->returnValue($router)); - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_model->setRouteName('RouterName'); $this->assertEquals('RouterName', $this->_model->getRouteName()); } public function testSetRouteNameWithNullRouterValue() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_routerListMock->expects($this->once())->method('getRouteFrontName')->will($this->returnValue(null)); $this->_model->setRouteName('RouterName'); } public function testGetFrontName() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock, 'http://test.com/one/two'); + + $uri = 'http://test.com/one/two'; + $this->_model = $this->getModel($uri); $this->assertEquals('one', $this->_model->getFrontName()); } public function testGetAliasWhenAliasExists() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_model->setAlias('AliasName', 'AliasTarget'); $this->assertEquals('AliasTarget', $this->_model->getAlias('AliasName')); } public function testGetAliasWhenAliasesIsNull() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->assertNull($this->_model->getAlias('someValue')); } public function testGetAliasesWhenAliasSet() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_model->setAlias('AliasName', 'AliasTarget'); $this->assertEquals(array('AliasName' => 'AliasTarget'), $this->_model->getAliases()); } public function testGetAliasesWhenAliasAreEmpty() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->assertEmpty($this->_model->getAliases()); } public function testGetRequestedRouteNameWhenRequestedRouteIsSet() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_model->setRoutingInfo(array('requested_route' => 'ExpectedValue')); $this->assertEquals('ExpectedValue', $this->_model->getRequestedRouteName()); } public function testGetRequestedRouteNameWithNullValueRouteName() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_model->setRouteName('RouteName'); $this->assertEquals('RouteName', $this->_model->getRequestedRouteName()); } public function testGetRequestedRouteNameWithRewritePathInfo() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $expected = 'TestValue'; $this->_model->setPathInfo($expected); $this->_model->rewritePathInfo($expected . '/other'); @@ -216,7 +247,7 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testGetRequestedRouteNameWithoutRewritePathInfo() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $expected = 'RouteName'; $this->_model->setRouteName($expected); $this->assertEquals($expected, $this->_model->getRequestedRouteName()); @@ -224,7 +255,7 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testGetRequestedControllerNameWithRequestedController() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $expected = array('requested_controller' => 'ControllerName'); $this->_model->setRoutingInfo($expected); $test = $this->_model->getRequestedControllerName(); @@ -233,7 +264,7 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testGetRequestedControllerNameWithRewritePathInfo() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $path = 'one/two/'; $this->_model->setPathInfo($path); $this->_model->rewritePathInfo($path . '/last'); @@ -242,14 +273,14 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testGetRequestedActionNameWithRoutingInfo() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->_model->setRoutingInfo(array('requested_action' => 'ExpectedValue')); $this->assertEquals('ExpectedValue', $this->_model->getRequestedActionName()); } public function testGetRequestedActionNameWithRewritePathInfo() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $path = 'one/two/three'; $this->_model->setPathInfo($path); $this->_model->rewritePathInfo($path . '/last'); @@ -258,19 +289,19 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testIsStraightWithTrueValue() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->assertTrue($this->_model->isStraight(true)); } public function testIsStraightWithDefaultValue() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->assertFalse($this->_model->isStraight()); } public function testGetFullActionName() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); /* empty request */ $this->assertEquals('__', $this->_model->getFullActionName()); $this->_model->setRouteName('test')->setControllerName('controller')->setActionName('action'); @@ -300,7 +331,7 @@ class HttpTest extends \PHPUnit_Framework_TestCase */ protected function _initForward() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $beforeForwardInfo = [ 'params' => ['one' => '111', 'two' => '222'], 'action_name' => 'ActionName', @@ -319,7 +350,7 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testIsAjax() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $this->assertFalse($this->_model->isAjax()); @@ -342,7 +373,7 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testSetPost() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $post = ['one' => '111', 'two' => '222']; $this->_model->setPost($post); @@ -358,7 +389,7 @@ class HttpTest extends \PHPUnit_Framework_TestCase public function testGetFiles() { - $this->_model = new Request($this->_routerListMock, $this->_infoProcessorMock); + $this->_model = $this->_model = $this->getModel(); $_FILES = ['one' => '111', 'two' => '222']; $this->assertEquals($_FILES, $this->_model->getFiles()); @@ -371,4 +402,112 @@ class HttpTest extends \PHPUnit_Framework_TestCase $this->assertEquals('default', $this->_model->getFiles('no_such_file', 'default')); } + + /** + * @param $serverVariables array + * @param $expectedResult string + * @dataProvider serverVariablesProvider + */ + public function testGetDistroBaseUrl($serverVariables, $expectedResult) + { + $originalServerValue = $_SERVER; + $_SERVER = $serverVariables; + $this->_model = $this->_model = $this->getModel(); + $this->assertEquals($expectedResult, $this->_model->getDistroBaseUrl()); + + $_SERVER = $originalServerValue; + } + + public function testGetCookieDefault() + { + $key = "cookieName"; + $default = "defaultValue"; + + $this->_cookieManagerMock + ->expects($this->once()) + ->method('getCookie') + ->with($key, $default) + ->will($this->returnValue($default)); + + $this->assertEquals($default, $this->getModel()->getCookie($key, $default)); + } + + public function testGetCookieNameExists() + { + $key = "cookieName"; + $default = "defaultValue"; + $value = "cookieValue"; + + $this->_cookieManagerMock + ->expects($this->once()) + ->method('getCookie') + ->with($key, $default) + ->will($this->returnValue($value)); + + $this->assertEquals($value, $this->getModel()->getCookie($key, $default)); + } + + public function testGetCookieNullName() + { + $nullKey = null; + $default = "defaultValue"; + + $this->_cookieManagerMock + ->expects($this->once()) + ->method('getCookie') + ->with($nullKey, $default) + ->will($this->returnValue($default)); + + $this->assertEquals($default, $this->getModel()->getCookie($nullKey, $default)); + } + + public function serverVariablesProvider() + { + $returnValue = array(); + $defaultServerData = array( + 'SCRIPT_NAME' => 'index.php', + 'HTTP_HOST' => 'sample.host.com', + 'SERVER_PORT' => '80', + 'HTTPS' => '1' + ); + + $secureUnusualPort = $noHttpsData = $httpsOffData = $noHostData = $noScriptNameData = $defaultServerData; + + unset($noScriptNameData['SCRIPT_NAME']); + $returnValue['no SCRIPT_NAME'] = array($noScriptNameData, 'http://localhost/'); + + unset($noHostData['HTTP_HOST']); + $returnValue['no HTTP_HOST'] = array($noHostData, 'http://localhost/'); + + $httpsOffData['HTTPS'] = 'off'; + $returnValue['HTTPS off'] = array($httpsOffData, 'http://sample.host.com/'); + + unset($noHttpsData['HTTPS']); + $returnValue['no HTTPS'] = array($noHttpsData, 'http://sample.host.com/'); + + $noHttpsNoServerPort = $noHttpsData; + unset($noHttpsNoServerPort['SERVER_PORT']); + $returnValue['no SERVER_PORT'] = array($noHttpsNoServerPort, 'http://sample.host.com/'); + + $noHttpsButSecurePort = $noHttpsData; + $noHttpsButSecurePort['SERVER_PORT'] = 443; + $returnValue['no HTTP but secure port'] = array($noHttpsButSecurePort, 'https://sample.host.com/'); + + $notSecurePort = $noHttpsData; + $notSecurePort['SERVER_PORT'] = 81; + $notSecurePort['HTTP_HOST'] = 'sample.host.com:81'; + $returnValue['not secure not standard port'] = array($notSecurePort, 'http://sample.host.com:81/'); + + $secureUnusualPort['SERVER_PORT'] = 441; + $secureUnusualPort['HTTP_HOST'] = 'sample.host.com:441'; + $returnValue['not standard secure port'] = array($secureUnusualPort, 'https://sample.host.com:441/'); + + $customUrlPathData = $noHttpsData; + $customUrlPathData['SCRIPT_FILENAME'] = '/some/dir/custom.php'; + $returnValue['custom path'] = array($customUrlPathData, 'http://sample.host.com/'); + + return $returnValue; + } + + } diff --git a/dev/tests/unit/testsuite/Magento/Framework/App/Response/Http/FileFactoryTest.php b/dev/tests/unit/testsuite/Magento/Framework/App/Response/Http/FileFactoryTest.php index 96d144bb6a6fb0e49e92121d295f0877e7492c11..04640c4775f97cd067f83d29a6b06df176663e9d 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/App/Response/Http/FileFactoryTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/App/Response/Http/FileFactoryTest.php @@ -76,8 +76,8 @@ class FileFactoryTest extends \PHPUnit_Framework_TestCase ); $this->_responseMock = $this->getMock( 'Magento\Framework\App\Response\Http', - array('setHeader', 'sendHeaders'), - array(), + ['setHeader', 'sendHeaders', '__wakeup'], + [], '', false ); diff --git a/dev/tests/unit/testsuite/Magento/Framework/App/Response/HttpTest.php b/dev/tests/unit/testsuite/Magento/Framework/App/Response/HttpTest.php index b258cb23cc46c9f0aad7cde9b6bab8c28430108e..ef6d099e019b3cb6cca1ddf8a5332729cad13446 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/App/Response/HttpTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/App/Response/HttpTest.php @@ -23,69 +23,120 @@ */ namespace Magento\Framework\App\Response; +use Magento\Framework\Stdlib\Cookie\PublicCookieMetadata; +use Magento\Framework\Stdlib\Cookie\CookieMetadata; + class HttpTest extends \PHPUnit_Framework_TestCase { /** * @var \Magento\Framework\App\Response\Http */ - protected $_model; + protected $model; /** - * @var \Magento\Framework\Stdlib\Cookie|\PHPUnit_Framework_MockObject_MockObject + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Stdlib\CookieManager */ - protected $_cookieMock; + protected $cookieManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Stdlib\Cookie\CookieMetadataFactory + */ + protected $cookieMetadataFactoryMock; + /** - * @var \Magento\Framework\App\Http\Context + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\Http\Context */ - protected $_context; + protected $contextMock; protected function setUp() { - $this->_cookieMock = $this->getMock('Magento\Framework\Stdlib\Cookie', array(), array(), '', false); - $this->_context = new \Magento\Framework\App\Http\Context(); - $this->_model = new Http($this->_cookieMock, $this->_context); - $this->_model->headersSentThrowsException = false; - $this->_model->setHeader('name', 'value'); + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->cookieMetadataFactoryMock = $this->getMockBuilder( + 'Magento\Framework\Stdlib\Cookie\CookieMetadataFactory' + )->disableOriginalConstructor()->getMock(); + $this->cookieManagerMock = $this->getMockBuilder('Magento\Framework\Stdlib\CookieManager') + ->disableOriginalConstructor()->getMock(); + $this->contextMock = $this->getMockBuilder('Magento\Framework\App\Http\Context')->disableOriginalConstructor() + ->getMock(); + $this->model = $objectManager->getObject( + 'Magento\Framework\App\Response\Http', + [ + 'cookieManager' => $this->cookieManagerMock, + 'cookieMetadataFactory' => $this->cookieMetadataFactoryMock, + 'context' => $this->contextMock + ] + ); + $this->model->headersSentThrowsException = false; + $this->model->setHeader('name', 'value'); } protected function tearDown() { - unset($this->_model); + unset($this->model); } public function testGetHeaderWhenHeaderNameIsEqualsName() { $expected = array('name' => 'Name', 'value' => 'value', 'replace' => false); - $actual = $this->_model->getHeader('Name'); + $actual = $this->model->getHeader('Name'); $this->assertEquals($expected, $actual); } public function testGetHeaderWhenHeaderNameIsNotEqualsName() { - $this->assertFalse($this->_model->getHeader('Test')); + $this->assertFalse($this->model->getHeader('Test')); } public function testSendVary() { - $vary = array('some-vary-key' => 'some-vary-value'); - $expected = sha1(serialize($vary)); + $data = ['some-vary-key' => 'some-vary-value']; + $expectedCookieName = Http::COOKIE_VARY_STRING; + $expectedCookieValue = sha1(serialize($data)); + $publicCookieMetadataMock = $this->getMock('Magento\Framework\Stdlib\Cookie\PublicCookieMetadata'); + $publicCookieMetadataMock->expects($this->once()) + ->method('setPath') + ->with('/') + ->will($this->returnSelf()); + + $this->contextMock->expects($this->once()) + ->method('getData') + ->with() + ->will( + $this->returnValue($data) + ); + + $this->cookieMetadataFactoryMock->expects($this->once()) + ->method('createPublicCookieMetadata') + ->with() + ->will( + $this->returnValue($publicCookieMetadataMock) + ); - $this->_context->setValue('some-vary-key', 'some-vary-value', 'default'); - $this->_cookieMock - ->expects($this->once()) - ->method('set') - ->with(Http::COOKIE_VARY_STRING, $expected); - $this->_model->sendVary(); + $this->cookieManagerMock->expects($this->once()) + ->method('setPublicCookie') + ->with($expectedCookieName, $expectedCookieValue, $publicCookieMetadataMock); + $this->model->sendVary(); } public function testSendVaryEmptyData() { - $this->_cookieMock - ->expects($this->once()) - ->method('set') - ->with(Http::COOKIE_VARY_STRING, null, -1, '/'); - $this->_model->sendVary(); + $expectedCookieName = Http::COOKIE_VARY_STRING; + $cookieMetadataMock = $this->getMock('Magento\Framework\Stdlib\Cookie\CookieMetadata'); + $cookieMetadataMock->expects($this->once()) + ->method('setPath') + ->with('/') + ->will($this->returnSelf()); + + $this->cookieMetadataFactoryMock->expects($this->once()) + ->method('createCookieMetadata') + ->with() + ->will($this->returnValue($cookieMetadataMock)); + + $this->cookieManagerMock->expects($this->once()) + ->method('deleteCookie') + ->with($expectedCookieName, $cookieMetadataMock); + $this->model->sendVary(); } /** @@ -98,10 +149,10 @@ class HttpTest extends \PHPUnit_Framework_TestCase $cacheControl = 'public, max-age=' . $ttl . ', s-maxage=' . $ttl; $between = 1000; - $this->_model->setPublicHeaders($ttl); - $this->assertEquals($pragma, $this->_model->getHeader('Pragma')['value']); - $this->assertEquals($cacheControl, $this->_model->getHeader('Cache-Control')['value']); - $expiresResult = time($this->_model->getHeader('Expires')['value']); + $this->model->setPublicHeaders($ttl); + $this->assertEquals($pragma, $this->model->getHeader('Pragma')['value']); + $this->assertEquals($cacheControl, $this->model->getHeader('Cache-Control')['value']); + $expiresResult = time($this->model->getHeader('Expires')['value']); $this->assertTrue($expiresResult > $between || $expiresResult < $between); } @@ -114,7 +165,7 @@ class HttpTest extends \PHPUnit_Framework_TestCase 'InvalidArgumentException', 'Time to live is a mandatory parameter for set public headers' ); - $this->_model->setPublicHeaders(null); + $this->model->setPublicHeaders(null); } /** @@ -127,10 +178,10 @@ class HttpTest extends \PHPUnit_Framework_TestCase $cacheControl = 'private, max-age=' . $ttl; $expires = gmdate('D, d M Y H:i:s T', strtotime('+' . $ttl . ' seconds')); - $this->_model->setPrivateHeaders($ttl); - $this->assertEquals($pragma, $this->_model->getHeader('Pragma')['value']); - $this->assertEquals($cacheControl, $this->_model->getHeader('Cache-Control')['value']); - $this->assertEquals($expires, $this->_model->getHeader('Expires')['value']); + $this->model->setPrivateHeaders($ttl); + $this->assertEquals($pragma, $this->model->getHeader('Pragma')['value']); + $this->assertEquals($cacheControl, $this->model->getHeader('Cache-Control')['value']); + $this->assertEquals($expires, $this->model->getHeader('Expires')['value']); } /** @@ -142,7 +193,7 @@ class HttpTest extends \PHPUnit_Framework_TestCase 'InvalidArgumentException', 'Time to live is a mandatory parameter for set private headers' ); - $this->_model->setPrivateHeaders(null); + $this->model->setPrivateHeaders(null); } /** @@ -154,10 +205,10 @@ class HttpTest extends \PHPUnit_Framework_TestCase $cacheControl = 'no-store, no-cache, must-revalidate, max-age=0'; $expires = gmdate('D, d M Y H:i:s T', strtotime('-1 year')); - $this->_model->setNoCacheHeaders(); - $this->assertEquals($pragma, $this->_model->getHeader('Pragma')['value']); - $this->assertEquals($cacheControl, $this->_model->getHeader('Cache-Control')['value']); - $this->assertEquals($expires, $this->_model->getHeader('Expires')['value']); + $this->model->setNoCacheHeaders(); + $this->assertEquals($pragma, $this->model->getHeader('Pragma')['value']); + $this->assertEquals($cacheControl, $this->model->getHeader('Cache-Control')['value']); + $this->assertEquals($expires, $this->model->getHeader('Expires')['value']); } /** @@ -165,9 +216,80 @@ class HttpTest extends \PHPUnit_Framework_TestCase */ public function testRepresentJson() { - $this->_model->setHeader('Content-Type', 'text/javascript'); - $this->_model->representJson('json_string'); - $this->assertEquals('application/json', $this->_model->getHeader('Content-Type')['value']); - $this->assertEquals('json_string', $this->_model->getBody('default')); + $this->model->setHeader('Content-Type', 'text/javascript'); + $this->model->representJson('json_string'); + $this->assertEquals('application/json', $this->model->getHeader('Content-Type')['value']); + $this->assertEquals('json_string', $this->model->getBody('default')); + } + + /** + * Test for getHeader method + * + * @dataProvider headersDataProvider + * @covers \Magento\Framework\App\Response\Http::getHeader + * @param string $header + */ + public function testGetHeaderExists($header) + { + $this->model->setHeader($header['name'], $header['value'], $header['replace']); + $this->assertEquals($header, $this->model->getHeader($header['name'])); + } + + /** + * Data provider for testGetHeader + * + * @return array + */ + public function headersDataProvider() + { + return [ + [['name' => 'X-Frame-Options', 'value' => 'SAMEORIGIN', 'replace' => true]], + [['name' => 'Test2', 'value' => 'Test2', 'replace' => false]] + ]; + } + + /** + * Test for getHeader method. Validation for attempt to get not existing header + * + * @covers \Magento\Framework\App\Response\Http::getHeader + */ + public function testGetHeaderNotExists() + { + $this->model->setHeader('Name', 'value', true); + $this->assertFalse($this->model->getHeader('Wrong name')); + } + + /** + * + * @expectedException \RuntimeException + * @expectedExceptionMessage ObjectManager isn't initialized + */ + public function testWakeUpWithException() + { + $this->model->__wakeup(); + $this->assertNull($this->cookieMetadataFactoryMock); + $this->assertNull($this->cookieManagerMock); + } + + /** + * Test for the magic method __wakeup + * + * @covers \Magento\Framework\App\Response\Http::__wakeup + */ + public function testWakeUpWith() + { + $objectManagerMock = $this->getMock('Magento\Framework\App\ObjectManager', [], [], '', false); + $objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Framework\Stdlib\CookieManager') + ->will($this->returnValue($this->cookieManagerMock)); + + $objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Framework\Stdlib\Cookie\CookieMetadataFactory') + ->will($this->returnValue($this->cookieMetadataFactoryMock)); + + \Magento\Framework\App\ObjectManager::setInstance($objectManagerMock); + $this->model->__wakeup(); } } diff --git a/dev/tests/unit/testsuite/Magento/Framework/HTTP/AuthenticationTest.php b/dev/tests/unit/testsuite/Magento/Framework/HTTP/AuthenticationTest.php index 1a21e55b1d923cff5f21bda7782aaa5b4f1c0595..0a86c28e6fbea0112b403db3813355a5930857b3 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/HTTP/AuthenticationTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/HTTP/AuthenticationTest.php @@ -86,11 +86,17 @@ class AuthenticationTest extends \PHPUnit_Framework_TestCase public function testSetAuthenticationFailed() { - $request = $this->getMock('\Magento\Framework\App\Request\Http', array(), array(), '', false); - $cookieMock = $this->getMock('Magento\Framework\Stdlib\Cookie', array(), array(), '', false); - $contextMock = $this->getMock('Magento\Framework\App\Http\Context', array(), array(), '', false); - $response = new \Magento\Framework\App\Response\Http($cookieMock, $contextMock); - $authentication = new \Magento\Framework\HTTP\Authentication($request, $response); + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $request = $objectManager->getObject('Magento\Framework\App\Request\Http'); + $response = $objectManager->getObject('Magento\Framework\App\Response\Http'); + + $authentication = $objectManager->getObject( + 'Magento\Framework\HTTP\Authentication', + [ + 'httpRequest' => $request, + 'httpResponse' => $response + ] + ); $realm = uniqid(); $response->headersSentThrowsException = false; $authentication->setAuthenticationFailed($realm); diff --git a/dev/tests/unit/testsuite/Magento/Framework/ObjectManager/Code/Generator/_files/SampleRepository.txt b/dev/tests/unit/testsuite/Magento/Framework/ObjectManager/Code/Generator/_files/SampleRepository.txt index 2d4340d4155b09c1ff0d12f0fd02b39ed406afd7..e905faec608eaad3884c99556d60a97bb9f9293b 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/ObjectManager/Code/Generator/_files/SampleRepository.txt +++ b/dev/tests/unit/testsuite/Magento/Framework/ObjectManager/Code/Generator/_files/SampleRepository.txt @@ -46,15 +46,20 @@ class SampleRepository * * @param int $id * @return \Magento\Framework\ObjectManager\Code\Generator\Sample + * @throws \Magento\Framework\Exception\InputException * @throws \Magento\Framework\Exception\NoSuchEntityException */ public function get($id) { if (!$id) { - throw new \Magento\Framework\Exception\NoSuchEntityException('Requested product doesn\'t exist'); + throw new \Magento\Framework\Exception\InputException('ID required'); } if (!isset($this->registry[$id])) { - $this->registry[$id] = $this->sampleFactory->create()->load($id); + $entity = $this->sampleFactory->create()->load($id); + if (!$entity->getId()) { + throw new \Magento\Framework\Exception\NoSuchEntityException('Requested entity doesn\'t exist'); + } + $this->registry[$id] = $entity; } return $this->registry[$id]; } @@ -89,6 +94,8 @@ class SampleRepository $collection->addFieldToFilter($filter->getField(), [$condition => $filter->getValue()]); } } + $collection->setCurPage($criteria->getCurrentPage()); + $collection->setPageSize($criteria->getPageSize()); foreach ($collection as $object) { $this->register($object); } diff --git a/dev/tests/unit/testsuite/Magento/Framework/Search/AdapterFactoryTest.php b/dev/tests/unit/testsuite/Magento/Framework/Search/AdapterFactoryTest.php new file mode 100644 index 0000000000000000000000000000000000000000..e1632324707dae1a67f5d9ddbc6dde8e790d66e3 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Framework/Search/AdapterFactoryTest.php @@ -0,0 +1,97 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search; + +use Magento\TestFramework\Helper\ObjectManager; + +class AdapterFactoryTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Framework\Search\AdapterFactory |\PHPUnit_Framework_MockObject_MockObject + */ + private $adapterFactory; + + /** + * @var \Magento\Framework\ObjectManager |\PHPUnit_Framework_MockObject_MockObject + */ + private $objectManager; + + protected function setUp() + { + $helper = new ObjectManager($this); + + $scopeConfig = $this->getMockBuilder('\Magento\Framework\App\Config\ScopeConfigInterface') + ->disableOriginalConstructor() + ->getMock(); + + $scopeConfig->expects($this->once())->method('getValue') + ->with($this->equalTo('some_path'), $this->equalTo('some_scopeType')) + ->will($this->returnValue('ClassName')); + + $this->objectManager = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->setMethods(['create', 'get', 'configure']) + ->disableOriginalConstructor() + ->getMock(); + + $this->adapterFactory = $helper->getObject( + '\Magento\Framework\Search\AdapterFactory', + [ + 'objectManager' => $this->objectManager, + 'scopeConfig' => $scopeConfig, + 'path' => 'some_path', + 'scopeType' => 'some_scopeType' + ] + ); + } + + public function testCreate() + { + $adapter = $this->getMockBuilder('\Magento\Framework\Search\AdapterInterface') + ->disableOriginalConstructor() + ->getMock(); + + $this->objectManager->expects($this->once())->method('create') + ->with($this->equalTo('ClassName'), $this->equalTo(['input'])) + ->will($this->returnValue($adapter)); + + $result = $this->adapterFactory->create(['input']); + $this->assertInstanceOf('\Magento\Framework\Search\AdapterInterface', $result); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testCreateExceptionThrown() + { + $adapter = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->getMock(); + + $this->objectManager->expects($this->once())->method('create') + ->with($this->equalTo('ClassName'), $this->equalTo(['input'])) + ->will($this->returnValue($adapter)); + + $this->adapterFactory->create(['input']); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Framework/Search/AggregationTest.php b/dev/tests/unit/testsuite/Magento/Framework/Search/AggregationTest.php new file mode 100644 index 0000000000000000000000000000000000000000..9e911c43a10735b5910cc7c678f6e4c3d10fbb8f --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Framework/Search/AggregationTest.php @@ -0,0 +1,82 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search; + +use Magento\TestFramework\Helper\ObjectManager; + +class AggregationTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Framework\Search\Aggregation |\PHPUnit_Framework_MockObject_MockObject + */ + private $aggregation; + + protected function setUp() + { + $helper = new ObjectManager($this); + + $buckets = []; + for ($count = 0; $count < 5; $count++) { + $bucket = $this->getMockBuilder('Magento\Framework\Search\Bucket') + ->disableOriginalConstructor() + ->getMock(); + + $bucket->expects($this->any())->method('getName')->will($this->returnValue("$count")); + $bucket->expects($this->any())->method('getValue')->will($this->returnValue($count)); + $buckets[] = $bucket; + } + + $this->aggregation = $helper->getObject( + '\Magento\Framework\Search\Aggregation', + [ + 'buckets' => $buckets, + ] + ); + } + + public function testGetIterator() + { + $count = 0; + foreach ($this->aggregation as $bucket) { + $this->assertEquals($bucket->getName(), "$count"); + $this->assertEquals($bucket->getValue(), $count); + $count++; + } + } + + public function testGetBucketNames() + { + $this->assertEquals( + $this->aggregation->getBucketNames(), + ['0', '1', '2', '3', '4'] + ); + } + + public function testGetBucket() + { + $bucket = $this->aggregation->getBucket('3'); + $this->assertEquals($bucket->getName(), '3'); + $this->assertEquals($bucket->getValue(), 3); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Framework/Search/DocumentTest.php b/dev/tests/unit/testsuite/Magento/Framework/Search/DocumentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fcedf7e9e195bb26383287685c767d1b9e67d746 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Framework/Search/DocumentTest.php @@ -0,0 +1,82 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search; + +use Magento\TestFramework\Helper\ObjectManager; + +class DocumentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Framework\Search\Document |\PHPUnit_Framework_MockObject_MockObject + */ + private $document; + + protected function setUp() + { + $helper = new ObjectManager($this); + + $documentFields = []; + for ($count = 0; $count < 5; $count++) { + $field = $this->getMockBuilder('Magento\Framework\Search\DocumentField') + ->disableOriginalConstructor() + ->getMock(); + + $field->expects($this->any())->method('getName')->will($this->returnValue("$count")); + $field->expects($this->any())->method('getValues')->will($this->returnValue([$count])); + $documentFields[] = $field; + } + + $this->document = $helper->getObject( + 'Magento\Framework\Search\Document', + [ + 'documentId' => 42, + 'documentFields' => $documentFields, + ] + ); + } + + public function testGetIterator() + { + $count = 0; + foreach ($this->document as $field) { + $this->assertEquals($field->getName(), "$count"); + $this->assertEquals($field->getValues(), [$count]); + $count++; + } + } + + public function testGetFieldNames() + { + $this->assertEquals( + $this->document->getFieldNames(), + ['0', '1', '2', '3', '4'] + ); + } + + public function testGetField() + { + $field = $this->document->getField('3'); + $this->assertEquals($field->getValues(), [3]); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Framework/Search/QueryResponseTest.php b/dev/tests/unit/testsuite/Magento/Framework/Search/QueryResponseTest.php new file mode 100644 index 0000000000000000000000000000000000000000..a6dbd0334e9f0eddf1c3380774a562f006c4ac94 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Framework/Search/QueryResponseTest.php @@ -0,0 +1,95 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search; + +use Magento\TestFramework\Helper\ObjectManager; + +class QueryResponseTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Framework\Search\Document[] + */ + private $documents = []; + + /** + * @var \Magento\Framework\Search\Aggregation[] + */ + private $aggregations = []; + + /** + * @var \Magento\Framework\Search\QueryResponse | \PHPUnit_Framework_MockObject_MockObject + */ + private $queryResponse; + + protected function setUp() + { + $helper = new ObjectManager($this); + + for ($count = 0; $count < 5; $count++) { + $document = $this->getMockBuilder('Magento\Framework\Search\Document') + ->disableOriginalConstructor() + ->getMock(); + + $document->expects($this->any())->method('getId')->will($this->returnValue($count)); + $this->documents[] = $document; + } + + for ($count = 0; $count < 3; $count++) { + $aggregation = $this->getMockBuilder('Magento\Framework\Search\Aggregation') + ->disableOriginalConstructor() + ->getMock(); + $this->aggregations[] = $aggregation; + } + + $this->queryResponse = $helper->getObject( + 'Magento\Framework\Search\QueryResponse', + [ + 'documents' => $this->documents, + 'aggregations' => $this->aggregations, + ] + ); + } + + public function testGetIterator() + { + $count = 0; + foreach ($this->queryResponse as $document) { + $this->assertEquals($document->getId(), $count); + $count++; + } + } + + public function testCount() + { + $this->assertEquals(count($this->queryResponse), 5); + } + + public function testGetAggregations() + { + $aggregations = $this->queryResponse->getAggregations(); + foreach ($aggregations as $aggregation) { + $this->assertInstanceOf('Magento\Framework\Search\Aggregation', $aggregation); + } + } +} diff --git a/dev/tests/unit/testsuite/Magento/Framework/Search/Request/MapperTest.php b/dev/tests/unit/testsuite/Magento/Framework/Search/Request/MapperTest.php new file mode 100644 index 0000000000000000000000000000000000000000..b0e7b9baa9781b6cddc97fd8c9d79c532f499995 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Framework/Search/Request/MapperTest.php @@ -0,0 +1,1045 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search\Request; + +use Magento\Framework\Search\Request\Query\Filter; +use Magento\TestFramework\Helper\ObjectManager; + +class MapperTest extends \PHPUnit_Framework_TestCase +{ + const ROOT_QUERY = 'someQuery'; + + /** + * @var \Magento\TestFramework\Helper\ObjectManager + */ + private $helper; + + /** + * @var \Magento\Framework\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + private $objectManager; + + /** + * @var \Magento\Framework\Search\Request\Query\Match|\PHPUnit_Framework_MockObject_MockObject + */ + private $queryMatch; + + /** + * @var \Magento\Framework\Search\Request\Query\Bool|\PHPUnit_Framework_MockObject_MockObject + */ + private $queryBool; + + /** + * @var \Magento\Framework\Search\Request\Query\Filter|\PHPUnit_Framework_MockObject_MockObject + */ + private $queryFilter; + + /** + * @var \Magento\Framework\Search\Request\Filter\Term|\PHPUnit_Framework_MockObject_MockObject + */ + private $filterTerm; + + /** + * @var \Magento\Framework\Search\Request\Filter\Range|\PHPUnit_Framework_MockObject_MockObject + */ + private $filterRange; + + /** + * @var \Magento\Framework\Search\Request\Filter\Bool|\PHPUnit_Framework_MockObject_MockObject + */ + private $filterBool; + + protected function setUp() + { + $this->helper = new ObjectManager($this); + + $this->objectManager = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->setMethods(['create', 'get', 'configure']) + ->disableOriginalConstructor() + ->getMock(); + + $this->queryMatch = $this->getMockBuilder('Magento\Framework\Search\Request\Query\Match') + ->disableOriginalConstructor() + ->getMock(); + + $this->queryBool = $this->getMockBuilder('Magento\Framework\Search\Request\Query\Bool') + ->disableOriginalConstructor() + ->getMock(); + + $this->queryFilter = $this->getMockBuilder('Magento\Framework\Search\Request\Query\Filter') + ->disableOriginalConstructor() + ->getMock(); + + $this->filterTerm = $this->getMockBuilder('Magento\Framework\Search\Request\Filter\Term') + ->disableOriginalConstructor() + ->getMock(); + + $this->filterRange = $this->getMockBuilder('Magento\Framework\Search\Request\Filter\Range') + ->disableOriginalConstructor() + ->getMock(); + + $this->filterBool = $this->getMockBuilder('Magento\Framework\Search\Request\Filter\Bool') + ->disableOriginalConstructor() + ->getMock(); + } + + /** + * @param $queries + * @dataProvider getQueryMatchProvider + */ + public function testGetQueryMatch($queries) + { + $query = $queries[self::ROOT_QUERY]; + $this->objectManager->expects($this->once())->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Query\Match'), + $this->equalTo( + [ + 'name' => $query['name'], + 'boost' => isset($query['boost']) ? $query['boost'] : 1, + 'matches' => $query['match'] + ] + ) + ) + ->will($this->returnValue($this->queryMatch)); + + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => [] + ] + ); + + $this->assertEquals($this->queryMatch, $mapper->getRootQuery()); + } + + /** + * @expectedException \Magento\Framework\Exception\StateException + */ + public function testGetQueryNotUsedStateException() + { + $queries = [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_MATCH, + 'name' => 'someName', + 'boost' => 3, + 'match' => 'someMatches' + ], + 'notUsedQuery' => [ + 'type' => QueryInterface::TYPE_MATCH, + 'name' => 'someName', + 'boost' => 3, + 'match' => 'someMatches' + ] + ]; + $query = $queries['someQuery']; + $this->objectManager->expects($this->once())->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Query\Match'), + $this->equalTo( + [ + 'name' => $query['name'], + 'boost' => isset($query['boost']) ? $query['boost'] : 1, + 'matches' => $query['match'] + ] + ) + ) + ->will($this->returnValue($this->queryMatch)); + + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => [] + ] + ); + + $this->assertEquals($this->queryMatch, $mapper->getRootQuery()); + } + + /** + * @expectedException \Magento\Framework\Exception\StateException + */ + public function testGetQueryUsedStateException() + { + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_BOOL, + 'name' => 'someName', + 'queryReference' => [ + [ + 'clause' => 'someClause', + 'ref' => 'someQuery' + ] + ] + ] + ], + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => [] + ] + ); + + $this->assertEquals($this->queryMatch, $mapper->getRootQuery()); + } + + /** + * @param $queries + * @dataProvider getQueryFilterQueryReferenceProvider + */ + public function testGetQueryFilterQueryReference($queries) + { + $query = $queries['someQueryMatch']; + $this->objectManager->expects($this->at(0))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Query\Match'), + $this->equalTo( + [ + 'name' => $query['name'], + 'boost' => 1, + 'matches' => 'someMatches' + ] + ) + ) + ->will($this->returnValue($this->queryMatch)); + $query = $queries[self::ROOT_QUERY]; + $this->objectManager->expects($this->at(1))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Query\Filter'), + $this->equalTo( + [ + 'name' => $query['name'], + 'boost' => isset($query['boost']) ? $query['boost'] : 1, + 'reference' => $this->queryMatch, + 'referenceType' => Filter::REFERENCE_QUERY + ] + ) + ) + ->will($this->returnValue($this->queryFilter)); + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => [] + ] + ); + + $this->assertEquals($this->queryFilter, $mapper->getRootQuery()); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage Reference is not provided + */ + public function testGetQueryFilterReferenceException() + { + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => [ + 'someQuery' => [ + 'type' => QueryInterface::TYPE_FILTER + ] + ], + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => [] + ] + ); + + $mapper->getRootQuery(); + } + + /** + * @param $queries + * @dataProvider getQueryBoolProvider + */ + public function testGetQueryBool($queries) + { + $query = $queries['someQueryMatch']; + $this->objectManager->expects($this->at(0))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Query\Match'), + $this->equalTo( + [ + 'name' => $query['name'], + 'boost' => 1, + 'matches' => 'someMatches' + ] + ) + ) + ->will($this->returnValue($this->queryMatch)); + $query = $queries[self::ROOT_QUERY]; + $this->objectManager->expects($this->at(1))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Query\Bool'), + $this->equalTo( + [ + 'name' => $query['name'], + 'boost' => isset($query['boost']) ? $query['boost'] : 1, + 'someClause' => ['someQueryMatch' => $this->queryMatch] + ] + ) + ) + ->will($this->returnValue($this->queryBool)); + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => [] + ] + ); + + $this->assertEquals($this->queryBool, $mapper->getRootQuery()); + } + + /** + * #@expectedException \InvalidArgumentException + */ + public function testGetQueryInvalidArgumentException() + { + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => [ + self::ROOT_QUERY => [ + 'type' => 'invalid_type' + ] + ], + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => [] + ] + ); + + $mapper->getRootQuery(); + } + + /** + * @expectedException \Exception + */ + public function testGetQueryException() + { + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => [], + 'rootQueryName' => self::ROOT_QUERY, + 'filters' => [] + ] + ); + + $mapper->getRootQuery(); + } + + public function testGetFilterTerm() + { + $queries = [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_FILTER, + 'name' => 'someName', + 'filterReference' => [ + [ + 'ref' => 'someFilter' + ] + ] + ] + ]; + $filters = [ + 'someFilter' => [ + 'type' => FilterInterface::TYPE_TERM, + 'name' => 'someName', + 'field' => 'someField', + 'value' => 'someValue' + ] + ]; + + $filter = $filters['someFilter']; + $this->objectManager->expects($this->at(0))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Filter\Term'), + $this->equalTo( + [ + 'name' => $filter['name'], + 'field' => $filter['field'], + 'value' => $filter['value'] + ] + ) + ) + ->will($this->returnValue($this->filterTerm)); + $query = $queries[self::ROOT_QUERY]; + $this->objectManager->expects($this->at(1))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Query\Filter'), + $this->equalTo( + [ + 'name' => $query['name'], + 'boost' => 1, + 'reference' => $this->filterTerm, + 'referenceType' => Filter::REFERENCE_FILTER + ] + ) + ) + ->will($this->returnValue($this->queryFilter)); + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => $filters + ] + ); + + $this->assertEquals($this->queryFilter, $mapper->getRootQuery()); + } + + public function testGetFilterRange() + { + $queries = [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_FILTER, + 'name' => 'someName', + 'filterReference' => [ + [ + 'ref' => 'someFilter' + ] + ] + ] + ]; + $filters = [ + 'someFilter' => [ + 'type' => FilterInterface::TYPE_RANGE, + 'name' => 'someName', + 'field' => 'someField', + 'from' => 'from', + 'to' => 'to' + ] + ]; + + $filter = $filters['someFilter']; + $this->objectManager->expects($this->at(0))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Filter\Range'), + $this->equalTo( + [ + 'name' => $filter['name'], + 'field' => $filter['field'], + 'from' => $filter['from'], + 'to' => $filter['to'] + ] + ) + ) + ->will($this->returnValue($this->filterRange)); + $query = $queries[self::ROOT_QUERY]; + $this->objectManager->expects($this->at(1))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Query\Filter'), + $this->equalTo( + [ + 'name' => $query['name'], + 'boost' => 1, + 'reference' => $this->filterRange, + 'referenceType' => Filter::REFERENCE_FILTER + ] + ) + ) + ->will($this->returnValue($this->queryFilter)); + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => $filters + ] + ); + + $this->assertEquals($this->queryFilter, $mapper->getRootQuery()); + } + + public function testGetFilterBool() + { + $queries = [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_FILTER, + 'name' => 'someName', + 'filterReference' => [ + [ + 'ref' => 'someFilter' + ] + ] + ] + ]; + $filters = [ + 'someFilter' => [ + 'type' => FilterInterface::TYPE_BOOL, + 'name' => 'someName', + 'filterReference' => [ + [ + 'ref' => 'someFilterTerm', + 'clause' => 'someClause' + ] + ] + ], + 'someFilterTerm' => [ + 'type' => FilterInterface::TYPE_TERM, + 'name' => 'someName', + 'field' => 'someField', + 'value' => 'someValue' + ] + ]; + + $filter = $filters['someFilterTerm']; + $this->objectManager->expects($this->at(0))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Filter\Term'), + $this->equalTo( + [ + 'name' => $filter['name'], + 'field' => $filter['field'], + 'value' => $filter['value'] + ] + ) + ) + ->will($this->returnValue($this->filterTerm)); + $filter = $filters['someFilter']; + $this->objectManager->expects($this->at(1))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Filter\Bool'), + $this->equalTo( + [ + 'name' => $filter['name'], + 'someClause' => ['someFilterTerm' => $this->filterTerm] + ] + ) + ) + ->will($this->returnValue($this->filterBool)); + $query = $queries[self::ROOT_QUERY]; + $this->objectManager->expects($this->at(2))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Query\Filter'), + $this->equalTo( + [ + 'name' => $query['name'], + 'boost' => 1, + 'reference' => $this->filterBool, + 'referenceType' => Filter::REFERENCE_FILTER + ] + ) + ) + ->will($this->returnValue($this->queryFilter)); + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => $filters + ] + ); + + $this->assertEquals($this->queryFilter, $mapper->getRootQuery()); + } + + /** + * @expectedException \Magento\Framework\Exception\StateException + */ + public function testGetFilterNotUsedStateException() + { + $queries = [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_FILTER, + 'name' => 'someName', + 'filterReference' => [ + [ + 'ref' => 'someFilter' + ] + ] + ] + ]; + $filters = [ + 'someFilter' => [ + 'type' => FilterInterface::TYPE_TERM, + 'name' => 'someName', + 'field' => 'someField', + 'value' => 'someValue' + ], + 'notUsedFilter' => [ + 'type' => FilterInterface::TYPE_TERM, + 'name' => 'someName', + 'field' => 'someField', + 'value' => 'someValue' + ] + ]; + + $filter = $filters['someFilter']; + $this->objectManager->expects($this->at(0))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Filter\Term'), + $this->equalTo( + [ + 'name' => $filter['name'], + 'field' => $filter['field'], + 'value' => $filter['value'] + ] + ) + ) + ->will($this->returnValue($this->filterTerm)); + $query = $queries[self::ROOT_QUERY]; + $this->objectManager->expects($this->at(1))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Query\Filter'), + $this->equalTo( + [ + 'name' => $query['name'], + 'boost' => 1, + 'reference' => $this->filterTerm, + 'referenceType' => Filter::REFERENCE_FILTER + ] + ) + ) + ->will($this->returnValue($this->queryFilter)); + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => $filters + ] + ); + + $this->assertEquals($this->queryFilter, $mapper->getRootQuery()); + } + + /** + * @expectedException \Magento\Framework\Exception\StateException + */ + public function testGetFilterUsedStateException() + { + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_FILTER, + 'name' => 'someName', + 'filterReference' => [ + [ + 'ref' => 'someFilter' + ] + ] + ] + ], + 'rootQueryName' => self::ROOT_QUERY, + 'filters' => [ + 'someFilter' => [ + 'type' => FilterInterface::TYPE_BOOL, + 'name' => 'someName', + 'filterReference' => [ + [ + 'ref' => 'someFilter', + 'clause' => 'someClause' + ] + ] + ] + ], + 'aggregation' => [], + ] + ); + + $this->assertEquals($this->queryMatch, $mapper->getRootQuery()); + } + + /** + * @expectedException \InvalidArgumentException + * @expectedExceptionMessage Invalid filter type + */ + public function testGetFilterInvalidArgumentException() + { + $queries = [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_FILTER, + 'name' => 'someName', + 'filterReference' => [ + [ + 'ref' => 'someFilter' + ] + ] + ] + ]; + $filters = [ + 'someFilter' => [ + 'type' => 'invalid_type' + ] + ]; + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [], + 'filters' => $filters + ] + ); + + $this->assertEquals($this->queryFilter, $mapper->getRootQuery()); + } + + /** + * @expectedException \Exception + */ + public function testGetFilterException() + { + $queries = [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_FILTER, + 'name' => 'someName', + 'boost' => 3, + 'filterReference' => [ + [ + 'ref' => 'someQueryMatch', + 'clause' => 'someClause', + ] + ] + ] + ]; + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'filters' => [] + ] + ); + + $this->assertEquals($this->queryBool, $mapper->getRootQuery()); + } + + public function getQueryMatchProvider() + { + return [ + [ + [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_MATCH, + 'name' => 'someName', + 'boost' => 3, + 'match' => 'someMatches' + ] + ] + ], + [ + [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_MATCH, + 'name' => 'someName', + 'match' => 'someMatches' + ] + ] + ] + ]; + } + + public function getQueryFilterQueryReferenceProvider() + { + return [ + [ + [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_FILTER, + 'name' => 'someName', + 'boost' => 3, + 'queryReference' => [ + [ + 'ref' => 'someQueryMatch', + 'clause' => 'someClause', + ] + ] + ], + 'someQueryMatch' => [ + 'type' => QueryInterface::TYPE_MATCH, + 'name' => 'someName', + 'match' => 'someMatches' + ] + ] + ], + [ + [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_FILTER, + 'name' => 'someName', + 'queryReference' => [ + [ + 'ref' => 'someQueryMatch', + 'clause' => 'someClause', + ] + ] + ], + 'someQueryMatch' => [ + 'type' => QueryInterface::TYPE_MATCH, + 'name' => 'someName', + 'match' => 'someMatches' + ] + ] + ] + ]; + } + + public function getQueryBoolProvider() + { + return [ + [ + [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_BOOL, + 'name' => 'someName', + 'boost' => 3, + 'queryReference' => [ + [ + 'ref' => 'someQueryMatch', + 'clause' => 'someClause', + ] + ] + ], + 'someQueryMatch' => [ + 'type' => QueryInterface::TYPE_MATCH, + 'name' => 'someName', + 'match' => 'someMatches' + ] + ] + ], + [ + [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_BOOL, + 'name' => 'someName', + 'queryReference' => [ + [ + 'ref' => 'someQueryMatch', + 'clause' => 'someClause', + ] + ] + ], + 'someQueryMatch' => [ + 'type' => QueryInterface::TYPE_MATCH, + 'name' => 'someName', + 'match' => 'someMatches' + ] + ] + ] + ]; + } + + public function testGetBucketsTermBucket() + { + $queries = [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_MATCH, + 'name' => 'someName', + 'match' => 'someMatches' + ] + ]; + + $bucket = [ + "name" => "category_bucket", + "field" => "category", + "metric" => [ + ["type" => "sum"], + ["type" => "count"], + ["type" => "min"], + ["type" => "max"] + ], + "type" => "termBucket", + ]; + $metricClass = 'Magento\Framework\Search\Request\Aggregation\Metric'; + $bucketClass = 'Magento\Framework\Search\Request\Aggregation\TermBucket'; + $queryClass = 'Magento\Framework\Search\Request\Query\Match'; + $queryArguments = [ + 'name' => $queries[self::ROOT_QUERY]['name'], + 'boost' => 1, + 'matches' => $queries[self::ROOT_QUERY]['match'] + ]; + $arguments = [ + 'name' => $bucket['name'], + 'field' => $bucket['field'], + 'metrics' => [null, null, null, null], + ]; + $this->objectManager->expects($this->any())->method('create') + ->withConsecutive( + [$this->equalTo($queryClass), $this->equalTo($queryArguments)], + [$this->equalTo($metricClass), $this->equalTo(['type' => $bucket['metric'][0]['type']])], + [$this->equalTo($metricClass), $this->equalTo(['type' => $bucket['metric'][1]['type']])], + [$this->equalTo($metricClass), $this->equalTo(['type' => $bucket['metric'][2]['type']])], + [$this->equalTo($metricClass), $this->equalTo(['type' => $bucket['metric'][3]['type']])], + [$this->equalTo($bucketClass), $this->equalTo($arguments)] + ) + ->will($this->returnValue(null)); + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [$bucket] + ] + ); + $mapper->getBuckets(); + } + + public function testGetBucketsRangeBucket() + { + $queries = [ + self::ROOT_QUERY => [ + 'type' => QueryInterface::TYPE_MATCH, + 'name' => 'someName', + 'match' => 'someMatches' + ] + ]; + + $bucket = [ + "name" => "price_bucket", + "field" => "price", + "metric" => [ + ["type" => "sum"], + ["type" => "count"], + ["type" => "min"], + ["type" => "max"] + ], + "range" => [ + ["from" => "", "to" => "50"], + ["from" => "50", "to" => "100"], + ["from" => "100", "to" => ""], + ], + "type" => "rangeBucket", + ]; + $metricClass = 'Magento\Framework\Search\Request\Aggregation\Metric'; + $bucketClass = 'Magento\Framework\Search\Request\Aggregation\RangeBucket'; + $rangeClass = 'Magento\Framework\Search\Request\Aggregation\Range'; + $queryClass = 'Magento\Framework\Search\Request\Query\Match'; + $queryArguments = [ + 'name' => $queries[self::ROOT_QUERY]['name'], + 'boost' => 1, + 'matches' => $queries[self::ROOT_QUERY]['match'] + ]; + $arguments = [ + 'name' => $bucket['name'], + 'field' => $bucket['field'], + 'metrics' => [null, null, null, null], + 'ranges' => [null, null, null], + ]; + $this->objectManager->expects($this->any())->method('create') + ->withConsecutive( + [$this->equalTo($queryClass), $this->equalTo($queryArguments)], + [$this->equalTo($metricClass), $this->equalTo(['type' => $bucket['metric'][0]['type']])], + [$this->equalTo($metricClass), $this->equalTo(['type' => $bucket['metric'][1]['type']])], + [$this->equalTo($metricClass), $this->equalTo(['type' => $bucket['metric'][2]['type']])], + [$this->equalTo($metricClass), $this->equalTo(['type' => $bucket['metric'][3]['type']])], + [ + $this->equalTo($rangeClass), + $this->equalTo(['from' => $bucket['range'][0]['from'], 'to' => $bucket['range'][0]['to']]) + ], + [ + $this->equalTo($rangeClass), + $this->equalTo(['from' => $bucket['range'][1]['from'], 'to' => $bucket['range'][1]['to']]) + ], + [ + $this->equalTo($rangeClass), + $this->equalTo(['from' => $bucket['range'][2]['from'], 'to' => $bucket['range'][2]['to']]) + ], + [ + $this->equalTo($bucketClass), + $this->equalTo($arguments) + ] + ) + ->will($this->returnValue(null)); + + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ + $mapper = $this->helper->getObject( + 'Magento\Framework\Search\Request\Mapper', + [ + 'objectManager' => $this->objectManager, + 'queries' => $queries, + 'rootQueryName' => self::ROOT_QUERY, + 'aggregation' => [$bucket] + ] + ); + $mapper->getBuckets(); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Framework/Search/RequestFactoryTest.php b/dev/tests/unit/testsuite/Magento/Framework/Search/RequestFactoryTest.php index 2369f366626635df7ed392e1ba06bd78fce720d7..651ec06f746169cc9eb2d9c7adb46907f1fd454e 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/Search/RequestFactoryTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/Search/RequestFactoryTest.php @@ -56,7 +56,7 @@ class RequestFactoryTest extends \PHPUnit_Framework_TestCase ->getMock(); $this->factory = $helper->getObject( - '\Magento\Framework\Search\RequestFactory', + 'Magento\Framework\Search\RequestFactory', [ 'objectManager' => $this->objectManager, 'config' => $this->config @@ -72,9 +72,13 @@ class RequestFactoryTest extends \PHPUnit_Framework_TestCase 'queries' => ':str', 'filters' => 'f', 'query' => 'q', + 'aggregation' => 'a', 'index' => 'i', - 'from' => 1, - 'size' => 15 + 'from' => '1', + 'size' => '15', + 'demensions' => [ + 'name' => ['name' =>'', 'value' => ''] + ] ]; $mappedQuery = $configData['query'] . 'Mapped'; $this->config->expects($this->once())->method('get')->with($this->equalTo($requestName)) @@ -82,6 +86,7 @@ class RequestFactoryTest extends \PHPUnit_Framework_TestCase /** @var \Magento\Framework\Search\Request\Mapper|\PHPUnit_Framework_MockObject_MockObject $mapper */ $mapper = $this->getMockBuilder('Magento\Framework\Search\Request\Mapper') + ->setMethods(['getRootQuery', 'getBuckets']) ->disableOriginalConstructor() ->getMock(); @@ -97,12 +102,32 @@ class RequestFactoryTest extends \PHPUnit_Framework_TestCase [ 'objectManager' => $this->objectManager, 'queries' => $bindValues[':str'], + 'rootQueryName' => $configData['query'], + 'aggregation' => $configData['aggregation'], 'filters' => $configData['filters'] ] ) ) ->will($this->returnValue($mapper)); + + /** @var \Magento\Framework\Search\Request\Dimension|\PHPUnit_Framework_MockObject_MockObject $dimension */ + $dimension = $this->getMockBuilder('Magento\Framework\Search\Request\Dimension') + ->disableOriginalConstructor() + ->getMock(); + $this->objectManager->expects($this->at(1))->method('create') + ->with( + $this->equalTo('Magento\Framework\Search\Request\Dimension'), + $this->equalTo( + [ + 'name' => '', + 'value' => '', + ] + ) + ) + ->will($this->returnValue($dimension)); + + $this->objectManager->expects($this->at(2))->method('create') ->with( $this->equalTo('Magento\Framework\Search\Request'), $this->equalTo( @@ -112,14 +137,18 @@ class RequestFactoryTest extends \PHPUnit_Framework_TestCase 'from' => $configData['from'], 'size' => $configData['size'], 'query' => $mappedQuery, + 'demensions' => [ + 'name' => $dimension + ], 'buckets' => [], ] ) ) ->will($this->returnValue($request)); - $mapper->expects($this->once())->method('get')->with($this->equalTo($configData['query'])) + $mapper->expects($this->once())->method('getRootQuery') ->will($this->returnValue($mappedQuery)); + $mapper->expects($this->once())->method('getBuckets')->will($this->returnValue([])); $this->assertEquals($request, $this->factory->create($requestName, $bindValues)); } diff --git a/dev/tests/unit/testsuite/Magento/Framework/Search/SearchEngineTest.php b/dev/tests/unit/testsuite/Magento/Framework/Search/SearchEngineTest.php new file mode 100644 index 0000000000000000000000000000000000000000..2089b8da4ee51dacc60662cffeded79ae1c53d36 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Framework/Search/SearchEngineTest.php @@ -0,0 +1,80 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search; + +use Magento\TestFramework\Helper\ObjectManager; + +class SearchEngineTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Framework\Search\SearchEngine + */ + private $searchEngine; + + /** + * @var \Magento\Framework\Search\AdapterInterface |\PHPUnit_Framework_MockObject_MockObject + */ + private $adapter; + + protected function setUp() + { + $helper = new ObjectManager($this); + + $adapterFactory = $this->getMockBuilder('Magento\Framework\Search\AdapterFactory') + ->disableOriginalConstructor() + ->getMock(); + + $this->adapter = $this->getMockBuilder('Magento\Framework\Search\AdapterInterface') + ->disableOriginalConstructor() + ->getMock(); + + $adapterFactory->expects($this->once())->method('create')->will($this->returnValue($this->adapter)); + + $this->searchEngine = $helper->getObject( + 'Magento\Framework\Search\SearchEngine', + [ + 'adapterFactory' => $adapterFactory, + ] + ); + } + + public function testSearch() + { + $request = $this->getMockBuilder('Magento\Framework\Search\RequestInterface') + ->disableOriginalConstructor() + ->getMock(); + + $response = $this->getMockBuilder('Magento\Framework\Search\ResponseInterface') + ->disableOriginalConstructor() + ->getMock(); + + $this->adapter->expects($this->once()) + ->method('query') + ->with($this->equalTo($request)) + ->will($this->returnValue($response)); + + $result = $this->searchEngine->search($request); + $this->assertInstanceOf('Magento\Framework\Search\ResponseInterface', $result); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Framework/Session/ConfigTest.php b/dev/tests/unit/testsuite/Magento/Framework/Session/ConfigTest.php index 08ebe6346e6fb6bd50ce3d4063a4e9c7de4a6857..281a22b2fb13eb52207d8d75cb351da6b4a98691 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/Session/ConfigTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/Session/ConfigTest.php @@ -105,16 +105,6 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->config->setOptions(''); } - public function testSetOptionsWrongOption() - { - $this->setExpectedException( - '\InvalidArgumentException', - '"session.0" is not a valid sessions-related ini setting.' - ); - - $this->config->setOptions(array('lol')); - } - /** * @dataProvider optionsProvider */ @@ -168,30 +158,12 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->assertEquals($original, $this->config->toArray()); } - public function testHasOption() - { - $appStateProperty = new \ReflectionProperty('Magento\Framework\Session\Config', 'options'); - $appStateProperty->setAccessible(true); - $original = $appStateProperty->getValue($this->config); - $valueForTest = array('session.test' => 'test2'); - $appStateProperty->setValue($this->config, $valueForTest); - $this->assertTrue($this->config->hasOption('test')); - $this->assertFalse($this->config->hasOption('no_set')); - $appStateProperty->setValue($this->config, $original); - } - public function testNameIsMutable() { $this->config->setName('FOOBAR'); $this->assertEquals('FOOBAR', $this->config->getName()); } - public function testNameAltersIniSetting() - { - $this->config->setName('FOOBAR'); - $this->assertEquals('FOOBAR', ini_get('session.name')); - } - public function testSaveHandlerDefaultsToIniSettings() { $this->assertSame( @@ -207,23 +179,12 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->assertEquals('user', $this->config->getSaveHandler()); } - public function testCookieLifetimeDefaultsToIniSettings() - { - $this->assertSame((int)ini_get('session.cookie_lifetime'), $this->config->getCookieLifetime()); - } - public function testCookieLifetimeIsMutable() { $this->config->setCookieLifetime(20); $this->assertEquals(20, $this->config->getCookieLifetime()); } - public function testCookieLifetimeAltersIniSetting() - { - $this->config->setCookieLifetime(24); - $this->assertEquals(24, ini_get('session.cookie_lifetime')); - } - public function testCookieLifetimeCanBeZero() { $this->config->setCookieLifetime(0); @@ -266,18 +227,6 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->assertEquals($value, $this->config->getCookieSecure()); } - public function testCookieSecureAltersIniSetting() - { - $value = ini_get('session.cookie_secure') ? false : true; - $this->config->setCookieSecure($value); - $this->assertEquals($value, ini_get('session.cookie_secure')); - } - - public function testCookieDomainDefaultsToIniSettings() - { - $this->assertSame(ini_get('session.cookie_domain'), $this->config->getCookieDomain()); - } - public function testCookieDomainIsMutable() { $this->config->setCookieDomain('example.com'); @@ -290,12 +239,6 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->assertEquals('', $this->config->getCookieDomain()); } - public function testCookieDomainAltersIniSetting() - { - $this->config->setCookieDomain('localhost'); - $this->assertEquals('localhost', ini_get('session.cookie_domain')); - } - public function testSettingInvalidCookieDomainRaisesException() { $this->setExpectedException('\InvalidArgumentException', 'Invalid cookie domain: must be a string'); @@ -323,13 +266,6 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->assertEquals($value, $this->config->getCookieHttpOnly()); } - public function testCookieHttpOnlyAltersIniSetting() - { - $value = ini_get('session.cookie_httponly') ? false : true; - $this->config->setCookieHttpOnly($value); - $this->assertEquals($value, ini_get('session.cookie_httponly')); - } - public function testUseCookiesDefaultsToIniSettings() { $this->assertSame((bool)ini_get('session.use_cookies'), $this->config->getUseCookies()); @@ -342,13 +278,6 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->assertEquals($value, (bool)$this->config->getUseCookies()); } - public function testUseCookiesAltersIniSetting() - { - $value = ini_get('session.use_cookies') ? false : true; - $this->config->setUseCookies($value); - $this->assertEquals($value, (bool)ini_get('session.use_cookies')); - } - public function testUseOnlyCookiesDefaultsToIniSettings() { $this->assertSame((bool)ini_get('session.use_only_cookies'), $this->config->getUseOnlyCookies()); @@ -361,13 +290,6 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->assertEquals($value, (bool)$this->config->getOption('use_only_cookies')); } - public function testUseOnlyCookiesAltersIniSetting() - { - $value = ini_get('session.use_only_cookies') ? false : true; - $this->config->setOption('use_only_cookies', $value); - $this->assertEquals($value, (bool)ini_get('session.use_only_cookies')); - } - public function testRefererCheckDefaultsToIniSettings() { $this->assertSame(ini_get('session.referer_check'), $this->config->getRefererCheck()); @@ -385,15 +307,40 @@ class ConfigTest extends \PHPUnit_Framework_TestCase $this->assertEquals('', $this->config->getOption('referer_check')); } - public function testRefererCheckAltersIniSetting() - { - $this->config->setOption('referer_check', 'BARBAZ'); - $this->assertEquals('BARBAZ', ini_get('session.referer_check')); - } - public function testSetSavePath() { $this->config->setSavePath('some_save_path'); $this->assertEquals($this->config->getOption('save_path'), 'some_save_path'); } + + public function testSetLifetimePath() + { + $getValueReturnMap = [ + [ + 'test_web/test_cookie/test_cookie_lifetime', 'store', null, 7200 + ], + [ + 'web/cookie/cookie_path', 'store', null, '' + ], + ]; + + $this->_configMock + ->method('getValue') + ->will($this->returnValueMap($getValueReturnMap)); + + $config = new \Magento\Framework\Session\Config( + $this->_configMock, + $this->_stringHelperMock, + $this->_requestMock, + $this->_appState, + $this->_filesystem, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE, + \Magento\Framework\Session\SaveHandlerInterface::DEFAULT_HANDLER, + __DIR__, + null, + 'test_web/test_cookie/test_cookie_lifetime' + ); + + $this->assertEquals(7200, $config->getCookieLifetime()); + } } diff --git a/dev/tests/unit/testsuite/Magento/Framework/Session/SessionManagerTest.php b/dev/tests/unit/testsuite/Magento/Framework/Session/SessionManagerTest.php index d592e998ff3fd06d28ca6e9ddab7c9d4b5e0cac5..0c2c5cec0c9d28b8b2ea3289c875e9c5ef42e41a 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/Session/SessionManagerTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/Session/SessionManagerTest.php @@ -64,7 +64,6 @@ namespace Magento\Framework\Session { return call_user_func_array('\session_regenerate_id', func_get_args()); } - /** * Test SessionManager * @@ -89,6 +88,16 @@ namespace Magento\Framework\Session { */ private $mockSessionConfig; + /** + * @var \Magento\Framework\Stdlib\CookieManager | \PHPUnit_Framework_MockObject_MockObject + */ + private $mockCookieManager; + + /** + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory | \PHPUnit_Framework_MockObject_MockObject + */ + private $mockCookieMetadataFactory; + /** * @var bool */ @@ -101,9 +110,20 @@ namespace Magento\Framework\Session { $this->mockSessionConfig = $this->getMockBuilder('\Magento\Framework\Session\Config\ConfigInterface') ->disableOriginalConstructor() ->getMock(); - + $this->mockCookieManager = $this->getMockBuilder('\Magento\Framework\Stdlib\CookieManager') + ->disableOriginalConstructor() + ->getMock(); + $this->mockCookieMetadataFactory = $this->getMockBuilder( + 'Magento\Framework\Stdlib\Cookie\CookieMetadataFactory' + ) + ->disableOriginalConstructor() + ->getMock(); $this->objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); - $arguments = ['sessionConfig' => $this->mockSessionConfig]; + $arguments = [ + 'sessionConfig' => $this->mockSessionConfig, + 'cookieManager' => $this->mockCookieManager, + 'cookieMetadataFactory' => $this->mockCookieMetadataFactory + ]; $this->sessionManager = $this->objectManager->getObject( 'Magento\Framework\Session\SessionManager', $arguments diff --git a/dev/tests/unit/testsuite/Magento/Framework/Stdlib/Cookie/PublicCookieMetadataTest.php b/dev/tests/unit/testsuite/Magento/Framework/Stdlib/Cookie/PublicCookieMetadataTest.php index a9bc0f038ec3dd16b54d7e1bf8e098b4a55bb59f..fae8ba2ece24cdcf1eed6f745e8c0ecbfc6dd480 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/Stdlib/Cookie/PublicCookieMetadataTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/Stdlib/Cookie/PublicCookieMetadataTest.php @@ -66,7 +66,9 @@ class PublicCookieMetadataTest extends \PHPUnit_Framework_TestCase "getPath" => ["setPath", 'getPath', "path"], "getDuration" => ["setDuration", 'getDuration', 125], "getHttpOnly" => ["setHttpOnly", 'getHttpOnly', true], - "getSecure" => ["setSecure", 'getSecure', true] + "getSecure" => ["setSecure", 'getSecure', true], + "getDurationOneYear" => ["setDurationOneYear", 'getDuration', (3600*24*365)], ]; } + } diff --git a/dev/tests/unit/testsuite/Magento/Framework/UrlTest.php b/dev/tests/unit/testsuite/Magento/Framework/UrlTest.php index 1ab464ff6530344c2aca99f228b26b73b77979f9..c540d549706f37c31b76423e6bcf73ff2319f6f0 100644 --- a/dev/tests/unit/testsuite/Magento/Framework/UrlTest.php +++ b/dev/tests/unit/testsuite/Magento/Framework/UrlTest.php @@ -111,7 +111,8 @@ class UrlTest extends \PHPUnit_Framework_TestCase */ protected function getRequestMock($mockMethods = []) { - $interfaceMethods = array('getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam'); + $interfaceMethods = + ['getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam', 'getCookie']; return $this->getMock('Magento\Framework\App\RequestInterface', array_merge($interfaceMethods, $mockMethods)); } @@ -147,11 +148,11 @@ class UrlTest extends \PHPUnit_Framework_TestCase public function getCurrentUrlProvider() { - return array( - 'without_port' => array('', 'http://example.com/fancy_uri'), - 'default_port' => array(80, 'http://example.com/fancy_uri'), - 'custom_port' => array(8080, 'http://example.com:8080/fancy_uri') - ); + return [ + 'without_port' => ['', 'http://example.com/fancy_uri'], + 'default_port' => [80, 'http://example.com/fancy_uri'], + 'custom_port' => [8080, 'http://example.com:8080/fancy_uri'] + ]; } public function testGetUseSession() @@ -175,7 +176,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase $urlType = 'not-link'; $this->routeParamsResolverMock->expects($this->any())->method('getType')->will($this->returnValue($urlType)); $this->scopeMock->expects($this->once())->method('getBaseUrl')->will($this->returnValue($baseUrl)); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $baseUrlParams = ['_scope' => $this->scopeMock, '_type' => $urlType, '_secure' => true]; $this->assertEquals($baseUrl, $model->getBaseUrl($baseUrlParams)); @@ -207,7 +210,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase $urlType = \Magento\Framework\UrlInterface::URL_TYPE_LINK; $this->scopeMock->expects($this->once())->method('getBaseUrl')->will($this->returnValue($baseUrl)); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $this->routeParamsResolverMock->expects($this->any())->method('getType')->will($this->returnValue($urlType)); $this->routeParamsResolverMock->expects($this->any())->method('getRouteParams') ->will($this->returnValue(['id' => 100])); @@ -234,7 +239,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase ]); $model->setData('route_path', 'catalog/product/view'); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $this->assertEquals('catalog/product/view', $model->getUrl('catalog/product/view')); } @@ -248,7 +255,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase ]); $model->setData('route_name', 'catalog'); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $this->assertEquals('/product/view/', $model->getUrl('catalog/product/view')); } @@ -263,7 +272,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase 'request' => $this->getRequestMock(['isDirectAccessFrontendName', 'getAlias']), ]); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $this->assertEquals('/index/index/foo/bar/', $model->getUrl('catalog')); } @@ -280,7 +291,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase 'request' => $request, ]); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $this->assertEquals('/catalog/product/view/', $model->getUrl('catalog', ['_use_rewrite' => 1])); } @@ -318,14 +331,18 @@ class UrlTest extends \PHPUnit_Framework_TestCase $urlType = \Magento\Framework\UrlInterface::URL_TYPE_LINK; $this->scopeMock->expects($this->once())->method('getBaseUrl')->will($this->returnValue($baseUrl)); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $this->routeParamsResolverMock->expects($this->any())->method('getType')->will($this->returnValue($urlType)); $this->routeParamsResolverMock->expects($this->any())->method('getRouteParams') ->will($this->returnValue(['key' => 'value'])); $requestMock->expects($this->once())->method('isDirectAccessFrontendName')->will($this->returnValue(true)); $requestMock->expects($this->once())->method('getRequestedRouteName')->will($this->returnValue('catalog')); - $requestMock->expects($this->once())->method('getRequestedControllerName')->will($this->returnValue('product')); + $requestMock->expects($this->once()) + ->method('getRequestedControllerName') + ->will($this->returnValue('product')); $requestMock->expects($this->once())->method('getRequestedActionName')->will($this->returnValue('view')); $routeConfigMock->expects($this->once())->method('getRouteFrontName')->will($this->returnValue('catalog')); @@ -347,7 +364,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase $urlType = \Magento\Framework\UrlInterface::URL_TYPE_LINK; $this->scopeMock->expects($this->once())->method('getBaseUrl')->will($this->returnValue($baseUrl)); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $this->routeParamsResolverMock->expects($this->any())->method('getType')->will($this->returnValue($urlType)); $requestMock->expects($this->once())->method('isDirectAccessFrontendName')->will($this->returnValue(true)); @@ -390,7 +409,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase $this->routeParamsResolverMock->expects($this->once())->method('hasData')->with('secure_is_forced') ->will($this->returnValue(true)); $this->sidResolverMock->expects($this->never())->method('getSessionIdQueryParam'); - $this->queryParamsResolverMock->expects($this->once())->method('getQuery')->will($this->returnValue('foo=bar')); + $this->queryParamsResolverMock->expects($this->once()) + ->method('getQuery') + ->will($this->returnValue('foo=bar')); $this->assertEquals('http://example.com/?foo=bar', $model->getRedirectUrl('http://example.com/')); } @@ -407,7 +428,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue('session-id')); $this->sidResolverMock->expects($this->once())->method('getUseSessionVar')->will($this->returnValue(false)); $this->sidResolverMock->expects($this->once())->method('getSessionIdQueryParam'); - $this->queryParamsResolverMock->expects($this->once())->method('getQuery')->will($this->returnValue('foo=bar')); + $this->queryParamsResolverMock->expects($this->once()) + ->method('getQuery') + ->will($this->returnValue('foo=bar')); $this->assertEquals('http://example.com/?foo=bar', $model->getRedirectUrl('http://example.com/')); } @@ -496,13 +519,17 @@ class UrlTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue('http://localhost/')); $this->routeParamsResolverMock->expects($this->at(0))->method('hasData')->with('secure_is_forced') ->will($this->returnValue(false)); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $this->scopeMock->expects($this->once())->method('isUrlSecure')->will($this->returnValue(true)); $this->routeParamsResolverMock->expects($this->at(1))->method('hasData')->with('secure') ->will($this->returnValue(false)); $this->routeParamsResolverMock->expects($this->any())->method('getType') ->will($this->returnValue($urlType)); - $this->routeParamsResolverMock->expects($this->once())->method('getData')->will($this->returnValue($isSecure)); + $this->routeParamsResolverMock->expects($this->once()) + ->method('getData') + ->will($this->returnValue($isSecure)); $urlSecurityInfoMock->expects($this->exactly($isSecureCallCount))->method('isSecure') ->will($this->returnValue(false)); @@ -534,7 +561,8 @@ class UrlTest extends \PHPUnit_Framework_TestCase $this->scopeConfig->expects($this->any()) ->method('getValue') ->with( - 'web/secure/base_url_secure_forced', \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $this->scopeMock + 'web/secure/base_url_secure_forced', + \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $this->scopeMock ) ->will($this->returnValue('http://localhost/')); $this->routeParamsResolverMock->expects($this->once())->method('hasData')->with('secure_is_forced') @@ -542,7 +570,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase $this->routeParamsResolverMock->expects($this->once())->method('getData')->with('secure') ->will($this->returnValue(true)); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $this->assertEquals('http://localhost/', $model->getConfigData('base_url_secure_forced')); } @@ -559,10 +589,17 @@ class UrlTest extends \PHPUnit_Framework_TestCase 'scopeResolver' => $this->scopeResolverMock, 'routeParamsResolver' => $this->getRouteParamsResolver()] ); - $requestMock->expects($this->once())->method('getHttpHost')->will($this->returnValue('localhost')); - $this->scopeMock->expects($this->once())->method('getBaseUrl')->will($this->returnValue('http://localhost')); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); - $this->sidResolverMock->expects($this->never())->method('getSessionIdQueryParam'); + $requestMock->expects($this->once()) + ->method('getHttpHost') + ->will($this->returnValue('localhost')); + $this->scopeMock->expects($this->once()) + ->method('getBaseUrl') + ->will($this->returnValue('http://localhost')); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); + $this->sidResolverMock->expects($this->never()) + ->method('getSessionIdQueryParam'); $this->assertEquals($result, $model->sessionUrlVar($html)); } @@ -576,8 +613,12 @@ class UrlTest extends \PHPUnit_Framework_TestCase ); $requestMock->expects($this->once())->method('getHttpHost')->will($this->returnValue('localhost')); - $this->scopeMock->expects($this->once())->method('getBaseUrl')->will($this->returnValue('http://example.com')); - $this->scopeResolverMock->expects($this->any())->method('getScope')->will($this->returnValue($this->scopeMock)); + $this->scopeMock->expects($this->once()) + ->method('getBaseUrl') + ->will($this->returnValue('http://example.com')); + $this->scopeResolverMock->expects($this->any()) + ->method('getScope') + ->will($this->returnValue($this->scopeMock)); $this->sidResolverMock->expects($this->once())->method('getSessionIdQueryParam') ->will($this->returnValue('SID')); $this->sessionMock->expects($this->once())->method('getSessionId') diff --git a/dev/tests/unit/testsuite/Magento/PageCache/Model/App/FrontController/MessageBoxTest.php b/dev/tests/unit/testsuite/Magento/PageCache/Model/App/FrontController/MessageBoxTest.php index 26882499d5978218ad0be8cb1d2200e788de440a..dff4e4e7ef8b6c027b585ee26018cd61a6276c7a 100644 --- a/dev/tests/unit/testsuite/Magento/PageCache/Model/App/FrontController/MessageBoxTest.php +++ b/dev/tests/unit/testsuite/Magento/PageCache/Model/App/FrontController/MessageBoxTest.php @@ -23,6 +23,8 @@ */ namespace Magento\PageCache\Model\App\FrontController; +use Magento\TestFramework\Helper\ObjectManager; + /** * Class MessageBoxTest */ @@ -36,16 +38,25 @@ class MessageBoxTest extends \PHPUnit_Framework_TestCase protected $msgBox; /** - * @var \Magento\PageCache\Model\Config|\PHPUnit_Framework_MockObject_MockObject + * Cookie manager mock + * + * @var \Magento\Framework\Stdlib\CookieManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $cookieManagerMock; + + /** + * Public cookie metadata mock + * + * @var \Magento\Framework\Stdlib\Cookie\PublicCookieMetadata|\PHPUnit_Framework_MockObject_MockObject */ - protected $configMock; + protected $publicCookieMetadataMock; /** - * Cookie mock + * Cookie metadata factory mock * - * @var \Magento\Framework\Stdlib\Cookie|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory|\PHPUnit_Framework_MockObject_MockObject */ - protected $cookieMock; + protected $cookieMetadataFactoryMock; /** * Request mock @@ -69,23 +80,34 @@ class MessageBoxTest extends \PHPUnit_Framework_TestCase */ protected $responseMock; - /** - * Create cookie and request mock, version instance - */ public function setUp() { - $this->cookieMock = $this->getMock('Magento\Framework\Stdlib\Cookie', array(), array(), '', false); - $this->requestMock = $this->getMock('Magento\Framework\App\Request\Http', array('isPost'), array(), '', false); - $this->configMock = $this->getMock('Magento\PageCache\Model\Config', array('isEnabled'), array(), '', false); + $this->cookieManagerMock = $this->getMockBuilder('Magento\Framework\Stdlib\CookieManager') + ->disableOriginalConstructor() + ->getMock(); + $this->cookieMetadataFactoryMock = $this->getMockBuilder( + 'Magento\Framework\Stdlib\Cookie\CookieMetadataFactory' + )->disableOriginalConstructor() + ->getMock(); + $this->publicCookieMetadataMock = $this->getMockBuilder( + 'Magento\Framework\Stdlib\Cookie\PublicCookieMetadata' + )->disableOriginalConstructor() + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->getMock(); $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') ->disableOriginalConstructor() ->getMock(); - $this->msgBox = new MessageBox( - $this->cookieMock, - $this->requestMock, - $this->configMock, - $this->messageManagerMock + $this->msgBox = (new ObjectManager($this))->getObject( + 'Magento\PageCache\Model\App\FrontController\MessageBox', + [ + 'cookieManager' => $this->cookieManagerMock, + 'cookieMetadataFactory' => $this->cookieMetadataFactoryMock, + 'request' => $this->requestMock, + 'messageManager' => $this->messageManagerMock, + ] ); $this->objectMock = $this->getMock('Magento\Framework\App\FrontController', array(), array(), '', false); @@ -93,46 +115,49 @@ class MessageBoxTest extends \PHPUnit_Framework_TestCase } /** - * Handle private content message box cookie - * Set cookie if it is not set. - * Set or unset cookie on post request - * In all other cases do nothing. + * @param bool $isPost + * @param int $numOfCalls + * @dataProvider afterDispatchTestDataProvider */ - public function testAfterDispatch() + public function testAfterDispatch($isPost, $numOfCalls) { - $this->messageManagerMock->expects($this->once()) + $this->messageManagerMock->expects($this->exactly($numOfCalls)) ->method('hasMessages') ->will($this->returnValue(true)); $this->requestMock->expects($this->once()) ->method('isPost') - ->will($this->returnValue(true)); - $this->cookieMock->expects($this->once()) - ->method('set') + ->will($this->returnValue($isPost)); + $this->cookieMetadataFactoryMock->expects($this->exactly($numOfCalls)) + ->method('createPublicCookieMetadata') + ->will($this->returnValue($this->publicCookieMetadataMock)); + $this->publicCookieMetadataMock->expects(($this->exactly($numOfCalls))) + ->method('setDuration') + ->with(MessageBox::COOKIE_PERIOD) + ->will($this->returnValue($this->publicCookieMetadataMock)); + $this->publicCookieMetadataMock->expects(($this->exactly($numOfCalls))) + ->method('setPath') + ->with('/') + ->will($this->returnValue($this->publicCookieMetadataMock)); + $this->cookieManagerMock->expects($this->exactly($numOfCalls)) + ->method('setPublicCookie') ->with( - $this->equalTo(MessageBox::COOKIE_NAME), + MessageBox::COOKIE_NAME, 1, - $this->equalTo(MessageBox::COOKIE_PERIOD), - '/' + $this->publicCookieMetadataMock ); - $this->assertInstanceOf( - '\Magento\Framework\App\ResponseInterface', - $this->msgBox->afterDispatch($this->objectMock, $this->responseMock) - ); + $this->assertSame($this->responseMock, $this->msgBox->afterDispatch($this->objectMock, $this->responseMock)); } /** - * IF request is not POST + * Data provider + * + * @return array */ - public function testProcessNoPost() + public function afterDispatchTestDataProvider() { - $this->requestMock->expects($this->once()) - ->method('isPost') - ->will($this->returnValue(false)); - $this->messageManagerMock->expects($this->never()) - ->method('getMessages'); - $this->assertInstanceOf( - '\Magento\Framework\App\ResponseInterface', - $this->msgBox->afterDispatch($this->objectMock, $this->responseMock) - ); + return [ + [true, 1], + [false, 0], + ]; } } diff --git a/dev/tests/unit/testsuite/Magento/Persistent/Model/SessionTest.php b/dev/tests/unit/testsuite/Magento/Persistent/Model/SessionTest.php index cc748703207ff2970ee12e5e27dd4c01acb9dcf0..04d046fccae9e593ffc224cf2c462d2efa77e9f2 100644 --- a/dev/tests/unit/testsuite/Magento/Persistent/Model/SessionTest.php +++ b/dev/tests/unit/testsuite/Magento/Persistent/Model/SessionTest.php @@ -28,53 +28,80 @@ class SessionTest extends \PHPUnit_Framework_TestCase /** * @var \Magento\Persistent\Model\Session */ - protected $_model; + protected $session; /** * @var \Magento\Framework\Session\Config\ConfigInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $_configMock; + protected $configMock; /** - * @var \Magento\Framework\Stdlib\Cookie|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Stdlib\CookieManager |\PHPUnit_Framework_MockObject_MockObject */ - protected $_cookieMock; + protected $cookieManagerMock; + + /** + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory |\PHPUnit_Framework_MockObject_MockObject + */ + protected $cookieMetadataFactoryMock; protected function setUp() { $helper = new \Magento\TestFramework\Helper\ObjectManager($this); - $this->_configMock = $this->getMock('Magento\Framework\Session\Config\ConfigInterface'); - $this->_cookieMock = $this->getMock('Magento\Framework\Stdlib\Cookie', array(), array(), '', false); - $resourceMock = $this->getMockForAbstractClass('Magento\Framework\Model\Resource\Db\AbstractDb', - array(), '', false, false, true, - array('__wakeup', 'getIdFieldName', 'getConnection', 'beginTransaction', 'delete', 'commit', 'rollBack')); + $this->configMock = $this->getMock('Magento\Framework\Session\Config\ConfigInterface'); + $this->cookieManagerMock = $this->getMockBuilder('Magento\Framework\Stdlib\CookieManager') + ->disableOriginalConstructor() + ->getMock(); + $this->cookieMetadataFactoryMock = $this->getMockBuilder( + 'Magento\Framework\Stdlib\Cookie\CookieMetadataFactory' + )->disableOriginalConstructor() + ->getMock(); - $appStateMock = $this->getMock('Magento\Framework\App\State', array(), array(), '', false); - $eventDispatcherMock = $this->getMock( - 'Magento\Framework\Event\ManagerInterface', - array(), - array(), + $resourceMock = $this->getMockForAbstractClass( + 'Magento\Framework\Model\Resource\Db\AbstractDb', + [], '', false, - false + false, + true, + ['__wakeup', 'getIdFieldName', 'getConnection', 'beginTransaction', 'delete', 'commit', 'rollBack'] ); - $cacheManagerMock = $this->getMock('Magento\Framework\App\CacheInterface', array(), array(), '', false, false); - $loggerMock = $this->getMock('Magento\Framework\Logger', array(), array(), '', false); + $actionValidatorMock = $this->getMock( - '\Magento\Framework\Model\ActionValidator\RemoveAction', array(), array(), '', false + 'Magento\Framework\Model\ActionValidator\RemoveAction', + [], + [], + '', + false ); $actionValidatorMock->expects($this->any())->method('isAllowed')->will($this->returnValue(true)); - $context = new \Magento\Framework\Model\Context( - $loggerMock, $eventDispatcherMock, $cacheManagerMock, $appStateMock, $actionValidatorMock + $context = $helper->getObject( + 'Magento\Framework\Model\Context', + [ + 'actionValidator' => $actionValidatorMock, + ] + ); + + $this->session = $helper->getObject( + 'Magento\Persistent\Model\Session', + [ + 'sessionConfig' => $this->configMock, + 'cookieManager' => $this->cookieManagerMock, + 'context' => $context, + 'cookieMetadataFactory' => $this->cookieMetadataFactoryMock, + 'resource' => $resourceMock, + ] ); + } - $this->_model = $helper->getObject('Magento\Persistent\Model\Session', array( - 'sessionConfig' => $this->_configMock, - 'cookie' => $this->_cookieMock, - 'resource' => $resourceMock, - 'context' => $context - )); + public function testLoadByCookieKeyWithNull() + { + $this->cookieManagerMock->expects($this->once()) + ->method('getCookie') + ->with(\Magento\Persistent\Model\Session::COOKIE_NAME) + ->will($this->returnValue(null)); + $this->session->loadByCookieKey(null); } /** @@ -84,17 +111,112 @@ class SessionTest extends \PHPUnit_Framework_TestCase public function testAfterDeleteCommit() { $cookiePath = 'some_path'; - $this->_configMock->expects($this->once())->method('getCookiePath')->will($this->returnValue($cookiePath)); - $this->_cookieMock->expects( + $this->configMock->expects($this->once())->method('getCookiePath')->will($this->returnValue($cookiePath)); + $cookieMetadataMock = $this->getMockBuilder('Magento\Framework\Stdlib\Cookie\CookieMetadata') + ->disableOriginalConstructor() + ->getMock(); + $cookieMetadataMock->expects($this->once()) + ->method('setPath') + ->with($cookiePath) + ->will($this->returnSelf()); + $this->cookieMetadataFactoryMock->expects($this->once()) + ->method('createCookieMetadata') + ->will($this->returnValue($cookieMetadataMock)); + $this->cookieManagerMock->expects( $this->once() )->method( - 'set' + 'deleteCookie' )->with( \Magento\Persistent\Model\Session::COOKIE_NAME, - $this->anything(), - $this->anything(), - $cookiePath + $cookieMetadataMock ); - $this->_model->delete(); + $this->session->delete(); + } + + public function testSetPersistentCookie() + { + $cookiePath = 'some_path'; + $duration = 1000; + $key = 'sessionKey'; + $this->session->setKey($key); + $cookieMetadataMock = $this->getMockBuilder('Magento\Framework\Stdlib\Cookie\PublicCookieMetadata') + ->disableOriginalConstructor() + ->getMock(); + $cookieMetadataMock->expects($this->once()) + ->method('setPath') + ->with($cookiePath) + ->will($this->returnSelf()); + $cookieMetadataMock->expects($this->once()) + ->method('setDuration') + ->with($duration) + ->will($this->returnSelf()); + $this->cookieMetadataFactoryMock->expects($this->once()) + ->method('createPublicCookieMetadata') + ->will($this->returnValue($cookieMetadataMock)); + $this->cookieManagerMock->expects($this->once()) + ->method('setPublicCookie') + ->with( + \Magento\Persistent\Model\Session::COOKIE_NAME, + $key, + $cookieMetadataMock + ); + $this->session->setPersistentCookie($duration, $cookiePath); + } + + /** + * @param $numGetCookieCalls + * @param $numCalls + * @param int $cookieDuration + * @param string $cookieValue + * @param string $cookiePath + * @dataProvider renewPersistentCookieDataProvider + */ + public function testRenewPersistentCookie( + $numGetCookieCalls, + $numCalls, + $cookieDuration = 1000, + $cookieValue = 'cookieValue', + $cookiePath = 'cookiePath' + ) { + $cookieMetadataMock = $this->getMockBuilder('Magento\Framework\Stdlib\Cookie\PublicCookieMetadata') + ->disableOriginalConstructor() + ->getMock(); + $cookieMetadataMock->expects($this->exactly($numCalls)) + ->method('setPath') + ->with($cookiePath) + ->will($this->returnSelf()); + $cookieMetadataMock->expects($this->exactly($numCalls)) + ->method('setDuration') + ->with($cookieDuration) + ->will($this->returnSelf()); + $this->cookieMetadataFactoryMock->expects($this->exactly($numCalls)) + ->method('createPublicCookieMetadata') + ->will($this->returnValue($cookieMetadataMock)); + $this->cookieManagerMock->expects($this->exactly($numGetCookieCalls)) + ->method('getCookie') + ->with(\Magento\Persistent\Model\Session::COOKIE_NAME) + ->will($this->returnValue($cookieValue)); + $this->cookieManagerMock->expects($this->exactly($numCalls)) + ->method('setPublicCookie') + ->with( + \Magento\Persistent\Model\Session::COOKIE_NAME, + $cookieValue, + $cookieMetadataMock + ); + $this->session->renewPersistentCookie($cookieDuration, $cookiePath); + } + + /** + * Data provider for testRenewPersistentCookie + * + * @return array + */ + public function renewPersistentCookieDataProvider() + { + return [ + 'no duration' => [0, 0, null ], + 'no cookie' => [1, 0, 1000, null], + 'all' => [1, 1, ], + ]; } } diff --git a/dev/tests/unit/testsuite/Magento/Review/Controller/Adminhtml/Product/PostTest.php b/dev/tests/unit/testsuite/Magento/Review/Controller/Adminhtml/Product/PostTest.php index 0629194aa7e4f3477b57380c391432c198574ac0..c131a2f30aeb4f3b0c3edfa2f9ad1f69da33b9c8 100644 --- a/dev/tests/unit/testsuite/Magento/Review/Controller/Adminhtml/Product/PostTest.php +++ b/dev/tests/unit/testsuite/Magento/Review/Controller/Adminhtml/Product/PostTest.php @@ -139,7 +139,8 @@ class PostTest extends \PHPUnit_Framework_TestCase 'setModuleName', 'getActionName', 'setActionName', - 'getParam' + 'getParam', + 'getCookie' ); $this->_registryMock = $this->getMock('Magento\Framework\Registry', array(), array(), '', false); $this->_requestMock = $this->getMock( diff --git a/dev/tests/unit/testsuite/Magento/Rss/Model/RssTest.php b/dev/tests/unit/testsuite/Magento/Rss/Model/RssTest.php new file mode 100644 index 0000000000000000000000000000000000000000..a3c33b42eb10f2c6a322c1e5e1e035619bf1d07a --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Rss/Model/RssTest.php @@ -0,0 +1,55 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Rss\Model; + +use Magento\TestFramework\Helper\ObjectManager; + +class RssTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Rss\Model\Rss + */ + private $model; + + protected function setUp() + { + $helper = new ObjectManager($this); + + $this->model = $helper->getObject('Magento\Rss\Model\Rss'); + } + + public function testCreateRssXml() + { + $this->model->_addHeader(['title' => 'someTitle', 'link' => 'someLink', 'charset' => 'utf8']); + $result = $this->model->createRssXml(); + + $this->assertContains('<?xml version="1.0" encoding="utf8"?>', $result); + } + + public function testCreateRssXmlError() + { + $this->model->_addHeader(['test']); + $this->assertEquals('Error in processing xml. title key is missing', $this->model->createRssXml()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Block/Adminhtml/Items/Column/DefaultColumnTest.php b/dev/tests/unit/testsuite/Magento/Sales/Block/Adminhtml/Items/Column/DefaultColumnTest.php new file mode 100644 index 0000000000000000000000000000000000000000..6c6deeef03baca17198ddc1df15b2f2ae5be0d3b --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Block/Adminhtml/Items/Column/DefaultColumnTest.php @@ -0,0 +1,82 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Block\Adminhtml\Items\Column; + +use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper; + +class DefaultColumnTest extends \PHPUnit_Framework_TestCase +{ + /** @var ObjectManagerHelper */ + protected $objectManagerHelper; + + /** + * @var \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn + */ + protected $defaultColumn; + + /** + * @var \Magento\Sales\Model\Order\Item|\PHPUnit_Framework_MockObject_MockObject + */ + protected $itemMock; + + protected function setUp() + { + $this->objectManagerHelper = new ObjectManagerHelper($this); + $this->defaultColumn = $this->objectManagerHelper->getObject( + 'Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn' + ); + $this->itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods(['getRowTotal', 'getDiscountAmount', 'getBaseRowTotal', 'getBaseDiscountAmount', '__wakeup']) + ->getMock(); + } + + public function testGetTotalAmount() + { + $rowTotal = 10; + $discountAmount = 2; + $expectedResult = 8; + $this->itemMock->expects($this->once()) + ->method('getRowTotal') + ->will($this->returnValue($rowTotal)); + $this->itemMock->expects($this->once()) + ->method('getDiscountAmount') + ->will($this->returnValue($discountAmount)); + $this->assertEquals($expectedResult, $this->defaultColumn->getTotalAmount($this->itemMock)); + } + + public function testGetBaseTotalAmount() + { + $baseRowTotal = 10; + $baseDiscountAmount = 2; + $expectedResult = 8; + $this->itemMock->expects($this->once()) + ->method('getBaseRowTotal') + ->will($this->returnValue($baseRowTotal)); + $this->itemMock->expects($this->once()) + ->method('getBaseDiscountAmount') + ->will($this->returnValue($baseDiscountAmount)); + $this->assertEquals($expectedResult, $this->defaultColumn->getBaseTotalAmount($this->itemMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Block/Adminhtml/Order/Create/Items/GridTest.php b/dev/tests/unit/testsuite/Magento/Sales/Block/Adminhtml/Order/Create/Items/GridTest.php index b72f46f25625a59497b8688c72274eb3734bf94e..89b00655ed2927d5051c195eedb77ad5b63b335b 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Block/Adminhtml/Order/Create/Items/GridTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Block/Adminhtml/Order/Create/Items/GridTest.php @@ -33,6 +33,24 @@ class GridTest extends \PHPUnit_Framework_TestCase /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\CatalogInventory\Service\V1\StockItemService */ protected $stockItemService; + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Backend\Block\Template + */ + protected $priceRenderBlock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\View\Layout + */ + protected $layoutMock; + + /** + * @var \Magento\TestFramework\Helper\ObjectManager + */ + protected $objectManager; + + /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Model\Quote\Item */ + protected $itemMock; + /** * Initialize required data */ @@ -76,8 +94,8 @@ class GridTest extends \PHPUnit_Framework_TestCase false ); - $helper = new \Magento\TestFramework\Helper\ObjectManager($this); - $this->block = $helper->getObject( + $this->objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->block = $this->objectManager->getObject( 'Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid', array( 'wishlistFactory' => $wishlistFactoryMock, @@ -90,6 +108,21 @@ class GridTest extends \PHPUnit_Framework_TestCase 'stockItemService' => $this->stockItemService ) ); + + $this->priceRenderBlock = $this->getMockBuilder('\Magento\Backend\Block\Template') + ->disableOriginalConstructor() + ->setMethods(['setItem', 'toHtml']) + ->getMock(); + + $this->layoutMock = $this->getMockBuilder('\Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods(['getBlock']) + ->getMock(); + + $this->itemMock = $this->getMockBuilder('\Magento\Sales\Model\Quote\Item') + ->disableOriginalConstructor() + ->setMethods(['__wakeup']) + ->getMock(); } /** @@ -222,4 +255,88 @@ class GridTest extends \PHPUnit_Framework_TestCase $this->assertEquals('Message', $items[0]->getMessage()); $this->assertEquals(true, $this->block->getQuote()->getIsSuperMode()); } + + protected function getGrid() + { + /** @var \Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid $grid */ + $grid = $this->objectManager->getObject( + 'Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid', + array( + 'context' => $this->objectManager->getObject( + 'Magento\Backend\Block\Template\Context', + array('layout' => $this->layoutMock) + ) + ) + ); + + return $grid; + } + + public function testGetItemUnitPriceHtml() + { + $html = '$34.28'; + + $grid = $this->getGrid(); + + $this->layoutMock->expects($this->once()) + ->method('getBlock') + ->with('item_unit_price') + ->will($this->returnValue($this->priceRenderBlock)); + + $this->priceRenderBlock->expects($this->once()) + ->method('setItem') + ->with($this->itemMock); + + $this->priceRenderBlock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($html)); + + + $this->assertEquals($html, $grid->getItemUnitPriceHtml($this->itemMock)); + } + + public function testGetItemRowTotalHtml() + { + $html = '$34.28'; + + $grid = $this->getGrid(); + + $this->layoutMock->expects($this->once()) + ->method('getBlock') + ->with('item_row_total') + ->will($this->returnValue($this->priceRenderBlock)); + + $this->priceRenderBlock->expects($this->once()) + ->method('setItem') + ->with($this->itemMock); + + $this->priceRenderBlock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($html)); + + + $this->assertEquals($html, $grid->getItemRowTotalHtml($this->itemMock)); + } + public function testGetItemRowTotalWithDiscountHtml() + { + $html = '$34.28'; + + $grid = $this->getGrid(); + + $this->layoutMock->expects($this->once()) + ->method('getBlock') + ->with('item_row_total_with_discount') + ->will($this->returnValue($this->priceRenderBlock)); + + $this->priceRenderBlock->expects($this->once()) + ->method('setItem') + ->with($this->itemMock); + + $this->priceRenderBlock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($html)); + + + $this->assertEquals($html, $grid->getItemRowTotalWithDiscountHtml($this->itemMock)); + } } diff --git a/dev/tests/unit/testsuite/Magento/Sales/Block/Order/Email/Items/DefaultItemsTest.php b/dev/tests/unit/testsuite/Magento/Sales/Block/Order/Email/Items/DefaultItemsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..f6a884be43a5ea574b461e114a72f668ce718a98 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Block/Order/Email/Items/DefaultItemsTest.php @@ -0,0 +1,104 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Block\Order\Email\Items; + +class DefaultItemsTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Block\Order\Email\Items\DefaultItem + */ + protected $block; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Backend\Block\Template + */ + protected $priceRenderBlock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\View\Layout + */ + protected $layoutMock; + + /** + * @var \Magento\TestFramework\Helper\ObjectManager + */ + protected $objectManager; + + /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Model\Quote\Item */ + protected $itemMock; + + /** + * Initialize required data + */ + protected function setUp() + { + $this->objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + + $this->layoutMock = $this->getMockBuilder('\Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods(['getBlock']) + ->getMock(); + + $this->block = $this->objectManager->getObject( + 'Magento\Sales\Block\Order\Email\Items\DefaultItems', + array( + 'context' => $this->objectManager->getObject( + 'Magento\Backend\Block\Template\Context', + array('layout' => $this->layoutMock) + ) + ) + ); + + $this->priceRenderBlock = $this->getMockBuilder('\Magento\Backend\Block\Template') + ->disableOriginalConstructor() + ->setMethods(['setItem', 'toHtml']) + ->getMock(); + + $this->itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods(['__wakeup']) + ->getMock(); + } + + public function testGetItemPrice() + { + $html = '$34.28'; + + $this->layoutMock->expects($this->once()) + ->method('getBlock') + ->with('item_price') + ->will($this->returnValue($this->priceRenderBlock)); + + $this->priceRenderBlock->expects($this->once()) + ->method('setItem') + ->with($this->itemMock); + + $this->priceRenderBlock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($html)); + + + $this->assertEquals($html, $this->block->getItemPrice($this->itemMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Block/Order/Email/Items/Order/DefaultOrderTest.php b/dev/tests/unit/testsuite/Magento/Sales/Block/Order/Email/Items/Order/DefaultOrderTest.php new file mode 100644 index 0000000000000000000000000000000000000000..57eb9725fbf9fb8d0dfa7501fb5d7e5abbf63fb6 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Block/Order/Email/Items/Order/DefaultOrderTest.php @@ -0,0 +1,104 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Block\Order\Email\Items\Order; + +class DefaultOrderTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Block\Order\Email\Items\Order\DefaultOrder + */ + protected $block; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Backend\Block\Template + */ + protected $priceRenderBlock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\View\Layout + */ + protected $layoutMock; + + /** + * @var \Magento\TestFramework\Helper\ObjectManager + */ + protected $objectManager; + + /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Model\Quote\Item */ + protected $itemMock; + + /** + * Initialize required data + */ + protected function setUp() + { + $this->objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + + $this->layoutMock = $this->getMockBuilder('\Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods(['getBlock']) + ->getMock(); + + $this->block = $this->objectManager->getObject( + 'Magento\Sales\Block\Order\Email\Items\Order\DefaultOrder', + array( + 'context' => $this->objectManager->getObject( + 'Magento\Backend\Block\Template\Context', + array('layout' => $this->layoutMock) + ) + ) + ); + + $this->priceRenderBlock = $this->getMockBuilder('\Magento\Backend\Block\Template') + ->disableOriginalConstructor() + ->setMethods(['setItem', 'toHtml']) + ->getMock(); + + $this->itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods(['__wakeup']) + ->getMock(); + } + + public function testGetItemPrice() + { + $html = '$34.28'; + + $this->layoutMock->expects($this->once()) + ->method('getBlock') + ->with('item_price') + ->will($this->returnValue($this->priceRenderBlock)); + + $this->priceRenderBlock->expects($this->once()) + ->method('setItem') + ->with($this->itemMock); + + $this->priceRenderBlock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($html)); + + + $this->assertEquals($html, $this->block->getItemPrice($this->itemMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Block/Order/Item/Renderer/DefaultRendererTest.php b/dev/tests/unit/testsuite/Magento/Sales/Block/Order/Item/Renderer/DefaultRendererTest.php new file mode 100644 index 0000000000000000000000000000000000000000..9ed75ece652aa2eb6bc2d371a726a78b2ce36904 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Block/Order/Item/Renderer/DefaultRendererTest.php @@ -0,0 +1,182 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Block\Order\Item\Renderer; + +class DefaultRendererTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer + */ + protected $block; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Backend\Block\Template + */ + protected $priceRenderBlock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\View\Layout + */ + protected $layoutMock; + + /** + * @var \Magento\TestFramework\Helper\ObjectManager + */ + protected $objectManager; + + /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Model\Quote\Item */ + protected $itemMock; + + /** + * Initialize required data + */ + protected function setUp() + { + $this->objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + + $this->layoutMock = $this->getMockBuilder('\Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods(['getBlock']) + ->getMock(); + + $this->block = $this->objectManager->getObject( + 'Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer', + array( + 'context' => $this->objectManager->getObject( + 'Magento\Backend\Block\Template\Context', + array('layout' => $this->layoutMock) + ) + ) + ); + + $this->priceRenderBlock = $this->getMockBuilder('\Magento\Backend\Block\Template') + ->disableOriginalConstructor() + ->setMethods(['setItem', 'toHtml']) + ->getMock(); + + $itemMockMethods = [ + '__wakeup', + 'getRowTotal', + 'getTaxAmount', + 'getDiscountAmount', + 'getHiddenTaxAmount', + 'getWeeeTaxAppliedRowAmount' + ]; + $this->itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods($itemMockMethods) + ->getMock(); + } + + public function testGetItemPriceHtml() + { + $html = '$34.28'; + + $this->layoutMock->expects($this->once()) + ->method('getBlock') + ->with('item_unit_price') + ->will($this->returnValue($this->priceRenderBlock)); + + $this->priceRenderBlock->expects($this->once()) + ->method('setItem') + ->with($this->itemMock); + + $this->priceRenderBlock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($html)); + + + $this->assertEquals($html, $this->block->getItemPriceHtml($this->itemMock)); + } + + public function testGetItemRowTotalHtml() + { + $html = '$34.28'; + + $this->layoutMock->expects($this->once()) + ->method('getBlock') + ->with('item_row_total') + ->will($this->returnValue($this->priceRenderBlock)); + + $this->priceRenderBlock->expects($this->once()) + ->method('setItem') + ->with($this->itemMock); + + $this->priceRenderBlock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($html)); + + + $this->assertEquals($html, $this->block->getItemRowTotalHtml($this->itemMock)); + } + + public function testGetItemRowTotalAfterDiscountHtml() + { + $html = '$34.28'; + + $this->layoutMock->expects($this->once()) + ->method('getBlock') + ->with('item_row_total_after_discount') + ->will($this->returnValue($this->priceRenderBlock)); + + $this->priceRenderBlock->expects($this->once()) + ->method('setItem') + ->with($this->itemMock); + + $this->priceRenderBlock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($html)); + + + $this->assertEquals($html, $this->block->getItemRowTotalAfterDiscountHtml($this->itemMock)); + } + + public function testGetTotalAmount() + { + $rowTotal = 100; + $taxAmount = 10; + $hiddenTaxAmount = 2; + $discountAmount = 20; + $weeeTaxAppliedRowAmount = 10; + + $expectedResult = $rowTotal + $taxAmount + $hiddenTaxAmount - $discountAmount + $weeeTaxAppliedRowAmount; + $this->itemMock->expects($this->once()) + ->method('getRowTotal') + ->will($this->returnValue($rowTotal)); + $this->itemMock->expects($this->once()) + ->method('getTaxAmount') + ->will($this->returnValue($taxAmount)); + $this->itemMock->expects($this->once()) + ->method('getHiddenTaxAmount') + ->will($this->returnValue($hiddenTaxAmount)); + $this->itemMock->expects($this->once()) + ->method('getDiscountAmount') + ->will($this->returnValue($discountAmount)); + $this->itemMock->expects($this->once()) + ->method('getWeeeTaxAppliedRowAmount') + ->will($this->returnValue($weeeTaxAppliedRowAmount)); + + $this->assertEquals($expectedResult, $this->block->getTotalAmount($this->itemMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php new file mode 100644 index 0000000000000000000000000000000000000000..b56d65e0a069eb55f47d4a5b5d217a8d6da68e3c --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php @@ -0,0 +1,247 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Controller\Adminhtml\Creditmemo\AbstractCreditmemo; + +use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper; +use Magento\Framework\App\Action\Context; + +/** + * Class EmailTest + * + * @package Magento\Sales\Controller\Adminhtml\Creditmemo\AbstractCreditmemo + */ +class EmailTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var Email + */ + protected $creditmemoEmail; + + /** + * @var Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $context; + + /** + * @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $request; + + /** + * @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $response; + + /** + * @var \Magento\Framework\Message\Manager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManager; + + /** + * @var \Magento\Framework\ObjectManager\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManager; + + /** + * @var \Magento\Backend\Model\Session|\PHPUnit_Framework_MockObject_MockObject + */ + protected $session; + + /** + * @var \Magento\Framework\App\ActionFlag|\PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlag; + + /** + * @var \Magento\Backend\Helper\Data|\PHPUnit_Framework_MockObject_MockObject + */ + protected $helper; + + public function setUp() + { + $objectManagerHelper = new ObjectManagerHelper($this); + $this->context = $this->getMock( + 'Magento\Backend\App\Action\Context', + [ + 'getRequest', + 'getResponse', + 'getMessageManager', + 'getRedirect', + 'getObjectManager', + 'getSession', + 'getActionFlag', + 'getHelper' + ], + [], + '', + false + ); + $this->response = $this->getMock( + 'Magento\Framework\App\ResponseInterface', + ['setRedirect', 'sendResponse'], + [], + '', + false + ); + $this->request = $this->getMock( + 'Magento\Framework\App\RequestInterface', + ['isPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam', 'getCookie'], + [], + '', + false + ); + $this->objectManager = $this->getMock( + 'Magento\Framework\ObjectManager\ObjectManager', + ['create'], + [], + '', + false + ); + $this->messageManager = $this->getMock('Magento\Framework\Message\Manager', ['addSuccess'], [], '', false); + $this->session = $this->getMock('Magento\Backend\Model\Session', ['setIsUrlNotice'], [], '', false); + $this->actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', ['get'], [], '', false); + $this->helper = $this->getMock('\Magento\Backend\Helper\Data', ['getUrl'], [], '', false); + $this->context->expects($this->once()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManager)); + $this->context->expects($this->once()) + ->method('getRequest') + ->will($this->returnValue($this->request)); + $this->context->expects($this->once()) + ->method('getResponse') + ->will($this->returnValue($this->response)); + $this->context->expects($this->once()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManager)); + $this->context->expects($this->once()) + ->method('getSession') + ->will($this->returnValue($this->session)); + $this->context->expects($this->once()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlag)); + $this->context->expects($this->once()) + ->method('getHelper') + ->will($this->returnValue($this->helper)); + $this->creditmemoEmail = $objectManagerHelper->getObject( + 'Magento\Sales\Controller\Adminhtml\Creditmemo\AbstractCreditmemo\Email', + [ + 'context' => $this->context, + 'request' => $this->request, + 'response' => $this->response + ] + ); + } + + public function testEmail() + { + $cmId = 10000031; + $creditmemoClassName = 'Magento\Sales\Model\Order\Creditmemo'; + $cmNotifierClassName = 'Magento\Sales\Model\Order\CreditmemoNotifier'; + $creditmemo = $this->getMock($creditmemoClassName, ['load', '__wakeup'], [], '', false); + $cmNotifier = $this->getMock($cmNotifierClassName, ['notify', '__wakeup'], [], '', false); + + $this->request->expects($this->once()) + ->method('getParam') + ->with('creditmemo_id') + ->will($this->returnValue($cmId)); + $this->objectManager->expects($this->at(0)) + ->method('create') + ->with($creditmemoClassName) + ->will($this->returnValue($creditmemo)); + $creditmemo->expects($this->once()) + ->method('load') + ->with($cmId) + ->will($this->returnSelf()); + $this->objectManager->expects($this->at(1)) + ->method('create') + ->with($cmNotifierClassName) + ->will($this->returnValue($cmNotifier)); + $cmNotifier->expects($this->once()) + ->method('notify') + ->will($this->returnValue(true)); + $this->messageManager->expects($this->once()) + ->method('addSuccess') + ->with('We sent the message.'); + + $this->prepareRedirect($cmId); + + $this->creditmemoEmail->execute(); + $this->assertEquals($this->response, $this->creditmemoEmail->getResponse()); + } + + public function testEmailNoCreditmemoId() + { + $this->request->expects($this->once()) + ->method('getParam') + ->with('creditmemo_id') + ->will($this->returnValue(null)); + $this->assertNull($this->creditmemoEmail->execute()); + } + + public function testEmailNoCreditmemo() + { + $cmId = 10000031; + $creditmemoClassName = 'Magento\Sales\Model\Order\Creditmemo'; + $creditmemo = $this->getMock($creditmemoClassName, ['load', '__wakeup'], [], '', false); + + $this->request->expects($this->once()) + ->method('getParam') + ->with('creditmemo_id') + ->will($this->returnValue($cmId)); + $this->objectManager->expects($this->at(0)) + ->method('create') + ->with($creditmemoClassName) + ->will($this->returnValue($creditmemo)); + $creditmemo->expects($this->once()) + ->method('load') + ->with($cmId) + ->will($this->returnValue(null)); + + $this->assertNull($this->creditmemoEmail->execute()); + } + + /** + * @param int $cmId + */ + protected function prepareRedirect($cmId) + { + $this->actionFlag->expects($this->once()) + ->method('get') + ->with('', 'check_url_settings') + ->will($this->returnValue(true)); + $this->session->expects($this->once()) + ->method('setIsUrlNotice') + ->with(true); + $path = 'sales/order_creditmemo/view'; + $this->response->expects($this->once()) + ->method('setRedirect') + ->with($path . '/' . $cmId); + $this->helper->expects($this->atLeastOnce()) + ->method('getUrl') + ->with($path, ['creditmemo_id' => $cmId]) + ->will($this->returnValue($path . '/' . $cmId)); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..077fe2530211323d39e34f4e66afc2c443a89ef7 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php @@ -0,0 +1,254 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo; + +/** + * Class AddCommentTest + */ +class AddCommentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\AddComment + */ + protected $controller; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $loaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $senderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + public function setUp() + { + $titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Backend\Model\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $this->contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $this->contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $this->contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($titleMock)); + $this->contextMock->expects($this->any()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $this->loaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->senderMock = $this->getMockBuilder('Magento\Sales\Model\Order\Email\Sender\CreditmemoSender') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\AddComment( + $this->contextMock, + $this->loaderMock, + $this->senderMock + ); + } + + public function testExecuteModelException() + { + $message = 'Model exception'; + $e = new \Magento\Framework\Model\Exception($message); + $response = ['error' => true, 'message' => $message]; + + $this->requestMock->expects($this->any()) + ->method('setParam') + ->will($this->throwException($e)); + $helperMock = $this->getMockBuilder('Magento\Core\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $helperMock->expects($this->once()) + ->method('jsonEncode') + ->with($response) + ->willReturn(json_encode($response)); + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Core\Helper\Data') + ->willReturn($helperMock); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteException() + { + $message = 'Cannot add new comment.'; + $e = new \Exception($message); + $response = ['error' => true, 'message' => $message]; + + $this->requestMock->expects($this->any()) + ->method('setParam') + ->will($this->throwException($e)); + $helperMock = $this->getMockBuilder('Magento\Core\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $helperMock->expects($this->once()) + ->method('jsonEncode') + ->with($response) + ->willReturn(json_encode($response)); + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Core\Helper\Data') + ->willReturn($helperMock); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteNoComment() + { + $message = 'The Comment Text field cannot be empty.'; + $response = ['error' => true, 'message' => $message]; + $data = []; + + $helperMock = $this->getMockBuilder('Magento\Core\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $helperMock->expects($this->once()) + ->method('jsonEncode') + ->with($response) + ->willReturn(json_encode($response)); + + $this->requestMock->expects($this->once()) + ->method('getPost') + ->with('comment') + ->willReturn($data); + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Core\Helper\Data') + ->willReturn($helperMock); + + $this->assertNull($this->controller->execute()); + } + + public function testExecute() + { + $comment = 'Test comment'; + $data = ['comment' => $comment]; + $html = 'test output'; + + $this->requestMock->expects($this->once()) + ->method('getPost') + ->with('comment') + ->willReturn($data); + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $commentMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo\Comment') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $creditmemoMock->expects($this->once()) + ->method('addComment') + ->withAnyParameters() + ->willReturn($commentMock); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn($creditmemoMock); + $layoutMock = $this->getMockBuilder('Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $blockMock = $this->getMockBuilder('Magento\Sales\Block\Adminhtml\Order\Creditmemo\View\Comments') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $blockMock->expects($this->once()) + ->method('toHtml') + ->willReturn($html); + $layoutMock->expects($this->once()) + ->method('getBlock') + ->with('creditmemo_comments') + ->willReturn($blockMock); + $this->viewMock->expects($this->once()) + ->method('getLayout') + ->willReturn($layoutMock); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/CancelTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/CancelTest.php new file mode 100644 index 0000000000000000000000000000000000000000..d8f6b8053a93743a95fe0641b9a9eeac2c3ef10d --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/CancelTest.php @@ -0,0 +1,262 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo; + +/** + * Class CancelTest + */ +class CancelTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Cancel + */ + protected $controller; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $loaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + public function setUp() + { + $this->creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods(['getInvoice', 'getOrder', 'cancel', 'getId']) + ->getMock(); + $titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Backend\Model\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->helperMock = $this->getMockBuilder('Magento\Backend\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock->expects($this->any()) + ->method('getHelper') + ->will($this->returnValue($this->helperMock)); + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + $this->contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + $this->contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $this->contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $this->contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $this->contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($titleMock)); + $this->contextMock->expects($this->any()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $this->contextMock->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManagerMock)); + $this->loaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Cancel( + $this->contextMock, + $this->loaderMock + ); + } + + public function testExecuteModelException() + { + $message = 'Model exception'; + $e = new \Magento\Framework\Model\Exception($message); + + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->creditmemoMock->expects($this->once()) + ->method('cancel') + ->willThrowException($e); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn($this->creditmemoMock); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteException() + { + $message = 'Model exception'; + $e = new \Exception($message); + + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->creditmemoMock->expects($this->once()) + ->method('cancel') + ->willThrowException($e); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn($this->creditmemoMock); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteNoCreditmemo() + { + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn(false); + + $this->assertNull($this->controller->execute()); + } + + public function testExecute() + { + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn($this->creditmemoMock); + $transactionMock = $this->getMockBuilder('Magento\Framework\DB\Transaction') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Framework\DB\Transaction') + ->willReturn($transactionMock); + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->creditmemoMock->expects($this->any()) + ->method('getOrder') + ->willReturn($orderMock); + $this->creditmemoMock->expects($this->any()) + ->method('getInvoice') + ->willReturn($invoiceMock); + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with('The credit memo has been canceled.'); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..8dddadfad39512071c9a8adab58789a37cc0cdfc --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php @@ -0,0 +1,281 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo; + +/** + * Class NewActionTest + */ +class NewActionTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\NewAction + */ + protected $controller; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Backend\App\Action\Context + */ + protected $contextMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader + */ + protected $creditmemoLoaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\RequestInterface + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\ResponseInterface + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Model\Order\Creditmemo + */ + protected $creditmemoMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Model\Order\Invoice + */ + protected $invoiceMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\Action\Title + */ + protected $titleMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\ObjectManager + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Backend\Model\Session + */ + protected $backendSessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\ViewInterface + */ + protected $viewMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\View\LayoutInterface + */ + protected $layoutMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\View\Element\BlockInterface + */ + protected $blockMenuMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Backend\Model\Menu + */ + protected $modelMenuMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Backend\Model\Menu\Item + */ + protected $modelMenuItem; + + public function setUp() + { + $this->contextMock = $this->getMock('Magento\Backend\App\Action\Context', [], [], '', false); + $this->creditmemoLoaderMock = $this->getMock( + 'Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader', + ['setOrderId', 'setCreditmemoId', 'setCreditmemo', 'setInvoiceId', 'load'], + [], + '', + false + ); + $this->creditmemoMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo', + ['getInvoice', '__wakeup', 'setCommentText'], + [], + '', + false + ); + $this->invoiceMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice', + ['getIncrementId', '__wakeup'], + [], + '', + false + ); + $this->objectManagerMock = $this->getMockForAbstractClass( + 'Magento\Framework\ObjectManager', + [], + '', + false, + false, + true, + [] + ); + $this->requestMock = $this->getMockForAbstractClass( + 'Magento\Framework\App\RequestInterface', + [], + '', + false, + false, + true, + [] + ); + $this->responseMock = $this->getMockForAbstractClass( + 'Magento\Framework\App\ResponseInterface', + [], + '', + false, + false, + true, + [] + ); + $this->titleMock = $this->getMock('Magento\Framework\App\Action\Title', [], [], '', false); + $this->backendSessionMock = $this->getMock('Magento\Backend\Model\Session', ['getCommentText'], [], '', false); + $this->viewMock = $this->getMockForAbstractClass( + 'Magento\Framework\App\ViewInterface', + [], + '', + false, + false, + true, + [] + ); + $this->layoutMock = $this->getMockForAbstractClass( + 'Magento\Framework\View\LayoutInterface', + [], + '', + false, + false, + true, + [] + ); + $this->blockMenuMock = $this->getMock( + 'Magento\Backend\Block\Menu', + ['setActive', 'getMenuModel'], + [], + '', + false + ); + $this->modelMenuMock = $this->getMock('Magento\Backend\Model\Menu', ['getParentItems'], [], '', false); + $this->modelMenuItem = $this->getMock('Magento\Backend\Model\Menu\Item', [], [], '', false); + $this->contextMock->expects($this->once()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $this->contextMock->expects($this->once()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $this->contextMock->expects($this->once()) + ->method('getTitle') + ->will($this->returnValue($this->titleMock)); + $this->contextMock->expects($this->once()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $this->contextMock->expects($this->once()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $this->controller = new NewAction($this->contextMock, $this->creditmemoLoaderMock); + } + + /** + * test execute method + */ + public function testExecute() + { + $this->requestMock->expects($this->exactly(4)) + ->method('getParam') + ->will($this->returnValueMap([ + ['order_id', null, 'order_id'], + ['creditmemo_id', null, 'creditmemo_id'], + ['creditmemo', null, 'creditmemo'], + ['invoice_id', null, 'invoice_id'], + ])); + $this->creditmemoLoaderMock->expects($this->once()) + ->method('setOrderId') + ->with($this->equalTo('order_id')); + $this->creditmemoLoaderMock->expects($this->once()) + ->method('setCreditmemoId') + ->with($this->equalTo('creditmemo_id')); + $this->creditmemoLoaderMock->expects($this->once()) + ->method('setCreditmemo') + ->with($this->equalTo('creditmemo')); + $this->creditmemoLoaderMock->expects($this->once()) + ->method('setInvoiceId') + ->with($this->equalTo('invoice_id')); + $this->creditmemoLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->creditmemoMock)); + $this->creditmemoMock->expects($this->exactly(2)) + ->method('getInvoice') + ->will($this->returnValue($this->invoiceMock)); + $this->invoiceMock->expects($this->once()) + ->method('getIncrementId') + ->will($this->returnValue('invoice-increment-id')); + $this->titleMock->expects($this->exactly(3)) + ->method('add') + ->will($this->returnValueMap([ + ['Credit Memos', null], + ['New Memo for #invoice-increment-id', null], + ['item-title', null], + ])); + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with($this->equalTo('Magento\Backend\Model\Session')) + ->will($this->returnValue($this->backendSessionMock)); + $this->backendSessionMock->expects($this->once()) + ->method('getCommentText') + ->with($this->equalTo(true)) + ->will($this->returnValue('comment')); + $this->creditmemoMock->expects($this->once()) + ->method('setCommentText') + ->with($this->equalTo('comment')); + $this->viewMock->expects($this->once()) + ->method('loadLayout'); + $this->viewMock->expects($this->once()) + ->method('renderLayout'); + $this->viewMock->expects($this->once()) + ->method('getLayout') + ->will($this->returnValue($this->layoutMock)); + $this->layoutMock->expects($this->once()) + ->method('getBlock') + ->with($this->equalTo('menu')) + ->will($this->returnValue($this->blockMenuMock)); + $this->blockMenuMock->expects($this->once()) + ->method('setActive') + ->with($this->equalTo('Magento_Sales::sales_order')); + $this->blockMenuMock->expects($this->once()) + ->method('getMenuModel') + ->will($this->returnValue($this->modelMenuMock)); + $this->modelMenuMock->expects($this->once()) + ->method('getParentItems') + ->will($this->returnValue([$this->modelMenuItem])); + $this->modelMenuItem->expects($this->once()) + ->method('getTitle') + ->will($this->returnValue('item-title')); + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..01fb6bbe984af654eb5e4f032bce666e245ca5bd --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php @@ -0,0 +1,209 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo; + +/** + * Class PrintActionTest + */ +class PrintActionTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction + */ + protected $controller; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $loaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $fileFactoryMock; + + public function setUp() + { + $this->creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods(['getInvoice', 'getOrder', 'cancel', 'getId']) + ->getMock(); + $titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Backend\Model\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->helperMock = $this->getMockBuilder('Magento\Backend\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock->expects($this->any()) + ->method('getHelper') + ->will($this->returnValue($this->helperMock)); + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + $this->contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + $this->contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $this->contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $this->contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $this->contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($titleMock)); + $this->contextMock->expects($this->any()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $this->contextMock->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManagerMock)); + $this->loaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->fileFactoryMock = $this->getMockBuilder('Magento\Framework\App\Response\Http\FileFactory') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction( + $this->contextMock, + $this->fileFactoryMock, + $this->loaderMock + ); + } + + public function testExecuteModelException() + { + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->willReturn(1); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('creditmemo_id') + ->willReturn(1); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('creditmemo') + ->willReturn('some data'); + $this->requestMock->expects($this->at(3)) + ->method('getParam') + ->with('invoice_id') + ->willReturn(1); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn($this->creditmemoMock); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php new file mode 100644 index 0000000000000000000000000000000000000000..550e79e87cc238f830617cb00f4b7d0f7d457a46 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php @@ -0,0 +1,263 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo; + +/** + * Class UpdateQtyTest + */ +class UpdateQtyTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\UpdateQty + */ + protected $controller; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $loaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + public function setUp() + { + $this->creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods(['getInvoice', 'getOrder', 'cancel', 'getId']) + ->getMock(); + $titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Backend\Model\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->helperMock = $this->getMockBuilder('Magento\Backend\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock->expects($this->any()) + ->method('getHelper') + ->will($this->returnValue($this->helperMock)); + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + $this->contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + $this->contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $this->contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $this->contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $this->contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($titleMock)); + $this->contextMock->expects($this->any()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $this->contextMock->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManagerMock)); + $this->loaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\UpdateQty( + $this->contextMock, + $this->loaderMock + ); + } + + public function testExecuteModelException() + { + $message = 'Model exception'; + $e = new \Magento\Framework\Model\Exception($message); + $response = ['error' => true, 'message' => $message]; + + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willThrowException($e); + $helperMock = $this->getMockBuilder('Magento\Core\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $helperMock->expects($this->once()) + ->method('jsonEncode') + ->with($response) + ->willReturn(json_encode($response)); + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Core\Helper\Data') + ->willReturn($helperMock); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteException() + { + $message = 'Cannot update the item\'s quantity.'; + $e = new \Exception($message); + $response = ['error' => true, 'message' => $message]; + + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willThrowException($e); + $helperMock = $this->getMockBuilder('Magento\Core\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $helperMock->expects($this->once()) + ->method('jsonEncode') + ->with($response) + ->willReturn(json_encode($response)); + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Core\Helper\Data') + ->willReturn($helperMock); + + $this->assertNull($this->controller->execute()); + } + + public function testExecute() + { + $response = 'output'; + + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + + $layoutMock = $this->getMockBuilder('Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $blockMock = $this->getMockBuilder('Magento\Sales\Block\Order\Items') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $blockMock->expects($this->once()) + ->method('toHtml') + ->willReturn($response); + $layoutMock->expects($this->once()) + ->method('getBlock') + ->with('order_items') + ->willReturn($blockMock); + $this->viewMock->expects($this->once()) + ->method('getLayout') + ->willReturn($layoutMock); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/ViewTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/ViewTest.php new file mode 100644 index 0000000000000000000000000000000000000000..b5f4f3c74535479c2f056c302f2bf60dfac1df10 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/ViewTest.php @@ -0,0 +1,253 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo; + +/** + * Class ViewTest + */ +class ViewTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\View + */ + protected $controller; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $loaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceMock; + + public function setUp() + { + $this->invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods(['getInvoice', 'getOrder', 'cancel', 'getId']) + ->getMock(); + $titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Backend\Model\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->helperMock = $this->getMockBuilder('Magento\Backend\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock->expects($this->any()) + ->method('getHelper') + ->will($this->returnValue($this->helperMock)); + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + $this->contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + $this->contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $this->contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $this->contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $this->contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($titleMock)); + $this->contextMock->expects($this->any()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $this->contextMock->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManagerMock)); + $this->loaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\View( + $this->contextMock, + $this->loaderMock + ); + } + + public function testExecuteNoCreditMemo() + { + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn(false); + + $this->assertNull($this->controller->execute()); + } + + /** + * @dataProvider dataProviderForExecute + */ + public function testExecuteNoInvoice($invoice) + { + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn($this->creditmemoMock); + $this->creditmemoMock->expects($this->any()) + ->method('getInvoice') + ->willReturn($invoice); + + $layoutMock = $this->getMockBuilder('Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $blockMock = $this->getMockBuilder('Magento\Sales\Block\Adminhtml\Order\Creditmemo\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $blockMenuMock = $this->getMockBuilder('Magento\Backend\Block\Menu') + ->disableOriginalConstructor() + ->setMethods(['getMenuModel', 'setActive', 'getParentItems']) + ->getMock(); + $blockMenuMock->expects($this->any()) + ->method('getMenuModel') + ->willReturnSelf(); + $blockMenuMock->expects($this->any()) + ->method('getParentItems') + ->willReturn([]); + $layoutMock->expects($this->at(0)) + ->method('getBlock') + ->with('sales_creditmemo_view') + ->willReturn($blockMock); + $layoutMock->expects($this->at(1)) + ->method('getBlock') + ->with('menu') + ->willReturn($blockMenuMock); + $this->viewMock->expects($this->any()) + ->method('getLayout') + ->willReturn($layoutMock); + + $this->assertNull($this->controller->execute()); + } + + public function dataProviderForExecute() + { + return [ + [false], + [$this->invoiceMock] + ]; + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/VoidTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/VoidTest.php new file mode 100644 index 0000000000000000000000000000000000000000..dd37a95be9e8bfe5a8111f7ea0ae9da87abf0f81 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/VoidTest.php @@ -0,0 +1,271 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo; + +/** + * Class VoidTest + */ +class VoidTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\AddComment + */ + protected $controller; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $loaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $senderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + public function setUp() + { + $this->creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods(['getInvoice', 'getOrder', 'cancel', 'getId', 'void']) + ->getMock(); + $titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Backend\Model\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->helperMock = $this->getMockBuilder('Magento\Backend\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $this->contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $this->contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + $this->contextMock->expects($this->any()) + ->method('getHelper') + ->will($this->returnValue($this->helperMock)); + $this->contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + $this->contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $this->contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($titleMock)); + $this->contextMock->expects($this->any()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $this->contextMock->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManagerMock)); + $this->loaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->senderMock = $this->getMockBuilder('Magento\Sales\Model\Order\Email\Sender\CreditmemoSender') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Void( + $this->contextMock, + $this->loaderMock + ); + } + + public function testExecuteNoCreditmemo() + { + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn(false); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteModelException() + { + $message = 'Model exception'; + $e = new \Magento\Framework\Model\Exception($message); + + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->creditmemoMock->expects($this->once()) + ->method('void') + ->willThrowException($e); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn($this->creditmemoMock); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteException() + { + $message = 'Model exception'; + $e = new \Exception($message); + + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->creditmemoMock->expects($this->once()) + ->method('void') + ->willThrowException($e); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn($this->creditmemoMock); + + $this->assertNull($this->controller->execute()); + } + + public function testExecute() + { + $this->requestMock->expects($this->any()) + ->method('getParam') + ->withAnyParameters() + ->willReturnArgument(0); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn($this->creditmemoMock); + $transactionMock = $this->getMockBuilder('Magento\Framework\DB\Transaction') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Framework\DB\Transaction') + ->willReturn($transactionMock); + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->creditmemoMock->expects($this->any()) + ->method('getOrder') + ->willReturn($orderMock); + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->creditmemoMock->expects($this->any()) + ->method('getInvoice') + ->willReturn($invoiceMock); + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with('You voided the credit memo.'); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoaderTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoaderTest.php new file mode 100644 index 0000000000000000000000000000000000000000..ff9459bb1130fff6ad8279c5b8bf791e3e88407b --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoaderTest.php @@ -0,0 +1,274 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order; + +use Magento\Backend\App\Action; + +/** + * Class CreditmemoLoaderTest + */ +class CreditmemoLoaderTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader + */ + protected $loader; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoFactoryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $orderFactoryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceFactoryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $serviceOrderFactoryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $eventManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $registryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + public function setUp() + { + $data = []; + $this->creditmemoFactoryMock = $this->getMockBuilder('Magento\Sales\Model\Order\CreditmemoFactory') + ->disableOriginalConstructor() + ->setMethods(['create', 'get']) + ->getMock(); + $this->orderFactoryMock = $this->getMockBuilder('Magento\Sales\Model\OrderFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->invoiceFactoryMock = $this->getMockBuilder('Magento\Sales\Model\Order\InvoiceFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->serviceOrderFactoryMock = $this->getMockBuilder('Magento\Sales\Model\Service\OrderFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->eventManagerMock = $this->getMockBuilder('Magento\Framework\Event\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->registryMock = $this->getMockBuilder('Magento\Framework\Registry') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->helperMock = $this->getMockBuilder('Magento\CatalogInventory\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->loader = new \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader( + $this->creditmemoFactoryMock, + $this->orderFactoryMock, + $this->invoiceFactoryMock, + $this->serviceOrderFactoryMock, + $this->eventManagerMock, + $this->sessionMock, + $this->messageManagerMock, + $this->registryMock, + $this->helperMock, + $data + ); + } + + public function testLoadByCreditmemoId() + { + $this->loader->setCreditmemoId(1); + $this->loader->setOrderId(1); + $this->loader->setCreditmemo('test'); + + $creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $creditmemoMock->expects($this->once()) + ->method('load') + ->willReturnSelf(); + $this->creditmemoFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($creditmemoMock); + + $this->assertInstanceOf('Magento\Sales\Model\Order\Creditmemo', $this->loader->load()); + } + + public function testLoadCannotCreditmemo() + { + $this->loader->setCreditmemoId(0); + $this->loader->setOrderId(1); + $this->loader->setCreditmemo('test'); + $this->loader->setInvoiceId(1); + + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $orderMock->expects($this->once()) + ->method('load') + ->willReturnSelf(); + $orderMock->expects($this->once()) + ->method('getId') + ->willReturn(1); + $orderMock->expects($this->once()) + ->method('canCreditmemo') + ->willReturn(false); + $this->orderFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($orderMock); + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->any()) + ->method('load') + ->willReturnSelf(); + $invoiceMock->expects($this->any()) + ->method('setOrder') + ->willReturnSelf(); + $invoiceMock->expects($this->any()) + ->method('getId') + ->willReturn(1); + $this->invoiceFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($invoiceMock); + + $this->assertFalse($this->loader->load()); + } + + public function testLoadByOrder() + { + $qty = 1; + $data = ['items' => [1 => ['qty' => $qty, 'back_to_stock' => true]]]; + $this->loader->setCreditmemoId(0); + $this->loader->setOrderId(1); + $this->loader->setCreditmemo($data); + $this->loader->setInvoiceId(1); + + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $orderMock->expects($this->once()) + ->method('load') + ->willReturnSelf(); + $orderMock->expects($this->once()) + ->method('getId') + ->willReturn(1); + $orderMock->expects($this->once()) + ->method('canCreditmemo') + ->willReturn(true); + $this->orderFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($orderMock); + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->any()) + ->method('load') + ->willReturnSelf(); + $invoiceMock->expects($this->any()) + ->method('setOrder') + ->willReturnSelf(); + $invoiceMock->expects($this->any()) + ->method('getId') + ->willReturn(1); + $this->invoiceFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($invoiceMock); + $serviceOrder = $this->getMockBuilder('Magento\Sales\Model\Service\Order') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $orderItemMock = $this->getMockBuilder('Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $creditmemoItemMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo\Item') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $creditmemoItemMock->expects($this->any()) + ->method('getOrderItem') + ->willReturn($orderItemMock); + $items = [$creditmemoItemMock, $creditmemoItemMock, $creditmemoItemMock]; + $creditmemoMock->expects($this->any()) + ->method('getAllItems') + ->willReturn($items); + $serviceOrder->expects($this->any()) + ->method('prepareInvoiceCreditmemo') + ->willReturn($creditmemoMock); + $this->serviceOrderFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($serviceOrder); + + $this->assertInstanceOf('Magento\Sales\Model\Order\Creditmemo', $this->loader->load()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/EmailTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/EmailTest.php new file mode 100644 index 0000000000000000000000000000000000000000..a14e60ea6b1c76da9539d17c3e155cbfed0a87d7 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/EmailTest.php @@ -0,0 +1,260 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Controller\Adminhtml\Order; + +use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper; +use Magento\Framework\App\Action\Context; + +/** + * Class EmailTest + * + * @package Magento\Sales\Controller\Adminhtml\Order + */ +class EmailTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var Email + */ + protected $orderEmail; + + /** + * @var Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $context; + + /** + * @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $request; + + /** + * @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $response; + + /** + * @var \Magento\Framework\Message\Manager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManager; + + /** + * @var \Magento\Framework\ObjectManager\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManager; + + /** + * @var \Magento\Backend\Model\Session|\PHPUnit_Framework_MockObject_MockObject + */ + protected $session; + + /** + * @var \Magento\Framework\App\ActionFlag|\PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlag; + + /** + * @var \Magento\Backend\Helper\Data|\PHPUnit_Framework_MockObject_MockObject + */ + protected $helper; + + public function setUp() + { + $objectManagerHelper = new ObjectManagerHelper($this); + $this->context = $this->getMock( + 'Magento\Backend\App\Action\Context', + [ + 'getRequest', + 'getResponse', + 'getMessageManager', + 'getRedirect', + 'getObjectManager', + 'getSession', + 'getActionFlag', + 'getHelper' + ], + [], + '', + false + ); + $this->response = $this->getMock( + 'Magento\Framework\App\ResponseInterface', + ['setRedirect', 'sendResponse'], + [], + '', + false + ); + $this->request = $this->getMock( + 'Magento\Framework\App\RequestInterface', + ['isPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam', 'getCookie'], + [], + '', + false + ); + $this->objectManager = $this->getMock( + 'Magento\Framework\ObjectManager\ObjectManager', + ['create'], + [], + '', + false + ); + $this->messageManager = $this->getMock( + 'Magento\Framework\Message\Manager', + ['addSuccess', 'addError'], + [], + '', + false + ); + $this->session = $this->getMock('Magento\Backend\Model\Session', ['setIsUrlNotice'], [], '', false); + $this->actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', ['get', 'set'], [], '', false); + $this->helper = $this->getMock('\Magento\Backend\Helper\Data', ['getUrl'], [], '', false); + $this->context->expects($this->once()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManager)); + $this->context->expects($this->once()) + ->method('getRequest') + ->will($this->returnValue($this->request)); + $this->context->expects($this->once()) + ->method('getResponse') + ->will($this->returnValue($this->response)); + $this->context->expects($this->once()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManager)); + $this->context->expects($this->once()) + ->method('getSession') + ->will($this->returnValue($this->session)); + $this->context->expects($this->once()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlag)); + $this->context->expects($this->once()) + ->method('getHelper') + ->will($this->returnValue($this->helper)); + $this->orderEmail = $objectManagerHelper->getObject( + 'Magento\Sales\Controller\Adminhtml\Order\Email', + [ + 'context' => $this->context, + 'request' => $this->request, + 'response' => $this->response + ] + ); + } + + public function testEmail() + { + $orderId = 10000031; + $orderClassName = 'Magento\Sales\Model\Order'; + $orderNotifierClassName = 'Magento\Sales\Model\OrderNotifier'; + $order = $this->getMock($orderClassName, ['load', 'getId', '__wakeup'], [], '', false); + $cmNotifier = $this->getMock($orderNotifierClassName, ['notify', '__wakeup'], [], '', false); + + $this->request->expects($this->once()) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->objectManager->expects($this->at(0)) + ->method('create') + ->with($orderClassName) + ->will($this->returnValue($order)); + $order->expects($this->once()) + ->method('load') + ->with($orderId) + ->will($this->returnSelf()); + $order->expects($this->atLeastOnce()) + ->method('getId') + ->will($this->returnValue($orderId)); + $this->objectManager->expects($this->at(1)) + ->method('create') + ->with($orderNotifierClassName) + ->will($this->returnValue($cmNotifier)); + $cmNotifier->expects($this->once()) + ->method('notify') + ->will($this->returnValue(true)); + $this->messageManager->expects($this->once()) + ->method('addSuccess') + ->with('You sent the order email.'); + $path = 'sales/order/view'; + $arguments = ['order_id' => $orderId]; + $this->prepareRedirect($path, $arguments, 0); + + $this->orderEmail->execute(); + $this->assertEquals($this->response, $this->orderEmail->getResponse()); + } + + public function testEmailNoOrderId() + { + $orderClassName = 'Magento\Sales\Model\Order'; + $order = $this->getMock($orderClassName, ['load', 'getId', '__wakeup'], [], '', false); + $this->request->expects($this->once()) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue(null)); + + $this->objectManager->expects($this->at(0)) + ->method('create') + ->with($orderClassName) + ->will($this->returnValue($order)); + $order->expects($this->once()) + ->method('load') + ->with(null) + ->will($this->returnSelf()); + $this->messageManager->expects($this->once()) + ->method('addError') + ->with('This order no longer exists.'); + + $this->actionFlag->expects($this->once()) + ->method('set') + ->with('', 'no-dispatch', true) + ->will($this->returnValue(true)); + $path = 'sales/*/'; + $this->prepareRedirect($path, [], 0); + + $this->assertNull($this->orderEmail->execute()); + } + + /** + * @param string $path + * @param array $arguments + * @param int $index + */ + protected function prepareRedirect($path, $arguments, $index) + { + $this->actionFlag->expects($this->any()) + ->method('get') + ->with('', 'check_url_settings') + ->will($this->returnValue(true)); + $this->session->expects($this->any()) + ->method('setIsUrlNotice') + ->with(true); + + $url = $path . '/' . (!empty($arguments) ? $arguments['order_id'] : ''); + $this->helper->expects($this->at($index)) + ->method('getUrl') + ->with($path, $arguments) + ->will($this->returnValue($url)); + $this->response->expects($this->at($index)) + ->method('setRedirect') + ->with($url); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddCommentTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddCommentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..4bf524f2f63c50293da0273668b235e93f94727b --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddCommentTest.php @@ -0,0 +1,257 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Invoice; + +use Magento\Backend\App\Action; + +/** + * Class AddCommentTest + * @package Magento\Sales\Controller\Adminhtml\Order\Invoice + */ +class AddCommentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceLoaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $commentSenderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Invoice\AddComment + */ + protected $controller; + + public function setUp() + { + $titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Backend\Model\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($titleMock)); + $contextMock->expects($this->any()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + + $this->invoiceLoaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->commentSenderMock = $this->getMockBuilder('Magento\Sales\Model\Order\Email\Sender\InvoiceCommentSender') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Invoice\AddComment( + $contextMock, + $this->invoiceLoaderMock, + $this->commentSenderMock + ); + } + + public function testExecute() + { + $data = ['comment' => 'test comment']; + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + $response = 'some result'; + + $this->requestMock->expects($this->once()) + ->method('getPost') + ->with('comment') + ->will($this->returnValue($data)); + $this->requestMock->expects($this->at(3)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(4)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(5)) + ->method('getParam') + ->with('invoice', []) + ->will($this->returnValue($invoiceData)); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('addComment') + ->with($data['comment'], false, false); + $invoiceMock->expects($this->once()) + ->method('save'); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $commentsBlockMock = $this->getMockBuilder('Magento\Sales\Block\Adminhtml\Order\Invoice\View\Comments') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $commentsBlockMock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($response)); + + $layoutMock = $this->getMockBuilder('Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $layoutMock->expects($this->once()) + ->method('getBlock') + ->with('invoice_comments') + ->will($this->returnValue($commentsBlockMock)); + + $this->viewMock->expects($this->any()) + ->method('getLayout') + ->will($this->returnValue($layoutMock)); + + $this->commentSenderMock->expects($this->once()) + ->method('send') + ->with($invoiceMock, false, $data['comment']); + + $this->responseMock->expects($this->once()) + ->method('setBody') + ->with($response); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteModelException() + { + $message = 'model exception'; + $response = ['error' => true, 'message' => $message]; + $e = new \Magento\Framework\Model\Exception($message); + + $this->requestMock->expects($this->once()) + ->method('getParam') + ->will($this->throwException($e)); + + $helperMock = $this->getMockBuilder('Magento\Core\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $helperMock->expects($this->once()) + ->method('jsonEncode') + ->with($response) + ->will($this->returnValue(json_encode($response))); + + $this->responseMock->expects($this->once()) + ->method('representJson') + ->with(json_encode($response)); + + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Core\Helper\Data') + ->will($this->returnValue($helperMock)); + $this->assertNull($this->controller->execute()); + } + + public function testExecuteException() + { + $response = ['error' => true, 'message' => 'Cannot add new comment.']; + $e = new \Exception('test'); + + $this->requestMock->expects($this->once()) + ->method('getParam') + ->will($this->throwException($e)); + + $helperMock = $this->getMockBuilder('Magento\Core\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $helperMock->expects($this->once()) + ->method('jsonEncode') + ->with($response) + ->will($this->returnValue(json_encode($response))); + + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Core\Helper\Data') + ->will($this->returnValue($helperMock)); + + $this->responseMock->expects($this->once()) + ->method('representJson') + ->with(json_encode($response)); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/CancelTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/CancelTest.php new file mode 100644 index 0000000000000000000000000000000000000000..1f5b91328c61c26c6d62b3a10585d24810fd3134 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/CancelTest.php @@ -0,0 +1,327 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Invoice; + +use Magento\Backend\App\Action; + +/** + * Class CancelTest + * @package Magento\Sales\Controller\Adminhtml\Order\Invoice + */ +class CancelTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceLoaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Invoice\Cancel + */ + protected $controller; + + public function setUp() + { + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->helperMock = $this->getMockBuilder('Magento\Backend\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $contextMock->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManagerMock)); + $contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + $contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + $contextMock->expects($this->any()) + ->method('getHelper') + ->will($this->returnValue($this->helperMock)); + + $this->invoiceLoaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Invoice\Cancel( + $contextMock, + $this->invoiceLoaderMock + ); + } + + public function testExecute() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods(['setIsInProcess']) + ->getMock(); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('cancel'); + $invoiceMock->expects($this->any()) + ->method('getOrder') + ->will($this->returnValue($orderMock)); + + $transactionMock = $this->getMockBuilder('Magento\Framework\DB\Transaction') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $transactionMock->expects($this->at(0)) + ->method('addObject') + ->with($invoiceMock) + ->will($this->returnSelf()); + $transactionMock->expects($this->at(1)) + ->method('addObject') + ->with($orderMock) + ->will($this->returnSelf()); + $transactionMock->expects($this->at(2)) + ->method('save'); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with('You canceled the invoice.'); + + $this->objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Framework\DB\Transaction') + ->will($this->returnValue($transactionMock)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteNoInvoice() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue(false)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteModelException() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $message = 'model exception'; + $e = new \Magento\Framework\Model\Exception($message); + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('cancel') + ->will($this->throwException($e)); + + $this->messageManagerMock->expects($this->once()) + ->method('addError') + ->with($message); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteException() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $message = 'Invoice canceling error'; + $e = new \Exception($message); + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('cancel') + ->will($this->throwException($e)); + + $this->messageManagerMock->expects($this->once()) + ->method('addError') + ->with($message); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/CaptureTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/CaptureTest.php new file mode 100644 index 0000000000000000000000000000000000000000..acaf5a8db42be9b73e28fc59c7d5f65c01824af6 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/CaptureTest.php @@ -0,0 +1,327 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Invoice; + +use Magento\Backend\App\Action; + +/** + * Class CaptureTest + * @package Magento\Sales\Controller\Adminhtml\Order\Invoice + */ +class CaptureTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceLoaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Invoice\Capture + */ + protected $controller; + + public function setUp() + { + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->helperMock = $this->getMockBuilder('Magento\Backend\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $contextMock->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManagerMock)); + $contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + $contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + $contextMock->expects($this->any()) + ->method('getHelper') + ->will($this->returnValue($this->helperMock)); + + $this->invoiceLoaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Invoice\Capture( + $contextMock, + $this->invoiceLoaderMock + ); + } + + public function testExecute() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods(['setIsInProcess']) + ->getMock(); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('capture'); + $invoiceMock->expects($this->any()) + ->method('getOrder') + ->will($this->returnValue($orderMock)); + + $transactionMock = $this->getMockBuilder('Magento\Framework\DB\Transaction') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $transactionMock->expects($this->at(0)) + ->method('addObject') + ->with($invoiceMock) + ->will($this->returnSelf()); + $transactionMock->expects($this->at(1)) + ->method('addObject') + ->with($orderMock) + ->will($this->returnSelf()); + $transactionMock->expects($this->at(2)) + ->method('save'); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with('The invoice has been captured.'); + + $this->objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Framework\DB\Transaction') + ->will($this->returnValue($transactionMock)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteNoInvoice() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue(false)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteModelException() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $message = 'model exception'; + $e = new \Magento\Framework\Model\Exception($message); + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('capture') + ->will($this->throwException($e)); + + $this->messageManagerMock->expects($this->once()) + ->method('addError') + ->with($message); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteException() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $message = 'Invoice capturing error'; + $e = new \Exception($message); + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('capture') + ->will($this->throwException($e)); + + $this->messageManagerMock->expects($this->once()) + ->method('addError') + ->with($message); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewActionTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewActionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..f0779b82e778482ecfdb4d83541e41d80f3e6e98 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewActionTest.php @@ -0,0 +1,254 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Invoice; + +/** + * Class NewActionTest + * @package Magento\Sales\Controller\Adminhtml\Order\Invoice + */ +class NewActionTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceLoaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Invoice\NewAction + */ + protected $controller; + + public function setUp() + { + $titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Backend\Model\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->helperMock = $this->getMockBuilder('Magento\Backend\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods(['getCommentText', 'setIsUrlNotice']) + ->getMock(); + + $contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($titleMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $contextMock->expects($this->any()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + $contextMock->expects($this->any()) + ->method('getHelper') + ->will($this->returnValue($this->helperMock)); + $contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + + $this->invoiceLoaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Invoice\NewAction( + $contextMock, + $this->invoiceLoaderMock + ); + } + + public function testExecute() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + $commentText = 'comment test'; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice', []) + ->will($this->returnValue($invoiceData)); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $menuBlockMock = $this->getMockBuilder('Magento\Backend\Block\Menu') + ->disableOriginalConstructor() + ->setMethods(['getParentItems', 'getMenuModel']) + ->getMock(); + $menuBlockMock->expects($this->any()) + ->method('getMenuModel') + ->will($this->returnSelf()); + $menuBlockMock->expects($this->any()) + ->method('getParentItems') + ->with('Magento_Sales::sales_order') + ->will($this->returnValue([])); + + $layoutMock = $this->getMockBuilder('Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $layoutMock->expects($this->once()) + ->method('getBlock') + ->with('menu') + ->will($this->returnValue($menuBlockMock)); + + $this->viewMock->expects($this->once()) + ->method('getLayout') + ->will($this->returnValue($layoutMock)); + + $this->sessionMock->expects($this->once()) + ->method('getCommentText') + ->with(true) + ->will($this->returnValue($commentText)); + + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Backend\Model\Session') + ->will($this->returnValue($this->sessionMock)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteNoInvoice() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice', []) + ->will($this->returnValue($invoiceData)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue(false)); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/PrintActionTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/PrintActionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..52e2e5feb82e5fcb5bf5008cb35b12c6538d6688 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/PrintActionTest.php @@ -0,0 +1,149 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Invoice; + +use Magento\Backend\App\Action; + +/** + * Class PrintActionTest + * @package Magento\Sales\Controller\Adminhtml\Order\Invoice + */ +class PrintActionTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceLoaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $fileFactory; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Invoice\PrintAction + */ + protected $controller; + + public function setUp() + { + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + $contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + + $this->invoiceLoaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->fileFactory = $this->getMockBuilder('Magento\Framework\App\Response\Http\FileFactory') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Invoice\PrintAction( + $contextMock, + $this->fileFactory, + $this->invoiceLoaderMock + ); + } + + public function testExecute() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice', []) + ->will($this->returnValue($invoiceData)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php new file mode 100644 index 0000000000000000000000000000000000000000..b398a1e8c9264ee1a062889c4cc48fad654c4fd1 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php @@ -0,0 +1,247 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Invoice; + +use Magento\Backend\App\Action; + +/** + * Class UpdateQtyTest + * @package Magento\Sales\Controller\Adminhtml\Order\Invoice + */ +class UpdateQtyTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceLoaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $titleMock; + + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Invoice\UpdateQty + */ + protected $controller; + + public function setUp() + { + $this->titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->viewMock = $this->getMockBuilder('Magento\Backend\Model\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($this->titleMock)); + $contextMock->expects($this->any()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + + $this->invoiceLoaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Invoice\UpdateQty( + $contextMock, + $this->invoiceLoaderMock + ); + } + + public function testExecute() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = ['comment_text' => 'test']; + $response = 'test data'; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice', []) + ->will($this->returnValue($invoiceData)); + + $this->responseMock->expects($this->once()) + ->method('setBody') + ->with($response); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $blockItemMock = $this->getMockBuilder('Magento\Sales\Block\Order\Items') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $blockItemMock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($response)); + + $layoutMock = $this->getMockBuilder('Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $layoutMock->expects($this->once()) + ->method('getBlock') + ->with('order_items') + ->will($this->returnValue($blockItemMock)); + + $this->viewMock->expects($this->once()) + ->method('getLayout') + ->will($this->returnValue($layoutMock)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, []) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteModelException() + { + $message = 'test message'; + $e = new \Magento\Framework\Model\Exception($message); + $response = ['error' => true, 'message' => $message]; + + $this->titleMock->expects($this->once()) + ->method('add') + ->with('Invoices') + ->will($this->throwException($e)); + + $this->responseMock->expects($this->once()) + ->method('representJson') + ->with(json_encode($response)); + + $helperMock = $this->getMockBuilder('Magento\Core\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $helperMock->expects($this->once()) + ->method('jsonEncode') + ->with($response) + ->will($this->returnValue(json_encode($response))); + + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Core\Helper\Data') + ->will($this->returnValue($helperMock)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteException() + { + $message = 'Cannot update item quantity.'; + $e = new \Exception($message); + $response = ['error' => true, 'message' => $message]; + + $this->titleMock->expects($this->once()) + ->method('add') + ->with('Invoices') + ->will($this->throwException($e)); + + $this->responseMock->expects($this->once()) + ->method('representJson') + ->with(json_encode($response)); + + $helperMock = $this->getMockBuilder('Magento\Core\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $helperMock->expects($this->once()) + ->method('jsonEncode') + ->with($response) + ->will($this->returnValue(json_encode($response))); + + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Core\Helper\Data') + ->will($this->returnValue($helperMock)); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/ViewTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/ViewTest.php new file mode 100644 index 0000000000000000000000000000000000000000..4335aabcaaaa8096425136e03e745bcd234fea29 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/ViewTest.php @@ -0,0 +1,227 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Invoice; + +use Magento\Backend\App\Action; + +/** + * Class ViewTest + * @package Magento\Sales\Controller\Adminhtml\Order\Invoice + */ +class ViewTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $titleMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceLoaderMock; + + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Invoice\View + */ + protected $controller; + + public function setUp() + { + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->viewMock = $this->getMockBuilder('Magento\Backend\Model\View') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods(['getCommentText', 'setIsUrlNotice']) + ->getMock(); + + $contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($this->titleMock)); + $contextMock->expects($this->any()) + ->method('getView') + ->will($this->returnValue($this->viewMock)); + $contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + $contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + + $this->invoiceLoaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Invoice\View( + $contextMock, + $this->invoiceLoaderMock + ); + } + + public function testExecute() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice', []) + ->will($this->returnValue($invoiceData)); + + $menuBlockMock = $this->getMockBuilder('Magento\Backend\Block\Menu') + ->disableOriginalConstructor() + ->setMethods(['getParentItems', 'getMenuModel']) + ->getMock(); + $menuBlockMock->expects($this->any()) + ->method('getMenuModel') + ->will($this->returnSelf()); + $menuBlockMock->expects($this->any()) + ->method('getParentItems') + ->with('Magento_Sales::sales_order') + ->will($this->returnValue([])); + + $invoiceViewBlockMock = $this->getMockBuilder('Magento\Sales\Block\Adminhtml\Order\Invoice\View') + ->disableOriginalConstructor() + ->setMethods(['updateBackButtonUrl']) + ->getMock(); + + $layoutMock = $this->getMockBuilder('Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $layoutMock->expects($this->at(0)) + ->method('getBlock') + ->with('menu') + ->will($this->returnValue($menuBlockMock)); + $layoutMock->expects($this->at(1)) + ->method('getBlock') + ->with('sales_invoice_view') + ->will($this->returnValue($invoiceViewBlockMock)); + + $this->viewMock->expects($this->any()) + ->method('getLayout') + ->will($this->returnValue($layoutMock)); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteNoInvoice() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice', []) + ->will($this->returnValue($invoiceData)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue(false)); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/VoidTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/VoidTest.php new file mode 100644 index 0000000000000000000000000000000000000000..946fbd308365fea3252d4d21f2fad7fced13b1a6 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/Invoice/VoidTest.php @@ -0,0 +1,331 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order\Invoice; + +use Magento\Backend\App\Action; + +/** + * Class VoidTest + * @package Magento\Sales\Controller\Adminhtml\Order\Invoice + */ +class VoidTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $titleMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceLoaderMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlagMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\Invoice\UpdateQty + */ + protected $controller; + + public function setUp() + { + $this->titleMock = $this->getMockBuilder('Magento\Framework\App\Action\Title') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->actionFlagMock = $this->getMockBuilder('Magento\Framework\App\ActionFlag') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->helperMock = $this->getMockBuilder('Magento\Backend\Helper\Data') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->sessionMock = $this->getMockBuilder('Magento\Backend\Model\Session') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $contextMock = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $contextMock->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $contextMock->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManagerMock)); + $contextMock->expects($this->any()) + ->method('getTitle') + ->will($this->returnValue($this->titleMock)); + $contextMock->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlagMock)); + $contextMock->expects($this->any()) + ->method('getSession') + ->will($this->returnValue($this->sessionMock)); + $contextMock->expects($this->any()) + ->method('getHelper') + ->will($this->returnValue($this->helperMock)); + + $this->invoiceLoaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->controller = new \Magento\Sales\Controller\Adminhtml\Order\Invoice\Void( + $contextMock, + $this->invoiceLoaderMock + ); + } + + public function testExecute() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods(['setIsInProcess']) + ->getMock(); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('void'); + $invoiceMock->expects($this->any()) + ->method('getOrder') + ->will($this->returnValue($orderMock)); + + $transactionMock = $this->getMockBuilder('Magento\Framework\DB\Transaction') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $transactionMock->expects($this->at(0)) + ->method('addObject') + ->with($invoiceMock) + ->will($this->returnSelf()); + $transactionMock->expects($this->at(1)) + ->method('addObject') + ->with($orderMock) + ->will($this->returnSelf()); + $transactionMock->expects($this->at(2)) + ->method('save'); + + $this->objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Framework\DB\Transaction') + ->will($this->returnValue($transactionMock)); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with('The invoice has been voided.'); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteNoInvoice() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue(false)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteModelException() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + $message = 'test message'; + $e = new \Magento\Framework\Model\Exception($message); + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('void') + ->will($this->throwException($e)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } + + public function testExecuteException() + { + $orderId = 1; + $invoiceId = 2; + $invoiceData = []; + $message = 'test message'; + $e = new \Exception($message); + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('invoice_id') + ->will($this->returnValue($invoiceId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('invoice') + ->will($this->returnValue($invoiceData)); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('void') + ->will($this->throwException($e)); + + $this->invoiceLoaderMock->expects($this->once()) + ->method('load') + ->with($orderId, $invoiceId, $invoiceData) + ->will($this->returnValue($invoiceMock)); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/InvoiceLoaderTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/InvoiceLoaderTest.php new file mode 100644 index 0000000000000000000000000000000000000000..9801d8416650e458d0a8d5552786a73970703f5e --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Order/InvoiceLoaderTest.php @@ -0,0 +1,212 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Controller\Adminhtml\Order; + +use Magento\Backend\App\Action; + +/** + * Class InvoiceLoaderTest + * @package Magento\Sales\Controller\Adminhtml\Order + */ +class InvoiceLoaderTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $registryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader + */ + protected $loader; + + public function setUp() + { + $this->objectManagerMock = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->registryMock = $this->getMockBuilder('Magento\Framework\Registry') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->loader = new \Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader( + $this->objectManagerMock, + $this->registryMock, + $this->messageManagerMock + ); + } + + public function testLoadInvoiceId() + { + $orderId = 1; + $invoiceId = 2; + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('load') + ->will($this->returnSelf()); + $this->objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Sales\Model\Order\Invoice') + ->will($this->returnValue($invoiceMock)); + + $this->assertFalse($this->loader->load($orderId, $invoiceId)); + } + + public function testLoadNoInvoiceId() + { + $orderId = 1; + + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods(['load', 'getId']) + ->getMock(); + $orderMock->expects($this->once()) + ->method('load') + ->will($this->returnSelf()); + + $this->objectManagerMock->expects($this->at(0)) + ->method('create') + ->with('Magento\Sales\Model\Order') + ->will($this->returnValue($orderMock)); + + $this->assertFalse($this->loader->load($orderId)); + } + + public function testLoadCanNotInvoice() + { + $orderId = 1; + + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods(['load', 'getId', 'canInvoice']) + ->getMock(); + $orderMock->expects($this->once()) + ->method('load') + ->will($this->returnSelf()); + $orderMock->expects($this->once()) + ->method('getId') + ->will($this->returnValue($orderId)); + $orderMock->expects($this->once()) + ->method('canInvoice') + ->will($this->returnValue(false)); + + $this->objectManagerMock->expects($this->at(0)) + ->method('create') + ->with('Magento\Sales\Model\Order') + ->will($this->returnValue($orderMock)); + + $this->assertFalse($this->loader->load($orderId)); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage Cannot create an invoice without products. + */ + public function testLoadException() + { + $orderId = 1; + + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods(['load', 'getId', 'canInvoice']) + ->getMock(); + $orderMock->expects($this->once()) + ->method('load') + ->will($this->returnSelf()); + $orderMock->expects($this->once()) + ->method('getId') + ->will($this->returnValue($orderId)); + $orderMock->expects($this->once()) + ->method('canInvoice') + ->will($this->returnValue(true)); + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $serviceOrderMock = $this->getMockBuilder('Magento\Sales\Model\Service\Order') + ->disableOriginalConstructor() + ->setMethods(['prepareInvoice']) + ->getMock(); + $serviceOrderMock->expects($this->once()) + ->method('prepareInvoice') + ->with([]) + ->will($this->returnValue($invoiceMock)); + + $this->objectManagerMock->expects($this->at(0)) + ->method('create') + ->with('Magento\Sales\Model\Order') + ->will($this->returnValue($orderMock)); + $this->objectManagerMock->expects($this->at(1)) + ->method('create') + ->with('Magento\Sales\Model\Service\Order', ['order' => $orderMock]) + ->will($this->returnValue($serviceOrderMock)); + + $this->assertFalse($this->loader->load($orderId)); + } + + public function testLoad() + { + $orderId = 1; + $invoiceId = 2; + + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods(['load', 'getId']) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('load') + ->will($this->returnSelf()); + $invoiceMock->expects($this->once()) + ->method('getId') + ->will($this->returnValue($invoiceId)); + $this->objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Sales\Model\Order\Invoice') + ->will($this->returnValue($invoiceMock)); + + $this->assertInstanceOf('Magento\Sales\Model\Order\Invoice', $this->loader->load($orderId, $invoiceId)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Helper/GuestTest.php b/dev/tests/unit/testsuite/Magento/Sales/Helper/GuestTest.php index 9eaeded33a26527d4fd53bdc7f2c15828356ffb7..ebf3e20e2defb2f936b6f65b9b19a6bb547136b4 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Helper/GuestTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Helper/GuestTest.php @@ -56,8 +56,11 @@ class GuestTest extends \PHPUnit_Framework_TestCase /** @var \Magento\Customer\Model\Session|\PHPUnit_Framework_MockObject_MockObject */ protected $sessionMock; - /** @var \Magento\Framework\Stdlib\Cookie|\PHPUnit_Framework_MockObject_MockObject */ - protected $cookieMock; + /** @var \Magento\Framework\Stdlib\CookieManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $cookieManagerMock; + + /** @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory|\PHPUnit_Framework_MockObject_MockObject */ + protected $cookieMetadataFactoryMock; /** @var \Magento\Framework\Message\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $managerInterfaceMock; @@ -76,7 +79,14 @@ class GuestTest extends \PHPUnit_Framework_TestCase $this->stateMock = $this->getMock('Magento\Framework\App\State', [], [], '', false); $this->registryMock = $this->getMock('Magento\Framework\Registry'); $this->sessionMock = $this->getMock('Magento\Customer\Model\Session', [], [], '', false); - $this->cookieMock = $this->getMock('Magento\Framework\Stdlib\Cookie', [], [], '', false); + $this->cookieManagerMock = $this->getMock('\Magento\Framework\Stdlib\CookieManager', [], [], '', false); + $this->cookieMetadataFactoryMock = $this->getMock( + '\Magento\Framework\Stdlib\Cookie\CookieMetadataFactory', + [], + [], + '', + false + ); $this->managerInterfaceMock = $this->getMock('Magento\Framework\Message\ManagerInterface'); $this->orderFactoryMock = $this->getMock('Magento\Sales\Model\OrderFactory', ['create'], [], '', false); $this->viewInterfaceMock = $this->getMock('Magento\Framework\App\ViewInterface'); @@ -91,7 +101,8 @@ class GuestTest extends \PHPUnit_Framework_TestCase 'appState' => $this->stateMock, 'coreRegistry' => $this->registryMock, 'customerSession' => $this->sessionMock, - 'coreCookie' => $this->cookieMock, + 'cookieManager' => $this->cookieManagerMock, + 'cookieMetadataFactory' => $this->cookieMetadataFactoryMock, 'messageManager' => $this->managerInterfaceMock, 'orderFactory' => $this->orderFactoryMock, 'view' => $this->viewInterfaceMock @@ -142,12 +153,13 @@ class GuestTest extends \PHPUnit_Framework_TestCase $orderMock->expects($this->once())->method('getBillingAddress')->will($this->returnValue($billingAddressMock)); $protectedCode = 'protectedCode'; $orderMock->expects($this->once())->method('getProtectCode')->will($this->returnValue($protectedCode)); - $this->cookieMock->expects($this->once())->method('set')->with( - Guest::COOKIE_NAME, - base64_encode($protectedCode . ':' . $incrementId), - Guest::COOKIE_LIFETIME, - Guest::COOKIE_PATH - ); + $metaData = new \Magento\Framework\Stdlib\Cookie\PublicCookieMetadata(); + $this->cookieMetadataFactoryMock->expects($this->once()) + ->method('createPublicCookieMetadata') + ->will($this->returnValue($metaData)); + $this->cookieManagerMock->expects($this->once()) + ->method('setPublicCookie') + ->with(Guest::COOKIE_NAME, $this->anything(), $metaData); $responseMock = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false); $this->assertTrue($this->guest->loadValidOrder($requestMock, $responseMock)); } @@ -168,17 +180,19 @@ class GuestTest extends \PHPUnit_Framework_TestCase $cookieDataHash = base64_encode($cookieData); $this->orderFactoryMock->expects($this->once())->method('create')->will($this->returnValue($orderMock)); - $this->cookieMock->expects($this->exactly(3))->method('get')->with(Guest::COOKIE_NAME)->will( + $this->cookieManagerMock->expects($this->once())->method('getCookie')->with(Guest::COOKIE_NAME)->will( $this->returnValue($cookieDataHash) ); $orderMock->expects($this->once())->method('loadByIncrementId')->with($incrementId); $orderMock->expects($this->exactly(1))->method('getId')->will($this->returnValue($incrementId)); $orderMock->expects($this->once())->method('getProtectCode')->will($this->returnValue($protectedCode)); - $this->cookieMock->expects($this->once())->method('renew')->with( - Guest::COOKIE_NAME, - Guest::COOKIE_LIFETIME, - Guest::COOKIE_PATH - ); + $metaData = new \Magento\Framework\Stdlib\Cookie\PublicCookieMetadata(); + $this->cookieMetadataFactoryMock->expects($this->once()) + ->method('createPublicCookieMetadata') + ->will($this->returnValue($metaData)); + $this->cookieManagerMock->expects($this->once()) + ->method('setPublicCookie') + ->with(Guest::COOKIE_NAME, $this->anything(), $metaData); $requestMock = $this->getMock('Magento\Framework\App\Request\Http', [], [], '', false); $responseMock = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false); diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Address/ValidatorTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Address/ValidatorTest.php index f2de0967f5248522d648d8ca9fd75a2b8092efd0..3e620e633293f24e293d950ab260786827641284 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Address/ValidatorTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Address/ValidatorTest.php @@ -54,7 +54,11 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase } /** + * Run test validate + * * @param $addressData + * @param $email + * @param $addressType * @param $expectedWarnings * @dataProvider providerAddressData */ diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/ConfigTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/ConfigTest.php index 0cc17fc8c10929570a24d2e1721d971a1f4d0e89..fc74defb4e592cae604fb0861ac18d8625d17d15 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/ConfigTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/ConfigTest.php @@ -25,8 +25,6 @@ namespace Magento\Sales\Model\Order; /** * Class ConfigTest - * - * @package Magento\Sales\Model\Order */ class ConfigTest extends \PHPUnit_Framework_TestCase { diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Creditmemo/Comment/ValidatorTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Creditmemo/Comment/ValidatorTest.php new file mode 100644 index 0000000000000000000000000000000000000000..9dffd4f5ef91240faf0b01c36db56b7c4bbaa300 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Creditmemo/Comment/ValidatorTest.php @@ -0,0 +1,113 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order\Creditmemo\Comment; + +/** + * Class ValidatorTest + */ +class ValidatorTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Order\Creditmemo\Comment\Validator + */ + protected $validator; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentModelMock; + + /** + * Set up + */ + protected function setUp() + { + $this->commentModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo\Comment', + ['hasData', 'getData', '__wakeup'], + [], + '', + false + ); + $this->validator = new \Magento\Sales\Model\Order\Creditmemo\Comment\Validator(); + } + + + /** + * Run test validate + * + * @param $commentDataMap + * @param $commentData + * @param $expectedWarnings + * @dataProvider providerCommentData + */ + public function testValidate($commentDataMap, $commentData, $expectedWarnings) + { + $this->commentModelMock->expects($this->any()) + ->method('hasData') + ->will($this->returnValueMap($commentDataMap)); + $this->commentModelMock->expects($this->once()) + ->method('getData') + ->will($this->returnValue($commentData)); + $actualWarnings = $this->validator->validate($this->commentModelMock); + $this->assertEquals($expectedWarnings, $actualWarnings); + } + + /** + * Provides comment data for tests + * + * @return array + */ + public function providerCommentData() + { + return [ + [ + [ + ['parent_id', true], + ['comment', true] + ], + [ + 'parent_id' => 25, + 'comment' => 'Hello world!' + ], + [] + ], + [ + [ + ['parent_id', true], + ['comment', false] + ], + [ + 'parent_id' => 0, + 'comment' => null + ], + [ + 'parent_id' => 'Parent Creditmemo Id can not be empty', + 'comment' => 'Comment is a required field' + ] + ] + ]; + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/CreditmemoNotifierTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/CreditmemoNotifierTest.php new file mode 100644 index 0000000000000000000000000000000000000000..f1047dc2ef6ec60eb29520de2fca832272d1221c --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/CreditmemoNotifierTest.php @@ -0,0 +1,165 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model\Order; + +use Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory; +use Magento\Framework\Mail\Exception; + +/** + * Class CreditmemoNotifierTest + */ +class CreditmemoNotifierTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var CollectionFactory |\PHPUnit_Framework_MockObject_MockObject + */ + protected $historyCollectionFactory; + + /** + * @var \Magento\Sales\Model\CreditmemoNotifier + */ + protected $notifier; + + /** + * @var \Magento\Sales\Model\Order|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemo; + + /** + * @var \Magento\Framework\ObjectManager |\PHPUnit_Framework_MockObject_MockObject + */ + protected $loggerMock; + + /** + * @var \Magento\Framework\ObjectManager\ObjectManager |\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoSenderMock; + + public function setUp() + { + $this->historyCollectionFactory = $this->getMock( + 'Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory', + ['create'], + [], + '', + false + ); + $this->creditmemo = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo', + ['__wakeUp', 'getEmailSent'], + [], + '', + false + ); + $this->creditmemoSenderMock = $this->getMock( + 'Magento\Sales\Model\Order\Email\Sender\CreditmemoSender', + ['send'], + [], + '', + false + ); + $this->loggerMock = $this->getMock( + 'Magento\Framework\Logger', + ['logException'], + [], + '', + false + ); + $this->notifier = new CreditmemoNotifier( + $this->historyCollectionFactory, + $this->loggerMock, + $this->creditmemoSenderMock + ); + } + + /** + * Test case for successful email sending + */ + public function testNotifySuccess() + { + $historyCollection = $this->getMock( + 'Magento\Sales\Model\Resource\Order\Status\History\Collection', + ['getUnnotifiedForInstance', 'save', 'setIsCustomerNotified'], + [], + '', + false + ); + $historyItem = $this->getMock( + 'Magento\Sales\Model\Order\Status\History', + ['setIsCustomerNotified', 'save', '__wakeUp'], + [], + '', + false + ); + $historyItem->expects($this->at(0)) + ->method('setIsCustomerNotified') + ->with(1); + $historyItem->expects($this->at(1)) + ->method('save'); + $historyCollection->expects($this->once()) + ->method('getUnnotifiedForInstance') + ->with($this->creditmemo) + ->will($this->returnValue($historyItem)); + $this->creditmemo->expects($this->once()) + ->method('getEmailSent') + ->will($this->returnValue(true)); + $this->historyCollectionFactory->expects($this->once()) + ->method('create') + ->will($this->returnValue($historyCollection)); + + $this->creditmemoSenderMock->expects($this->once()) + ->method('send') + ->with($this->equalTo($this->creditmemo)); + + $this->assertTrue($this->notifier->notify($this->creditmemo)); + } + + /** + * Test case when email has not been sent + */ + public function testNotifyFail() + { + $this->creditmemo->expects($this->once()) + ->method('getEmailSent') + ->will($this->returnValue(false)); + $this->assertFalse($this->notifier->notify($this->creditmemo)); + } + + /** + * Test case when Mail Exception has been thrown + */ + public function testNotifyException() + { + $exception = new Exception('Email has not been sent'); + $this->creditmemoSenderMock->expects($this->once()) + ->method('send') + ->with($this->equalTo($this->creditmemo)) + ->will($this->throwException($exception)); + $this->loggerMock->expects($this->once()) + ->method('logException') + ->with($this->equalTo($exception)); + $this->assertFalse($this->notifier->notify($this->creditmemo)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/CreditmemoTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/CreditmemoTest.php new file mode 100644 index 0000000000000000000000000000000000000000..9839f9c0af000dd97999b0bc51956866beafc674 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/CreditmemoTest.php @@ -0,0 +1,144 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order; + +use Magento\Sales\Model\Resource\OrderFactory; +use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper; + +/** + * Class CreditmemoTest + */ +class CreditmemoTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var OrderFactory |\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderFactory; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo + */ + protected $creditmemo; + + public function setUp() + { + $this->orderFactory = $this->getMock( + '\Magento\Sales\Model\OrderFactory', + ['create'], + [], + '', + false + ); + + $objectManagerHelper = new ObjectManagerHelper($this); + $arguments = [ + 'context' => $this->getMock('Magento\Framework\Model\Context', [], [], '', false), + 'registry' => $this->getMock('Magento\Framework\Registry', [], [], '', false), + 'localeDate' => $this->getMock('Magento\Framework\Stdlib\DateTime\TimezoneInterface', [], [], '', false), + 'dateTime' => $this->getMock('Magento\Framework\Stdlib\DateTime', [], [], '', false), + 'creditmemoConfig' => $this->getMock('Magento\Sales\Model\Order\Creditmemo\Config', [], [], '', false), + 'orderFactory' => $this->orderFactory, + 'cmItemCollectionFactory' => $this->getMock( + 'Magento\Sales\Model\Resource\Order\Creditmemo\Item\CollectionFactory', + [], + [], + '', + false + ), + 'calculatorFactory' => $this->getMock('Magento\Framework\Math\CalculatorFactory', [], [], '', false), + 'storeManager' => $this->getMock('Magento\Store\Model\StoreManagerInterface', [], [], '', false), + 'commentFactory' => $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo\CommentFactory', + [], + [], + '', + false + ), + 'commentCollectionFactory' => $this->getMock( + 'Magento\Sales\Model\Resource\Order\Creditmemo\Comment\CollectionFactory', + [], + [], + '', + false + ), + ]; + $this->creditmemo = $objectManagerHelper->getObject( + 'Magento\Sales\Model\Order\Creditmemo', + $arguments + ); + } + + public function testGetOrder() + { + $orderId = 100000041; + $this->creditmemo->setOrderId($orderId); + $entityName = 'creditmemo'; + $order = $this->getMock( + 'Magento\Sales\Model\Order', + ['load', 'setHistoryEntityName', '__wakeUp'], + [], + '', + false + ); + $this->creditmemo->setOrderId($orderId); + $order->expects($this->atLeastOnce()) + ->method('setHistoryEntityName') + ->with($entityName) + ->will($this->returnSelf()); + $order->expects($this->atLeastOnce()) + ->method('load') + ->with($orderId) + ->will($this->returnValue($order)); + + $this->orderFactory->expects($this->atLeastOnce()) + ->method('create') + ->will($this->returnValue($order)); + + $this->assertEquals($order, $this->creditmemo->getOrder()); + } + + public function testGetEntityType() + { + $this->assertEquals('creditmemo', $this->creditmemo->getEntityType()); + } + + public function testIsValidGrandTotalGrandTotalEmpty() + { + $this->creditmemo->setGrandTotal(0); + $this->assertFalse($this->creditmemo->isValidGrandTotal()); + } + + public function testIsValidGrandTotalGrandTotal() + { + $this->creditmemo->setGrandTotal(0); + $this->creditmemo->getAllowZeroGrandTotal(true); + $this->assertFalse($this->creditmemo->isValidGrandTotal()); + } + + public function testIsValidGrandTotal() + { + $this->creditmemo->setGrandTotal(1); + $this->assertTrue($this->creditmemo->isValidGrandTotal()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Customer/BuilderTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Customer/BuilderTest.php new file mode 100644 index 0000000000000000000000000000000000000000..6ac81f399da6ce2a64c8ab7e92916dba582bea34 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Customer/BuilderTest.php @@ -0,0 +1,184 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order\Customer; + +/** + * Class BuilderTest + */ +class BuilderTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Framework\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \Magento\Sales\Model\Order\Customer\Builder + */ + protected $builder; + + protected function setUp() + { + $this->objectManagerMock = $this->getMock( + 'Magento\Framework\ObjectManager', + ['create', 'get', 'configure'], + [], + '', + false + ); + + $this->builder = new \Magento\Sales\Model\Order\Customer\Builder($this->objectManagerMock); + } + + /** + * Run test setDob method + */ + public function testSetDob() + { + $this->assertEquals($this->builder, $this->builder->setDob('dob')); + } + + /** + * Run test setEmail method + */ + public function testSetEmail() + { + $this->assertEquals($this->builder, $this->builder->setEmail('email')); + } + + /** + * Run test setFirstName method + */ + public function testSetFirstName() + { + $this->assertEquals($this->builder, $this->builder->setFirstName('first_name')); + } + + /** + * Run test setGender method + */ + public function testSetGender() + { + $this->assertEquals($this->builder, $this->builder->setGender('gender')); + } + + /** + * Run test setGroupId method + */ + public function testSetGroupId() + { + $this->assertEquals($this->builder, $this->builder->setGroupId('group_id')); + } + + /** + * Run test setId method + */ + public function testSetId() + { + $this->assertEquals($this->builder, $this->builder->setId('id')); + } + + /** + * Run test setIsGuest method + */ + public function testSetIsGuest() + { + $this->assertEquals($this->builder, $this->builder->setIsGuest('is_guest')); + } + + /** + * Run test setLastName method + */ + public function testSetLastName() + { + $this->assertEquals($this->builder, $this->builder->setLastName('last_name')); + } + + /** + * Run test setMiddleName method + */ + public function testSetMiddleName() + { + $this->assertEquals($this->builder, $this->builder->setMiddleName('middle_name')); + } + + /** + * Run test setNote method + */ + public function testSetNote() + { + $this->assertEquals($this->builder, $this->builder->setNote('note')); + } + + /** + * Run test setNoteNotify method + */ + public function testSetNoteNotify() + { + $this->assertEquals($this->builder, $this->builder->setNoteNotify('note_notify')); + } + + /** + * Run test setPrefix method + */ + public function testSetPrefix() + { + $this->assertEquals($this->builder, $this->builder->setPrefix('prefix')); + } + + /** + * Run test setSuffix method + */ + public function testSetSuffix() + { + $this->assertEquals($this->builder, $this->builder->setSuffix('suffix')); + } + + /** + * Run test setTaxvat method + */ + public function testSetTaxvat() + { + $this->assertEquals($this->builder, $this->builder->setTaxvat('taxvat')); + } + + /** + * Run test create method + */ + public function testCreate() + { + $customerMock = $this->getMock( + 'Magento\Sales\Model\Order\Customer', + [], + [], + '', + false + ); + $this->objectManagerMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($customerMock)); + + $this->assertEquals($customerMock, $this->builder->create()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/CustomerTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/CustomerTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fa1c64fcee344e795d17e475d223859111ebb528 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/CustomerTest.php @@ -0,0 +1,265 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order; + +/** + * Class CustomerTest + */ +class CustomerTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\TestFramework\Helper\ObjectManager + */ + protected $objectManager; + + protected function setUp() + { + $this->objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + } + + /** + * Run test getDob method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetDob(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerDob'], $customer->getDob()); + } + + /** + * Run test getEmail method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetEmail(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerEmail'], $customer->getEmail()); + } + + /** + * Run test getFirstName method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetFirstName(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerFirstName'], $customer->getFirstName()); + } + + /** + * Run test getGender method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetGender(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerGender'], $customer->getGender()); + } + + /** + * Run test getGroupId method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetGroupId(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerGroupId'], $customer->getGroupId()); + } + + /** + * Run test getId method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetId(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerId'], $customer->getId()); + } + + /** + * Run test getIsGuest method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetIsGuest(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerIsGuest'], $customer->getIsGuest()); + } + + /** + * Run test getLastName method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetLastName(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerLastName'], $customer->getLastName()); + } + + /** + * Run test getMiddleName method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetMiddleName(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerMiddleName'], $customer->getMiddleName()); + } + + /** + * Run test getNote method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetNote(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerNote'], $customer->getNote()); + } + + /** + * Run test getNoteNotify method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetNoteNotify(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerNoteNotify'], $customer->getNoteNotify()); + } + + /** + * Run test getPrefix method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetPrefix(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerPrefix'], $customer->getPrefix()); + } + + /** + * Run test getSuffix method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetSuffix(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerSuffix'], $customer->getSuffix()); + } + + /** + * Run test getTaxvat method + * + * @param array $parameters + * @dataProvider providerCustomerData + */ + public function testGetTaxvat(array $parameters) + { + /** @var \Magento\Sales\Model\Order\Customer $customer */ + $customer = $this->objectManager->getObject('Magento\Sales\Model\Order\Customer', $parameters); + + $this->assertEquals($parameters['customerTaxvat'], $customer->getTaxvat()); + } + + /** + * Data to insert into constructor of the test object + * + * @return array + */ + public function providerCustomerData() + { + return [ + [ + [ + 'customerDob' => 'customer_dob', + 'customerEmail' => 'customer_email', + 'customerFirstName' => 'customer_first_name', + 'customerGender' => 'customer_gender', + 'customerGroupId' => 'customer_group_id', + 'customerId' => 'customer_id', + 'customerIsGuest' => 'customer_is_guest', + 'customerLastName' => 'customer_last_name', + 'customerMiddleName' => 'customer_middle_name', + 'customerNote' => 'customer_note', + 'customerNoteNotify' => 'customer_note_notify', + 'customerPrefix' => 'customer_prefix', + 'customerSuffix' => 'customer_suffix', + 'customerTaxvat' => 'customer_taxvat' + ] + ] + ]; + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Invoice/Comment/ValidatorTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Invoice/Comment/ValidatorTest.php new file mode 100644 index 0000000000000000000000000000000000000000..1377a6ccf39071559411b4f9a6b4372d5dfec444 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Invoice/Comment/ValidatorTest.php @@ -0,0 +1,113 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order\Invoice\Comment; + +/** + * Class ValidatorTest + */ +class ValidatorTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Order\Invoice\Comment\Validator + */ + protected $validator; + + /** + * @var \Magento\Sales\Model\Order\Invoice\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentModelMock; + + /** + * Set up + */ + protected function setUp() + { + $this->commentModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice\Comment', + ['hasData', 'getData', '__wakeup'], + [], + '', + false + ); + $this->validator = new \Magento\Sales\Model\Order\Invoice\Comment\Validator(); + } + + + /** + * Run test validate + * + * @param $commentDataMap + * @param $commentData + * @param $expectedWarnings + * @dataProvider providerCommentData + */ + public function testValidate($commentDataMap, $commentData, $expectedWarnings) + { + $this->commentModelMock->expects($this->any()) + ->method('hasData') + ->will($this->returnValueMap($commentDataMap)); + $this->commentModelMock->expects($this->once()) + ->method('getData') + ->will($this->returnValue($commentData)); + $actualWarnings = $this->validator->validate($this->commentModelMock); + $this->assertEquals($expectedWarnings, $actualWarnings); + } + + /** + * Provides comment data for tests + * + * @return array + */ + public function providerCommentData() + { + return [ + [ + [ + ['parent_id', true], + ['comment', true] + ], + [ + 'parent_id' => 25, + 'comment' => 'Hello world!' + ], + [] + ], + [ + [ + ['parent_id', true], + ['comment', false] + ], + [ + 'parent_id' => 0, + 'comment' => null + ], + [ + 'parent_id' => 'Parent Invoice Id can not be empty', + 'comment' => 'Comment is a required field' + ] + ] + ]; + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/InvoiceNotifierTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/InvoiceNotifierTest.php new file mode 100644 index 0000000000000000000000000000000000000000..2c1f3c2e149983dc45d033a1cc0284669e1b4f0d --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/InvoiceNotifierTest.php @@ -0,0 +1,165 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model\Order; + +use Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory; +use Magento\Framework\Mail\Exception; + +/** + * Class InvoiceNotifierTest + */ +class InvoiceNotifierTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var CollectionFactory |\PHPUnit_Framework_MockObject_MockObject + */ + protected $historyCollectionFactory; + + /** + * @var \Magento\Sales\Model\Order\InvoiceNotifier + */ + protected $notifier; + + /** + * @var \Magento\Sales\Model\Order\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoice; + + /** + * @var \Magento\Framework\ObjectManager |\PHPUnit_Framework_MockObject_MockObject + */ + protected $loggerMock; + + /** + * @var \Magento\Framework\ObjectManager\ObjectManager |\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceSenderMock; + + public function setUp() + { + $this->historyCollectionFactory = $this->getMock( + 'Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory', + ['create'], + [], + '', + false + ); + $this->invoice = $this->getMock( + 'Magento\Sales\Model\Order\Invoice', + ['__wakeUp', 'getEmailSent'], + [], + '', + false + ); + $this->invoiceSenderMock = $this->getMock( + 'Magento\Sales\Model\Order\Email\Sender\InvoiceSender', + ['send'], + [], + '', + false + ); + $this->loggerMock = $this->getMock( + 'Magento\Framework\Logger', + ['logException'], + [], + '', + false + ); + $this->notifier = new InvoiceNotifier( + $this->historyCollectionFactory, + $this->loggerMock, + $this->invoiceSenderMock + ); + } + + /** + * Test case for successful email sending + */ + public function testNotifySuccess() + { + $historyCollection = $this->getMock( + 'Magento\Sales\Model\Resource\Order\Status\History\Collection', + ['getUnnotifiedForInstance', 'save', 'setIsCustomerNotified'], + [], + '', + false + ); + $historyItem = $this->getMock( + 'Magento\Sales\Model\Order\Status\History', + ['setIsCustomerNotified', 'save', '__wakeUp'], + [], + '', + false + ); + $historyItem->expects($this->at(0)) + ->method('setIsCustomerNotified') + ->with(1); + $historyItem->expects($this->at(1)) + ->method('save'); + $historyCollection->expects($this->once()) + ->method('getUnnotifiedForInstance') + ->with($this->invoice) + ->will($this->returnValue($historyItem)); + $this->invoice->expects($this->once()) + ->method('getEmailSent') + ->will($this->returnValue(true)); + $this->historyCollectionFactory->expects($this->once()) + ->method('create') + ->will($this->returnValue($historyCollection)); + + $this->invoiceSenderMock->expects($this->once()) + ->method('send') + ->with($this->equalTo($this->invoice)); + + $this->assertTrue($this->notifier->notify($this->invoice)); + } + + /** + * Test case when email has not been sent + */ + public function testNotifyFail() + { + $this->invoice->expects($this->once()) + ->method('getEmailSent') + ->will($this->returnValue(false)); + $this->assertFalse($this->notifier->notify($this->invoice)); + } + + /** + * Test case when Mail Exception has been thrown + */ + public function testNotifyException() + { + $exception = new Exception('Email has not been sent'); + $this->invoiceSenderMock->expects($this->once()) + ->method('send') + ->with($this->equalTo($this->invoice)) + ->will($this->throwException($exception)); + $this->loggerMock->expects($this->once()) + ->method('logException') + ->with($this->equalTo($exception)); + $this->assertFalse($this->notifier->notify($this->invoice)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/InvoiceTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/InvoiceTest.php index af190942c1f7edcdb65ecce292967eb2c9c2550a..7271f5739cf1d75412eac7aca1d561bfc7e73045 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/InvoiceTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/InvoiceTest.php @@ -23,17 +23,29 @@ */ namespace Magento\Sales\Model\Order; +use Magento\Sales\Model\Resource\OrderFactory; + +/** + * Class InvoiceTest + * + * @package Magento\Sales\Model\Order + */ class InvoiceTest extends \PHPUnit_Framework_TestCase { /** * @var \Magento\Sales\Model\Order\Invoice */ - protected $_model; + protected $model; + + /** + * @var OrderFactory |\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderFactory; /** * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Model\Order */ - protected $_orderMock; + protected $orderMock; /** * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Model\Order\Payment @@ -43,57 +55,59 @@ class InvoiceTest extends \PHPUnit_Framework_TestCase protected function setUp() { $helperManager = new \Magento\TestFramework\Helper\ObjectManager($this); - $this->_orderMock = $this->getMockBuilder( + $this->orderMock = $this->getMockBuilder( 'Magento\Sales\Model\Order' )->disableOriginalConstructor()->setMethods( - array('getPayment', '__wakeup') + ['getPayment', '__wakeup', 'load', 'setHistoryEntityName'] )->getMock(); $this->_paymentMock = $this->getMockBuilder( 'Magento\Sales\Model\Order\Payment' )->disableOriginalConstructor()->setMethods( - array('canVoid', '__wakeup') + ['canVoid', '__wakeup'] )->getMock(); + $this->orderFactory = $this->getMock('Magento\Sales\Model\OrderFactory', ['create'], [], '', false); + $arguments = array( - 'orderFactory' => $this->getMock('Magento\Sales\Model\OrderFactory', array(), array(), '', false), + 'orderFactory' => $this->orderFactory, 'orderResourceFactory' => $this->getMock( 'Magento\Sales\Model\Resource\OrderFactory', - array(), - array(), + [], + [], '', false ), 'calculatorFactory' => $this->getMock( 'Magento\Framework\Math\CalculatorFactory', - array(), - array(), + [], + [], '', false ), 'invoiceItemCollectionFactory' => $this->getMock( 'Magento\Sales\Model\Resource\Order\Invoice\Item\CollectionFactory', - array(), - array(), + [], + [], '', false ), 'invoiceCommentFactory' => $this->getMock( 'Magento\Sales\Model\Order\Invoice\CommentFactory', - array(), - array(), + [], + [], '', false ), 'commentCollectionFactory' => $this->getMock( 'Magento\Sales\Model\Resource\Order\Invoice\Comment\CollectionFactory', - array(), - array(), + [], + [], '', false ) ); - $this->_model = $helperManager->getObject('Magento\Sales\Model\Order\Invoice', $arguments); - $this->_model->setOrder($this->_orderMock); + $this->model = $helperManager->getObject('Magento\Sales\Model\Order\Invoice', $arguments); + $this->model->setOrder($this->orderMock); } /** @@ -102,20 +116,25 @@ class InvoiceTest extends \PHPUnit_Framework_TestCase */ public function testCanVoid($canVoid) { - $this->_orderMock->expects($this->once())->method('getPayment')->will($this->returnValue($this->_paymentMock)); + $entityName = 'invoice'; + $this->orderMock->expects($this->once())->method('getPayment')->will($this->returnValue($this->_paymentMock)); + $this->orderMock->expects($this->once()) + ->method('setHistoryEntityName') + ->with($entityName) + ->will($this->returnSelf()); $this->_paymentMock->expects( $this->once() )->method( 'canVoid', '__wakeup' )->with( - $this->equalTo($this->_model) + $this->equalTo($this->model) )->will( $this->returnValue($canVoid) ); - $this->_model->setState(\Magento\Sales\Model\Order\Invoice::STATE_PAID); - $this->assertEquals($canVoid, $this->_model->canVoid()); + $this->model->setState(\Magento\Sales\Model\Order\Invoice::STATE_PAID); + $this->assertEquals($canVoid, $this->model->canVoid()); } /** @@ -124,14 +143,32 @@ class InvoiceTest extends \PHPUnit_Framework_TestCase */ public function testDefaultCanVoid($canVoid) { - $this->_model->setState(\Magento\Sales\Model\Order\Invoice::STATE_PAID); - $this->_model->setCanVoidFlag($canVoid); + $this->model->setState(\Magento\Sales\Model\Order\Invoice::STATE_PAID); + $this->model->setCanVoidFlag($canVoid); - $this->assertEquals($canVoid, $this->_model->canVoid()); + $this->assertEquals($canVoid, $this->model->canVoid()); } public function canVoidDataProvider() { return array(array(true), array(false)); } + + public function testGetOrder() + { + $orderId = 100000041; + $this->model->setOrderId($orderId); + $entityName = 'invoice'; + $this->orderMock->expects($this->atLeastOnce()) + ->method('setHistoryEntityName') + ->with($entityName) + ->will($this->returnSelf()); + + $this->assertEquals($this->orderMock, $this->model->getOrder()); + } + + public function testGetEntityType() + { + $this->assertEquals('invoice', $this->model->getEntityType()); + } } diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Shipment/Comment/ValidatorTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Shipment/Comment/ValidatorTest.php new file mode 100644 index 0000000000000000000000000000000000000000..7812ada58f93047a1790876e1d575506649359a2 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Shipment/Comment/ValidatorTest.php @@ -0,0 +1,113 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order\Shipment\Comment; + +/** + * Class ValidatorTest + */ +class ValidatorTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Order\Shipment\Comment\Validator + */ + protected $validator; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentModelMock; + + /** + * Set up + */ + protected function setUp() + { + $this->commentModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Comment', + ['hasData', 'getData', '__wakeup'], + [], + '', + false + ); + $this->validator = new \Magento\Sales\Model\Order\Shipment\Comment\Validator(); + } + + + /** + * Run test validate + * + * @param $commentDataMap + * @param $commentData + * @param $expectedWarnings + * @dataProvider providerCommentData + */ + public function testValidate($commentDataMap, $commentData, $expectedWarnings) + { + $this->commentModelMock->expects($this->any()) + ->method('hasData') + ->will($this->returnValueMap($commentDataMap)); + $this->commentModelMock->expects($this->once()) + ->method('getData') + ->will($this->returnValue($commentData)); + $actualWarnings = $this->validator->validate($this->commentModelMock); + $this->assertEquals($expectedWarnings, $actualWarnings); + } + + /** + * Provides comment data for tests + * + * @return array + */ + public function providerCommentData() + { + return [ + [ + [ + ['parent_id', true], + ['comment', true] + ], + [ + 'parent_id' => 25, + 'comment' => 'Hello world!' + ], + [] + ], + [ + [ + ['parent_id', true], + ['comment', false] + ], + [ + 'parent_id' => 0, + 'comment' => null + ], + [ + 'parent_id' => 'Parent Shipment Id can not be empty', + 'comment' => 'Comment is a required field' + ] + ] + ]; + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Shipment/Track/ValidatorTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Shipment/Track/ValidatorTest.php new file mode 100644 index 0000000000000000000000000000000000000000..a63fc911163258ac98728467bfa55b9c91678a10 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Order/Shipment/Track/ValidatorTest.php @@ -0,0 +1,123 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Order\Shipment\Track; + +/** + * Class ValidatorTest + */ +class ValidatorTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Order\Shipment\Track\Validator + */ + protected $validator; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Track|\PHPUnit_Framework_MockObject_MockObject + */ + protected $trackModelMock; + + /** + * Set up + */ + protected function setUp() + { + $this->trackModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Track', + ['hasData', 'getData', '__wakeup'], + [], + '', + false + ); + $this->validator = new \Magento\Sales\Model\Order\Shipment\Track\Validator(); + } + + + /** + * Run test validate + * + * @param $trackDataMap + * @param $trackData + * @param $expectedWarnings + * @dataProvider providerTrackData + */ + public function testValidate($trackDataMap, $trackData, $expectedWarnings) + { + $this->trackModelMock->expects($this->any()) + ->method('hasData') + ->will($this->returnValueMap($trackDataMap)); + $this->trackModelMock->expects($this->once()) + ->method('getData') + ->will($this->returnValue($trackData)); + $actualWarnings = $this->validator->validate($this->trackModelMock); + $this->assertEquals($expectedWarnings, $actualWarnings); + } + + /** + * Provides track data for tests + * + * @return array + */ + public function providerTrackData() + { + return [ + [ + [ + ['parent_id', true], + ['order_id', true], + ['track_number', true], + ['carrier_code', true] + ], + [ + 'parent_id' => 25, + 'order_id' => 12, + 'track_number' => 125, + 'carrier_code' => 'custom' + ], + [] + ], + [ + [ + ['parent_id', true], + ['order_id', false], + ['track_number', true], + ['carrier_code', false] + ], + [ + 'parent_id' => 0, + 'order_id' => null, + 'track_number' => '', + 'carrier_code' => null + ], + [ + 'parent_id' => 'Parent Track Id can not be empty', + 'order_id' => 'Order Id is a required field', + 'track_number' => 'Number can not be empty', + 'carrier_code' => 'Carrier Code is a required field' + ] + ] + ]; + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/OrderConverterTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/OrderConverterTest.php new file mode 100644 index 0000000000000000000000000000000000000000..bbe7b0f44332f49b8ccebd4df1f08a95e2120478 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/OrderConverterTest.php @@ -0,0 +1,486 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model; + +/** + * Class OrderConverterTest + * + * @package Magento\Sales\Model + */ +class OrderConverterTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Order\Builder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderBuilderMock; + + /** + * @var \Magento\Sales\Model\Order\ItemConverter|\PHPUnit_Framework_MockObject_MockObject + */ + protected $itemConverterMock; + + /** + * @var \Magento\Sales\Model\Order\PaymentConverter|\PHPUnit_Framework_MockObject_MockObject + */ + protected $paymentConverterMock; + + /** + * @var \Magento\Sales\Model\Order\AddressConverter|\PHPUnit_Framework_MockObject_MockObject + */ + protected $addressConverterMock; + + /** + * @var \Magento\Sales\Model\Order\Customer\Builder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $customerBuilderMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Order + */ + protected $orderDataMock; + + /** + * @var array + */ + protected $orderData; + + /** + * @var \Magento\Sales\Model\OrderConverter + */ + protected $orderConverter; + + public function setUp() + { + $this->orderBuilderMock = $this->getMock( + 'Magento\Sales\Model\Order\Builder', + [], + [], + '', + false + ); + $this->itemConverterMock = $this->getMock( + 'Magento\Sales\Model\Order\ItemConverter', + ['getModel'], + [], + '', + false + ); + $this->paymentConverterMock = $this->getMock( + 'Magento\Sales\Model\Order\PaymentConverter', + ['getModel'], + [], + '', + false + ); + $this->addressConverterMock = $this->getMock( + 'Magento\Sales\Model\Order\AddressConverter', + ['getModel'], + [], + '', + false + ); + $this->customerBuilderMock = $this->getMock( + 'Magento\Sales\Model\Order\Customer\Builder', + [], + [], + '', + false + ); + + $this->orderDataMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Order', + [], + [], + '', + false + ); + + $this->orderData = [ + 'customerDob' => 'customer_dob', + 'customerEmail' => 'customer_email', + 'customerFirstName' => 'customer_first_name', + 'customerGender' => 'customer_gender', + 'customerGroupId' => 'customer_group_id', + 'customerId' => 'customer_id', + 'customerLastName' => 'customer_last_name', + 'customerMiddleName' => 'customer_middle_name', + 'customerIsGuest' => 'customer_is_guest', + 'customerNote' => 'customer_note', + 'customerNotify' => 'customer_notify', + 'customerPrefix' => 'customer_prefix', + 'customerSuffix' => 'customer_suffix', + 'customerTaxvat' => 'customer_taxvat', + 'items' => ['01' => 'item1', '02' => 'item2'], + 'payments' => ['payments'], + 'quoteId' => 'quote_id', + 'appliedRuleIds' => 'applied_rule_ids', + 'isVirtual' => 'is_virtual', + 'remoteIp' => 'remote_ip', + 'baseSubtotal' => 'base_subtotal', + 'subtotal' => 'ubtotal', + 'baseGrandTotal' => 'base_grand_total', + 'grandTotal' => 'grand_total', + 'baseCurrencyCode' => 'base_currency_code', + 'globalCurrencyCode' => 'global_rule_ids', + 'storeCurrencyCode' => 'store_rule_ids', + 'storeId' => 'store_id', + 'storeToBaseRate' => 'store_to_base_rate', + 'baseToGlobalRate' => 'base_to_global_rate', + 'couponCode' => 'coupon_code', + 'billingAddress' => 'billing_address', + 'shippingAddress' => 'shipping_address', + ]; + $this->prepareDataObject(); + + $this->orderConverter = new OrderConverter( + $this->orderBuilderMock, + $this->itemConverterMock, + $this->paymentConverterMock, + $this->addressConverterMock, + $this->customerBuilderMock + ); + } + + protected function prepareDataObject() + { + $this->orderDataMock->expects($this->once()) + ->method('getCustomerDob') + ->will($this->returnValue($this->orderData['customerDob'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerEmail') + ->will($this->returnValue($this->orderData['customerEmail'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerFirstname') + ->will($this->returnValue($this->orderData['customerFirstName'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerGender') + ->will($this->returnValue($this->orderData['customerGender'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerGroupId') + ->will($this->returnValue($this->orderData['customerGroupId'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerId') + ->will($this->returnValue($this->orderData['customerId'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerIsGuest') + ->will($this->returnValue($this->orderData['customerIsGuest'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerLastname') + ->will($this->returnValue($this->orderData['customerLastName'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerMiddlename') + ->will($this->returnValue($this->orderData['customerMiddleName'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerNote') + ->will($this->returnValue($this->orderData['customerNote'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerNoteNotify') + ->will($this->returnValue($this->orderData['customerNotify'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerPrefix') + ->will($this->returnValue($this->orderData['customerPrefix'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerSuffix') + ->will($this->returnValue($this->orderData['customerSuffix'])); + $this->orderDataMock->expects($this->once()) + ->method('getCustomerTaxvat') + ->will($this->returnValue($this->orderData['customerTaxvat'])); + $this->orderDataMock->expects($this->once()) + ->method('getQuoteId') + ->will($this->returnValue($this->orderData['quoteId'])); + $this->orderDataMock->expects($this->once()) + ->method('getAppliedRuleIds') + ->will($this->returnValue($this->orderData['appliedRuleIds'])); + $this->orderDataMock->expects($this->once()) + ->method('getIsVirtual') + ->will($this->returnValue($this->orderData['isVirtual'])); + $this->orderDataMock->expects($this->once()) + ->method('getRemoteIp') + ->will($this->returnValue($this->orderData['remoteIp'])); + $this->orderDataMock->expects($this->once()) + ->method('getBaseSubtotal') + ->will($this->returnValue($this->orderData['baseSubtotal'])); + $this->orderDataMock->expects($this->once()) + ->method('getSubtotal') + ->will($this->returnValue($this->orderData['subtotal'])); + $this->orderDataMock->expects($this->once()) + ->method('getBaseGrandTotal') + ->will($this->returnValue($this->orderData['baseGrandTotal'])); + $this->orderDataMock->expects($this->once()) + ->method('getGrandTotal') + ->will($this->returnValue($this->orderData['grandTotal'])); + $this->orderDataMock->expects($this->once()) + ->method('getBaseCurrencyCode') + ->will($this->returnValue($this->orderData['baseCurrencyCode'])); + $this->orderDataMock->expects($this->once()) + ->method('getGlobalCurrencyCode') + ->will($this->returnValue($this->orderData['globalCurrencyCode'])); + $this->orderDataMock->expects($this->once()) + ->method('getStoreCurrencyCode') + ->will($this->returnValue($this->orderData['storeCurrencyCode'])); + $this->orderDataMock->expects($this->once()) + ->method('getStoreId') + ->will($this->returnValue($this->orderData['storeId'])); + $this->orderDataMock->expects($this->once()) + ->method('getStoreToBaseRate') + ->will($this->returnValue($this->orderData['storeToBaseRate'])); + $this->orderDataMock->expects($this->once()) + ->method('getBaseToGlobalRate') + ->will($this->returnValue($this->orderData['baseToGlobalRate'])); + $this->orderDataMock->expects($this->once()) + ->method('getCouponCode') + ->will($this->returnValue($this->orderData['couponCode'])); + $this->orderDataMock->expects($this->once()) + ->method('getBillingAddress') + ->will($this->returnValue($this->orderData['billingAddress'])); + $this->orderDataMock->expects($this->once()) + ->method('getShippingAddress') + ->will($this->returnValue($this->orderData['shippingAddress'])); + + return $this->orderDataMock; + } + + protected function getCustomer() + { + $this->customerBuilderMock->expects($this->once()) + ->method('setDob') + ->with($this->orderData['customerDob']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setEmail') + ->with($this->orderData['customerEmail']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setFirstname') + ->with($this->orderData['customerFirstName']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setGender') + ->with($this->orderData['customerGender']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setGroupId') + ->with($this->orderData['customerGroupId']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setId') + ->with($this->orderData['customerId']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setIsGuest') + ->with($this->orderData['customerIsGuest']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setLastname') + ->with($this->orderData['customerLastName']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setMiddlename') + ->with($this->orderData['customerMiddleName']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setNote') + ->with($this->orderData['customerNote']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setNoteNotify') + ->with($this->orderData['customerNotify']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setPrefix') + ->with($this->orderData['customerPrefix']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setSuffix') + ->with($this->orderData['customerSuffix']) + ->will($this->returnSelf()); + $this->customerBuilderMock->expects($this->once()) + ->method('setTaxvat') + ->with($this->orderData['customerTaxvat']) + ->will($this->returnSelf()); + $customer = $this->getMock( + 'Magento\Sales\Model\Order\Customer', + [], + [], + '', + false + ); + $this->customerBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($customer)); + + return $customer; + } + + protected function getItems() + { + $this->orderDataMock->expects($this->any()) + ->method('getItems') + ->will($this->returnValue($this->orderData['items'])); + + $orderItem1 = $this->getMock('Magento\Sales\Model\Order\Item', + [], + [], + '', + false + ); + $orderItem2 = $this->getMock('Magento\Sales\Model\Order\Item', + [], + [], + '', + false + ); + + $this->itemConverterMock->expects($this->any()) + ->method('getModel') + ->will($this->returnValueMap([ + [$this->orderData['items']['01'], $orderItem1], + [$this->orderData['items']['02'], $orderItem2] + ])); + + return [$orderItem1, $orderItem2]; + } + + protected function getPayments() + { + $this->orderDataMock->expects($this->any()) + ->method('getPayments') + ->will($this->returnValue($this->orderData['payments'])); + + $payment = $this->getMock('Magento\Sales\Model\Order\Payment', + [], + [], + '', + false + ); + + $this->paymentConverterMock->expects($this->at(0)) + ->method('getModel') + ->with($this->orderData['payments'][0]) + ->will($this->returnValue($payment)); + + return [$payment]; + } + + public function testGetModel() + { + $billingAddressMock = $this->getMock('Magento\Sales\Model\Order\Address', ['__wakeup'], [], '', false); + $shippingAddressMock = clone $billingAddressMock; + $this->addressConverterMock->expects($this->at(0)) + ->method('getModel') + ->with($this->orderData['billingAddress']) + ->will($this->returnValue($billingAddressMock)); + $this->addressConverterMock->expects($this->at(1)) + ->method('getModel') + ->with($this->orderData['shippingAddress']) + ->will($this->returnValue($shippingAddressMock)); + $this->orderBuilderMock->expects($this->once()) + ->method('setCustomer') + ->with($this->getCustomer()) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setQuoteId') + ->with($this->orderData['quoteId']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setAppliedRuleIds') + ->with($this->orderData['appliedRuleIds']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setIsVirtual') + ->with($this->orderData['isVirtual']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setRemoteIp') + ->with($this->orderData['remoteIp']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setBaseSubtotal') + ->with($this->orderData['baseSubtotal']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setSubtotal') + ->with($this->orderData['subtotal']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setBaseGrandTotal') + ->with($this->orderData['baseGrandTotal']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setGrandTotal') + ->with($this->orderData['grandTotal']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setBaseCurrencyCode') + ->with($this->orderData['baseCurrencyCode']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setGlobalCurrencyCode') + ->with($this->orderData['globalCurrencyCode']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setStoreCurrencyCode') + ->with($this->orderData['storeCurrencyCode']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setStoreId') + ->with($this->orderData['storeId']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setStoreToBaseRate') + ->with($this->orderData['storeToBaseRate']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setBaseToGlobalRate') + ->with($this->orderData['baseToGlobalRate']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setCouponCode') + ->with($this->orderData['couponCode']) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setBillingAddress') + ->with($billingAddressMock) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setShippingAddress') + ->with($shippingAddressMock) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setPayments') + ->with($this->getPayments()) + ->will($this->returnSelf()); + $this->orderBuilderMock->expects($this->once()) + ->method('setItems') + ->with($this->getItems()) + ->will($this->returnSelf()); + $orderMock = $this->getMock('Magento\Sales\Model\Order', [], [], '', false); + $this->orderBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($orderMock)); + + $this->assertEquals($orderMock, $this->orderConverter->getModel($this->orderDataMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/NotifierTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/OrderNotifierTest.php similarity index 95% rename from dev/tests/unit/testsuite/Magento/Sales/Model/NotifierTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Model/OrderNotifierTest.php index efc875255ce4643a06308879f5e554d5bd3eca57..5e0e3eb32fab6b02df1b016b8630e1601d33f19d 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Model/NotifierTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/OrderNotifierTest.php @@ -28,9 +28,9 @@ use Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory; use Magento\Framework\Mail\Exception; /** - * Class NotifierTest + * Class OrderNotifierTest */ -class NotifierTest extends \PHPUnit_Framework_TestCase +class OrderNotifierTest extends \PHPUnit_Framework_TestCase { /** * @var CollectionFactory |\PHPUnit_Framework_MockObject_MockObject @@ -38,7 +38,7 @@ class NotifierTest extends \PHPUnit_Framework_TestCase protected $historyCollectionFactory; /** - * @var \Magento\Sales\Model\Notifier + * @var \Magento\Sales\Model\OrderNotifier */ protected $notifier; @@ -87,7 +87,7 @@ class NotifierTest extends \PHPUnit_Framework_TestCase '', false ); - $this->notifier = new Notifier( + $this->notifier = new OrderNotifier( $this->historyCollectionFactory, $this->loggerMock, $this->orderSenderMock @@ -120,7 +120,7 @@ class NotifierTest extends \PHPUnit_Framework_TestCase ->method('save'); $historyCollection->expects($this->once()) ->method('getUnnotifiedForInstance') - ->with($this->order, \Magento\Sales\Model\Order::HISTORY_ENTITY_NAME) + ->with($this->order) ->will($this->returnValue($historyItem)); $this->order->expects($this->once()) ->method('getEmailSent') diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/OrderTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/OrderTest.php index 4caf8750d8aa36d289a8885754469a6a7ff67179..d4bd6704053d9682236ed766ff8d2e83a3a1728c 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Model/OrderTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/OrderTest.php @@ -22,11 +22,13 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +namespace Magento\Sales\Model; + /** * Test class for \Magento\Sales\Model\Order + * + * @package Magento\Sales\Model */ -namespace Magento\Sales\Model; - class OrderTest extends \PHPUnit_Framework_TestCase { /** @@ -89,7 +91,7 @@ class OrderTest extends \PHPUnit_Framework_TestCase { $paymentMock = $this->getMockBuilder('Magento\Sales\Model\Resource\Order\Payment') ->disableOriginalConstructor() - ->setMethods(['isDeleted', 'canReviewPayment', 'canFetchTransactionInfo']) + ->setMethods(['isDeleted', 'canReviewPayment', 'canFetchTransactionInfo', '__wakeUp']) ->getMock(); $paymentMock->expects($this->any()) ->method('canReviewPayment') @@ -108,7 +110,7 @@ class OrderTest extends \PHPUnit_Framework_TestCase { $paymentMock = $this->getMockBuilder('Magento\Sales\Model\Resource\Order\Payment') ->disableOriginalConstructor() - ->setMethods(['isDeleted', 'canReviewPayment', 'canFetchTransactionInfo']) + ->setMethods(['isDeleted', 'canReviewPayment', 'canFetchTransactionInfo', '__wakeUp']) ->getMock(); $paymentMock->expects($this->any()) ->method('canReviewPayment') @@ -130,7 +132,7 @@ class OrderTest extends \PHPUnit_Framework_TestCase { $paymentMock = $this->getMockBuilder('Magento\Sales\Model\Resource\Order\Payment') ->disableOriginalConstructor() - ->setMethods(['isDeleted', 'canReviewPayment', 'canFetchTransactionInfo']) + ->setMethods(['isDeleted', 'canReviewPayment', 'canFetchTransactionInfo', '__wakeUp']) ->getMock(); $paymentMock->expects($this->any()) ->method('canReviewPayment') @@ -155,7 +157,7 @@ class OrderTest extends \PHPUnit_Framework_TestCase { $paymentMock = $this->getMockBuilder('Magento\Sales\Model\Resource\Order\Payment') ->disableOriginalConstructor() - ->setMethods(['isDeleted', 'canReviewPayment', 'canFetchTransactionInfo']) + ->setMethods(['isDeleted', 'canReviewPayment', 'canFetchTransactionInfo', '__wakeUp']) ->getMock(); $paymentMock->expects($this->any()) ->method('canReviewPayment') @@ -311,7 +313,7 @@ class OrderTest extends \PHPUnit_Framework_TestCase { $itemMock = $this->getMockBuilder('Magento\Sales\Model\Resource\Order\Item') ->disableOriginalConstructor() - ->setMethods(['isDeleted', 'filterByTypes', 'filterByParent', 'getQtyToInvoice']) + ->setMethods(['isDeleted', 'filterByTypes', 'filterByParent', 'getQtyToInvoice', '__wakeUp']) ->getMock(); $itemMock->expects($this->any()) @@ -354,4 +356,9 @@ class OrderTest extends \PHPUnit_Framework_TestCase [true] ]; } + + public function testGetEntityType() + { + $this->assertEquals('order', $this->order->getEntityType()); + } } diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/AddressTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/AddressTest.php index 400ece2cc9a62ddf90809f055078b3911d9769e9..f7e827e77ad9292e6f367a99a870a898054b609f 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/AddressTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/AddressTest.php @@ -52,8 +52,9 @@ class AddressTest extends \PHPUnit_Framework_TestCase * @var \Magento\Sales\Model\Order\Address\Validator|\PHPUnit_Framework_MockObject_MockObject */ protected $validatorMock; + /** - * + * Set up */ public function setUp() { @@ -103,7 +104,6 @@ class AddressTest extends \PHPUnit_Framework_TestCase 'validator' => $this->validatorMock ] ); - } /** diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Creditmemo/CommentTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Creditmemo/CommentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..8b7cc77fd4c12ef4e263cdc69a5cbc88749e3850 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Creditmemo/CommentTest.php @@ -0,0 +1,138 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Resource\Order\Creditmemo; + +/** + * Class CommentTest + */ +class CommentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Resource\Order\Creditmemo\Comment + */ + protected $commentResource; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentModelMock; + + /** + * @var \Magento\Framework\App\Resource|\PHPUnit_Framework_MockObject_MockObject + */ + protected $appResourceMock; + + /** + * @var \Magento\Framework\DB\Adapter\Pdo\Mysql|\PHPUnit_Framework_MockObject_MockObject + */ + protected $adapterMock; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo\Comment\Validator|\PHPUnit_Framework_MockObject_MockObject + */ + protected $validatorMock; + + /** + * Set up + */ + protected function setUp() + { + $this->commentModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo\Comment', + [], + [], + '', + false + ); + $this->appResourceMock = $this->getMock( + 'Magento\Framework\App\Resource', + [], + [], + '', + false + ); + $this->adapterMock = $this->getMock( + 'Magento\Framework\DB\Adapter\Pdo\Mysql', + ['describeTable', 'insert', 'lastInsertId'], + [], + '', + false + ); + $this->validatorMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo\Comment\Validator', + [], + [], + '', + false + ); + $this->appResourceMock->expects($this->any()) + ->method('getConnection') + ->will($this->returnValue($this->adapterMock)); + $this->adapterMock->expects($this->any()) + ->method('describeTable') + ->will($this->returnValue([])); + $this->adapterMock->expects($this->any()) + ->method('insert'); + $this->adapterMock->expects($this->any()) + ->method('lastInsertId'); + + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->commentResource = $objectManager->getObject( + 'Magento\Sales\Model\Resource\Order\Creditmemo\Comment', + [ + 'resource' => $this->appResourceMock, + 'validator' => $this->validatorMock + ] + ); + } + + /** + * Test _beforeSaveMethod via save() + */ + public function testSave() + { + $this->validatorMock->expects($this->once()) + ->method('validate') + ->with($this->equalTo($this->commentModelMock)) + ->will($this->returnValue([])); + $this->commentResource->save($this->commentModelMock); + $this->assertTrue(true); + } + + /** + * Test _beforeSaveMethod via save() with failed validation + * + * @expectedException \Magento\Framework\Model\Exception + * @expectedExceptionMessage Cannot save comment: + */ + public function testSaveValidationFailed() + { + $this->validatorMock->expects($this->once()) + ->method('validate') + ->with($this->equalTo($this->commentModelMock)) + ->will($this->returnValue(['warning message'])); + $this->commentResource->save($this->commentModelMock); + $this->assertTrue(true); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Invoice/CommentTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Invoice/CommentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..dd801ac55f6946386c8b9e699147df12ef46659b --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Invoice/CommentTest.php @@ -0,0 +1,138 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Resource\Order\Invoice; + +/** + * Class CommentTest + */ +class CommentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Resource\Order\Invoice\Comment + */ + protected $commentResource; + + /** + * @var \Magento\Sales\Model\Order\Invoice\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentModelMock; + + /** + * @var \Magento\Framework\App\Resource|\PHPUnit_Framework_MockObject_MockObject + */ + protected $appResourceMock; + + /** + * @var \Magento\Framework\DB\Adapter\Pdo\Mysql|\PHPUnit_Framework_MockObject_MockObject + */ + protected $adapterMock; + + /** + * @var \Magento\Sales\Model\Order\Invoice\Comment\Validator|\PHPUnit_Framework_MockObject_MockObject + */ + protected $validatorMock; + + /** + * Set up + */ + protected function setUp() + { + $this->commentModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice\Comment', + [], + [], + '', + false + ); + $this->appResourceMock = $this->getMock( + 'Magento\Framework\App\Resource', + [], + [], + '', + false + ); + $this->adapterMock = $this->getMock( + 'Magento\Framework\DB\Adapter\Pdo\Mysql', + ['describeTable', 'insert', 'lastInsertId'], + [], + '', + false + ); + $this->validatorMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice\Comment\Validator', + [], + [], + '', + false + ); + $this->appResourceMock->expects($this->any()) + ->method('getConnection') + ->will($this->returnValue($this->adapterMock)); + $this->adapterMock->expects($this->any()) + ->method('describeTable') + ->will($this->returnValue([])); + $this->adapterMock->expects($this->any()) + ->method('insert'); + $this->adapterMock->expects($this->any()) + ->method('lastInsertId'); + + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->commentResource = $objectManager->getObject( + 'Magento\Sales\Model\Resource\Order\Invoice\Comment', + [ + 'resource' => $this->appResourceMock, + 'validator' => $this->validatorMock + ] + ); + } + + /** + * Test _beforeSaveMethod via save() + */ + public function testSave() + { + $this->validatorMock->expects($this->once()) + ->method('validate') + ->with($this->equalTo($this->commentModelMock)) + ->will($this->returnValue([])); + $this->commentResource->save($this->commentModelMock); + $this->assertTrue(true); + } + + /** + * Test _beforeSaveMethod via save() with failed validation + * + * @expectedException \Magento\Framework\Model\Exception + * @expectedExceptionMessage Cannot save comment: + */ + public function testSaveValidationFailed() + { + $this->validatorMock->expects($this->once()) + ->method('validate') + ->with($this->equalTo($this->commentModelMock)) + ->will($this->returnValue(['warning message'])); + $this->commentResource->save($this->commentModelMock); + $this->assertTrue(true); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Shipment/CommentTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Shipment/CommentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..d7e20d90ad1b0cec685f86240da6785cde205033 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Shipment/CommentTest.php @@ -0,0 +1,138 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Resource\Order\Shipment; + +/** + * Class CommentTest + */ +class CommentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Resource\Order\Shipment\Comment + */ + protected $commentResource; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentModelMock; + + /** + * @var \Magento\Framework\App\Resource|\PHPUnit_Framework_MockObject_MockObject + */ + protected $appResourceMock; + + /** + * @var \Magento\Framework\DB\Adapter\Pdo\Mysql|\PHPUnit_Framework_MockObject_MockObject + */ + protected $adapterMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Comment\Validator|\PHPUnit_Framework_MockObject_MockObject + */ + protected $validatorMock; + + /** + * Set up + */ + protected function setUp() + { + $this->commentModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Comment', + [], + [], + '', + false + ); + $this->appResourceMock = $this->getMock( + 'Magento\Framework\App\Resource', + [], + [], + '', + false + ); + $this->adapterMock = $this->getMock( + 'Magento\Framework\DB\Adapter\Pdo\Mysql', + ['describeTable', 'insert', 'lastInsertId'], + [], + '', + false + ); + $this->validatorMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Comment\Validator', + [], + [], + '', + false + ); + $this->appResourceMock->expects($this->any()) + ->method('getConnection') + ->will($this->returnValue($this->adapterMock)); + $this->adapterMock->expects($this->any()) + ->method('describeTable') + ->will($this->returnValue([])); + $this->adapterMock->expects($this->any()) + ->method('insert'); + $this->adapterMock->expects($this->any()) + ->method('lastInsertId'); + + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->commentResource = $objectManager->getObject( + 'Magento\Sales\Model\Resource\Order\Shipment\Comment', + [ + 'resource' => $this->appResourceMock, + 'validator' => $this->validatorMock + ] + ); + } + + /** + * Test _beforeSaveMethod via save() + */ + public function testSave() + { + $this->validatorMock->expects($this->once()) + ->method('validate') + ->with($this->equalTo($this->commentModelMock)) + ->will($this->returnValue([])); + $this->commentResource->save($this->commentModelMock); + $this->assertTrue(true); + } + + /** + * Test _beforeSaveMethod via save() with failed validation + * + * @expectedException \Magento\Framework\Model\Exception + * @expectedExceptionMessage Cannot save comment: + */ + public function testSaveValidationFailed() + { + $this->validatorMock->expects($this->once()) + ->method('validate') + ->with($this->equalTo($this->commentModelMock)) + ->will($this->returnValue(['warning message'])); + $this->commentResource->save($this->commentModelMock); + $this->assertTrue(true); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Shipment/TrackTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Shipment/TrackTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c38d4610004d648f9cfc165fe9c2c53e6ac32092 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Shipment/TrackTest.php @@ -0,0 +1,138 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Model\Resource\Order\Shipment; + +/** + * Class TrackTest + */ +class TrackTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Resource\Order\Shipment\Track + */ + protected $trackResource; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Track|\PHPUnit_Framework_MockObject_MockObject + */ + protected $trackModelMock; + + /** + * @var \Magento\Framework\App\Resource|\PHPUnit_Framework_MockObject_MockObject + */ + protected $appResourceMock; + + /** + * @var \Magento\Framework\DB\Adapter\Pdo\Mysql|\PHPUnit_Framework_MockObject_MockObject + */ + protected $adapterMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Track\Validator|\PHPUnit_Framework_MockObject_MockObject + */ + protected $validatorMock; + + /** + * Set up + */ + protected function setUp() + { + $this->trackModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Track', + [], + [], + '', + false + ); + $this->appResourceMock = $this->getMock( + 'Magento\Framework\App\Resource', + [], + [], + '', + false + ); + $this->adapterMock = $this->getMock( + 'Magento\Framework\DB\Adapter\Pdo\Mysql', + ['describeTable', 'insert', 'lastInsertId'], + [], + '', + false + ); + $this->validatorMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Track\Validator', + [], + [], + '', + false + ); + $this->appResourceMock->expects($this->any()) + ->method('getConnection') + ->will($this->returnValue($this->adapterMock)); + $this->adapterMock->expects($this->any()) + ->method('describeTable') + ->will($this->returnValue([])); + $this->adapterMock->expects($this->any()) + ->method('insert'); + $this->adapterMock->expects($this->any()) + ->method('lastInsertId'); + + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->trackResource = $objectManager->getObject( + 'Magento\Sales\Model\Resource\Order\Shipment\Track', + [ + 'resource' => $this->appResourceMock, + 'validator' => $this->validatorMock + ] + ); + } + + /** + * Test _beforeSaveMethod via save() + */ + public function testSave() + { + $this->validatorMock->expects($this->once()) + ->method('validate') + ->with($this->equalTo($this->trackModelMock)) + ->will($this->returnValue([])); + $this->trackResource->save($this->trackModelMock); + $this->assertTrue(true); + } + + /** + * Test _beforeSaveMethod via save() with failed validation + * + * @expectedException \Magento\Framework\Model\Exception + * @expectedExceptionMessage Cannot save track: + */ + public function testSaveValidationFailed() + { + $this->validatorMock->expects($this->once()) + ->method('validate') + ->with($this->equalTo($this->trackModelMock)) + ->will($this->returnValue(['warning message'])); + $this->trackResource->save($this->trackModelMock); + $this->assertTrue(true); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Status/History/CollectionTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Status/History/CollectionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..53cd290bfe483c54d3167d3b1749e8347e616b8c --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Resource/Order/Status/History/CollectionTest.php @@ -0,0 +1,159 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Model\Resource\Order\Status\History; + +class CollectionTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Resource\Order\Status\History\Collection + */ + protected $collection; + + /** + * @var \Magento\Framework\DB\Adapter\Pdo\Mysql|\PHPUnit_Framework_MockObject_MockObject + */ + protected $connectionMock; + + /** + * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $eventManagerMock; + + /** + * @var \Zend_Db_Select|\PHPUnit_Framework_MockObject_MockObject + */ + protected $selectMock; + + /** + * @var \Magento\Sales\Model\Order\Status\History|\PHPUnit_Framework_MockObject_MockObject + */ + protected $historyItemMock; + + /** + * @var \Magento\Framework\Model\Resource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resourceMock; + + /** + * @var \Magento\Framework\Data\Collection\Db\FetchStrategyInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $fetchStrategyMock; + + /** + * @var \Magento\Core\Model\EntityFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $entityFactoryMock; + + public function setUp() + { + $this->eventManagerMock = $this->getMock('Magento\Framework\Event\ManagerInterface', [], [], '', false); + $this->connectionMock = $this->getMock('Magento\Framework\DB\Adapter\Pdo\Mysql', [], [], '', false); + $this->selectMock = $this->getMock('Zend_Db_Select', [], [], '', false); + $this->historyItemMock = $this->getMock( + 'Magento\Sales\Model\Order\Status\History', + ['__wakeup', 'addData'], + [], + '', + false + ); + $this->resourceMock = $this->getMockForAbstractClass( + 'Magento\Framework\Model\Resource\Db\AbstractDb', + [], + '', + false, + true, + true, + ['getReadConnection', 'getMainTable', 'getTable', '__wakeup'] + ); + $this->fetchStrategyMock = $this->getMockForAbstractClass( + 'Magento\Framework\Data\Collection\Db\FetchStrategyInterface' + ); + $this->entityFactoryMock = $this->getMock('Magento\Core\Model\EntityFactory', [], [], '', false); + + $this->resourceMock->expects($this->any())->method('getReadConnection')->will( + $this->returnValue($this->connectionMock) + ); + $this->resourceMock->expects($this->any())->method('getTable')->will($this->returnArgument(0)); + + $this->connectionMock->expects($this->any())->method('quoteIdentifier')->will($this->returnArgument(0)); + $this->connectionMock->expects($this->atLeastOnce()) + ->method('select') + ->will($this->returnValue($this->selectMock)); + + $data = [['data']]; + $this->historyItemMock->expects($this->once()) + ->method('addData') + ->with($this->equalTo($data[0])) + ->will($this->returnValue($this->historyItemMock)); + + $this->fetchStrategyMock->expects($this->once()) + ->method('fetchAll') + ->will($this->returnValue($data)); + + $this->entityFactoryMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($this->historyItemMock)); + + $logger = $this->getMock('Magento\Framework\Logger', [], [], '', false); + $this->collection = new \Magento\Sales\Model\Resource\Order\Status\History\Collection( + $this->entityFactoryMock, + $logger, + $this->fetchStrategyMock, + $this->eventManagerMock, + $this->connectionMock, + $this->resourceMock + ); + } + + public function testGetUnnotifiedForInstance() + { + $orderId = 100000512; + $entityType = 'order'; + + $order = $this->getMock('Magento\Sales\Model\Order', ['__wakeup', 'getEntityType', 'getId'], [], '', false); + $order->expects($this->once()) + ->method('getEntityType') + ->will($this->returnValue($entityType)); + $order->expects($this->once()) + ->method('getId') + ->will($this->returnValue($orderId)); + + $this->connectionMock = $this->collection->getResource()->getReadConnection(); + $this->connectionMock->expects($this->exactly(3)) + ->method('prepareSqlCondition') + ->will( + $this->returnValueMap( + [ + ['entity_name', $entityType, 'sql-string'], + ['is_customer_notified', 0, 'sql-string'], + ['parent_id', $orderId, 'sql-string'] + ] + ) + ); + $result = $this->collection->getUnnotifiedForInstance($order); + $this->assertEquals($this->historyItemMock, $result); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoAddCommentTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoAddCommentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..f6a5a44d1db9f114f972f54ff18f011161aa4eee --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoAddCommentTest.php @@ -0,0 +1,93 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class CreditmemoAddCommentTest + */ +class CreditmemoAddCommentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoAddComment + */ + protected $creditmemoAddComment; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo\CommentConverter|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentConverterMock; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataModelMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Creditmemo|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * Set up + */ + protected function setUp() + { + $this->commentConverterMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo\CommentConverter', + ['getModel'], + [], + '', + false + ); + $this->dataModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo\Comment', + ['save', '__wakeup'], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Comment', + [], + [], + '', + false + ); + $this->creditmemoAddComment = new CreditmemoAddComment($this->commentConverterMock); + } + + /** + * Test creditmemo add comment service + */ + public function testInvoke() + { + $this->commentConverterMock->expects($this->once()) + ->method('getModel') + ->with($this->equalTo($this->dataObjectMock)) + ->will($this->returnValue($this->dataModelMock)); + $this->dataModelMock->expects($this->once()) + ->method('save'); + $this->assertTrue($this->creditmemoAddComment->invoke($this->dataObjectMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoCancelTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoCancelTest.php new file mode 100644 index 0000000000000000000000000000000000000000..d52b4f0db6bddb0c31c2995f510f724a71bf5aca --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoCancelTest.php @@ -0,0 +1,84 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class CreditmemoCancelTest + */ +class CreditmemoCancelTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoCancel + */ + protected $creditmemoCancel; + + /** + * @var \Magento\Sales\Model\Order\CreditmemoRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoRepositoryMock; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMock; + + /** + * SetUp + */ + protected function setUp() + { + $this->creditmemoRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\CreditmemoRepository', + ['get'], + [], + '', + false + ); + $this->creditmemoMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo', + [], + [], + '', + false + ); + $this->creditmemoCancel = new CreditmemoCancel( + $this->creditmemoRepositoryMock + ); + } + + /** + * test creditmemo cancel service + */ + public function testInvoke() + { + $this->creditmemoRepositoryMock->expects($this->once()) + ->method('get') + ->with($this->equalTo(1)) + ->will($this->returnValue($this->creditmemoMock)); + $this->creditmemoMock->expects($this->once()) + ->method('cancel') + ->will($this->returnSelf()); + $this->assertTrue($this->creditmemoCancel->invoke(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoCommentsListTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoCommentsListTest.php new file mode 100644 index 0000000000000000000000000000000000000000..01b7278f669fa66509642aad8a585fd0632d2a42 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoCommentsListTest.php @@ -0,0 +1,197 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class CreditmemoCommentsListTest + */ +class CreditmemoCommentsListTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoCommentsList + */ + protected $creditmemoCommentsList; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo\CommentRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentRepositoryMock; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentMapperMock; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $criteriaBuilderMock; + + /** + * @var \Magento\Framework\Service\V1\Data\FilterBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $filterBuilderMock; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchResultsBuilderMock; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoCommentMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteria|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchCriteriaMock; + + protected function setUp() + { + $this->commentRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo\CommentRepository', + ['find'], + [], + '', + false + ); + $this->commentMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CommentMapper', + ['extractDto'], + [], + '', + false + ); + $this->criteriaBuilderMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\SearchCriteriaBuilder', + ['create', 'addFilter'], + [], + '', + false + ); + $this->filterBuilderMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\FilterBuilder', + ['setField', 'setValue', 'create'], + [], + '', + false + ); + $this->searchResultsBuilderMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder', + ['setItems', 'setSearchCriteria', 'create', 'setTotalCount'], + [], + '', + false + ); + $this->creditmemoCommentMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo\Comment', + [], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Comment', + [], + [], + '', + false + ); + $this->searchCriteriaMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\SearchCriteria', + [], + [], + '', + false + ); + $this->creditmemoCommentsList = new CreditmemoCommentsList( + $this->commentRepositoryMock, + $this->commentMapperMock, + $this->criteriaBuilderMock, + $this->filterBuilderMock, + $this->searchResultsBuilderMock + ); + + } + + /** + * test creditmemo comments list service + */ + public function testInvoke() + { + $creditmemoId = 1; + $this->filterBuilderMock->expects($this->once()) + ->method('setField') + ->with($this->equalTo('parent_id')) + ->will($this->returnSelf()); + $this->filterBuilderMock->expects($this->once()) + ->method('setValue') + ->with($this->equalTo($creditmemoId)) + ->will($this->returnSelf()); + $this->filterBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('filter')); + $this->criteriaBuilderMock->expects($this->once()) + ->method('addFilter') + ->with($this->equalTo(['eq' => 'filter'])) + ->will($this->returnSelf()); + $this->criteriaBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($this->searchCriteriaMock)); + + $this->commentRepositoryMock->expects($this->once()) + ->method('find') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnValue([$this->creditmemoCommentMock])); + + $this->commentMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->creditmemoCommentMock)) + ->will($this->returnValue($this->dataObjectMock)); + + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setItems') + ->with($this->equalTo([$this->dataObjectMock])) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setTotalCount') + ->with($this->equalTo(1)) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setSearchCriteria') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('expected-result')); + + $this->assertEquals('expected-result', $this->creditmemoCommentsList->invoke($creditmemoId)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoCreateTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoCreateTest.php new file mode 100644 index 0000000000000000000000000000000000000000..ed74f1a20050e1329a0486a9f6c97cad680a6453 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoCreateTest.php @@ -0,0 +1,143 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class CreditmemoCreateTest + */ +class CreditmemoCreateTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoCreate + */ + protected $creditmemoCreate; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoConverterMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $loggerMock; + + public function setUp() + { + $this->creditmemoConverterMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\CreditmemoConverter') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->loggerMock = $this->getMockBuilder('Magento\Framework\Logger') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->creditmemoCreate = new CreditmemoCreate( + $this->creditmemoConverterMock, + $this->loggerMock + ); + } + + public function testInvoke() + { + $creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $creditmemoMock->expects($this->once()) + ->method('register'); + $creditmemoMock->expects($this->once()) + ->method('save') + ->will($this->returnValue(true)); + $creditmemoMock->expects($this->once()) + ->method('isValidGrandTotal') + ->will($this->returnValue(true)); + $creditmemoDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->creditmemoConverterMock->expects($this->once()) + ->method('getModel') + ->with($creditmemoDataObjectMock) + ->will($this->returnValue($creditmemoMock)); + $this->assertTrue($this->creditmemoCreate->invoke($creditmemoDataObjectMock)); + } + + public function testInvokeNotValidTotal() + { + $creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $creditmemoMock->expects($this->once()) + ->method('isValidGrandTotal') + ->will($this->returnValue(false)); + $creditmemoDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->creditmemoConverterMock->expects($this->once()) + ->method('getModel') + ->with($creditmemoDataObjectMock) + ->will($this->returnValue($creditmemoMock)); + $this->assertFalse($this->creditmemoCreate->invoke($creditmemoDataObjectMock)); + } + + public function testInvokeNoCreditmemo() + { + $creditmemoDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->creditmemoConverterMock->expects($this->once()) + ->method('getModel') + ->with($creditmemoDataObjectMock) + ->will($this->returnValue(false)); + $this->assertFalse($this->creditmemoCreate->invoke($creditmemoDataObjectMock)); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage An error has occurred during creating Creditmemo + */ + public function testInvokeException() + { + $message = 'Can not save Creditmemo'; + $e = new \Exception($message); + + $creditmemoDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->loggerMock->expects($this->once()) + ->method('logException') + ->with($e); + $this->creditmemoConverterMock->expects($this->once()) + ->method('getModel') + ->with($creditmemoDataObjectMock) + ->will($this->throwException($e)); + $this->creditmemoCreate->invoke($creditmemoDataObjectMock); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoEmailTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoEmailTest.php new file mode 100644 index 0000000000000000000000000000000000000000..90003ebd87aaee4ed16c21eb9bf4af65debef68a --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoEmailTest.php @@ -0,0 +1,94 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Service\V1\Action; + +/** + * Test Class CreditmemoEmailTest for Order Service + * + * @package Magento\Sales\Service\V1 + */ +class CreditmemoEmailTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Order\CreditmemoRepository + */ + protected $creditmemoRepository; + + /** + * @var \Magento\Sales\Model\Order\CreditmemoNotifier + */ + protected $notifier; + + public function setUp() + { + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->creditmemoRepository = $this->getMock( + '\Magento\Sales\Model\Order\CreditmemoRepository', + ['get'], + [], + '', + false + ); + $this->notifier = $this->getMock( + '\Magento\Sales\Model\Order\CreditmemoNotifier', + ['notify', '__wakeup'], + [], + '', + false + ); + + $this->service = $objectManager->getObject( + 'Magento\Sales\Service\V1\Action\CreditmemoEmail', + [ + 'creditmemoRepository' => $this->creditmemoRepository, + 'notifier' => $this->notifier + ] + ); + } + + public function testInvoke() + { + $creditmemoId = 1; + $creditmemo = $this->getMock( + '\Magento\Sales\Model\Order\Creditmemo', + ['__wakeup', 'getEmailSent'], + [], + '', + false + ); + + $this->creditmemoRepository->expects($this->once()) + ->method('get') + ->with($creditmemoId) + ->will($this->returnValue($creditmemo)); + $this->notifier->expects($this->any()) + ->method('notify') + ->with($creditmemo) + ->will($this->returnValue(true)); + + $this->assertTrue($this->service->invoke($creditmemoId)); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoGetTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoGetTest.php new file mode 100644 index 0000000000000000000000000000000000000000..20b5d98d457493cc95a943552b2262e95f620da0 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoGetTest.php @@ -0,0 +1,113 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class CreditmemoGetTest + */ +class CreditmemoGetTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoGet + */ + protected $creditmemoGet; + + /** + * @var \Magento\Sales\Model\Order\CreditmemoRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoRepositoryMock; + + /** + * @var \Magento\Sales\Service\V1\Data\CreditmemoMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMapperMock; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Creditmemo|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * SetUp + * + * @return void + */ + protected function setUp() + { + $this->creditmemoRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\CreditmemoRepository', + ['get'], + [], + '', + false + ); + $this->creditmemoMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CreditmemoMapper', + ['extractDto'], + [], + '', + false + ); + $this->creditmemoMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo', + [], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Creditmemo', + [], + [], + '', + false + ); + + $this->creditmemoGet = new CreditmemoGet( + $this->creditmemoRepositoryMock, + $this->creditmemoMapperMock + ); + } + + /** + * Test creditmemo get service + */ + public function testInvoke() + { + $this->creditmemoRepositoryMock->expects($this->once()) + ->method('get') + ->with($this->equalTo(1)) + ->will($this->returnValue($this->creditmemoMock)); + $this->creditmemoMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->creditmemoMock)) + ->will($this->returnValue($this->dataObjectMock)); + $this->assertEquals($this->dataObjectMock, $this->creditmemoGet->invoke(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoListTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoListTest.php new file mode 100644 index 0000000000000000000000000000000000000000..43e7690f2ba6752177fe3edaa4e4dfd1cd0222f1 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/CreditmemoListTest.php @@ -0,0 +1,154 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class CreditmemoListTest + */ +class CreditmemoListTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoList + */ + protected $creditmemoList; + + /** + * @var \Magento\Sales\Model\Order\CreditmemoRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoRepositoryMock; + + /** + * @var \Magento\Sales\Service\V1\Data\CreditmemoMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMapperMock; + + /** + * @var \Magento\Sales\Service\V1\Data\CreditmemoSearchResultsBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchResultsBuilderMock; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteria|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchCriteriaMock; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Creditmemo|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * SetUp + * + * @return void + */ + protected function setUp() + { + $this->creditmemoRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\CreditmemoRepository', + ['find'], + [], + '', + false + ); + $this->creditmemoMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CreditmemoMapper', + [], + [], + '', + false + ); + $this->searchResultsBuilderMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CreditmemoSearchResultsBuilder', + ['setItems', 'setSearchCriteria', 'create', 'setTotalCount'], + [], + '', + false + ); + $this->searchCriteriaMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\SearchCriteria', + [], + [], + '', + false + ); + $this->creditmemoMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo', + [], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Creditmemo', + [], + [], + '', + false + ); + $this->creditmemoList = new CreditmemoList( + $this->creditmemoRepositoryMock, + $this->creditmemoMapperMock, + $this->searchResultsBuilderMock + ); + } + + /** + * Test creditmemo list service + * + * @return void + */ + public function testCreditmemo() + { + $this->creditmemoRepositoryMock->expects($this->once()) + ->method('find') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnValue([$this->creditmemoMock])); + $this->creditmemoMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->creditmemoMock)) + ->will($this->returnValue($this->dataObjectMock)); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setItems') + ->with($this->equalTo([$this->dataObjectMock])) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setTotalCount') + ->with($this->equalTo(count($this->creditmemoMock))) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setSearchCriteria') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('expected-result')); + $this->assertEquals('expected-result', $this->creditmemoList->invoke($this->searchCriteriaMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceAddCommentTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceAddCommentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..2d0dafef7ad45ac205206681152ccd1989f2637f --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceAddCommentTest.php @@ -0,0 +1,93 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class InvoiceAddCommentTest + */ +class InvoiceAddCommentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceAddComment + */ + protected $invoiceAddComment; + + /** + * @var \Magento\Sales\Model\Order\Invoice\CommentConverter|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentConverterMock; + + /** + * @var \Magento\Sales\Model\Order\Invoice\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataModelMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * Set up + */ + protected function setUp() + { + $this->commentConverterMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice\CommentConverter', + ['getModel'], + [], + '', + false + ); + $this->dataModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice\Comment', + ['save', '__wakeup'], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Comment', + [], + [], + '', + false + ); + $this->invoiceAddComment = new InvoiceAddComment($this->commentConverterMock); + } + + /** + * Test invoice add comment service + */ + public function testInvoke() + { + $this->commentConverterMock->expects($this->once()) + ->method('getModel') + ->with($this->equalTo($this->dataObjectMock)) + ->will($this->returnValue($this->dataModelMock)); + $this->dataModelMock->expects($this->once()) + ->method('save'); + $this->assertTrue($this->invoiceAddComment->invoke($this->dataObjectMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceCaptureTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceCaptureTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c68881cd98d60d3472e1eb085309067fdcca0d3e --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceCaptureTest.php @@ -0,0 +1,84 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class InvoiceCaptureTest + */ +class InvoiceCaptureTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceCapture + */ + protected $invoiceCapture; + + /** + * @var \Magento\Sales\Model\Order\InvoiceRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceRepositoryMock; + + /** + * @var \Magento\Sales\Model\Order\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceMock; + + /** + * SetUp + */ + protected function setUp() + { + $this->invoiceRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\InvoiceRepository', + ['get'], + [], + '', + false + ); + $this->invoiceMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice', + [], + [], + '', + false + ); + $this->invoiceCapture = new InvoiceCapture( + $this->invoiceRepositoryMock + ); + } + + /** + * test invoice capture service + */ + public function testInvoke() + { + $this->invoiceRepositoryMock->expects($this->once()) + ->method('get') + ->with($this->equalTo(1)) + ->will($this->returnValue($this->invoiceMock)); + $this->invoiceMock->expects($this->once()) + ->method('capture') + ->will($this->returnSelf()); + $this->assertTrue($this->invoiceCapture->invoke(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceCommentsListTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceCommentsListTest.php new file mode 100644 index 0000000000000000000000000000000000000000..5636a851eba2e887a97f4ed1cd3a4202230f5f58 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceCommentsListTest.php @@ -0,0 +1,197 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class InvoiceCommentsListTest + */ +class InvoiceCommentsListTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceCommentsList + */ + protected $invoiceCommentsList; + + /** + * @var \Magento\Sales\Model\Order\Invoice\CommentRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentRepositoryMock; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentMapperMock; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $criteriaBuilderMock; + + /** + * @var \Magento\Framework\Service\V1\Data\FilterBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $filterBuilderMock; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchResultsBuilderMock; + + /** + * @var \Magento\Sales\Model\Order\Invoice\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceCommentMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteria|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchCriteriaMock; + + protected function setUp() + { + $this->commentRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice\CommentRepository', + ['find'], + [], + '', + false + ); + $this->commentMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CommentMapper', + ['extractDto'], + [], + '', + false + ); + $this->criteriaBuilderMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\SearchCriteriaBuilder', + ['create', 'addFilter'], + [], + '', + false + ); + $this->filterBuilderMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\FilterBuilder', + ['setField', 'setValue', 'create'], + [], + '', + false + ); + $this->searchResultsBuilderMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder', + ['setItems', 'setSearchCriteria', 'create', 'setTotalCount'], + [], + '', + false + ); + $this->invoiceCommentMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice\Comment', + [], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Comment', + [], + [], + '', + false + ); + $this->searchCriteriaMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\SearchCriteria', + [], + [], + '', + false + ); + $this->invoiceCommentsList = new InvoiceCommentsList( + $this->commentRepositoryMock, + $this->commentMapperMock, + $this->criteriaBuilderMock, + $this->filterBuilderMock, + $this->searchResultsBuilderMock + ); + + } + + /** + * test invoice comments list service + */ + public function testInvoke() + { + $invoiceId = 1; + $this->filterBuilderMock->expects($this->once()) + ->method('setField') + ->with($this->equalTo('parent_id')) + ->will($this->returnSelf()); + $this->filterBuilderMock->expects($this->once()) + ->method('setValue') + ->with($this->equalTo($invoiceId)) + ->will($this->returnSelf()); + $this->filterBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('filter')); + $this->criteriaBuilderMock->expects($this->once()) + ->method('addFilter') + ->with($this->equalTo(['eq' => 'filter'])) + ->will($this->returnSelf()); + $this->criteriaBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($this->searchCriteriaMock)); + + $this->commentRepositoryMock->expects($this->once()) + ->method('find') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnValue([$this->invoiceCommentMock])); + + $this->commentMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->invoiceCommentMock)) + ->will($this->returnValue($this->dataObjectMock)); + + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setItems') + ->with($this->equalTo([$this->dataObjectMock])) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setTotalCount') + ->with($this->equalTo(1)) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setSearchCriteria') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('expected-result')); + + $this->assertEquals('expected-result', $this->invoiceCommentsList->invoke($invoiceId)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceCreateTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceCreateTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fbd3c86e50a10d62b1f1776f69ed4ec0bceba9ef --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceCreateTest.php @@ -0,0 +1,120 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class InvoiceCreateTest + */ +class InvoiceCreateTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceCreate + */ + protected $invoiceCreate; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceConverterMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $loggerMock; + + public function setUp() + { + $this->invoiceConverterMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\InvoiceConverter') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->loggerMock = $this->getMockBuilder('Magento\Framework\Logger') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->invoiceCreate = new InvoiceCreate( + $this->invoiceConverterMock, + $this->loggerMock + ); + } + + public function testInvoke() + { + $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $invoiceMock->expects($this->once()) + ->method('register'); + $invoiceMock->expects($this->once()) + ->method('save') + ->will($this->returnValue(true)); + $invoiceDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->invoiceConverterMock->expects($this->once()) + ->method('getModel') + ->with($invoiceDataObjectMock) + ->will($this->returnValue($invoiceMock)); + $this->assertTrue($this->invoiceCreate->invoke($invoiceDataObjectMock)); + } + + public function testInvokeNoInvoice() + { + $invoiceDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->invoiceConverterMock->expects($this->once()) + ->method('getModel') + ->with($invoiceDataObjectMock) + ->will($this->returnValue(false)); + $this->assertFalse($this->invoiceCreate->invoke($invoiceDataObjectMock)); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage An error has occurred during creating Invoice + */ + public function testInvokeException() + { + $message = 'Can not save Invoice'; + $e = new \Exception($message); + + $invoiceDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->loggerMock->expects($this->once()) + ->method('logException') + ->with($e); + $this->invoiceConverterMock->expects($this->once()) + ->method('getModel') + ->with($invoiceDataObjectMock) + ->will($this->throwException($e)); + $this->invoiceCreate->invoke($invoiceDataObjectMock); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceEmailTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceEmailTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0ae4e85400a59052445384cb94c75d3e5f51b04c --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceEmailTest.php @@ -0,0 +1,92 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Service\V1\Action; + +/** + * Test Class InvoiceEmailTest for Order Service + */ +class InvoiceEmailTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Model\Order\InvoiceRepository + */ + protected $invoiceRepository; + + /** + * @var \Magento\Sales\Model\Order\InvoiceNotifier + */ + protected $notifier; + + public function setUp() + { + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->invoiceRepository = $this->getMock( + '\Magento\Sales\Model\Order\InvoiceRepository', + ['get'], + [], + '', + false + ); + $this->notifier = $this->getMock( + '\Magento\Sales\Model\Order\InvoiceNotifier', + ['notify', '__wakeup'], + [], + '', + false + ); + + $this->service = $objectManager->getObject( + 'Magento\Sales\Service\V1\Action\InvoiceEmail', + [ + 'invoiceRepository' => $this->invoiceRepository, + 'notifier' => $this->notifier + ] + ); + } + + public function testInvoke() + { + $invoiceId = 1; + $invoice = $this->getMock( + '\Magento\Sales\Model\Order\Invoice', + ['__wakeup', 'getEmailSent'], + [], + '', + false + ); + + $this->invoiceRepository->expects($this->once()) + ->method('get') + ->with($invoiceId) + ->will($this->returnValue($invoice)); + $this->notifier->expects($this->any()) + ->method('notify') + ->with($invoice) + ->will($this->returnValue(true)); + + $this->assertTrue($this->service->invoke($invoiceId)); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceGetTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceGetTest.php new file mode 100644 index 0000000000000000000000000000000000000000..73374d5b744f8c3e2251e5a524a2073e51eb96b4 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceGetTest.php @@ -0,0 +1,110 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class InvoiceGetTest + */ +class InvoiceGetTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceGet + */ + protected $invoiceGet; + + /** + * @var \Magento\Sales\Model\Order\InvoiceRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceRepositoryMock; + + /** + * @var \Magento\Sales\Service\V1\Data\InvoiceMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceMapperMock; + + /** + * @var \Magento\Sales\Model\Order\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * SetUp + */ + protected function setUp() + { + $this->invoiceRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\InvoiceRepository', + ['get'], + [], + '', + false + ); + $this->invoiceMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\InvoiceMapper', + [], + [], + '', + false + ); + $this->invoiceMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice', + [], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Invoice', + [], + [], + '', + false + ); + $this->invoiceGet = new InvoiceGet( + $this->invoiceRepositoryMock, + $this->invoiceMapperMock + ); + } + + /** + * test invoice get service + */ + public function testInvoke() + { + $this->invoiceRepositoryMock->expects($this->once()) + ->method('get') + ->with($this->equalTo(1)) + ->will($this->returnValue($this->invoiceMock)); + $this->invoiceMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->invoiceMock)) + ->will($this->returnValue($this->dataObjectMock)); + $this->assertEquals($this->dataObjectMock, $this->invoiceGet->invoke(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceListTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceListTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c254aca10217833ad77b0df1854c4f8625fec390 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceListTest.php @@ -0,0 +1,150 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class InvoiceListTest + */ +class InvoiceListTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceList + */ + protected $invoiceList; + + /** + * @var \Magento\Sales\Model\Order\InvoiceRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceRepositoryMock; + + /** + * @var \Magento\Sales\Service\V1\Data\InvoiceMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceMapperMock; + + /** + * @var \Magento\Sales\Service\V1\Data\InvoiceSearchResultsBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchResultsBuilderMock; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteria|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchCriteriaMock; + + /** + * @var \Magento\Sales\Model\Order\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * SetUp + */ + protected function setUp() + { + $this->invoiceRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\InvoiceRepository', + ['find'], + [], + '', + false + ); + $this->invoiceMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\InvoiceMapper', + [], + [], + '', + false + ); + $this->searchResultsBuilderMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\InvoiceSearchResultsBuilder', + ['setItems', 'setSearchCriteria', 'create', 'setTotalCount'], + [], + '', + false + ); + $this->searchCriteriaMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\SearchCriteria', + [], + [], + '', + false + ); + $this->invoiceMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice', + [], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Invoice', + [], + [], + '', + false + ); + $this->invoiceList = new InvoiceList( + $this->invoiceRepositoryMock, + $this->invoiceMapperMock, + $this->searchResultsBuilderMock + ); + } + + /** + * test invoice list service + */ + public function testInvoke() + { + $this->invoiceRepositoryMock->expects($this->once()) + ->method('find') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnValue([$this->invoiceMock])); + $this->invoiceMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->invoiceMock)) + ->will($this->returnValue($this->dataObjectMock)); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setItems') + ->with($this->equalTo([$this->dataObjectMock])) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setTotalCount') + ->with($this->equalTo(count($this->invoiceMock))) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setSearchCriteria') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('expected-result')); + $this->assertEquals('expected-result', $this->invoiceList->invoke($this->searchCriteriaMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceVoidTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceVoidTest.php new file mode 100644 index 0000000000000000000000000000000000000000..b1fe989127cc9567f482e4f622f3fa804b2cd3d7 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/InvoiceVoidTest.php @@ -0,0 +1,84 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class InvoiceVoidTest + */ +class InvoiceVoidTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceVoid + */ + protected $invoiceVoid; + + /** + * @var \Magento\Sales\Model\Order\InvoiceRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceRepositoryMock; + + /** + * @var \Magento\Sales\Model\Order\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceMock; + + /** + * SetUp + */ + protected function setUp() + { + $this->invoiceRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\InvoiceRepository', + ['get'], + [], + '', + false + ); + $this->invoiceMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice', + [], + [], + '', + false + ); + $this->invoiceVoid = new InvoiceVoid( + $this->invoiceRepositoryMock + ); + } + + /** + * test invoice void service + */ + public function testInvoke() + { + $this->invoiceRepositoryMock->expects($this->once()) + ->method('get') + ->with($this->equalTo(1)) + ->will($this->returnValue($this->invoiceMock)); + $this->invoiceMock->expects($this->once()) + ->method('void') + ->will($this->returnSelf()); + $this->assertTrue($this->invoiceVoid->invoke(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderAddressUpdateTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderAddressUpdateTest.php similarity index 98% rename from dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderAddressUpdateTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderAddressUpdateTest.php index 2f8d6568a64b9fd388c9365625070a295e1715aa..8bfea1aab849e8d60b28d9a7d7480a8d3b123956 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderAddressUpdateTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderAddressUpdateTest.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; /** * Class OrderAddressUpdateTest diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderCancelTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderCancelTest.php similarity index 93% rename from dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderCancelTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderCancelTest.php index b0ba41f3de2edfbb8560809d73d5ef91dbcd5b2c..14a8566780da9b523ee247474e94cb4bdba35e1d 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderCancelTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderCancelTest.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; /** * Class OrderCancelTest @@ -29,13 +29,15 @@ namespace Magento\Sales\Service\V1; class OrderCancelTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Sales\Service\V1\OrderCancel + * @var \Magento\Sales\Service\V1\Action\OrderCancel */ protected $orderCancel; + /** * @var \Magento\Sales\Model\OrderRepository|\PHPUnit_Framework_MockObject_MockObject */ protected $orderRepositoryMock; + /** * @var \Magento\Sales\Model\Order|\PHPUnit_Framework_MockObject_MockObject */ @@ -60,7 +62,7 @@ class OrderCancelTest extends \PHPUnit_Framework_TestCase '', false ); - $this->orderCancel = new \Magento\Sales\Service\V1\OrderCancel( + $this->orderCancel = new OrderCancel( $this->orderRepositoryMock ); } diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderCommentsListTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderCommentsListTest.php similarity index 97% rename from dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderCommentsListTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderCommentsListTest.php index cea9475a6f6b8bdc21e7c75047dd80382754fcf6..ca486146b7ed305e933042c627081237ec292e20 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderCommentsListTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderCommentsListTest.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; /** * Class OrderCommentsListTest @@ -29,37 +29,45 @@ namespace Magento\Sales\Service\V1; class OrderCommentsListTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Sales\Service\V1\OrderCommentsList + * @var \Magento\Sales\Service\V1\Action\OrderCommentsList */ protected $orderCommentsList; + /** * @var \Magento\Sales\Model\Order\Status\HistoryRepository|\PHPUnit_Framework_MockObject_MockObject */ protected $historyRepositoryMock; + /** * @var \Magento\Sales\Service\V1\Data\OrderStatusHistoryMapper|\PHPUnit_Framework_MockObject_MockObject */ protected $historyMapperMock; + /** * @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder|\PHPUnit_Framework_MockObject_MockObject */ protected $criteriaBuilderMock; + /** * @var \Magento\Framework\Service\V1\Data\FilterBuilder|\PHPUnit_Framework_MockObject_MockObject */ protected $filterBuilderMock; + /** * @var \Magento\Sales\Service\V1\Data\OrderSearchResultsBuilder|\PHPUnit_Framework_MockObject_MockObject */ protected $searchResultsBuilderMock; + /** * @var \Magento\Sales\Model\Order\Status\History|\PHPUnit_Framework_MockObject_MockObject */ protected $orderCommentMock; + /** * @var \Magento\Sales\Service\V1\Data\OrderStatusHistory|\PHPUnit_Framework_MockObject_MockObject */ protected $dataObjectMock; + /** * @var \Magento\Framework\Service\V1\Data\SearchCriteria|\PHPUnit_Framework_MockObject_MockObject */ @@ -123,7 +131,7 @@ class OrderCommentsListTest extends \PHPUnit_Framework_TestCase '', false ); - $this->orderCommentsList = new \Magento\Sales\Service\V1\OrderCommentsList( + $this->orderCommentsList = new OrderCommentsList( $this->historyRepositoryMock, $this->historyMapperMock, $this->criteriaBuilderMock, diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderNotifyUserTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderEmailTest.php similarity index 84% rename from dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderNotifyUserTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderEmailTest.php index b18d26e513bc25f4c7541468f3d0ad658856fcd3..258a11dfe456d4aa740e86456285c0be22eda934 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderNotifyUserTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderEmailTest.php @@ -22,20 +22,19 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; /** - * Test Class OrderNotifyUserTest for Order Service - * @package Magento\Sales\Service\V1 + * Test Class OrderEmailTest for Order Service */ -class OrderNotifyUserTest extends \PHPUnit_Framework_TestCase +class OrderEmailTest extends \PHPUnit_Framework_TestCase { public function testInvoke() { $orderId = 1; $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); $orderRepository = $this->getMock('\Magento\Sales\Model\OrderRepository', ['get'], [], '', false); - $notifier = $this->getMock('\Magento\Sales\Model\Notifier', ['notify', '__wakeup'], [], '', false); + $notifier = $this->getMock('\Magento\Sales\Model\OrderNotifier', ['notify', '__wakeup'], [], '', false); $order = $this->getMock( '\Magento\Sales\Model\Order', ['__wakeup', 'sendNewOrderEmail', 'getEmailSent'], @@ -45,7 +44,7 @@ class OrderNotifyUserTest extends \PHPUnit_Framework_TestCase ); $service = $objectManager->getObject( - 'Magento\Sales\Service\V1\OrderNotifyUser', + 'Magento\Sales\Service\V1\Action\OrderEmail', [ 'orderRepository' => $orderRepository, 'notifier' => $notifier diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderGetStatusTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderGetStatusTest.php similarity index 92% rename from dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderGetStatusTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderGetStatusTest.php index a9539a1d94124e379378d081d5ad26922ff2882f..4338fafcb23524b8460176125616c816b169e8ed 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderGetStatusTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderGetStatusTest.php @@ -21,9 +21,8 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; -use Magento\Sales\Service\V1\OrderGetStatus; use Magento\Sales\Model\OrderRepository; /** @@ -36,6 +35,7 @@ class OrderGetStatusTest extends \PHPUnit_Framework_TestCase * @var OrderGetStatus */ protected $service; + /** * @var OrderRepository | \PHPUnit_Framework_MockObject_MockObject */ @@ -54,7 +54,7 @@ class OrderGetStatusTest extends \PHPUnit_Framework_TestCase false ); - $this->service = new \Magento\Sales\Service\V1\OrderGetStatus($this->orderRepositoryMock); + $this->service = new OrderGetStatus($this->orderRepositoryMock); } public function testInvoke() diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderGetTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderGetTest.php similarity index 95% rename from dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderGetTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderGetTest.php index 89ecd2aa47f3203dd5fd0992af9c55ecfe4593ab..44deab926bc82802ff9fc9c4c389f0034a51d4b5 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderGetTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderGetTest.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; /** * Class OrderGetTest @@ -29,21 +29,25 @@ namespace Magento\Sales\Service\V1; class OrderGetTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Sales\Service\V1\OrderGet + * @var \Magento\Sales\Service\V1\Action\OrderGet */ protected $orderGet; + /** * @var \Magento\Sales\Model\OrderRepository|\PHPUnit_Framework_MockObject_MockObject */ protected $orderRepositoryMock; + /** * @var \Magento\Sales\Service\V1\Data\OrderMapper|\PHPUnit_Framework_MockObject_MockObject */ protected $orderMapperMock; + /** * @var \Magento\Sales\Model\Order|\PHPUnit_Framework_MockObject_MockObject */ protected $orderMock; + /** * @var \Magento\Sales\Service\V1\Data\Order|\PHPUnit_Framework_MockObject_MockObject */ @@ -96,7 +100,7 @@ class OrderGetTest extends \PHPUnit_Framework_TestCase '', false ); - $this->orderGet = new \Magento\Sales\Service\V1\OrderGet( + $this->orderGet = new OrderGet( $this->orderRepositoryMock, $this->orderMapperMock ); diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderHoldTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderHoldTest.php similarity index 93% rename from dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderHoldTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderHoldTest.php index b86fd01e6c888220dcdb782b39b940f5deb0f9bd..9ed6367c15d5c049c146deab9c3c7882a562fcdd 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderHoldTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderHoldTest.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; /** * Class OrderHoldTest @@ -29,18 +29,18 @@ namespace Magento\Sales\Service\V1; class OrderHoldTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Sales\Service\V1\OrderHold + * @var \Magento\Sales\Service\V1\Action\OrderHold */ protected $orderHold; + /** * @var \Magento\Sales\Model\OrderRepository|\PHPUnit_Framework_MockObject_MockObject */ - protected $orderRepositoryMock; + /** * @var \Magento\Sales\Model\Order|\PHPUnit_Framework_MockObject_MockObject */ - protected $orderMock; protected function setUp() @@ -59,7 +59,7 @@ class OrderHoldTest extends \PHPUnit_Framework_TestCase '', false ); - $this->orderHold = new \Magento\Sales\Service\V1\OrderHold( + $this->orderHold = new OrderHold( $this->orderRepositoryMock ); } diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderListTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderListTest.php similarity index 96% rename from dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderListTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderListTest.php index 386aa8cfe38daa0c1b0690dfd40e8a8a61654932..074a9612f8680059965e86522fb688be9c892fe0 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderListTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderListTest.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; /** * Class OrderListTest @@ -29,29 +29,35 @@ namespace Magento\Sales\Service\V1; class OrderListTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Sales\Service\V1\OrderList + * @var \Magento\Sales\Service\V1\Action\OrderList */ protected $orderList; + /** * @var \Magento\Sales\Model\OrderRepository|\PHPUnit_Framework_MockObject_MockObject */ protected $orderRepositoryMock; + /** * @var \Magento\Sales\Service\V1\Data\OrderMapper|\PHPUnit_Framework_MockObject_MockObject */ protected $orderMapperMock; + /** * @var \Magento\Catalog\Service\V1\Data\Product\SearchResultsBuilder|\PHPUnit_Framework_MockObject_MockObject */ protected $searchResultsBuilderMock; + /** * @var \Magento\Framework\Service\V1\Data\SearchCriteria|\PHPUnit_Framework_MockObject_MockObject */ protected $searchCriteriaMock; + /** * @var \Magento\Sales\Model\Order|\PHPUnit_Framework_MockObject_MockObject */ protected $orderMock; + /** * @var \Magento\Sales\Service\V1\Data\Order|\PHPUnit_Framework_MockObject_MockObject */ @@ -104,7 +110,7 @@ class OrderListTest extends \PHPUnit_Framework_TestCase '', false ); - $this->orderList = new \Magento\Sales\Service\V1\OrderList( + $this->orderList = new OrderList( $this->orderRepositoryMock, $this->orderMapperMock, $this->searchResultsBuilderMock diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderStatusHistoryAddTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderStatusHistoryAddTest.php similarity index 96% rename from dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderStatusHistoryAddTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderStatusHistoryAddTest.php index 58b1901c6b0f7d1c7255f194000335b311ebdd36..88b8a4487536d167275e3ea77f449887890ebe40 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderStatusHistoryAddTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderStatusHistoryAddTest.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; use Magento\Sales\Model\OrderRepository; use Magento\Sales\Model\Order\Status\HistoryConverter; @@ -33,7 +33,7 @@ use Magento\Sales\Model\Order\Status\HistoryConverter; class OrderStatusHistoryAddTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Sales\Service\V1\OrderStatusHistoryAdd + * @var \Magento\Sales\Service\V1\Action\OrderStatusHistoryAdd */ protected $service; diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderUnHoldTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderUnHoldTest.php similarity index 93% rename from dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderUnHoldTest.php rename to dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderUnHoldTest.php index 2c52a1763fc3336df47bae93b51c54e741736589..f78277feff17593e85a666406c6b324ab9157ade 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderUnHoldTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/OrderUnHoldTest.php @@ -21,7 +21,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Sales\Service\V1\Action; /** * Class OrderUnHoldTest @@ -29,10 +29,10 @@ namespace Magento\Sales\Service\V1; class OrderUnHoldTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Sales\Service\V1\OrderUnHold + * @var \Magento\Sales\Service\V1\Action\OrderUnHold */ - protected $orderUnHold; + /** * @var \Magento\Sales\Model\OrderRepository|\PHPUnit_Framework_MockObject_MockObject */ @@ -59,7 +59,7 @@ class OrderUnHoldTest extends \PHPUnit_Framework_TestCase '', false ); - $this->orderUnHold = new \Magento\Sales\Service\V1\OrderUnHold( + $this->orderUnHold = new OrderUnHold( $this->orderRepositoryMock ); } diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentAddCommentTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentAddCommentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..069d372527111b6dc66b01e7cdabaae197623106 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentAddCommentTest.php @@ -0,0 +1,93 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class ShipmentAddCommentTest + */ +class ShipmentAddCommentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentAddComment + */ + protected $shipmentAddComment; + + /** + * @var \Magento\Sales\Model\Order\Shipment\CommentConverter|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentConverterMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataModelMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * Set up + */ + protected function setUp() + { + $this->commentConverterMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\CommentConverter', + ['getModel'], + [], + '', + false + ); + $this->dataModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Comment', + ['save', '__wakeup'], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Comment', + [], + [], + '', + false + ); + $this->shipmentAddComment = new ShipmentAddComment($this->commentConverterMock); + } + + /** + * Test shipment add comment service + */ + public function testInvoke() + { + $this->commentConverterMock->expects($this->once()) + ->method('getModel') + ->with($this->equalTo($this->dataObjectMock)) + ->will($this->returnValue($this->dataModelMock)); + $this->dataModelMock->expects($this->once()) + ->method('save'); + $this->assertTrue($this->shipmentAddComment->invoke($this->dataObjectMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentAddTrackTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentAddTrackTest.php new file mode 100644 index 0000000000000000000000000000000000000000..2b1b4d8dd1ec0715db307547197e79af6a290296 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentAddTrackTest.php @@ -0,0 +1,93 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class ShipmentAddTrackTest + */ +class ShipmentAddTrackTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentAddTrack + */ + protected $shipmentAddTrack; + + /** + * @var \Magento\Sales\Model\Order\Shipment\TrackConverter|\PHPUnit_Framework_MockObject_MockObject + */ + protected $trackConverterMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Track|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataModelMock; + + /** + * @var \Magento\Sales\Service\V1\Data\ShipmentTrack|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * Set up + */ + protected function setUp() + { + $this->trackConverterMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\TrackConverter', + ['getModel'], + [], + '', + false + ); + $this->dataModelMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Track', + ['save', '__wakeup'], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\ShipmentTrack', + [], + [], + '', + false + ); + $this->shipmentAddTrack = new ShipmentAddTrack($this->trackConverterMock); + } + + /** + * Test shipment add track service + */ + public function testInvoke() + { + $this->trackConverterMock->expects($this->once()) + ->method('getModel') + ->with($this->equalTo($this->dataObjectMock)) + ->will($this->returnValue($this->dataModelMock)); + $this->dataModelMock->expects($this->once()) + ->method('save'); + $this->assertTrue($this->shipmentAddTrack->invoke($this->dataObjectMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentCommentsListTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentCommentsListTest.php new file mode 100644 index 0000000000000000000000000000000000000000..798e6bf4a000ee0370603adfe21579034c41206f --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentCommentsListTest.php @@ -0,0 +1,197 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class ShipmentCommentsListTest + */ +class ShipmentCommentsListTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentCommentsList + */ + protected $shipmentCommentsList; + + /** + * @var \Magento\Sales\Model\Order\Shipment\CommentRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentRepositoryMock; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $commentMapperMock; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteriaBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $criteriaBuilderMock; + + /** + * @var \Magento\Framework\Service\V1\Data\FilterBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $filterBuilderMock; + + /** + * @var \Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchResultsBuilderMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentCommentMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Comment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteria|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchCriteriaMock; + + protected function setUp() + { + $this->commentRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\CommentRepository', + ['find'], + [], + '', + false + ); + $this->commentMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CommentMapper', + ['extractDto'], + [], + '', + false + ); + $this->criteriaBuilderMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\SearchCriteriaBuilder', + ['create', 'addFilter'], + [], + '', + false + ); + $this->filterBuilderMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\FilterBuilder', + ['setField', 'setValue', 'create'], + [], + '', + false + ); + $this->searchResultsBuilderMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CommentSearchResultsBuilder', + ['setItems', 'setSearchCriteria', 'create', 'setTotalCount'], + [], + '', + false + ); + $this->shipmentCommentMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Comment', + [], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Comment', + [], + [], + '', + false + ); + $this->searchCriteriaMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\SearchCriteria', + [], + [], + '', + false + ); + $this->shipmentCommentsList = new ShipmentCommentsList( + $this->commentRepositoryMock, + $this->commentMapperMock, + $this->criteriaBuilderMock, + $this->filterBuilderMock, + $this->searchResultsBuilderMock + ); + + } + + /** + * test shipment comments list service + */ + public function testInvoke() + { + $shipmentId = 1; + $this->filterBuilderMock->expects($this->once()) + ->method('setField') + ->with($this->equalTo('parent_id')) + ->will($this->returnSelf()); + $this->filterBuilderMock->expects($this->once()) + ->method('setValue') + ->with($this->equalTo($shipmentId)) + ->will($this->returnSelf()); + $this->filterBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('filter')); + $this->criteriaBuilderMock->expects($this->once()) + ->method('addFilter') + ->with($this->equalTo(['eq' => 'filter'])) + ->will($this->returnSelf()); + $this->criteriaBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($this->searchCriteriaMock)); + + $this->commentRepositoryMock->expects($this->once()) + ->method('find') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnValue([$this->shipmentCommentMock])); + + $this->commentMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->shipmentCommentMock)) + ->will($this->returnValue($this->dataObjectMock)); + + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setItems') + ->with($this->equalTo([$this->dataObjectMock])) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setTotalCount') + ->with($this->equalTo(1)) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setSearchCriteria') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('expected-result')); + + $this->assertEquals('expected-result', $this->shipmentCommentsList->invoke($shipmentId)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentCreateTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentCreateTest.php new file mode 100644 index 0000000000000000000000000000000000000000..69f9b3d7363ba1d6e6d4e042f967f69f655ebb10 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentCreateTest.php @@ -0,0 +1,130 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class ShipmentCreateTest + */ +class ShipmentCreateTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentCreate + */ + protected $shipmentCreate; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentConverterMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $loggerMock; + + public function setUp() + { + $this->shipmentConverterMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\ShipmentConverter') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->loggerMock = $this->getMockBuilder('Magento\Framework\Logger') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->shipmentCreate = new ShipmentCreate( + $this->shipmentConverterMock, + $this->loggerMock + ); + } + + public function testInvoke() + { + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $orderMock->expects($this->any()) + ->method('setIsInProcess') + ->with(true); + $shipmentMock = $this->getMockBuilder('Magento\Sales\Model\Order\Shipment') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $shipmentMock->expects($this->once()) + ->method('getOrder') + ->will($this->returnValue($orderMock)); + $shipmentMock->expects($this->once()) + ->method('register'); + $shipmentMock->expects($this->once()) + ->method('save') + ->will($this->returnValue(true)); + $shipmentDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Shipment') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->shipmentConverterMock->expects($this->once()) + ->method('getModel') + ->with($shipmentDataObjectMock) + ->will($this->returnValue($shipmentMock)); + $this->assertTrue($this->shipmentCreate->invoke($shipmentDataObjectMock)); + } + + public function testInvokeNoShipment() + { + $shipmentDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Shipment') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->shipmentConverterMock->expects($this->once()) + ->method('getModel') + ->with($shipmentDataObjectMock) + ->will($this->returnValue(false)); + $this->assertFalse($this->shipmentCreate->invoke($shipmentDataObjectMock)); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage An error has occurred during creating Shipment + */ + public function testInvokeException() + { + $message = 'Can not save Shipment'; + $e = new \Exception($message); + + $shipmentDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Shipment') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->loggerMock->expects($this->once()) + ->method('logException') + ->with($e); + $this->shipmentConverterMock->expects($this->once()) + ->method('getModel') + ->with($shipmentDataObjectMock) + ->will($this->throwException($e)); + $this->shipmentCreate->invoke($shipmentDataObjectMock); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentEmailTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentEmailTest.php new file mode 100644 index 0000000000000000000000000000000000000000..7c64b19faf8988a1bf5ccbf82e709125205ca8e3 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentEmailTest.php @@ -0,0 +1,64 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sales\Service\V1\Action; + +/** + * Test Class ShipmentEmailTest for Shipment Service + */ +class ShipmentEmailTest extends \PHPUnit_Framework_TestCase +{ + public function testInvoke() + { + $orderId = 1; + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $shipmentRepository = $this->getMock('Magento\Sales\Model\Order\ShipmentRepository', ['get'], [], '', false); + $notifier = $this->getMock('Magento\Shipping\Model\ShipmentNotifier', ['notify', '__wakeup'], [], '', false); + $order = $this->getMock( + '\Magento\Sales\Model\Order', + ['__wakeup', 'sendNewOrderEmail', 'getEmailSent'], + [], + '', + false + ); + + $service = $objectManager->getObject( + 'Magento\Sales\Service\V1\Action\ShipmentEmail', + [ + 'shipmentRepository' => $shipmentRepository, + 'notifier' => $notifier + ] + ); + $shipmentRepository->expects($this->once()) + ->method('get') + ->with($orderId) + ->will($this->returnValue($order)); + $notifier->expects($this->any()) + ->method('notify') + ->with($order) + ->will($this->returnValue(true)); + $this->assertTrue($service->invoke($orderId)); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentGetTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentGetTest.php new file mode 100644 index 0000000000000000000000000000000000000000..88138cdc7ac878469cd1746a2112c9a744af24e1 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentGetTest.php @@ -0,0 +1,117 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class ShipmentGetTest + */ +class ShipmentGetTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentGet + */ + protected $shipmentGet; + + /** + * @var \Magento\Sales\Model\Order\ShipmentRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentRepositoryMock; + + /** + * @var \Magento\Sales\Service\V1\Data\ShipmentMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMapperMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * SetUp + */ + protected function setUp() + { + $this->shipmentRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\ShipmentRepository', + ['get'], + [], + '', + false + ); + $this->shipmentMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\ShipmentMapper', + [], + [], + '', + false + ); + $this->searchResultsBuilderMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\ShipmentSearchResultsBuilder', + [], + [], + '', + false + ); + $this->shipmentMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + [], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Shipment', + [], + [], + '', + false + ); + $this->shipmentGet = new ShipmentGet( + $this->shipmentRepositoryMock, + $this->shipmentMapperMock + ); + } + + /** + * test shipment get service + */ + public function testInvoke() + { + $this->shipmentRepositoryMock->expects($this->once()) + ->method('get') + ->with($this->equalTo(1)) + ->will($this->returnValue($this->shipmentMock)); + $this->shipmentMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->shipmentMock)) + ->will($this->returnValue($this->dataObjectMock)); + $this->assertEquals($this->dataObjectMock, $this->shipmentGet->invoke(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentLabelGetTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentLabelGetTest.php new file mode 100644 index 0000000000000000000000000000000000000000..dc2b9ecab5564a8ac48c6f0848f9602776d1ae39 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentLabelGetTest.php @@ -0,0 +1,81 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class ShipmentLabelGetTest + */ +class ShipmentLabelGetTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentLabelGet + */ + protected $shipmentLabelGet; + + /** + * @var \Magento\Sales\Model\Order\ShipmentRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentRepositoryMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMock; + + protected function setUp() + { + $this->shipmentRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\ShipmentRepository', + ['get', 'getShippingLabel'], + [], + '', + false + ); + $this->shipmentMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + [], + [], + '', + false + ); + $this->shipmentLabelGet = new ShipmentLabelGet( + $this->shipmentRepositoryMock + ); + } + + /** + * test shipment label get service + */ + public function testInvoke() + { + $this->shipmentRepositoryMock->expects($this->once()) + ->method('get') + ->with($this->equalTo(1)) + ->will($this->returnValue($this->shipmentMock)); + $this->shipmentMock->expects($this->once()) + ->method('getShippingLabel') + ->will($this->returnValue('shipping_label')); + $this->assertEquals('shipping_label', $this->shipmentLabelGet->invoke(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentListTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentListTest.php new file mode 100644 index 0000000000000000000000000000000000000000..ffff77e2ffec876d29a5d79eec72b5d04d755df7 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentListTest.php @@ -0,0 +1,150 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class ShipmentListTest + */ +class ShipmentListTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentList + */ + protected $shipmentList; + + /** + * @var \Magento\Sales\Model\Order\ShipmentRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentRepositoryMock; + + /** + * @var \Magento\Sales\Service\V1\Data\ShipmentMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMapperMock; + + /** + * @var \Magento\Sales\Service\V1\Data\ShipmentSearchResultsBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchResultsBuilderMock; + + /** + * @var \Magento\Framework\Service\V1\Data\SearchCriteria|\PHPUnit_Framework_MockObject_MockObject + */ + protected $searchCriteriaMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMock; + + /** + * @var \Magento\Sales\Service\V1\Data\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dataObjectMock; + + /** + * SetUp + */ + protected function setUp() + { + $this->shipmentRepositoryMock = $this->getMock( + 'Magento\Sales\Model\Order\ShipmentRepository', + ['find'], + [], + '', + false + ); + $this->shipmentMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\ShipmentMapper', + [], + [], + '', + false + ); + $this->searchResultsBuilderMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\ShipmentSearchResultsBuilder', + ['setItems', 'setSearchCriteria', 'create', 'setTotalCount'], + [], + '', + false + ); + $this->searchCriteriaMock = $this->getMock( + 'Magento\Framework\Service\V1\Data\SearchCriteria', + [], + [], + '', + false + ); + $this->shipmentMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + [], + [], + '', + false + ); + $this->dataObjectMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\Shipment', + [], + [], + '', + false + ); + $this->shipmentList = new ShipmentList( + $this->shipmentRepositoryMock, + $this->shipmentMapperMock, + $this->searchResultsBuilderMock + ); + } + + /** + * test shipment list service + */ + public function testInvoke() + { + $this->shipmentRepositoryMock->expects($this->once()) + ->method('find') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnValue([$this->shipmentMock])); + $this->shipmentMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->shipmentMock)) + ->will($this->returnValue($this->dataObjectMock)); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setItems') + ->with($this->equalTo([$this->dataObjectMock])) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setTotalCount') + ->with($this->equalTo(count($this->shipmentMock))) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('setSearchCriteria') + ->with($this->equalTo($this->searchCriteriaMock)) + ->will($this->returnSelf()); + $this->searchResultsBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('expected-result')); + $this->assertEquals('expected-result', $this->shipmentList->invoke($this->searchCriteriaMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentRemoveTrackTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentRemoveTrackTest.php new file mode 100644 index 0000000000000000000000000000000000000000..50ec9e050c67b04129eeddb78e838682c156448b --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Action/ShipmentRemoveTrackTest.php @@ -0,0 +1,83 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Action; + +/** + * Class ShipmentRemoveTrackTest + */ +class ShipmentRemoveTrackTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentRemoveTrack + */ + protected $shipmentRemoveTrack; + + /** + * @var \Magento\Sales\Model\Order\Shipment\TrackRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $trackRepositoryMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Track|\PHPUnit_Framework_MockObject_MockObject + */ + protected $trackMock; + + /** + * Set up + */ + protected function setUp() + { + $this->trackRepositoryMock = $this->getMock( + '\Magento\Sales\Model\Order\Shipment\TrackRepository', + ['get'], + [], + '', + false + ); + $this->trackMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Track', + ['delete', '__wakeup'], + [], + '', + false + ); + + $this->shipmentRemoveTrack = new ShipmentRemoveTrack($this->trackRepositoryMock); + } + + /** + * Test shipment remove track + */ + public function testInvoke() + { + $this->trackRepositoryMock->expects($this->once()) + ->method('get') + ->with($this->equalTo(1)) + ->will($this->returnValue($this->trackMock)); + $this->trackMock->expects($this->once()) + ->method('delete'); + + $this->assertTrue($this->shipmentRemoveTrack->invoke(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/CreditmemoReadTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/CreditmemoReadTest.php new file mode 100644 index 0000000000000000000000000000000000000000..7dc3c992749a927d38d7a2fc930a24189e6c8234 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/CreditmemoReadTest.php @@ -0,0 +1,121 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +/** + * Class CreditmemoReadTest + */ +class CreditmemoReadTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoGet|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoGetMock; + + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoList|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoListMock; + + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoCommentsList|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoCommentsListMock; + + /** + * @var \Magento\Sales\Service\V1\CreditmemoRead + */ + protected $creditmemoRead; + + /** + * SetUp + */ + protected function setUp() + { + $this->creditmemoGetMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\CreditmemoGet', + ['invoke'], + [], + '', + false + ); + $this->creditmemoListMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\CreditmemoList', + ['invoke'], + [], + '', + false + ); + $this->creditmemoCommentsListMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\CreditmemoCommentsList', + ['invoke'], + [], + '', + false + ); + + $this->creditmemoRead = new CreditmemoRead( + $this->creditmemoGetMock, + $this->creditmemoListMock, + $this->creditmemoCommentsListMock + ); + } + + /** + * test creditmemo get + */ + public function testGet() + { + $this->creditmemoGetMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue('creditmemo-do')); + $this->assertEquals('creditmemo-do', $this->creditmemoRead->get(1)); + } + + /** + * test creditmemo list + */ + public function testSearch() + { + $searchCriteria = $this->getMock('Magento\Framework\Service\V1\Data\SearchCriteria', [], [], '', false); + $this->creditmemoListMock->expects($this->once()) + ->method('invoke') + ->with($searchCriteria) + ->will($this->returnValue('search_result')); + $this->assertEquals('search_result', $this->creditmemoRead->search($searchCriteria)); + } + + /** + * test comments list + */ + public function testCommentsList() + { + $this->creditmemoCommentsListMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue('search_result')); + $this->assertEquals('search_result', $this->creditmemoRead->commentsList(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/CreditmemoWriteTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/CreditmemoWriteTest.php new file mode 100644 index 0000000000000000000000000000000000000000..231fcb9ff4f04ba0acc990cef9ee5f31d034ee61 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/CreditmemoWriteTest.php @@ -0,0 +1,148 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +/** + * Class CreditmemoWriteTest + */ +class CreditmemoWriteTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoAddComment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoAddCommentMock; + + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoCancel|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoCancelMock; + + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoEmail|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoEmailMock; + + /** + * @var \Magento\Sales\Service\V1\Action\CreditmemoCreate|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoCreateMock; + + /** + * @var \Magento\Sales\Service\V1\CreditmemoWrite + */ + protected $creditmemoWrite; + + /** + * SetUp + */ + protected function setUp() + { + $this->creditmemoAddCommentMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\CreditmemoAddComment', + ['invoke'], + [], + '', + false + ); + $this->creditmemoCancelMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\CreditmemoCancel', + ['invoke'], + [], + '', + false + ); + $this->creditmemoEmailMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\CreditmemoEmail', + ['invoke'], + [], + '', + false + ); + + $this->creditmemoCreateMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\CreditmemoCreate', + ['invoke'], + [], + '', + false + ); + + $this->creditmemoWrite = new CreditmemoWrite( + $this->creditmemoAddCommentMock, + $this->creditmemoCancelMock, + $this->creditmemoEmailMock, + $this->creditmemoCreateMock + ); + } + + /** + * test creditmemo add comment + */ + public function testAddComment() + { + $comment = $this->getMock('Magento\Sales\Service\V1\Data\Comment', [], [], '', false); + $this->creditmemoAddCommentMock->expects($this->once()) + ->method('invoke') + ->with($comment) + ->will($this->returnValue(true)); + $this->assertTrue($this->creditmemoWrite->addComment($comment)); + } + + /** + * test creditmemo cancel + */ + public function testCancel() + { + $this->creditmemoCancelMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue(true)); + $this->assertTrue($this->creditmemoWrite->cancel(1)); + } + + /** + * test creditmemo email + */ + public function testEmail() + { + $this->creditmemoEmailMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue(true)); + $this->assertTrue($this->creditmemoWrite->email(1)); + } + + /** + * test creditmemo create + */ + public function testCreate() + { + $creditmemo = $this->getMock('\Magento\Sales\Service\V1\Data\Creditmemo', [], [], '', false); + $this->creditmemoCreateMock->expects($this->once()) + ->method('invoke') + ->with($creditmemo) + ->will($this->returnValue(true)); + $this->assertTrue($this->creditmemoWrite->create($creditmemo)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoCommentTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoCommentTest.php deleted file mode 100644 index 66c692cffbf9d6ac52b9904ac8bf9e72396ee0ed..0000000000000000000000000000000000000000 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoCommentTest.php +++ /dev/null @@ -1,123 +0,0 @@ -<?php -/** - * Magento - * - * NOTICE OF LICENSE - * - * This source file is subject to the Open Software License (OSL 3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://opensource.org/licenses/osl-3.0.php - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) - */ -namespace Magento\Sales\Service\V1\Data; - -class CreditmemoCommentTest extends \PHPUnit_Framework_TestCase -{ - public function testGetComment() - { - $data = ['comment' => 'test_value_comment']; - $abstractBuilderMock = $this->getMockBuilder('Magento\Framework\Service\Data\AbstractObjectBuilder') - ->setMethods(['getData']) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $abstractBuilderMock->expects($this->once()) - ->method('getData') - ->will($this->returnValue($data)); - - $object = new \Magento\Sales\Service\V1\Data\CreditmemoComment($abstractBuilderMock); - - $this->assertEquals('test_value_comment', $object->getComment()); - } - - public function testGetCreatedAt() - { - $data = ['created_at' => 'test_value_created_at']; - $abstractBuilderMock = $this->getMockBuilder('Magento\Framework\Service\Data\AbstractObjectBuilder') - ->setMethods(['getData']) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $abstractBuilderMock->expects($this->once()) - ->method('getData') - ->will($this->returnValue($data)); - - $object = new \Magento\Sales\Service\V1\Data\CreditmemoComment($abstractBuilderMock); - - $this->assertEquals('test_value_created_at', $object->getCreatedAt()); - } - - public function testGetEntityId() - { - $data = ['entity_id' => 'test_value_entity_id']; - $abstractBuilderMock = $this->getMockBuilder('Magento\Framework\Service\Data\AbstractObjectBuilder') - ->setMethods(['getData']) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $abstractBuilderMock->expects($this->once()) - ->method('getData') - ->will($this->returnValue($data)); - - $object = new \Magento\Sales\Service\V1\Data\CreditmemoComment($abstractBuilderMock); - - $this->assertEquals('test_value_entity_id', $object->getEntityId()); - } - - public function testGetIsCustomerNotified() - { - $data = ['is_customer_notified' => 'test_value_is_customer_notified']; - $abstractBuilderMock = $this->getMockBuilder('Magento\Framework\Service\Data\AbstractObjectBuilder') - ->setMethods(['getData']) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $abstractBuilderMock->expects($this->once()) - ->method('getData') - ->will($this->returnValue($data)); - - $object = new \Magento\Sales\Service\V1\Data\CreditmemoComment($abstractBuilderMock); - - $this->assertEquals('test_value_is_customer_notified', $object->getIsCustomerNotified()); - } - - public function testGetIsVisibleOnFront() - { - $data = ['is_visible_on_front' => 'test_value_is_visible_on_front']; - $abstractBuilderMock = $this->getMockBuilder('Magento\Framework\Service\Data\AbstractObjectBuilder') - ->setMethods(['getData']) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $abstractBuilderMock->expects($this->once()) - ->method('getData') - ->will($this->returnValue($data)); - - $object = new \Magento\Sales\Service\V1\Data\CreditmemoComment($abstractBuilderMock); - - $this->assertEquals('test_value_is_visible_on_front', $object->getIsVisibleOnFront()); - } - - public function testGetParentId() - { - $data = ['parent_id' => 'test_value_parent_id']; - $abstractBuilderMock = $this->getMockBuilder('Magento\Framework\Service\Data\AbstractObjectBuilder') - ->setMethods(['getData']) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $abstractBuilderMock->expects($this->once()) - ->method('getData') - ->will($this->returnValue($data)); - - $object = new \Magento\Sales\Service\V1\Data\CreditmemoComment($abstractBuilderMock); - - $this->assertEquals('test_value_parent_id', $object->getParentId()); - } -} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoConverterTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoConverterTest.php new file mode 100644 index 0000000000000000000000000000000000000000..3c7b6cfe56a678fdc5af851cf3567aaa832e6d74 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoConverterTest.php @@ -0,0 +1,80 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Data; + +/** + * Class CreditmemoConverterTest + */ +class CreditmemoConverterTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Data\CreditmemoConverter + */ + protected $converter; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $loaderMock; + + public function setUp() + { + $this->loaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->converter = new \Magento\Sales\Service\V1\Data\CreditmemoConverter($this->loaderMock); + } + + public function testGetModel() + { + $itemMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\CreditmemoItem') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $items = [$itemMock]; + + $dataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $dataObjectMock->expects($this->once()) + ->method('getOrderId') + ->willReturn(1); + $dataObjectMock->expects($this->once()) + ->method('getEntityId') + ->willReturn(1); + $dataObjectMock->expects($this->once()) + ->method('getItems') + ->willReturn($items); + $creditmemoMock = $this->getMockBuilder('Magento\Sales\Model\Order\Creditmemo') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->loaderMock->expects($this->once()) + ->method('load') + ->willReturn($creditmemoMock); + $this->assertInstanceOf('Magento\Sales\Model\Order\Creditmemo', $this->converter->getModel($dataObjectMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoMapperTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoMapperTest.php new file mode 100644 index 0000000000000000000000000000000000000000..839b6c93d04ad93699eb24bc1715db76ec5f6469 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoMapperTest.php @@ -0,0 +1,127 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Data; + +/** + * Class CreditmemoMapperTest + */ +class CreditmemoMapperTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Data\CreditmemoMapper + */ + protected $creditmemoMapper; + + /** + * @var \Magento\Sales\Service\V1\Data\CreditmemoBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoBuilderMock; + + /** + * @var \Magento\Sales\Service\V1\Data\CreditmemoItemMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoItemMapperMock; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoMock; + + /** + * @var \Magento\Sales\Model\Order\Creditmemo\Item|\PHPUnit_Framework_MockObject_MockObject + */ + protected $creditmemoItemMock; + + /** + * SetUp + * + * @return void + */ + protected function setUp() + { + $this->creditmemoBuilderMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CreditmemoBuilder', + ['populateWithArray', 'setItems', 'create'], + [], + '', + false + ); + $this->creditmemoItemMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\CreditmemoItemMapper', + ['extractDto'], + [], + '', + false + ); + $this->creditmemoMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo', + ['getAllItems', 'getData', '__wakeup'], + [], + '', + false + ); + $this->creditmemoItemMock = $this->getMock( + 'Magento\Sales\Model\Order\Creditmemo\Item', + [], + [], + '', + false + ); + $this->creditmemoMapper = new \Magento\Sales\Service\V1\Data\CreditmemoMapper( + $this->creditmemoBuilderMock, + $this->creditmemoItemMapperMock + ); + } + + /** + * Run creditmemo mapper test + * + * @return void + */ + public function testInvoke() + { + $this->creditmemoMock->expects($this->once()) + ->method('getData') + ->will($this->returnValue(['field-1' => 'value-1'])); + $this->creditmemoMock->expects($this->once()) + ->method('getAllItems') + ->will($this->returnValue([$this->creditmemoItemMock])); + $this->creditmemoBuilderMock->expects($this->once()) + ->method('populateWithArray') + ->with($this->equalTo(['field-1' => 'value-1'])) + ->will($this->returnSelf()); + $this->creditmemoItemMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->creditmemoItemMock)) + ->will($this->returnValue('item-1')); + $this->creditmemoBuilderMock->expects($this->once()) + ->method('setItems') + ->with($this->equalTo(['item-1'])) + ->will($this->returnSelf()); + $this->creditmemoBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('data-object-with-creditmemo')); + $this->assertEquals('data-object-with-creditmemo', $this->creditmemoMapper->extractDto($this->creditmemoMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoTest.php index cf970c2f404faf719bae430b661edf6556c32194..3766a1599cea02185a65bfda4f68f9d75181351e 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/CreditmemoTest.php @@ -798,4 +798,20 @@ class CreditmemoTest extends \PHPUnit_Framework_TestCase $this->assertEquals('test_value_updated_at', $object->getUpdatedAt()); } + + public function testGetItems() + { + $data = ['items' => 'test_value_items']; + $abstractBuilderMock = $this->getMockBuilder('Magento\Framework\Service\Data\AbstractObjectBuilder') + ->setMethods(['getData']) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $abstractBuilderMock->expects($this->once()) + ->method('getData') + ->will($this->returnValue($data)); + + $object = new \Magento\Sales\Service\V1\Data\Creditmemo($abstractBuilderMock); + + $this->assertEquals('test_value_items', $object->getItems()); + } } diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/InvoiceConverterTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/InvoiceConverterTest.php new file mode 100644 index 0000000000000000000000000000000000000000..7fb8d1882b30f5d5c656e8343651b7145011ced7 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/InvoiceConverterTest.php @@ -0,0 +1,121 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Data; + +/** + * Class InvoiceConverterTest + * @package Magento\Sales\Service\V1\Data + */ +class InvoiceConverterTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceLoaderMock; + /** + * @var \Magento\Sales\Service\V1\Data\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceMock; + /** + * @var \Magento\Sales\Service\V1\Data\InvoiceItem|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceItemMock; + /** + * @var \Magento\Sales\Model\Order\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $modelInvoiceMock; + /** + * @var \Magento\Sales\Service\V1\Data\InvoiceConverter + */ + protected $converter; + + public function setUp() + { + $this->invoiceLoaderMock = $this->getMockBuilder('Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader') + ->disableOriginalConstructor() + ->setMethods(['setOrderId', 'setInvoiceId', 'setInvoiceItems', 'create']) + ->getMock(); + $this->invoiceMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->invoiceItemMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\InvoiceItem') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->modelInvoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->converter = new \Magento\Sales\Service\V1\Data\InvoiceConverter($this->invoiceLoaderMock); + } + + /** + * test for Invoice converter + */ + public function testGetModel() + { + $orderId = 1; + $invoiceId = 2; + $itemId = 3; + $itemQty = 4; + $this->invoiceMock->expects($this->once()) + ->method('getOrderId') + ->will($this->returnValue($orderId)); + $this->invoiceMock->expects($this->once()) + ->method('getEntityId') + ->will($this->returnValue($invoiceId)); + $this->invoiceMock->expects($this->once()) + ->method('getItems') + ->will($this->returnValue([$this->invoiceItemMock])); + $this->invoiceItemMock->expects($this->once()) + ->method('getOrderItemId') + ->will($this->returnValue($itemId)); + $this->invoiceItemMock->expects($this->once()) + ->method('getQty') + ->will($this->returnValue($itemQty)); + $this->invoiceLoaderMock->expects($this->once()) + ->method('setOrderId') + ->with($this->equalTo($orderId)) + ->will($this->returnSelf()); + $this->invoiceLoaderMock->expects($this->once()) + ->method('setInvoiceId') + ->with($this->equalTo($invoiceId)) + ->will($this->returnSelf()); + $this->invoiceLoaderMock->expects($this->once()) + ->method('setInvoiceItems') + ->with($this->equalTo([$itemId => $itemQty])) + ->will($this->returnSelf()); + $this->invoiceLoaderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($this->modelInvoiceMock)); + $this->invoiceLoaderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($this->modelInvoiceMock)); + $this->assertInstanceOf( + 'Magento\Sales\Model\Order\Invoice', + $this->converter->getModel($this->invoiceMock) + ); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/InvoiceMapperTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/InvoiceMapperTest.php new file mode 100644 index 0000000000000000000000000000000000000000..8c928909eab5dc71b047e1d7584393e87b18fc66 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/InvoiceMapperTest.php @@ -0,0 +1,127 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Data; + +/** + * Class InvoiceMapperTest + */ +class InvoiceMapperTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var InvoiceMapper + */ + protected $invoiceMapper; + + /** + * @var InvoiceBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceBuilderMock; + + /** + * @var InvoiceItemMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceItemMapperMock; + + /** + * @var \Magento\Sales\Model\Order\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceMock; + + /** + * @var \Magento\Sales\Model\Order\Invoice\Item|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceItemMock; + + /** + * SetUp + * + * @return void + */ + protected function setUp() + { + $this->invoiceBuilderMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\InvoiceBuilder', + ['populateWithArray', 'setItems', 'create'], + [], + '', + false + ); + $this->invoiceItemMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\InvoiceItemMapper', + ['extractDto'], + [], + '', + false + ); + $this->invoiceMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice', + ['getAllItems', 'getData', '__wakeup'], + [], + '', + false + ); + $this->invoiceItemMock = $this->getMock( + 'Magento\Sales\Model\Order\Invoice\Item', + [], + [], + '', + false + ); + $this->invoiceMapper = new InvoiceMapper( + $this->invoiceBuilderMock, + $this->invoiceItemMapperMock + ); + } + + /** + * Run invoice mapper test + * + * @return void + */ + public function testInvoke() + { + $this->invoiceMock->expects($this->once()) + ->method('getData') + ->will($this->returnValue(['field-1' => 'value-1'])); + $this->invoiceMock->expects($this->once()) + ->method('getAllItems') + ->will($this->returnValue([$this->invoiceItemMock])); + $this->invoiceBuilderMock->expects($this->once()) + ->method('populateWithArray') + ->with($this->equalTo(['field-1' => 'value-1'])) + ->will($this->returnSelf()); + $this->invoiceItemMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->invoiceItemMock)) + ->will($this->returnValue('item-1')); + $this->invoiceBuilderMock->expects($this->once()) + ->method('setItems') + ->with($this->equalTo(['item-1'])) + ->will($this->returnSelf()); + $this->invoiceBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('data-object-with-invoice')); + $this->assertEquals('data-object-with-invoice', $this->invoiceMapper->extractDto($this->invoiceMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/InvoiceTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/InvoiceTest.php index e05a8f42f9ebfc7c932538eea9be9f818d40c743..f0a747357783956d4dc8f7263574ca48dadb25fc 100644 --- a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/InvoiceTest.php +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/InvoiceTest.php @@ -748,22 +748,6 @@ class InvoiceTest extends \PHPUnit_Framework_TestCase $object = new \Magento\Sales\Service\V1\Data\Invoice($abstractBuilderMock); - $this->assertEquals('test_value_items', $object->getItems()); - } - - public function testGetComments() - { - $data = ['comments' => 'test_value_comments']; - $abstractBuilderMock = $this->getMockBuilder('Magento\Framework\Service\Data\AbstractObjectBuilder') - ->setMethods(['getData']) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $abstractBuilderMock->expects($this->once()) - ->method('getData') - ->will($this->returnValue($data)); - - $object = new \Magento\Sales\Service\V1\Data\Invoice($abstractBuilderMock); - - $this->assertEquals('test_value_comments', $object->getComments()); + $this->assertEquals(['test_value_items'], $object->getItems()); } } diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/ShipmentConverterTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/ShipmentConverterTest.php new file mode 100644 index 0000000000000000000000000000000000000000..4ebfa4c5bcf98422fe9f2ce461e23b2a59f7df5b --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/ShipmentConverterTest.php @@ -0,0 +1,90 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Data; + +/** + * Class ShipmentConverterTest + * @package Magento\Sales\Service\V1\Data + */ +class ShipmentConverterTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoaderMock; + + /** + * @var \Magento\Sales\Service\V1\Data\ShipmentConverter + */ + protected $converter; + + public function setUp() + { + $this->shipmentLoaderMock = $this->getMockBuilder('Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->converter = new \Magento\Sales\Service\V1\Data\ShipmentConverter($this->shipmentLoaderMock); + } + + public function testGetModel() + { + $orderId = 1; + $shipmentId = 2; + $items = []; + $tracking = []; + + $shipmentDataObjectMock = $this->getMockBuilder('Magento\Sales\Service\V1\Data\Shipment') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $shipmentDataObjectMock->expects($this->any()) + ->method('getOrderId') + ->will($this->returnValue($orderId)); + $shipmentDataObjectMock->expects($this->any()) + ->method('getEntityId') + ->will($this->returnValue($shipmentId)); + $shipmentDataObjectMock->expects($this->any()) + ->method('getItems') + ->will($this->returnValue($items)); + $shipmentDataObjectMock->expects($this->any()) + ->method('getTracks') + ->will($this->returnValue($tracking)); + + $shipmentMock = $this->getMockBuilder('Magento\Sales\Model\Order\Shipment') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->with() + ->will($this->returnValue($shipmentMock)); + + $this->assertInstanceOf( + 'Magento\Sales\Model\Order\Shipment', + $this->converter->getModel($shipmentDataObjectMock) + ); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/ShipmentMapperTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/ShipmentMapperTest.php new file mode 100644 index 0000000000000000000000000000000000000000..90574e39dbe52b3936ba84839a55fa4372f9c665 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/Data/ShipmentMapperTest.php @@ -0,0 +1,167 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1\Data; + +/** + * Class ShipmentMapperTest + */ +class ShipmentMapperTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var ShipmentMapper + */ + protected $shipmentMapper; + + /** + * @var ShipmentBuilder|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentBuilderMock; + + /** + * @var ShipmentItemMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentItemMapperMock; + + /** + * @var ShipmentTrackMapper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentTrackMapperMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Item|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentItemMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Track|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentTrackMock; + + /** + * SetUp + * + * @return void + */ + protected function setUp() + { + $this->shipmentBuilderMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\ShipmentBuilder', + ['populateWithArray', 'setItems', 'setTracks', 'create', 'setPackages'], + [], + '', + false + ); + $this->shipmentItemMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\ShipmentItemMapper', + ['extractDto'], + [], + '', + false + ); + $this->shipmentTrackMapperMock = $this->getMock( + 'Magento\Sales\Service\V1\Data\ShipmentTrackMapper', + ['extractDto'], + [], + '', + false + ); + $this->shipmentMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + ['getItemsCollection', 'getTracksCollection', 'getData', '__wakeup', 'getPackages'], + [], + '', + false + ); + $this->shipmentItemMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Item', + [], + [], + '', + false + ); + $this->shipmentMapper = new ShipmentMapper( + $this->shipmentBuilderMock, + $this->shipmentItemMapperMock, + $this->shipmentTrackMapperMock + ); + } + + /** + * Run shipment mapper test + * + * @return void + */ + public function testInvoke() + { + $this->shipmentMock->expects($this->once()) + ->method('getData') + ->will($this->returnValue(['field-1' => 'value-1'])); + $this->shipmentBuilderMock->expects($this->once()) + ->method('populateWithArray') + ->with($this->equalTo(['field-1' => 'value-1'])) + ->will($this->returnSelf()); + $this->shipmentMock->expects($this->once()) + ->method('getPackages') + ->will($this->returnValue([[], []])); + $this->shipmentBuilderMock->expects($this->once()) + ->method('setPackages') + ->with($this->equalTo(serialize([[], []]))) + ->will($this->returnSelf()); + + $this->shipmentMock->expects($this->once()) + ->method('getItemsCollection') + ->will($this->returnValue([$this->shipmentItemMock])); + $this->shipmentItemMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->shipmentItemMock)) + ->will($this->returnValue('item-1')); + $this->shipmentBuilderMock->expects($this->once()) + ->method('setItems') + ->with($this->equalTo(['item-1'])) + ->will($this->returnSelf()); + + + $this->shipmentMock->expects($this->once()) + ->method('getTracksCollection') + ->will($this->returnValue([$this->shipmentTrackMock])); + $this->shipmentTrackMapperMock->expects($this->once()) + ->method('extractDto') + ->with($this->equalTo($this->shipmentTrackMock)) + ->will($this->returnValue('track-1')); + $this->shipmentBuilderMock->expects($this->once()) + ->method('setTracks') + ->with($this->equalTo(['track-1'])) + ->will($this->returnSelf()); + + $this->shipmentBuilderMock->expects($this->once()) + ->method('create') + ->will($this->returnValue('data-object-with-shipment')); + $this->assertEquals('data-object-with-shipment', $this->shipmentMapper->extractDto($this->shipmentMock)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/InvoiceReadTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/InvoiceReadTest.php new file mode 100644 index 0000000000000000000000000000000000000000..3caefcc055173a3d27d08f4d27a0e9d9bad60a16 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/InvoiceReadTest.php @@ -0,0 +1,121 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +/** + * Class InvoiceReadTest + */ +class InvoiceReadTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceGet|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceGetMock; + + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceList|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceListMock; + + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceCommentsList|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceCommentsListMock; + + /** + * @var \Magento\Sales\Service\V1\InvoiceRead + */ + protected $invoiceRead; + + /** + * SetUp + */ + protected function setUp() + { + $this->invoiceGetMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\InvoiceGet', + ['invoke'], + [], + '', + false + ); + $this->invoiceListMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\InvoiceList', + ['invoke'], + [], + '', + false + ); + $this->invoiceCommentsListMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\InvoiceCommentsList', + ['invoke'], + [], + '', + false + ); + + $this->invoiceRead = new InvoiceRead( + $this->invoiceGetMock, + $this->invoiceListMock, + $this->invoiceCommentsListMock + ); + } + + /** + * test invoice get + */ + public function testGet() + { + $this->invoiceGetMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue('invoice-do')); + $this->assertEquals('invoice-do', $this->invoiceRead->get(1)); + } + + /** + * test invoice list + */ + public function testSearch() + { + $searchCriteria = $this->getMock('Magento\Framework\Service\V1\Data\SearchCriteria', [], [], '', false); + $this->invoiceListMock->expects($this->once()) + ->method('invoke') + ->with($searchCriteria) + ->will($this->returnValue('search_result')); + $this->assertEquals('search_result', $this->invoiceRead->search($searchCriteria)); + } + + /** + * test invoice comments list + */ + public function testCommentsList() + { + $this->invoiceCommentsListMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue('search_result')); + $this->assertEquals('search_result', $this->invoiceRead->commentsList(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/InvoiceWriteTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/InvoiceWriteTest.php new file mode 100644 index 0000000000000000000000000000000000000000..ad2b7075c5fb5400aa3b9bd4c2f825121b001914 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/InvoiceWriteTest.php @@ -0,0 +1,172 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +/** + * Class InvoiceWriteTest + */ +class InvoiceWriteTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceAddComment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceAddCommentMock; + + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceVoid|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceVoidMock; + + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceEmail|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceEmailMock; + + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceCapture|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceCaptureMock; + + /** + * @var \Magento\Sales\Service\V1\Action\InvoiceCreate|\PHPUnit_Framework_MockObject_MockObject + */ + protected $invoiceCreateMock; + + /** + * @var \Magento\Sales\Service\V1\InvoiceWrite + */ + protected $invoiceWrite; + + /** + * SetUp + */ + protected function setUp() + { + $this->invoiceAddCommentMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\InvoiceAddComment', + ['invoke'], + [], + '', + false + ); + $this->invoiceVoidMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\InvoiceVoid', + ['invoke'], + [], + '', + false + ); + $this->invoiceEmailMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\InvoiceEmail', + ['invoke'], + [], + '', + false + ); + $this->invoiceCaptureMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\InvoiceCapture', + ['invoke'], + [], + '', + false + ); + $this->invoiceCreateMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\InvoiceCreate', + ['invoke'], + [], + '', + false + ); + + $this->invoiceWrite = new InvoiceWrite( + $this->invoiceAddCommentMock, + $this->invoiceVoidMock, + $this->invoiceEmailMock, + $this->invoiceCaptureMock, + $this->invoiceCreateMock + ); + } + + /** + * test invoice add comment + */ + public function testAddComment() + { + $comment = $this->getMock('Magento\Sales\Service\V1\Data\Comment', [], [], '', false); + $this->invoiceAddCommentMock->expects($this->once()) + ->method('invoke') + ->with($comment) + ->will($this->returnValue(true)); + $this->assertTrue($this->invoiceWrite->addComment($comment)); + } + + /** + * test invoice void + */ + public function testVoid() + { + $this->invoiceVoidMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue(true)); + $this->assertTrue($this->invoiceWrite->void(1)); + } + + /** + * test invoice email + */ + public function testEmail() + { + $this->invoiceEmailMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue(true)); + $this->assertTrue($this->invoiceWrite->email(1)); + } + + /** + * test invoice capture + */ + public function testCapture() + { + $this->invoiceCaptureMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue(true)); + $this->assertTrue($this->invoiceWrite->capture(1)); + } + + /** + * test invoice create + */ + public function testCreate() + { + $invoiceDataObject = $this->getMock('Magento\Sales\Service\V1\Data\Invoice', [], [], '', false); + $this->invoiceCreateMock->expects($this->once()) + ->method('invoke') + ->with($invoiceDataObject) + ->will($this->returnValue(true)); + $this->assertTrue($this->invoiceWrite->create($invoiceDataObject)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderReadTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderReadTest.php new file mode 100644 index 0000000000000000000000000000000000000000..302b128cf0108e4670721e0edf400264a7761d13 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderReadTest.php @@ -0,0 +1,146 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +/** + * Class OrderReadTest + */ +class OrderReadTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\OrderGet|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderGetMock; + + /** + * @var \Magento\Sales\Service\V1\Action\OrderList|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderListMock; + + /** + * @var \Magento\Sales\Service\V1\Action\OrderCommentsList|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderCommentsListMock; + + /** + * @var \Magento\Sales\Service\V1\Action\OrderGetStatus|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderGetStatusMock; + + /** + * @var \Magento\Sales\Service\V1\OrderRead + */ + protected $orderRead; + + /** + * SetUp + */ + protected function setUp() + { + $this->orderGetMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderGet', + ['invoke'], + [], + '', + false + ); + $this->orderListMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderList', + ['invoke'], + [], + '', + false + ); + $this->orderCommentsListMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderCommentsList', + ['invoke'], + [], + '', + false + ); + $this->orderGetStatusMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderGetStatus', + ['invoke'], + [], + '', + false + ); + + $this->orderRead = new OrderRead( + $this->orderGetMock, + $this->orderListMock, + $this->orderCommentsListMock, + $this->orderGetStatusMock + ); + } + + /** + * test order get + */ + public function testGet() + { + $this->orderGetMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue('order-do')); + $this->assertEquals('order-do', $this->orderRead->get(1)); + } + + /** + * test order list + */ + public function testSearch() + { + $searchCriteria = $this->getMock('Magento\Framework\Service\V1\Data\SearchCriteria', [], [], '', false); + $this->orderListMock->expects($this->once()) + ->method('invoke') + ->with($searchCriteria) + ->will($this->returnValue('search_result')); + $this->assertEquals('search_result', $this->orderRead->search($searchCriteria)); + } + + /** + * test order comments list + */ + public function testCommentsList() + { + $this->orderCommentsListMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue('search_result')); + $this->assertEquals('search_result', $this->orderRead->commentsList(1)); + } + + /** + * test order get status + */ + public function testGetStatus() + { + $this->orderGetStatusMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue('search_result')); + $this->assertEquals('search_result', $this->orderRead->getStatus(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderWriteTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderWriteTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c98ce8d951fb8d5c311d199df2738bb54d922f53 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/OrderWriteTest.php @@ -0,0 +1,224 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +/** + * Class OrderWriteTest + */ +class OrderWriteTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\OrderAddressUpdate|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderAddressUpdateMock; + + /** + * @var \Magento\Sales\Service\V1\Action\OrderCancel|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderCancelMock; + + /** + * @var \Magento\Sales\Service\V1\Action\OrderEmail|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderEmailMock; + + /** + * @var \Magento\Sales\Service\V1\Action\OrderHold|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderHoldMock; + + /** + * @var \Magento\Sales\Service\V1\Action\OrderUnHold|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderUnHoldMock; + + /** + * @var \Magento\Sales\Service\V1\Action\OrderStatusHistoryAdd|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderStatusHistoryAddMock; + + /** + * @var \Magento\Sales\Service\V1\Action\OrderCreate|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderCreateMock; + + /** + * @var \Magento\Sales\Service\V1\OrderWrite + */ + protected $orderWrite; + + /** + * SetUp + */ + protected function setUp() + { + $this->orderAddressUpdateMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderAddressUpdate', + ['invoke'], + [], + '', + false + ); + $this->orderCancelMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderCancel', + ['invoke'], + [], + '', + false + ); + $this->orderEmailMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderEmail', + ['invoke'], + [], + '', + false + ); + $this->orderHoldMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderHold', + ['invoke'], + [], + '', + false + ); + $this->orderUnHoldMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderUnHold', + ['invoke'], + [], + '', + false + ); + $this->orderStatusHistoryAddMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderStatusHistoryAdd', + ['invoke'], + [], + '', + false + ); + + $this->orderCreateMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\OrderCreate', + ['invoke'], + [], + '', + false + ); + + $this->orderWrite = new OrderWrite( + $this->orderAddressUpdateMock, + $this->orderCancelMock, + $this->orderEmailMock, + $this->orderHoldMock, + $this->orderUnHoldMock, + $this->orderStatusHistoryAddMock, + $this->orderCreateMock + ); + } + + /** + * test order address update + */ + public function testAddressUpdate() + { + $orderAddress = $this->getMock('Magento\Sales\Service\V1\Data\OrderAddress', [], [], '', false); + $this->orderAddressUpdateMock->expects($this->once()) + ->method('invoke') + ->with($orderAddress) + ->will($this->returnValue(true)); + $this->assertTrue($this->orderWrite->addressUpdate($orderAddress)); + } + + /** + * test order cancel + */ + public function testCancel() + { + $this->orderCancelMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue(true)); + $this->assertTrue($this->orderWrite->cancel(1)); + } + + /** + * test order email + */ + public function testEmail() + { + $this->orderEmailMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue(true)); + $this->assertTrue($this->orderWrite->email(1)); + } + + /** + * test order hold + */ + public function testHold() + { + $this->orderHoldMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue(true)); + $this->assertTrue($this->orderWrite->hold(1)); + } + + /** + * test order unhold + */ + public function testUnHold() + { + $this->orderUnHoldMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue(true)); + $this->assertTrue($this->orderWrite->unHold(1)); + } + + /** + * test order status history add + */ + public function testStatusHistoryAdd() + { + $statusHistory = $this->getMock('Magento\Sales\Service\V1\Data\OrderStatusHistory', [], [], '', false); + $this->orderStatusHistoryAddMock->expects($this->once()) + ->method('invoke') + ->with(1, $statusHistory) + ->will($this->returnValue(true)); + $this->assertTrue($this->orderWrite->statusHistoryAdd(1, $statusHistory)); + } + + /** + * test order create + */ + public function testCreate() + { + $invoiceDataObject = $this->getMock('Magento\Sales\Service\V1\Data\Order', [], [], '', false); + $this->orderCreateMock->expects($this->once()) + ->method('invoke') + ->with($invoiceDataObject) + ->will($this->returnValue(true)); + $this->assertTrue($this->orderWrite->create($invoiceDataObject)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/ShipmentReadTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/ShipmentReadTest.php new file mode 100644 index 0000000000000000000000000000000000000000..d2fffc4c0e01d8141f10aa99f4c2364985d55715 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/ShipmentReadTest.php @@ -0,0 +1,146 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +/** + * Class ShipmentReadTest + */ +class ShipmentReadTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentGet|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentGetMock; + + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentList|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentListMock; + + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentCommentsList|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentCommentsListMock; + + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentLabelGet|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLabelGetMock; + + /** + * @var \Magento\Sales\Service\V1\ShipmentRead + */ + protected $shipmentRead; + + /** + * SetUp + */ + protected function setUp() + { + $this->shipmentGetMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\ShipmentGet', + ['invoke'], + [], + '', + false + ); + $this->shipmentListMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\ShipmentList', + ['invoke'], + [], + '', + false + ); + $this->shipmentCommentsListMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\ShipmentCommentsList', + ['invoke'], + [], + '', + false + ); + $this->shipmentLabelGetMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\ShipmentLabelGet', + ['invoke'], + [], + '', + false + ); + + $this->shipmentRead = new ShipmentRead( + $this->shipmentGetMock, + $this->shipmentListMock, + $this->shipmentCommentsListMock, + $this->shipmentLabelGetMock + ); + } + + /** + * test shipment get + */ + public function testGet() + { + $this->shipmentGetMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue('shipment-do')); + $this->assertEquals('shipment-do', $this->shipmentRead->get(1)); + } + + /** + * test shipment list + */ + public function testSearch() + { + $searchCriteria = $this->getMock('Magento\Framework\Service\V1\Data\SearchCriteria', [], [], '', false); + $this->shipmentListMock->expects($this->once()) + ->method('invoke') + ->with($searchCriteria) + ->will($this->returnValue('search_result')); + $this->assertEquals('search_result', $this->shipmentRead->search($searchCriteria)); + } + + /** + * test shipment comments list + */ + public function testCommentsList() + { + $this->shipmentCommentsListMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue('search_result')); + $this->assertEquals('search_result', $this->shipmentRead->commentsList(1)); + } + + /** + * test shipment label get + */ + public function testGetLabel() + { + $this->shipmentLabelGetMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue('shipment-do')); + $this->assertEquals('shipment-do', $this->shipmentRead->getLabel(1)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sales/Service/V1/ShipmentWriteTest.php b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/ShipmentWriteTest.php new file mode 100644 index 0000000000000000000000000000000000000000..7340cb5e28adae21668877215d28851224bae148 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sales/Service/V1/ShipmentWriteTest.php @@ -0,0 +1,174 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Sales\Service\V1; + +/** + * Class ShipmentWriteTest + */ +class ShipmentWriteTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentAddTrack|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentAddTrackMock; + + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentRemoveTrack|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentRemoveTrackMock; + + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentEmail|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentEmailMock; + + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentAddComment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentAddCommentMock; + + /** + * @var \Magento\Sales\Service\V1\Action\ShipmentCreate|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentCreateMock; + + /** + * @var \Magento\Sales\Service\V1\ShipmentWrite + */ + protected $shipmentWrite; + + /** + * SetUp + */ + protected function setUp() + { + $this->shipmentAddTrackMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\ShipmentAddTrack', + ['invoke'], + [], + '', + false + ); + $this->shipmentRemoveTrackMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\ShipmentRemoveTrack', + ['invoke'], + [], + '', + false + ); + $this->shipmentEmailMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\ShipmentEmail', + ['invoke'], + [], + '', + false + ); + $this->shipmentAddCommentMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\ShipmentAddComment', + ['invoke'], + [], + '', + false + ); + $this->shipmentCreateMock = $this->getMock( + 'Magento\Sales\Service\V1\Action\ShipmentCreate', + ['invoke'], + [], + '', + false + ); + + $this->shipmentWrite = new ShipmentWrite( + $this->shipmentAddTrackMock, + $this->shipmentRemoveTrackMock, + $this->shipmentEmailMock, + $this->shipmentAddCommentMock, + $this->shipmentCreateMock + ); + } + + /** + * test shipment add comment + */ + public function testAddTrack() + { + $track = $this->getMock('Magento\Sales\Service\V1\Data\ShipmentTrack', [], [], '', false); + $this->shipmentAddTrackMock->expects($this->once()) + ->method('invoke') + ->with($track) + ->will($this->returnValue(true)); + $this->assertTrue($this->shipmentWrite->addTrack($track)); + } + + /** + * test shipment removeTrack + */ + public function testRemoveTrack() + { + $track = $this->getMock('Magento\Sales\Service\V1\Data\ShipmentTrack', [], [], '', false); + $this->shipmentRemoveTrackMock->expects($this->once()) + ->method('invoke') + ->with($track) + ->will($this->returnValue(true)); + $this->assertTrue($this->shipmentWrite->removeTrack($track)); + } + + /** + * test shipment email + */ + public function testEmail() + { + $this->shipmentEmailMock->expects($this->once()) + ->method('invoke') + ->with(1) + ->will($this->returnValue(true)); + $this->assertTrue($this->shipmentWrite->email(1)); + } + + /** + * test shipment addComment + */ + public function testAddComment() + { + $comment = $this->getMock('Magento\Sales\Service\V1\Data\Comment', [], [], '', false); + $this->shipmentAddCommentMock->expects($this->once()) + ->method('invoke') + ->with($comment) + ->will($this->returnValue(true)); + $this->assertTrue($this->shipmentWrite->addComment($comment)); + } + + /** + * test shipment create + */ + public function testCreate() + { + $shipmentDataObject = $this->getMock('Magento\Sales\Service\V1\Data\Shipment', [], [], '', false); + $this->shipmentCreateMock->expects($this->once()) + ->method('invoke') + ->with($shipmentDataObject) + ->will($this->returnValue(true)); + $this->assertTrue($this->shipmentWrite->create($shipmentDataObject)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Sendfriend/Model/SendfriendTest.php b/dev/tests/unit/testsuite/Magento/Sendfriend/Model/SendfriendTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0cfbe11413dbf37b81c7da4ab26cff219c98a8c0 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Sendfriend/Model/SendfriendTest.php @@ -0,0 +1,98 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Sendfriend\Model; + +use Magento\TestFramework\Helper\ObjectManager; + +/** + * Test Sendfriend + * + */ +class SendfriendTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Sendfriend\Model\Sendfriend + */ + protected $model; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Stdlib\CookieManager + */ + protected $cookieManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $sendfriendDataMock; + + public function setUp() + { + + $objectManager = new ObjectManager($this); + $this->sendfriendDataMock = $this->getMockBuilder('Magento\Sendfriend\Helper\Data') + ->disableOriginalConstructor() + ->getMock(); + $this->cookieManagerMock = $this->getMockBuilder('Magento\Framework\Stdlib\CookieManager') + ->disableOriginalConstructor()->getMock(); + + $this->model = $objectManager->getObject( + 'Magento\Sendfriend\Model\Sendfriend', + [ + 'sendfriendData' => $this->sendfriendDataMock, + 'cookieManager' => $this->cookieManagerMock, + ] + ); + + } + + public function testGetSentCountWithCheckCookie() + { + $cookieName = 'testCookieName'; + $this->sendfriendDataMock->expects($this->once())->method('getLimitBy')->with()->will( + $this->returnValue(\Magento\Sendfriend\Helper\Data::CHECK_COOKIE) + ); + $this->sendfriendDataMock->expects($this->once())->method('getCookieName')->with()->will( + $this->returnValue($cookieName) + ); + + $this->cookieManagerMock->expects($this->once())->method('getCookie')->with($cookieName); + $this->assertEquals(0, $this->model->getSentCount()); + } + + public function testSentCountByCookies() + { + $cookieName = 'testCookieName'; + $this->sendfriendDataMock->expects($this->once())->method('getCookieName')->with()->will( + $this->returnValue($cookieName) + ); + + $this->cookieManagerMock->expects($this->once())->method('getCookie')->with($cookieName); + $this->cookieManagerMock->expects($this->once())->method('setPublicCookie'); + $sendFriendClass = new \ReflectionClass('Magento\Sendfriend\Model\Sendfriend'); + $method = $sendFriendClass->getMethod('_sentCountByCookies'); + $method->setAccessible(true); + $method->invokeArgs($this->model, [true]); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddCommentTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddCommentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..e17c3f188d92e8d37e5a9a992a92664943d61572 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddCommentTest.php @@ -0,0 +1,331 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +/** + * Class AddCommentTest + */ +class AddCommentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoaderMock; + + /** + * @var \Magento\Sales\Model\Order\Email\Sender\ShipmentSender|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentSenderMock; + + /** + * @var \Magento\Framework\App\Request\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \Magento\Framework\App\Action\Title|\PHPUnit_Framework_MockObject_MockObject + */ + protected $titleMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMock; + + /** + * @var \Magento\Backend\Model\View|\PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \Magento\Framework\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\Shipment\AddComment + */ + protected $controller; + + protected function setUp() + { + $this->shipmentLoaderMock = $this->getMock( + 'Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader', + ['setOrderId', 'setShipmentId', 'setShipment', 'setTracking', 'load'], + [], + '', + false + ); + $this->shipmentSenderMock = $this->getMock( + 'Magento\Sales\Model\Order\Email\Sender\ShipmentSender', + ['send'], + [], + '', + false + ); + $this->requestMock = $this->getMock( + 'Magento\Framework\App\Request\Http', + ['getParam', 'getPost', 'setParam'], + [], + '', + false + ); + $this->responseMock = $this->getMock( + 'Magento\Framework\App\Response\Http', + ['setBody', 'representJson'], + [], + '', + false + ); + $this->titleMock = $this->getMock( + 'Magento\Framework\App\Action\Title', + ['add'], + [], + '', + false + ); + $this->shipmentMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + ['save', 'addComment', '__wakeup'], + [], + '', + false + ); + $this->viewMock = $this->getMock( + 'Magento\Backend\Model\View', + ['getLayout', 'loadLayout'], + [], + '', + false + ); + $this->objectManagerMock = $this->getMock( + 'Magento\Framework\ObjectManager', + ['create', 'get', 'configure'], + [], + '', + false + ); + + $contextMock = $this->getMock( + 'Magento\Backend\App\Action\Context', + ['getRequest', 'getResponse', 'getTitle', 'getView', 'getObjectManager'], + [], + '', + false + ); + + $contextMock->expects($this->any())->method('getRequest')->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any())->method('getResponse')->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any())->method('getTitle')->will($this->returnValue($this->titleMock)); + $contextMock->expects($this->any())->method('getView')->will($this->returnValue($this->viewMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + + $this->controller = new \Magento\Shipping\Controller\Adminhtml\Order\Shipment\AddComment( + $contextMock, + $this->shipmentLoaderMock, + $this->shipmentSenderMock + ); + + } + + /** + * Processing section runtime errors + * + * @return void + */ + protected function exceptionResponse() + { + $dataMock = $this->getMock( + 'Magento\Core\Helper\Data', + ['jsonEncode'], + [], + '', + false + ); + + $this->objectManagerMock->expects($this->once())->method('get')->will($this->returnValue($dataMock)); + $dataMock->expects($this->once())->method('jsonEncode')->will($this->returnValue('{json-data}')); + $this->responseMock->expects($this->once())->method('representJson')->with('{json-data}'); + } + + /** + * Run test execute method + */ + public function testExecute() + { + $data = ['comment' => 'comment']; + $result = 'result-html'; + $orderId = 1; + $shipmentId = 1; + $shipment = []; + $tracking = []; + + $layoutMock = $this->getMock('Magento\Framework\View\Layout', ['getBlock'], [], '', false); + $blockMock = $this->getMock('Magento\Shipping\Block\Adminhtml\View\Comments', ['toHtml'], [], '', false); + + $this->requestMock->expects($this->once())->method('setParam')->with('shipment_id', $shipmentId); + $this->requestMock->expects($this->once()) + ->method('getPost') + ->with('comment') + ->will($this->returnValue($data)); + $this->titleMock->expects($this->once())->method('add'); + $this->requestMock->expects($this->any()) + ->method('getParam') + ->will( + $this->returnValueMap( + [ + ['id', null, $shipmentId], + ['order_id', null, $orderId], + ['shipment_id', null, $shipmentId], + ['shipment', null, $shipment], + ['tracking', null, $tracking] + ] + ) + ); + $this->shipmentLoaderMock->expects($this->once())->method('setOrderId')->with($orderId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipmentId')->with($shipmentId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipment')->with($shipment); + $this->shipmentLoaderMock->expects($this->once())->method('setTracking')->with($tracking); + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->shipmentMock->expects($this->once())->method('addComment'); + $this->shipmentSenderMock->expects($this->once())->method('send'); + $this->shipmentMock->expects($this->once())->method('save'); + $this->viewMock->expects($this->once())->method('loadLayout')->with(false); + $this->viewMock->expects($this->once())->method('getLayout')->will($this->returnValue($layoutMock)); + $layoutMock->expects($this->once())->method('getBlock')->will($this->returnValue($blockMock)); + $blockMock->expects($this->once())->method('toHtml')->will($this->returnValue($result)); + $this->responseMock->expects($this->once())->method('setBody')->with($result); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (exception load shipment) + */ + public function testExecuteLoadException() + { + $orderId = 1; + $shipmentId = 1; + $shipment = []; + $tracking = []; + $data = ['comment' => 'comment']; + + $this->requestMock->expects($this->any()) + ->method('getParam') + ->will( + $this->returnValueMap( + [ + ['id', null, $shipmentId], + ['order_id', null, $orderId], + ['shipment_id', null, $shipmentId], + ['shipment', null, $shipment], + ['tracking', null, $tracking] + ] + ) + ); + $this->requestMock->expects($this->once())->method('setParam')->with('shipment_id', $shipmentId); + $this->requestMock->expects($this->once())->method('getPost')->with('comment')->will($this->returnValue($data)); + $this->shipmentLoaderMock->expects($this->once())->method('setOrderId')->with($orderId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipmentId')->with($shipmentId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipment')->with($shipment); + $this->shipmentLoaderMock->expects($this->once())->method('setTracking')->with($tracking); + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->throwException(new \Magento\Framework\Model\Exception())); + $this->exceptionResponse(); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (empty data comment) + */ + public function testEmptyCommentData() + { + $shipmentId = 1; + $this->requestMock->expects($this->once()) + ->method('getParam') + ->with('id') + ->will($this->returnValue($shipmentId)); + $this->requestMock->expects($this->once())->method('setParam')->with('shipment_id', $shipmentId); + $this->requestMock->expects($this->once())->method('getPost')->with('comment')->will($this->returnValue([])); + $this->exceptionResponse(); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (save exception) + */ + public function testExecuteExceptionSave() + { + $data = ['comment' => 'comment']; + $orderId = 1; + $shipmentId = 1; + $shipment = []; + $tracking = []; + + $this->requestMock->expects($this->once())->method('setParam')->with('shipment_id', $shipmentId); + $this->requestMock->expects($this->once()) + ->method('getPost') + ->with('comment') + ->will($this->returnValue($data)); + $this->titleMock->expects($this->once())->method('add'); + $this->requestMock->expects($this->any()) + ->method('getParam') + ->will( + $this->returnValueMap( + [ + ['id', null, $shipmentId], + ['order_id', null, $orderId], + ['shipment_id', null, $shipmentId], + ['shipment', null, $shipment], + ['tracking', null, $tracking] + ] + ) + ); + $this->shipmentLoaderMock->expects($this->once())->method('setOrderId')->with($orderId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipmentId')->with($shipmentId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipment')->with($shipment); + $this->shipmentLoaderMock->expects($this->once())->method('setTracking')->with($tracking); + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->shipmentMock->expects($this->once())->method('addComment'); + $this->shipmentSenderMock->expects($this->once())->method('send'); + $this->shipmentMock->expects($this->once())->method('save')->will($this->throwException(new \Exception())); + $this->exceptionResponse(); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrackTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrackTest.php new file mode 100644 index 0000000000000000000000000000000000000000..579ea085aa22531a33c9e5a05b77ed52d555059a --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrackTest.php @@ -0,0 +1,262 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +use \Magento\Backend\App\Action; +use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper; +/** + * Class AddTrackTest + * + * @package Magento\Shipping\Controller\Adminhtml\Order\Shipment + */ +class AddTrackTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoader; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\Shipment\AddTrack + */ + protected $controller; + + /** + * @var Action\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $context; + + /** + * @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $request; + + /** + * @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $response; + + /** + * @var \Magento\Framework\ObjectManager\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManager; + + /** + * @var \Magento\Framework\App\ViewInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $view; + + /** + * @var \Magento\Framework\App\Action\Title|\PHPUnit_Framework_MockObject_MockObject + */ + protected $title; + + public function setUp() + { + $objectManagerHelper = new ObjectManagerHelper($this); + $this->shipmentLoader = $this->getMockBuilder('Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->context = $this->getMock( + 'Magento\Backend\App\Action\Context', + [ + 'getRequest', + 'getResponse', + 'getRedirect', + 'getObjectManager', + 'getTitle', + 'getView' + ], + [], + '', + false + ); + $this->response = $this->getMock( + 'Magento\Framework\App\ResponseInterface', + ['setRedirect', 'sendResponse', 'setBody'], + [], + '', + false + ); + $this->request = $this->getMock( + 'Magento\Framework\App\RequestInterface', + [ + 'isPost', + 'getModuleName', + 'setModuleName', + 'getActionName', + 'setActionName', + 'getParam', + 'getPost', + 'getCookie' + ], + [], + '', + false + ); + $this->objectManager = $this->getMock( + 'Magento\Framework\ObjectManager\ObjectManager', + ['create', 'get'], + [], + '', + false + ); + $this->title = $this->getMock('Magento\Framework\App\Action\Title', [], [], '', false); + $this->view = $this->getMock( + 'Magento\Framework\App\ViewInterface', + [], + [], + '', + false + ); + $this->context->expects($this->once()) + ->method('getRequest') + ->will($this->returnValue($this->request)); + $this->context->expects($this->once()) + ->method('getResponse') + ->will($this->returnValue($this->response)); + $this->context->expects($this->once()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManager)); + $this->context->expects($this->once()) + ->method('getTitle') + ->will($this->returnValue($this->title)); + $this->context->expects($this->once()) + ->method('getView') + ->will($this->returnValue($this->view)); + $this->controller = $objectManagerHelper->getObject( + 'Magento\Shipping\Controller\Adminhtml\Order\Shipment\AddTrack', + [ + 'context' => $this->context, + 'shipmentLoader' => $this->shipmentLoader, + 'request' => $this->request, + 'response' => $this->response, + 'title' => $this->title, + 'view' => $this->view + ] + ); + } + + public function testExecute() + { + $carrier = 'carrier'; + $number = 'number'; + $title = 'title'; + $shipmentId = 1000012; + $orderId = 10003; + $tracking = []; + $shipmentData = ['items' => [], 'send_email' => '']; + $shipment = $this->getMock('Magento\Sales\Model\Order\Shipment', ['addTrack', '__wakeup'], [], '', false); + $this->request->expects($this->any()) + ->method('getParam') + ->will( + $this->returnValueMap( + [ + ['order_id', null, $orderId], ['shipment_id', null, $shipmentId], + ['shipment', null, $shipmentData], ['tracking', null, $tracking] + ] + ) + ); + $this->request->expects($this->any()) + ->method('getPost') + ->will( + $this->returnValueMap( + [ + ['carrier', $carrier], + ['number', $number], + ['title', $title] + ] + ) + ); + $this->shipmentLoader->expects($this->any()) + ->method('setShipmentId') + ->with($shipmentId); + $this->shipmentLoader->expects($this->any()) + ->method('setOrderId') + ->with($orderId); + $this->shipmentLoader->expects($this->any()) + ->method('setShipment') + ->with($shipmentData); + $this->shipmentLoader->expects($this->any()) + ->method('setTracking') + ->with($tracking); + $this->shipmentLoader->expects($this->once()) + ->method('load') + ->will($this->returnValue($shipment)); + $this->title->expects($this->any()) + ->method('add') + ->with('Shipments') + ->will($this->returnSelf()); + $track = $this->getMockBuilder('Magento\Sales\Model\Order\Shipment\Track') + ->disableOriginalConstructor() + ->setMethods(['__wakeup', 'setNumber', 'setCarrierCode', 'setTitle']) + ->getMock(); + $this->objectManager->expects($this->atLeastOnce()) + ->method('create') + ->with('Magento\Sales\Model\Order\Shipment\Track') + ->will($this->returnValue($track)); + $track->expects($this->once()) + ->method('setNumber') + ->with($number) + ->will($this->returnSelf()); + $track->expects($this->once()) + ->method('setCarrierCode') + ->with($carrier) + ->will($this->returnSelf()); + $track->expects($this->once()) + ->method('setTitle') + ->with($title) + ->will($this->returnSelf()); + $this->view->expects($this->once()) + ->method('loadLayout') + ->will($this->returnSelf()); + $layout = $this->getMock('Magento\Framework\View\Layout\Element\Layout', ['getBlock'], [], '', false); + $menuBlock = $this->getMock('Magento\Framework\View\Element\BlockInterface', ['toHtml'], [], '', false); + $html = 'html string'; + $this->view->expects($this->once()) + ->method('getLayout') + ->will($this->returnValue($layout)); + $layout->expects($this->once()) + ->method('getBlock') + ->with('shipment_tracking') + ->will($this->returnValue($menuBlock)); + $menuBlock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($html)); + $shipment->expects($this->once()) + ->method('addTrack') + ->with($this->equalTo($track)) + ->will($this->returnSelf()); + $shipment->expects($this->any()) + ->method('save') + ->will($this->returnSelf()); + $this->response->expects($this->once()) + ->method('setBody') + ->with($html); + $this->assertNull($this->controller->execute()); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php new file mode 100644 index 0000000000000000000000000000000000000000..7f3fa60c2ca30b055d8765886d6cf3652908424d --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php @@ -0,0 +1,257 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +/** + * Class CreateLabelTest + */ +class CreateLabelTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoaderMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMock; + + /** + * @var \Magento\Framework\App\Request\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \Magento\Framework\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \Magento\Framework\Message\Manager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \Magento\Shipping\Model\Shipping\LabelGenerator|\PHPUnit_Framework_MockObject_MockObject + */ + protected $labelGenerator; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\Shipment\CreateLabel + */ + protected $controller; + + protected function setUp() + { + $this->shipmentLoaderMock = $this->getMock( + 'Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader', + ['setOrderId', 'setShipmentId', 'setShipment', 'setTracking', 'load'], + [], + '', + false + ); + $this->shipmentMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + ['__wakeup', 'save'], + [], + '', + false + ); + $this->requestMock = $this->getMock('Magento\Framework\App\Request\Http', ['getParam'], [], '', false); + $this->responseMock = $this->getMock('Magento\Framework\App\Response\Http', ['representJson'], [], '', false); + $this->objectManagerMock = $this->getMock( + 'Magento\Framework\ObjectManager', + ['create', 'get', 'configure'], + [], + '', + false + ); + $this->messageManagerMock = $this->getMock( + 'Magento\Framework\Message\Manager', + ['addSuccess', 'addError'], + [], + '', + false + ); + $this->labelGenerator = $this->getMock( + 'Magento\Shipping\Model\Shipping\LabelGenerator', + ['create'], + [], + '', + false + ); + + $contextMock = $this->getMock( + 'Magento\Backend\App\Action\Context', + ['getRequest', 'getResponse', 'getMessageManager', 'getActionFlag', 'getObjectManager'], + [], + '', + false + ); + + $this->loadShipment(); + $contextMock->expects($this->any())->method('getRequest')->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any())->method('getResponse')->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $contextMock->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManagerMock)); + + $this->controller = new \Magento\Shipping\Controller\Adminhtml\Order\Shipment\CreateLabel( + $contextMock, + $this->shipmentLoaderMock, + $this->labelGenerator + ); + } + + /** + * Load shipment object + * + * @return void + */ + protected function loadShipment() + { + $orderId = 1; + $shipmentId = 1; + $shipment = []; + $tracking = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('shipment_id') + ->will($this->returnValue($shipmentId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('shipment') + ->will($this->returnValue($shipment)); + $this->requestMock->expects($this->at(3)) + ->method('getParam') + ->with('tracking') + ->will($this->returnValue($tracking)); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setOrderId') + ->with($orderId); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setShipmentId') + ->with($shipmentId); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setShipment') + ->with($shipment); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setTracking') + ->with($tracking); + } + + /** + * Run test execute method + */ + public function testExecute() + { + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->labelGenerator->expects($this->once()) + ->method('create') + ->with($this->shipmentMock, $this->requestMock) + ->will($this->returnValue(true)); + $this->shipmentMock->expects($this->once())->method('save')->will($this->returnSelf()); + $this->messageManagerMock->expects($this->once())->method('addSuccess'); + $this->responseMock->expects($this->once())->method('representJson'); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (exception load shipment) + */ + public function testExecuteLoadException() + { + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->throwException(new \Magento\Framework\Model\Exception())); + $this->responseMock->expects($this->once())->method('representJson'); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (exception save shipment) + */ + public function testExecuteSaveException() + { + $logerMock = $this->getMock( + 'Magento\Framework\Logger', + ['logException'], + [], + '', + false + ); + + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->labelGenerator->expects($this->once()) + ->method('create') + ->with($this->shipmentMock, $this->requestMock) + ->will($this->returnValue(true)); + $this->shipmentMock->expects($this->once())->method('save')->will($this->throwException(new \Exception())); + $logerMock->expects($this->once())->method('logException'); + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Framework\Logger') + ->will($this->returnValue($logerMock)); + $this->responseMock->expects($this->once())->method('representJson'); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (fail generate label) + */ + public function testExecuteLabelGenerateFail() + { + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->labelGenerator->expects($this->once()) + ->method('create') + ->with($this->shipmentMock, $this->requestMock) + ->will($this->throwException(new \Magento\Framework\Model\Exception())); + $this->responseMock->expects($this->once())->method('representJson'); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/EmailTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/EmailTest.php new file mode 100644 index 0000000000000000000000000000000000000000..066b7d7012089059d876d2cf940338a16be339ae --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/EmailTest.php @@ -0,0 +1,266 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper; +use Magento\Framework\App\Action\Context; + +/** + * Class EmailTest + * + * @package Magento\Shipping\Controller\Adminhtml\Order\Shipment + */ +class EmailTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var Email + */ + protected $shipmentEmail; + + /** + * @var Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $context; + + /** + * @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $request; + + /** + * @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $response; + + /** + * @var \Magento\Framework\Message\Manager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManager; + + /** + * @var \Magento\Framework\ObjectManager\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManager; + + /** + * @var \Magento\Backend\Model\Session|\PHPUnit_Framework_MockObject_MockObject + */ + protected $session; + + /** + * @var \Magento\Framework\App\ActionFlag|\PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlag; + + /** + * @var \Magento\Backend\Helper\Data|\PHPUnit_Framework_MockObject_MockObject + */ + protected $helper; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoader; + + public function setUp() + { + $objectManagerHelper = new ObjectManagerHelper($this); + $this->shipmentLoader = $this->getMock( + 'Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader', + ['setOrderId', 'setShipmentId', 'setShipment', 'setTracking', 'load'], + [], + '', + false + ); + $this->context = $this->getMock( + 'Magento\Backend\App\Action\Context', + [ + 'getRequest', + 'getResponse', + 'getMessageManager', + 'getRedirect', + 'getObjectManager', + 'getSession', + 'getActionFlag', + 'getHelper' + ], + [], + '', + false + ); + $this->response = $this->getMock( + 'Magento\Framework\App\ResponseInterface', + ['setRedirect', 'sendResponse'], + [], + '', + false + ); + $this->request = $this->getMock( + 'Magento\Framework\App\RequestInterface', + ['isPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam', 'getCookie'], + [], + '', + false + ); + $this->objectManager = $this->getMock( + 'Magento\Framework\ObjectManager\ObjectManager', + ['create'], + [], + '', + false + ); + $this->messageManager = $this->getMock( + 'Magento\Framework\Message\Manager', + ['addSuccess', 'addError'], + [], + '', + false + ); + $this->session = $this->getMock('Magento\Backend\Model\Session', ['setIsUrlNotice'], [], '', false); + $this->actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', ['get'], [], '', false); + $this->helper = $this->getMock('\Magento\Backend\Helper\Data', ['getUrl'], [], '', false); + $this->context->expects($this->once()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManager)); + $this->context->expects($this->once()) + ->method('getRequest') + ->will($this->returnValue($this->request)); + $this->context->expects($this->once()) + ->method('getResponse') + ->will($this->returnValue($this->response)); + $this->context->expects($this->once()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManager)); + $this->context->expects($this->once()) + ->method('getSession') + ->will($this->returnValue($this->session)); + $this->context->expects($this->once()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlag)); + $this->context->expects($this->once()) + ->method('getHelper') + ->will($this->returnValue($this->helper)); + $this->shipmentEmail = $objectManagerHelper->getObject( + 'Magento\Shipping\Controller\Adminhtml\Order\Shipment\Email', + [ + 'context' => $this->context, + 'shipmentLoader' => $this->shipmentLoader, + 'request' => $this->request, + 'response' => $this->response + ] + ); + } + + public function testEmail() + { + $shipmentId = 1000012; + $orderId = 10003; + $tracking = []; + $shipment = ['items' => []]; + $orderShipment = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + ['load', 'save', '__wakeup'], + [], + '', + false + ); + $shipmentNotifierClassName = 'Magento\Shipping\Model\ShipmentNotifier'; + $shipmentNotifier = $this->getMock($shipmentNotifierClassName, ['notify', '__wakeup'], [], '', false); + + $this->request->expects($this->any()) + ->method('getParam') + ->will( + $this->returnValueMap( + [ + ['order_id', null, $orderId], + ['shipment_id', null, $shipmentId], + ['shipment', null, $shipment], + ['tracking', null, $tracking] + ] + ) + ); + $this->shipmentLoader->expects($this->once()) + ->method('setShipmentId') + ->with($shipmentId); + $this->shipmentLoader->expects($this->once()) + ->method('setOrderId') + ->with($orderId); + $this->shipmentLoader->expects($this->once()) + ->method('setShipment') + ->with($shipment); + $this->shipmentLoader->expects($this->once()) + ->method('setTracking') + ->with($tracking); + $this->shipmentLoader->expects($this->once()) + ->method('load') + ->will($this->returnValue($orderShipment)); + $orderShipment->expects($this->once()) + ->method('save') + ->will($this->returnSelf()); + $this->objectManager->expects($this->once()) + ->method('create') + ->with($shipmentNotifierClassName) + ->will($this->returnValue($shipmentNotifier)); + $shipmentNotifier->expects($this->once()) + ->method('notify') + ->with($orderShipment) + ->will($this->returnValue(true)); + $this->messageManager->expects($this->once()) + ->method('addSuccess') + ->with('You sent the shipment.'); + $path = '*/*/view'; + $arguments = ['shipment_id' => $shipmentId]; + $this->prepareRedirect($path, $arguments, 0); + + $this->shipmentEmail->execute(); + $this->assertEquals($this->response, $this->shipmentEmail->getResponse()); + } + + /** + * @param string $path + * @param array $arguments + * @param int $index + */ + protected function prepareRedirect($path, $arguments, $index) + { + $this->actionFlag->expects($this->any()) + ->method('get') + ->with('', 'check_url_settings') + ->will($this->returnValue(true)); + $this->session->expects($this->any()) + ->method('setIsUrlNotice') + ->with(true); + + $url = $path . '/' . (!empty($arguments) ? $arguments['shipment_id'] : ''); + $this->helper->expects($this->at($index)) + ->method('getUrl') + ->with($path, $arguments) + ->will($this->returnValue($url)); + $this->response->expects($this->at($index)) + ->method('setRedirect') + ->with($url); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php new file mode 100644 index 0000000000000000000000000000000000000000..dddb916c7f676b172bae51134b047f93383b1d6b --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php @@ -0,0 +1,175 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +/** + * Class GetShippingItemsGridTest + */ +class GetShippingItemsGridTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoaderMock; + + /** + * @var \Magento\Framework\App\Request\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \Magento\Backend\Model\View|\PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\Shipment\GetShippingItemsGrid + */ + protected $controller; + + protected function setUp() + { + $this->requestMock = $this->getMock( + 'Magento\Framework\App\Request\Http', + ['getParam'], + [], + '', + false + ); + $this->shipmentLoaderMock = $this->getMock( + 'Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader', + ['setOrderId', 'setShipmentId', 'setShipment', 'setTracking', 'load'], + [], + '', + false + ); + $this->viewMock = $this->getMock( + 'Magento\Backend\Model\View', + ['getLayout', 'renderLayout'], + [], + '', + false + ); + $this->responseMock = $this->getMock( + 'Magento\Framework\App\Response\Http', + ['setBody'], + [], + '', + false + ); + + $contextMock = $this->getMock( + 'Magento\Backend\App\Action\Context', + ['getRequest', 'getResponse', 'getView'], + [], + '', + false + ); + + $contextMock->expects($this->any())->method('getRequest')->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any())->method('getResponse')->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any())->method('getView')->will($this->returnValue($this->viewMock)); + + $this->controller = new \Magento\Shipping\Controller\Adminhtml\Order\Shipment\GetShippingItemsGrid( + $contextMock, + $this->shipmentLoaderMock + ); + } + + /** + * Run test execute method + */ + public function testExecute() + { + $orderId = 1; + $shipmentId = 1; + $shipment = []; + $tracking = []; + $result = 'result-html'; + + $layoutMock = $this->getMock( + 'Magento\Framework\View\Layout', + ['createBlock'], + [], + '', + false + ); + $gridMock = $this->getMock( + 'Magento\Shipping\Block\Adminhtml\Order\Packaging\Grid', + ['setIndex', 'toHtml'], + [], + '', + false + ); + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('shipment_id') + ->will($this->returnValue($shipmentId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('shipment') + ->will($this->returnValue($shipment)); + $this->requestMock->expects($this->at(3)) + ->method('getParam') + ->with('tracking') + ->will($this->returnValue($tracking)); + $this->shipmentLoaderMock->expects($this->once())->method('setOrderId')->with($orderId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipmentId')->with($shipmentId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipment')->with($shipment); + $this->shipmentLoaderMock->expects($this->once())->method('setTracking')->with($tracking); + $this->shipmentLoaderMock->expects($this->once())->method('load'); + $layoutMock->expects($this->once()) + ->method('createBlock') + ->with('Magento\Shipping\Block\Adminhtml\Order\Packaging\Grid') + ->will($this->returnValue($gridMock)); + $this->viewMock->expects($this->once()) + ->method('getLayout') + ->will($this->returnValue($layoutMock)); + $this->responseMock->expects($this->once()) + ->method('setBody') + ->with($result) + ->will($this->returnSelf()); + $this->requestMock->expects($this->at(4)) + ->method('getParam') + ->with('index'); + $gridMock->expects($this->once()) + ->method('setIndex') + ->will($this->returnSelf()); + $gridMock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($result)); + + $this->assertNotEmpty('result-html', $this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewActionTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewActionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fc0a9e1e4978f9edc716be99dd52c979937f3303 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewActionTest.php @@ -0,0 +1,293 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +use \Magento\Backend\App\Action; +use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper; + +/** + * Class NewActionTest + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class NewActionTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoader; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\Shipment\NewAction + */ + protected $newAction; + + /** + * @var Action\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $context; + + /** + * @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $request; + + /** + * @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $response; + + /** + * @var \Magento\Framework\Message\Manager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManager; + + /** + * @var \Magento\Framework\ObjectManager\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManager; + + /** + * @var \Magento\Backend\Model\Session|\PHPUnit_Framework_MockObject_MockObject + */ + protected $session; + + /** + * @var \Magento\Framework\App\ActionFlag|\PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlag; + + /** + * @var \Magento\Backend\Helper\Data|\PHPUnit_Framework_MockObject_MockObject + */ + protected $helper; + + /** + * @var \Magento\Framework\App\Action\Title|\PHPUnit_Framework_MockObject_MockObject + */ + protected $title; + + /** + * @var \Magento\Framework\App\ViewInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $view; + + public function setUp() + { + $objectManagerHelper = new ObjectManagerHelper($this); + $this->shipmentLoader = $this->getMockBuilder('Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->labelGenerator = $this->getMockBuilder('Magento\Shipping\Model\Shipping\LabelGenerator') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->shipmentSender = $this->getMockBuilder('Magento\Sales\Model\Order\Email\Sender\ShipmentSender') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->context = $this->getMockBuilder('Magento\Backend\App\Action\Context') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManager = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->context = $this->getMock( + 'Magento\Backend\App\Action\Context', + [ + 'getRequest', 'getResponse', 'getMessageManager', 'getRedirect', 'getObjectManager', + 'getSession', 'getActionFlag', 'getHelper', 'getTitle', 'getView' + ], + [], + '', + false + ); + $this->response = $this->getMock( + 'Magento\Framework\App\ResponseInterface', + ['setRedirect', 'sendResponse'], + [], + '', + false + ); + $this->request = $this->getMock( + 'Magento\Framework\App\RequestInterface', + ['isPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam', 'getCookie'], + [], + '', + false + ); + $this->messageManager = $this->getMock( + 'Magento\Framework\Message\Manager', + ['addSuccess', 'addError'], + [], + '', + false + ); + $this->session = $this->getMock( + 'Magento\Backend\Model\Session', + ['setIsUrlNotice', 'getCommentText'], + [], + '', + false + ); + $this->actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', ['get'], [], '', false); + $this->helper = $this->getMock('Magento\Backend\Helper\Data', ['getUrl'], [], '', false); + $this->title = $this->getMock('Magento\Framework\App\Action\Title', [], [], '', false); + $this->view = $this->getMock('Magento\Framework\App\ViewInterface', [], [], '', false); + $this->context->expects($this->once()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManager)); + $this->context->expects($this->once()) + ->method('getRequest') + ->will($this->returnValue($this->request)); + $this->context->expects($this->once()) + ->method('getResponse') + ->will($this->returnValue($this->response)); + $this->context->expects($this->once()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManager)); + $this->context->expects($this->once()) + ->method('getSession') + ->will($this->returnValue($this->session)); + $this->context->expects($this->once()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlag)); + $this->context->expects($this->once()) + ->method('getHelper') + ->will($this->returnValue($this->helper)); + $this->context->expects($this->once())->method('getTitle')->will($this->returnValue($this->title)); + $this->context->expects($this->once())->method('getView')->will($this->returnValue($this->view)); + $this->newAction = $objectManagerHelper->getObject( + 'Magento\Shipping\Controller\Adminhtml\Order\Shipment\NewAction', + [ + 'context' => $this->context, 'shipmentLoader' => $this->shipmentLoader, 'request' => $this->request, + 'response' => $this->response, 'title' => $this->title, 'view' => $this->view + ] + ); + } + + public function testExecute() + { + $shipmentId = 1000012; + $orderId = 10003; + $tracking = []; + $shipmentData = ['items' => [], 'send_email' => '']; + $shipment = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + ['load', 'save', 'register', 'getOrder', 'getOrderId', '__wakeup'], + [], + '', + false + ); + $this->request->expects($this->any()) + ->method('getParam') + ->will( + $this->returnValueMap( + [ + ['order_id', null, $orderId], + ['shipment_id', null, $shipmentId], + ['shipment', null, $shipmentData], + ['tracking', null, $tracking] + ] + ) + ); + $this->shipmentLoader->expects($this->any()) + ->method('setShipmentId') + ->with($shipmentId); + $this->shipmentLoader->expects($this->any()) + ->method('setOrderId') + ->with($orderId); + $this->shipmentLoader->expects($this->any()) + ->method('setShipment') + ->with($shipmentData); + $this->shipmentLoader->expects($this->any()) + ->method('setTracking') + ->with($tracking); + $this->shipmentLoader->expects($this->once()) + ->method('load') + ->will($this->returnValue($shipment)); + $this->session->expects($this->once()) + ->method('getCommentText') + ->with(true) + ->will($this->returnValue('')); + $this->objectManager->expects($this->atLeastOnce()) + ->method('get') + ->with('Magento\Backend\Model\Session') + ->will($this->returnValue($this->session)); + $this->view->expects($this->once()) + ->method('loadLayout') + ->will($this->returnSelf()); + $this->view->expects($this->once()) + ->method('renderLayout') + ->will($this->returnSelf()); + $layout = $this->getMock('Magento\Framework\View\Layout\Element\Layout', ['getBlock'], [], '', false); + $menuBlock = $this->getMock( + 'Magento\Framework\View\Element\BlockInterface', + ['toHtml', 'setActive', 'getMenuModel'], + [], + '', + false + ); + $menuModel = $this->getMock('Magento\Backend\Model\Menu', ['getParentItems'], [], '', false); + $itemId = 'Magento_Sales::sales_order'; + $parents = [ + new \Magento\Framework\Object(['title' => 'title1']), + new \Magento\Framework\Object(['title' => 'title2']), + new \Magento\Framework\Object(['title' => 'title3']) + ]; + $menuModel->expects($this->once()) + ->method('getParentItems') + ->with($itemId) + ->will($this->returnValue($parents)); + $menuBlock->expects($this->once()) + ->method('setActive') + ->with($itemId); + $menuBlock->expects($this->once()) + ->method('getMenuModel') + ->will($this->returnValue($menuModel)); + $this->view->expects($this->once()) + ->method('getLayout') + ->will($this->returnValue($layout)); + $layout->expects($this->once()) + ->method('getBlock') + ->with('menu') + ->will($this->returnValue($menuBlock)); + + $this->title->expects($this->any()) + ->method('add') + ->will($this->returnValueMap( + ['Shipments', false, $this->title], + [$parents[0]->getData('title'), true, $this->title], + [$parents[1]->getData('title'), true, $this->title], + [$parents[2]->getData('title'), true, $this->title] + )); + + $this->assertNull($this->newAction->execute()); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php new file mode 100644 index 0000000000000000000000000000000000000000..67213b284648347a621bfdacde8177a0bb95e9bc --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php @@ -0,0 +1,386 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +/** + * Class PrintLabelTest + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class PrintLabelTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoaderMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMock; + + /** + * @var \Magento\Framework\App\Response\Http\FileFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $fileFactoryMock; + + /** + * @var \Magento\Shipping\Model\Shipping\LabelGenerator|\PHPUnit_Framework_MockObject_MockObject + */ + protected $labelGenerator; + + /** + * @var \Magento\Framework\App\Request\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \Magento\Framework\Message\Manager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \Magento\Framework\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \Magento\Backend\Model\Session|\PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \Magento\Framework\App\ActionFlag|\PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlag; + + /** + * @var \Magento\Backend\Helper\Data|\PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\Shipment\PrintLabel + */ + protected $controller; + + protected function setUp() + { + $this->shipmentLoaderMock = $this->getMock( + 'Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader', + ['setOrderId', 'setShipmentId', 'setShipment', 'setTracking', 'load'], + [], + '', + false + ); + $this->labelGenerator = $this->getMock( + 'Magento\Shipping\Model\Shipping\LabelGenerator', + ['createPdfPageFromImageString'], + [], + '', + false + ); + $this->fileFactoryMock = $this->getMock( + 'Magento\Framework\App\Response\Http\FileFactory', + ['create'], + [], + '', + false + ); + $this->shipmentMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + ['getIncrementId', 'getShippingLabel', '__wakeup'], + [], + '', + false + ); + $this->messageManagerMock = $this->getMock( + 'Magento\Framework\Message\Manager', + ['addError'], + [], + '', + false + ); + $this->requestMock = $this->getMock('Magento\Framework\App\Request\Http', ['getParam'], [], '', false); + $this->responseMock = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false); + $this->sessionMock = $this->getMock('Magento\Backend\Model\Session', ['setIsUrlNotice'], [], '', false); + $this->actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', ['get'], [], '', false); + $this->objectManagerMock = $this->getMock( + 'Magento\Framework\ObjectManager', + ['create', 'get', 'configure'], + [], + '', + false + ); + $this->helperMock = $this->getMock( + 'Magento\Backend\Helper\Data', + ['getUrl'], + [], + '', + false + ); + $contextMock = $this->getMock( + 'Magento\Backend\App\Action\Context', + [ + 'getRequest', + 'getResponse', + 'getMessageManager', + 'getSession', + 'getActionFlag', + 'getObjectManager', + 'getHelper' + ], + [], + '', + false + ); + + $contextMock->expects($this->any())->method('getRequest')->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any())->method('getResponse')->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any())->method('getSession')->will($this->returnValue($this->sessionMock)); + $contextMock->expects($this->any())->method('getActionFlag')->will($this->returnValue($this->actionFlag)); + $contextMock->expects($this->any())->method('getHelper')->will($this->returnValue($this->helperMock)); + $contextMock->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManagerMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $this->loadShipment(); + + $this->controller = new \Magento\Shipping\Controller\Adminhtml\Order\Shipment\PrintLabel( + $contextMock, + $this->shipmentLoaderMock, + $this->labelGenerator, + $this->fileFactoryMock + ); + } + + /** + * Load shipment object + * + * @return void + */ + protected function loadShipment() + { + $orderId = 1; + $shipmentId = 1; + $shipment = []; + $tracking = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('shipment_id') + ->will($this->returnValue($shipmentId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('shipment') + ->will($this->returnValue($shipment)); + $this->requestMock->expects($this->at(3)) + ->method('getParam') + ->with('tracking') + ->will($this->returnValue($tracking)); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setOrderId') + ->with($orderId); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setShipmentId') + ->with($shipmentId); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setShipment') + ->with($shipment); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setTracking') + ->with($tracking); + } + + /** + * Run file create section + * + * @return string + */ + protected function fileCreate() + { + $resultContent = 'result-pdf-content'; + $incrementId = '1000001'; + + $this->shipmentMock->expects($this->once()) + ->method('getIncrementId') + ->will($this->returnValue($incrementId)); + $this->fileFactoryMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($resultContent)); + + return $resultContent; + } + + /** + * Redirect into response section + * + * @return void + */ + protected function redirectSection() + { + $this->actionFlag->expects($this->once()) + ->method('get') + ->with('', \Magento\Backend\App\AbstractAction::FLAG_IS_URLS_CHECKED) + ->will($this->returnValue(true)); + $this->sessionMock->expects($this->once())->method('setIsUrlNotice')->with(true); + $this->helperMock->expects($this->once())->method('getUrl')->will($this->returnValue('redirect-path')); + $this->responseMock->expects($this->once())->method('setRedirect'); + } + + /** + * Run test execute method + */ + public function testExecute() + { + $labelContent = '%PDF-label-content'; + + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->shipmentMock->expects($this->once()) + ->method('getShippingLabel') + ->will($this->returnValue($labelContent)); + + $this->assertEquals($this->fileCreate(), $this->controller->execute()); + } + + /** + * Run test execute method (create new file for render) + */ + public function testExecuteFromImageString() + { + $labelContent = 'Label-content'; + $pdfPageMock = $this->getMock( + 'Zend_Pdf_Page', + ['render', 'getPageDictionary'], + [], + '', + false + ); + $pageDictionaryMock = $this->getMock( + 'Zend_Pdf_Element_Dictionary', + ['touch', 'getObject'], + [], + '', + false + ); + + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->shipmentMock->expects($this->once()) + ->method('getShippingLabel') + ->will($this->returnValue($labelContent)); + $this->labelGenerator->expects($this->once()) + ->method('createPdfPageFromImageString') + ->with($labelContent) + ->will($this->returnValue($pdfPageMock)); + $pdfPageMock->expects($this->any()) + ->method('getPageDictionary') + ->will($this->returnValue($pageDictionaryMock)); + $pageDictionaryMock->expects($this->any()) + ->method('getObject') + ->will($this->returnSelf()); + + $this->assertEquals($this->fileCreate(), $this->controller->execute()); + } + + /** + * Run test execute method (fail load page from image string) + */ + public function testExecuteImageStringFail() + { + $labelContent = 'Label-content'; + $incrementId = '1000001'; + + $loggerMock = $this->getMock( + 'Magento\Framework\Logger', + ['logException'], + [], + '', + false + ); + + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->shipmentMock->expects($this->once()) + ->method('getShippingLabel') + ->will($this->returnValue($labelContent)); + $this->shipmentMock->expects($this->once()) + ->method('getIncrementId') + ->will($this->returnValue($incrementId)); + $this->labelGenerator->expects($this->once()) + ->method('createPdfPageFromImageString') + ->with($labelContent) + ->will($this->returnValue(false)); + $this->messageManagerMock->expects($this->at(0)) + ->method('addError') + ->with(sprintf('We don\'t recognize or support the file extension in this shipment: %s.', $incrementId)) + ->will($this->throwException(new \Exception())); + $this->messageManagerMock->expects($this->at(1)) + ->method('addError') + ->with('An error occurred while creating shipping label.') + ->will($this->returnSelf()); + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Framework\Logger') + ->will($this->returnValue($loggerMock)); + $loggerMock->expects($this->once()) + ->method('logException'); + $this->requestMock->expects($this->at(4)) + ->method('getParam') + ->with('shipment_id') + ->will($this->returnValue(1)); + $this->redirectSection(); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (fail load shipment model) + */ + public function testExecuteLoadShipmentFail() + { + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->throwException(new \Magento\Framework\Model\Exception())); + $this->messageManagerMock->expects($this->once())->method('addError')->will($this->returnSelf()); + $this->redirectSection(); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php new file mode 100644 index 0000000000000000000000000000000000000000..3424b10accd36714b6a2ade4a075d889b66df8a9 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php @@ -0,0 +1,243 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +/** + * Class PrintPackageTest + */ +class PrintPackageTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoaderMock; + + /** + * @var \Magento\Framework\App\Request\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \Magento\Framework\App\Response\Http\FileFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $fileFactoryMock; + + /** + * @var \Magento\Framework\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \Magento\Backend\Model\Session|\PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \Magento\Framework\App\ActionFlag|\PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlag; + + /** + * @var \Magento\Sales\Model\Order\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMock; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\Shipment\PrintPackage + */ + protected $controller; + + protected function setUp() + { + $orderId = 1; + $shipmentId = 1; + $shipment = []; + $tracking = []; + + $this->shipmentLoaderMock = $this->getMock( + 'Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader', + ['setOrderId', 'setShipmentId', 'setShipment', 'setTracking', 'load'], + [], + '', + false + ); + $this->requestMock = $this->getMock('Magento\Framework\App\Request\Http', ['getParam'], [], '', false); + $this->objectManagerMock = $this->getMock( + 'Magento\Framework\ObjectManager', + ['create', 'get', 'configure'], + [], + '', + false + ); + $this->responseMock = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false); + $this->sessionMock = $this->getMock('Magento\Backend\Model\Session', ['setIsUrlNotice'], [], '', false); + $this->actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', ['get'], [], '', false); + $this->shipmentMock = $this->getMock('Magento\Sales\Model\Order\Shipment', ['__wakeup'], [], '', false); + $this->fileFactoryMock = $this->getMock( + 'Magento\Framework\App\Response\Http\FileFactory', + ['create'], + [], + '', + false + ); + + $contextMock = $this->getMock( + 'Magento\Backend\App\Action\Context', + ['getRequest', 'getObjectManager', 'getResponse', 'getSession', 'getActionFlag'], + [], + '', + false + ); + + $contextMock->expects($this->any())->method('getRequest')->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $contextMock->expects($this->any())->method('getResponse')->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any())->method('getSession')->will($this->returnValue($this->sessionMock)); + $contextMock->expects($this->any())->method('getActionFlag')->will($this->returnValue($this->actionFlag)); + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('shipment_id') + ->will($this->returnValue($shipmentId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('shipment') + ->will($this->returnValue($shipment)); + $this->requestMock->expects($this->at(3)) + ->method('getParam') + ->with('tracking') + ->will($this->returnValue($tracking)); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setOrderId') + ->with($orderId); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setShipmentId') + ->with($shipmentId); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setShipment') + ->with($shipment); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setTracking') + ->with($tracking); + + $this->controller = new \Magento\Shipping\Controller\Adminhtml\Order\Shipment\PrintPackage( + $contextMock, + $this->shipmentLoaderMock, + $this->fileFactoryMock + ); + } + + /** + * Run test execute method + */ + public function testExecute() + { + $date = '9999-99-99_77-77-77'; + $content = 'PDF content'; + + $packagingMock = $this->getMock( + 'Magento\Shipping\Model\Order\Pdf\Packaging', + ['getPdf'], + [], + '', + false + ); + $pdfMock = $this->getMock( + 'Zend_Pdf', + ['render'], + [], + '', + false + ); + $dateTimeMock = $this->getMock( + 'Magento\Framework\Stdlib\DateTime\DateTime', + ['date'], + [], + '', + false + ); + + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Shipping\Model\Order\Pdf\Packaging') + ->will($this->returnValue($packagingMock)); + $packagingMock->expects($this->once()) + ->method('getPdf') + ->with($this->shipmentMock) + ->will($this->returnValue($pdfMock)); + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Framework\Stdlib\DateTime\DateTime') + ->will($this->returnValue($dateTimeMock)); + $dateTimeMock->expects($this->once())->method('date')->with('Y-m-d_H-i-s')->will($this->returnValue($date)); + $pdfMock->expects($this->once())->method('render')->will($this->returnValue($content)); + $this->fileFactoryMock->expects($this->once()) + ->method('create') + ->with( + 'packingslip' . $date . '.pdf', + $content, + \Magento\Framework\App\Filesystem::VAR_DIR, + 'application/pdf' + )->will($this->returnValue('result-pdf-content')); + + $this->assertEquals('result-pdf-content', $this->controller->execute()); + } + + /** + * Run test execute method (fail print) + */ + public function testExecuteFail() + { + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue(false)); + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue(false)); + $this->actionFlag->expects($this->once()) + ->method('get') + ->with('', \Magento\Backend\App\AbstractAction::FLAG_IS_URLS_CHECKED) + ->will($this->returnValue(true)); + $this->sessionMock->expects($this->once()) + ->method('setIsUrlNotice') + ->with(true); + + $this->assertNull($this->controller->execute()); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php new file mode 100644 index 0000000000000000000000000000000000000000..7b922c53174986acd99eab7a97ce74fa8724bb1b --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php @@ -0,0 +1,325 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +/** + * Class RemoveTrackTest + */ +class RemoveTrackTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoaderMock; + + /** + * @var \Magento\Framework\App\Request\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \Magento\Framework\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment\Track|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentTrackMock; + + /** + * @var \Magento\Framework\App\Action\Title|\PHPUnit_Framework_MockObject_MockObject + */ + protected $titleMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMock; + + /** + * @var \Magento\Backend\Model\View|\PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\Shipment\RemoveTrack + */ + protected $controller; + + protected function setUp() + { + $this->requestMock = $this->getMock('Magento\Framework\App\Request\Http', ['getParam'], [], '', false); + $this->objectManagerMock = $this->getMock( + 'Magento\Framework\ObjectManager', + ['create', 'get', 'configure'], + [], + '', + false + ); + $this->shipmentTrackMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment\Track', + ['load', 'getId', 'delete', '__wakeup'], + [], + '', + false + ); + $this->titleMock = $this->getMock( + 'Magento\Framework\App\Action\Title', + ['add'], + [], + '', + false + ); + $this->shipmentMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + ['getIncrementId', '__wakeup'], + [], + '', + false + ); + $this->viewMock = $this->getMock( + 'Magento\Backend\Model\View', + ['loadLayout', 'getLayout'], + [], + '', + false + ); + $this->responseMock = $this->getMock( + 'Magento\Framework\App\Response\Http', + [], + [], + '', + false + ); + $this->shipmentLoaderMock = $this->getMock( + 'Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader', + ['setOrderId', 'setShipmentId', 'setShipment', 'setTracking', 'load'], + [], + '', + false + ); + + $contextMock = $this->getMock( + 'Magento\Backend\App\Action\Context', + ['getRequest', 'getObjectManager', 'getTitle', 'getView', 'getResponse'], + [], + '', + false + ); + + $this->objectManagerMock->expects($this->once()) + ->method('create') + ->with('Magento\Sales\Model\Order\Shipment\Track') + ->will($this->returnValue($this->shipmentTrackMock)); + + $contextMock->expects($this->any())->method('getRequest')->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManagerMock)); + $contextMock->expects($this->any())->method('getTitle')->will($this->returnValue($this->titleMock)); + $contextMock->expects($this->any())->method('getView')->will($this->returnValue($this->viewMock)); + $contextMock->expects($this->any())->method('getResponse')->will($this->returnValue($this->responseMock)); + + $this->controller = new \Magento\Shipping\Controller\Adminhtml\Order\Shipment\RemoveTrack( + $contextMock, + $this->shipmentLoaderMock + ); + } + + /** + * Shipment load sections + * + * @return void + */ + protected function shipmentLoad() + { + $orderId = 1; + $shipmentId = 1; + $trackId = 1; + $shipment = []; + $tracking = []; + + $this->shipmentTrackMock->expects($this->once()) + ->method('load') + ->with($trackId) + ->will($this->returnSelf()); + $this->shipmentTrackMock->expects($this->once()) + ->method('getId') + ->will($this->returnValue($trackId)); + $this->titleMock->expects($this->once()) + ->method('add') + ->with('Shipments') + ->will($this->returnSelf()); + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('track_id') + ->will($this->returnValue($trackId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('shipment_id') + ->will($this->returnValue($shipmentId)); + $this->requestMock->expects($this->at(3)) + ->method('getParam') + ->with('shipment') + ->will($this->returnValue($shipment)); + $this->requestMock->expects($this->at(4)) + ->method('getParam') + ->with('tracking') + ->will($this->returnValue($tracking)); + $this->shipmentLoaderMock->expects($this->once())->method('setOrderId')->with($orderId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipmentId')->with($shipmentId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipment')->with($shipment); + $this->shipmentLoaderMock->expects($this->once())->method('setTracking')->with($tracking); + } + + /** + * Represent json json section + * + * @param array $errors + * @return void + */ + protected function representJson(array $errors) + { + $dataHelper = $this->getMock('Magento\Core\Helper\Data', ['jsonEncode'], [], '', false); + $dataHelper->expects($this->once()) + ->method('jsonEncode') + ->with($errors) + ->will($this->returnValue('{json}')); + $this->objectManagerMock->expects($this->once()) + ->method('get') + ->with('Magento\Core\Helper\Data') + ->will($this->returnValue($dataHelper)); + $this->responseMock->expects($this->once()) + ->method('representJson') + ->with('{json}'); + } + + /** + * Run test execute method + */ + public function testExecute() + { + $response = 'html-data'; + $this->shipmentLoad(); + + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->shipmentTrackMock->expects($this->once()) + ->method('delete') + ->will($this->returnSelf()); + + $layoutMock = $this->getMock('Magento\Framework\View\Layout', ['getBlock'], [], '', false); + $trackingBlockMock = $this->getMock( + 'Magento\Shipping\Block\Adminhtml\Order\Tracking', + ['toHtml'], + [], + '', + false + ); + + $trackingBlockMock->expects($this->once()) + ->method('toHtml') + ->will($this->returnValue($response)); + $layoutMock->expects($this->once()) + ->method('getBlock') + ->with('shipment_tracking') + ->will($this->returnValue($trackingBlockMock)); + $this->viewMock->expects($this->once())->method('loadLayout')->will($this->returnSelf()); + $this->viewMock->expects($this->any())->method('getLayout')->will($this->returnValue($layoutMock)); + $this->responseMock->expects($this->once()) + ->method('setBody') + ->with($response); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (fail track load) + */ + public function testExecuteTrackIdFail() + { + $trackId = null; + $errors = ['error' => true, 'message' => 'Cannot load track with retrieving identifier.']; + + $this->shipmentTrackMock->expects($this->once()) + ->method('load') + ->with($trackId) + ->will($this->returnSelf()); + $this->shipmentTrackMock->expects($this->once()) + ->method('getId') + ->will($this->returnValue($trackId)); + $this->representJson($errors); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (fail load shipment) + */ + public function testExecuteShipmentLoadFail() + { + $errors = [ + 'error' => true, + 'message' => 'Cannot initialize shipment for delete tracking number.' + ]; + $this->shipmentLoad(); + + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue(null)); + $this->representJson($errors); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (delete exception) + */ + public function testExecuteDeleteFail() + { + $errors = ['error' => true, 'message' => 'Cannot delete tracking number.']; + $this->shipmentLoad(); + + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->shipmentTrackMock->expects($this->once()) + ->method('delete') + ->will($this->throwException(new \Exception())); + $this->representJson($errors); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/SaveTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/SaveTest.php new file mode 100644 index 0000000000000000000000000000000000000000..a08033176e074babf1748fde0ca5c2f59b8006b0 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/SaveTest.php @@ -0,0 +1,317 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +use \Magento\Backend\App\Action; +use \Magento\Sales\Model\Order\Email\Sender\ShipmentSender; +use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper; +/** + * Class SaveTest + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class SaveTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoader; + + /** + * @var \Magento\Shipping\Model\Shipping\LabelGenerator|\PHPUnit_Framework_MockObject_MockObject + */ + protected $labelGenerator; + + /** + * @var ShipmentSender|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentSender; + + /** + * @var Action\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $context; + + /** + * @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $request; + + /** + * @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $response; + + /** + * @var \Magento\Framework\Message\Manager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManager; + + /** + * @var \Magento\Framework\ObjectManager\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManager; + + /** + * @var \Magento\Backend\Model\Session|\PHPUnit_Framework_MockObject_MockObject + */ + protected $session; + + /** + * @var \Magento\Framework\App\ActionFlag|\PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlag; + + /** + * @var \Magento\Backend\Helper\Data|\PHPUnit_Framework_MockObject_MockObject + */ + protected $helper; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\Shipment\Save + */ + protected $saveAction; + + public function setUp() + { + $objectManagerHelper = new ObjectManagerHelper($this); + $this->shipmentLoader = $this->getMockBuilder('Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->labelGenerator = $this->getMockBuilder('Magento\Shipping\Model\Shipping\LabelGenerator') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->shipmentSender = $this->getMockBuilder('Magento\Sales\Model\Order\Email\Sender\ShipmentSender') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->objectManager = $this->getMockBuilder('Magento\Framework\ObjectManager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->context = $this->getMock( + 'Magento\Backend\App\Action\Context', + [ + 'getRequest', 'getResponse', 'getMessageManager', 'getRedirect', + 'getObjectManager', 'getSession', 'getActionFlag', 'getHelper' + ], + [], + '', + false + ); + $this->response = $this->getMock( + 'Magento\Framework\App\ResponseInterface', + ['setRedirect', 'sendResponse'], + [], + '', + false + ); + $this->request = $this->getMock( + 'Magento\Framework\App\RequestInterface', + ['isPost', 'getModuleName', 'setModuleName', 'getActionName', 'setActionName', 'getParam', 'getCookie'], + [], + '', + false + ); + $this->objectManager = $this->getMock( + 'Magento\Framework\ObjectManager\ObjectManager', + ['create', 'get'], + [], + '', + false + ); + $this->messageManager = $this->getMock( + 'Magento\Framework\Message\Manager', + ['addSuccess', 'addError'], + [], + '', + false + ); + $this->session = $this->getMock( + 'Magento\Backend\Model\Session', + ['setIsUrlNotice', 'getCommentText'], + [], + '', + false + ); + $this->actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', ['get'], [], '', false); + $this->helper = $this->getMock('\Magento\Backend\Helper\Data', ['getUrl'], [], '', false); + $this->context->expects($this->once()) + ->method('getMessageManager') + ->will($this->returnValue($this->messageManager)); + $this->context->expects($this->once()) + ->method('getRequest') + ->will($this->returnValue($this->request)); + $this->context->expects($this->once()) + ->method('getResponse') + ->will($this->returnValue($this->response)); + $this->context->expects($this->once()) + ->method('getObjectManager') + ->will($this->returnValue($this->objectManager)); + $this->context->expects($this->once()) + ->method('getSession') + ->will($this->returnValue($this->session)); + $this->context->expects($this->once()) + ->method('getActionFlag') + ->will($this->returnValue($this->actionFlag)); + $this->context->expects($this->once()) + ->method('getHelper') + ->will($this->returnValue($this->helper)); + $this->saveAction = $objectManagerHelper->getObject( + 'Magento\Shipping\Controller\Adminhtml\Order\Shipment\Save', + [ + 'labelGenerator' => $this->labelGenerator, 'shipmentSender' => $this->shipmentSender, + 'context' => $this->context, 'shipmentLoader' => $this->shipmentLoader, + 'request' => $this->request, 'response' => $this->response + ] + ); + } + + public function testExecute() + { + $shipmentId = 1000012; + $orderId = 10003; + $tracking = []; + $shipmentData = ['items' => [], 'send_email' => '']; + $shipment = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + ['load', 'save', 'register', 'getOrder', 'getOrderId', '__wakeup'], + [], + '', + false + ); + $order = $this->getMock( + 'Magento\Sales\Model\Order', + ['setCustomerNoteNotify', '__wakeup'], + [], + '', + false + ); + + $this->request->expects($this->any()) + ->method('getParam') + ->will( + $this->returnValueMap( + [ + ['order_id', null, $orderId], + ['shipment_id', null, $shipmentId], + ['shipment', null, $shipmentData], + ['tracking', null, $tracking] + ] + ) + ); + $this->shipmentLoader->expects($this->any()) + ->method('setShipmentId') + ->with($shipmentId); + $this->shipmentLoader->expects($this->any()) + ->method('setOrderId') + ->with($orderId); + $this->shipmentLoader->expects($this->any()) + ->method('setShipment') + ->with($shipmentData); + $this->shipmentLoader->expects($this->any()) + ->method('setTracking') + ->with($tracking); + $this->shipmentLoader->expects($this->once()) + ->method('load') + ->will($this->returnValue($shipment)); + $shipment->expects($this->once()) + ->method('register') + ->will($this->returnSelf()); + $shipment->expects($this->any()) + ->method('getOrder') + ->will($this->returnValue($order)); + $order->expects($this->once()) + ->method('setCustomerNoteNotify') + ->with(false); + $this->labelGenerator->expects($this->any()) + ->method('create') + ->with($shipment, $this->request) + ->will($this->returnValue(true)); + $saveTransaction = $this->getMockBuilder('Magento\Framework\DB\Transaction') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $saveTransaction->expects($this->at(0)) + ->method('addObject') + ->with($shipment) + ->will($this->returnSelf()); + $saveTransaction->expects($this->at(1)) + ->method('addObject') + ->with($order) + ->will($this->returnSelf()); + $saveTransaction->expects($this->at(2)) + ->method('save'); + + $this->session->expects($this->once()) + ->method('getCommentText') + ->with(true); + + $this->objectManager->expects($this->once()) + ->method('create') + ->with('Magento\Framework\DB\Transaction') + ->will($this->returnValue($saveTransaction)); + $this->objectManager->expects($this->once()) + ->method('get') + ->with('Magento\Backend\Model\Session') + ->will($this->returnValue($this->session)); + $path = 'sales/order/view'; + $arguments = ['order_id' => $orderId]; + $shipment->expects($this->once()) + ->method('getOrderId') + ->will($this->returnValue($orderId)); + $this->prepareRedirect($path, $arguments); + + $this->saveAction->execute(); + $this->assertEquals($this->response, $this->saveAction->getResponse()); + } + + /** + * @param string $path + * @param array $arguments + */ + protected function prepareRedirect($path, array $arguments = []) + { + $this->actionFlag->expects($this->any()) + ->method('get') + ->with('', 'check_url_settings') + ->will($this->returnValue(true)); + $this->session->expects($this->any()) + ->method('setIsUrlNotice') + ->with(true); + + $url = $path . '/' . (!empty($arguments) ? $arguments['order_id'] : ''); + $this->helper->expects($this->atLeastOnce()) + ->method('getUrl') + ->with($path, $arguments) + ->will($this->returnValue($url)); + $this->response->expects($this->atLeastOnce()) + ->method('setRedirect') + ->with($url); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/ViewTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/ViewTest.php new file mode 100644 index 0000000000000000000000000000000000000000..3854858a57f3e0e99e5399fa272ee0d8f2d27670 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/Shipment/ViewTest.php @@ -0,0 +1,300 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; + +/** + * Class ViewTest + */ +class ViewTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Framework\App\Request\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentLoaderMock; + + /** + * @var \Magento\Framework\App\Action\Title|\PHPUnit_Framework_MockObject_MockObject + */ + protected $titleMock; + + /** + * @var \Magento\Sales\Model\Order\Shipment|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentMock; + + /** + * @var \Magento\Backend\Model\View|\PHPUnit_Framework_MockObject_MockObject + */ + protected $viewMock; + + /** + * @var \Magento\Shipping\Block\Adminhtml\View|\PHPUnit_Framework_MockObject_MockObject + */ + protected $blockMock; + + /** + * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $responseMock; + + /** + * @var \Magento\Backend\Model\Session|\PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \Magento\Framework\App\ActionFlag|\PHPUnit_Framework_MockObject_MockObject + */ + protected $actionFlag; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\Shipment\View + */ + protected $controller; + + protected function setUp() + { + $this->requestMock = $this->getMock( + 'Magento\Framework\App\Request\Http', + ['getParam'], + [], + '', + false + ); + $this->shipmentLoaderMock = $this->getMock( + 'Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader', + ['setOrderId', 'setShipmentId', 'setShipment', 'setTracking', 'load'], + [], + '', + false + ); + $this->shipmentMock = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + ['getIncrementId', '__wakeup'], + [], + '', + false + ); + $this->titleMock = $this->getMock( + 'Magento\Framework\App\Action\Title', + ['add'], + [], + '', + false + ); + $this->viewMock = $this->getMock( + 'Magento\Backend\Model\View', + ['loadLayout', 'getLayout', 'renderLayout'], + [], + '', + false + ); + $this->responseMock = $this->getMock( + 'Magento\Framework\App\Response\Http', + [], + [], + '', + false + ); + $this->sessionMock = $this->getMock( + 'Magento\Backend\Model\Session', + ['setIsUrlNotice'], + [], + '', + false + ); + $this->actionFlag = $this->getMock( + 'Magento\Framework\App\ActionFlag', + ['get'], + [], + '', + false + ); + $contextMock = $this->getMock( + 'Magento\Backend\App\Action\Context', + ['getRequest', 'getResponse', 'getTitle', 'getView', 'getSession', 'getActionFlag'], + [], + '', + false + ); + + $contextMock->expects($this->any())->method('getRequest')->will($this->returnValue($this->requestMock)); + $contextMock->expects($this->any())->method('getResponse')->will($this->returnValue($this->responseMock)); + $contextMock->expects($this->any())->method('getTitle')->will($this->returnValue($this->titleMock)); + $contextMock->expects($this->any())->method('getView')->will($this->returnValue($this->viewMock)); + $contextMock->expects($this->any())->method('getSession')->will($this->returnValue($this->sessionMock)); + $contextMock->expects($this->any())->method('getActionFlag')->will($this->returnValue($this->actionFlag)); + + $this->controller = new \Magento\Shipping\Controller\Adminhtml\Order\Shipment\View( + $contextMock, + $this->shipmentLoaderMock + ); + } + + /** + * Run test execute method + */ + public function testExecute() + { + $orderId = 1; + $shipmentId = 1; + $shipment = []; + $tracking = []; + $incrementId = '10000001'; + $comeFrom = true; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('shipment_id') + ->will($this->returnValue($shipmentId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('shipment') + ->will($this->returnValue($shipment)); + $this->requestMock->expects($this->at(3)) + ->method('getParam') + ->with('tracking') + ->will($this->returnValue($tracking)); + $this->requestMock->expects($this->at(4)) + ->method('getParam') + ->with('come_from') + ->will($this->returnValue($comeFrom)); + $this->shipmentLoaderMock->expects($this->once())->method('setOrderId')->with($orderId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipmentId')->with($shipmentId); + $this->shipmentLoaderMock->expects($this->once())->method('setShipment')->with($shipment); + $this->shipmentLoaderMock->expects($this->once())->method('setTracking')->with($tracking); + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue($this->shipmentMock)); + $this->shipmentMock->expects($this->once())->method('getIncrementId')->will($this->returnValue($incrementId)); + $this->titleMock->expects($this->at(0))->method('add')->with('Shipments')->will($this->returnSelf()); + $this->titleMock->expects($this->at(1))->method('add')->with('#' . $incrementId)->will($this->returnSelf()); + + $menuBlockMock = $this->getMock( + 'Magento\Backend\Block\Menu', + ['getParentItems', 'getMenuModel'], + [], + '', + false + ); + $menuBlockMock->expects($this->any())->method('getMenuModel')->will($this->returnSelf()); + $menuBlockMock->expects($this->any()) + ->method('getParentItems') + ->with('Magento_Sales::sales_order') + ->will($this->returnValue([])); + $shipmentBlockMock = $this->getMock( + 'Magento\Shipping\Block\Adminhtml\View', + ['updateBackButtonUrl'], + [], + '', + false + ); + $layoutMock = $this->getMock( + 'Magento\Framework\View\Layout', + ['getBlock'], + [], + '', + false + ); + $shipmentBlockMock->expects($this->once()) + ->method('updateBackButtonUrl') + ->with($comeFrom) + ->will($this->returnSelf()); + $layoutMock->expects($this->at(0)) + ->method('getBlock') + ->with('sales_shipment_view') + ->will($this->returnValue($shipmentBlockMock)); + $layoutMock->expects($this->at(1)) + ->method('getBlock') + ->with('menu') + ->will($this->returnValue($menuBlockMock)); + + $this->viewMock->expects($this->once())->method('loadLayout')->will($this->returnSelf()); + $this->viewMock->expects($this->any())->method('getLayout')->will($this->returnValue($layoutMock)); + $this->viewMock->expects($this->once())->method('renderLayout')->will($this->returnSelf()); + + $this->assertNull($this->controller->execute()); + } + + /** + * Run test execute method (no shipment) + */ + public function testExecuteNoShipment() + { + $orderId = 1; + $shipmentId = 1; + $shipment = []; + $tracking = []; + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('order_id') + ->will($this->returnValue($orderId)); + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('shipment_id') + ->will($this->returnValue($shipmentId)); + $this->requestMock->expects($this->at(2)) + ->method('getParam') + ->with('shipment') + ->will($this->returnValue($shipment)); + $this->requestMock->expects($this->at(3)) + ->method('getParam') + ->with('tracking') + ->will($this->returnValue($tracking)); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setOrderId') + ->with($orderId); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setShipmentId') + ->with($shipmentId); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setShipment') + ->with($shipment); + $this->shipmentLoaderMock->expects($this->once()) + ->method('setTracking') + ->with($tracking); + $this->shipmentLoaderMock->expects($this->once()) + ->method('load') + ->will($this->returnValue(false)); + $this->actionFlag->expects($this->once()) + ->method('get') + ->with('', \Magento\Backend\App\AbstractAction::FLAG_IS_URLS_CHECKED) + ->will($this->returnValue(true)); + $this->sessionMock->expects($this->once()) + ->method('setIsUrlNotice') + ->with(true); + + $this->assertNull($this->controller->execute()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoaderTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoaderTest.php new file mode 100644 index 0000000000000000000000000000000000000000..6e4b57e9918052f4b3873255798badb30a103b85 --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoaderTest.php @@ -0,0 +1,211 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Shipping\Controller\Adminhtml\Order; + +use Magento\Backend\App\Action; + +/** + * Class ShipmentLoaderTest + * + * @package Magento\Shipping\Controller\Adminhtml\Order + */ +class ShipmentLoaderTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $registryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentFactoryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $orderFactoryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $orderServiceFactoryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $trackFactoryMock; + + /** + * @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader + */ + protected $loader; + + public function setUp() + { + $this->shipmentFactoryMock = $this->getMockBuilder('Magento\Sales\Model\Order\ShipmentFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->registryMock = $this->getMockBuilder('Magento\Framework\Registry') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->orderFactoryMock = $this->getMockBuilder('Magento\Sales\Model\OrderFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->orderServiceFactoryMock = $this->getMockBuilder('Magento\Sales\Model\Service\OrderFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->trackFactoryMock = $this->getMockBuilder('Magento\Sales\Model\Order\Shipment\TrackFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\Manager') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + + $data = [ + 'order_id' => 100032, + 'shipment_id' => 1000065, + 'shipment' => + ['items' => [1 => 1, 2 => 2]], + 'tracking' => [ + ['number' => 'jds0395'], + ['number' => 'lsk984g'] + ] + ]; + + $this->loader = new \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader( + $this->messageManagerMock, + $this->registryMock, + $this->shipmentFactoryMock, + $this->orderFactoryMock, + $this->orderServiceFactoryMock, + $this->trackFactoryMock, + $data + ); + } + + public function testLoadShipmentId() + { + $shipmentModelMock = $this->getMockBuilder('Magento\Sales\Model\Order\Shipment') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->shipmentFactoryMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($shipmentModelMock)); + $shipmentModelMock->expects($this->once()) + ->method('load') + ->with($this->loader->getShipmentId()) + ->will($this->returnSelf()); + $this->registryMock->expects($this->once()) + ->method('register') + ->with('current_shipment', $shipmentModelMock); + $this->assertEquals($shipmentModelMock, $this->loader->load()); + } + + public function testLoadOrderId() + { + $this->loader->unsetData('shipment_id'); + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->orderFactoryMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($orderMock)); + $orderMock->expects($this->once()) + ->method('load') + ->with($this->loader->getOrderId()) + ->will($this->returnSelf()); + $orderMock->expects($this->once()) + ->method('getId') + ->will($this->returnValue($this->loader->getOrderId())); + $orderMock->expects($this->any()) + ->method('getForcedShipmentWithInvoice') + ->will($this->returnValue(true)); + $orderMock->expects($this->once()) + ->method('canShip') + ->will($this->returnValue(true)); + $orderServiceMock = $this->getMockBuilder('Magento\Sales\Model\Service\Order') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $shipmentModelMock = $this->getMockBuilder('Magento\Sales\Model\Order\Shipment') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->orderServiceFactoryMock->expects($this->once()) + ->method('create') + ->with(['order' => $orderMock]) + ->will($this->returnValue($orderServiceMock)); + $orderServiceMock->expects($this->once()) + ->method('prepareShipment') + ->with($this->loader->getShipment()['items']) + ->will($this->returnValue($shipmentModelMock)); + $trackMock = $this->getMockBuilder('Magento\Sales\Model\Order\Shipment\Track') + ->disableOriginalConstructor() + ->setMethods([]) + ->getMock(); + $this->trackFactoryMock->expects($this->any()) + ->method('create') + ->will($this->returnValue($trackMock)); + $trackMock->expects($this->any()) + ->method('addData') + ->will( + $this->returnValueMap( + [ + [$this->loader->getTracking()[0], $trackMock], + [$this->loader->getTracking()[1], $trackMock] + ] + ) + ); + $shipmentModelMock->expects($this->any()) + ->method('addTrack') + ->with($this->equalTo($trackMock)) + ->will($this->returnSelf()); + $this->registryMock->expects($this->once()) + ->method('register') + ->with('current_shipment', $shipmentModelMock); + + $this->assertEquals($shipmentModelMock, $this->loader->load()); + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Model/ShipmentNotifierTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Model/ShipmentNotifierTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0b7bb87996b7c431a289b31c24f6501d80339d4c --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Model/ShipmentNotifierTest.php @@ -0,0 +1,165 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Shipping\Model; + +use Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory; +use Magento\Framework\Mail\Exception; + +/** + * Class ShipmentNotifierTest + */ +class ShipmentNotifierTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var CollectionFactory |\PHPUnit_Framework_MockObject_MockObject + */ + protected $historyCollectionFactory; + + /** + * @var \Magento\Sales\Model\ShipmentNotifier + */ + protected $notifier; + + /** + * @var \Magento\Sales\Model\Order|\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipment; + + /** + * @var \Magento\Framework\ObjectManager |\PHPUnit_Framework_MockObject_MockObject + */ + protected $loggerMock; + + /** + * @var \Magento\Framework\ObjectManager\ObjectManager |\PHPUnit_Framework_MockObject_MockObject + */ + protected $shipmentSenderMock; + + public function setUp() + { + $this->historyCollectionFactory = $this->getMock( + 'Magento\Sales\Model\Resource\Order\Status\History\CollectionFactory', + ['create'], + [], + '', + false + ); + $this->shipment = $this->getMock( + 'Magento\Sales\Model\Order\Shipment', + ['__wakeUp', 'getEmailSent'], + [], + '', + false + ); + $this->shipmentSenderMock = $this->getMock( + 'Magento\Sales\Model\Order\Email\Sender\ShipmentSender', + ['send'], + [], + '', + false + ); + $this->loggerMock = $this->getMock( + 'Magento\Framework\Logger', + ['logException'], + [], + '', + false + ); + $this->notifier = new ShipmentNotifier( + $this->historyCollectionFactory, + $this->loggerMock, + $this->shipmentSenderMock + ); + } + + /** + * Test case for successful email sending + */ + public function testNotifySuccess() + { + $historyCollection = $this->getMock( + 'Magento\Sales\Model\Resource\Order\Status\History\Collection', + ['getUnnotifiedForInstance', 'save', 'setIsCustomerNotified'], + [], + '', + false + ); + $historyItem = $this->getMock( + 'Magento\Sales\Model\Order\Status\History', + ['setIsCustomerNotified', 'save', '__wakeUp'], + [], + '', + false + ); + $historyItem->expects($this->at(0)) + ->method('setIsCustomerNotified') + ->with(1); + $historyItem->expects($this->at(1)) + ->method('save'); + $historyCollection->expects($this->once()) + ->method('getUnnotifiedForInstance') + ->with($this->shipment) + ->will($this->returnValue($historyItem)); + $this->shipment->expects($this->once()) + ->method('getEmailSent') + ->will($this->returnValue(true)); + $this->historyCollectionFactory->expects($this->once()) + ->method('create') + ->will($this->returnValue($historyCollection)); + + $this->shipmentSenderMock->expects($this->once()) + ->method('send') + ->with($this->equalTo($this->shipment)); + + $this->assertTrue($this->notifier->notify($this->shipment)); + } + + /** + * Test case when email has not been sent + */ + public function testNotifyFail() + { + $this->shipment->expects($this->once()) + ->method('getEmailSent') + ->will($this->returnValue(false)); + $this->assertFalse($this->notifier->notify($this->shipment)); + } + + /** + * Test case when Mail Exception has been thrown + */ + public function testNotifyException() + { + $exception = new Exception('Email has not been sent'); + $this->shipmentSenderMock->expects($this->once()) + ->method('send') + ->with($this->equalTo($this->shipment)) + ->will($this->throwException($exception)); + $this->loggerMock->expects($this->once()) + ->method('logException') + ->with($this->equalTo($exception)); + $this->assertFalse($this->notifier->notify($this->shipment)); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Shipping/Model/ShipmentTest.php b/dev/tests/unit/testsuite/Magento/Shipping/Model/ShipmentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..3b5db9b71551413ceb6d5a2a706d010af2ccd77e --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Shipping/Model/ShipmentTest.php @@ -0,0 +1,130 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Shipping\Model; + +use Magento\Sales\Model\Resource\OrderFactory; +use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper; + +/** + * Class ShipmentTest + */ +class ShipmentTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var OrderFactory |\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderFactory; + + /** + * @var \Magento\Sales\Model\Order\Shipment + */ + protected $shipment; + + public function setUp() + { + $this->orderFactory = $this->getMock( + '\Magento\Sales\Model\OrderFactory', + ['create'], + [], + '', + false + ); + + $objectManagerHelper = new ObjectManagerHelper($this); + $arguments = [ + 'context' => $this->getMock('Magento\Framework\Model\Context', [], [], '', false), + 'registry' => $this->getMock('Magento\Framework\Registry', [], [], '', false), + 'localeDate' => $this->getMock('Magento\Framework\Stdlib\DateTime\TimezoneInterface', [], [], '', false), + 'dateTime' => $this->getMock('Magento\Framework\Stdlib\DateTime', [], [], '', false), + 'orderFactory' => $this->orderFactory, + 'shipmentItemCollectionFactory' => $this->getMock( + 'Magento\Sales\Model\Resource\Order\Shipment\Item\CollectionFactory', + [], + [], + '', + false + ), + 'trackCollectionFactory' => $this->getMock( + 'Magento\Sales\Model\Resource\Order\Shipment\Track\CollectionFactory', + [], + [], + '', + false + ), + 'commentFactory' => $this->getMock( + 'Magento\Sales\Model\Order\Shipment\CommentFactory', + [], + [], + '', + false + ), + 'commentCollectionFactory' => $this->getMock( + 'Magento\Sales\Model\Resource\Order\Shipment\Comment\CollectionFactory', + [], + [], + '', + false + ), + ]; + $this->shipment = $objectManagerHelper->getObject( + 'Magento\Sales\Model\Order\Shipment', + $arguments + ); + } + + public function testGetOrder() + { + $orderId = 100000041; + $this->shipment->setOrderId($orderId); + $entityName = 'shipment'; + $order = $this->getMock( + 'Magento\Sales\Model\Order', + ['load', 'setHistoryEntityName', '__wakeUp'], + [], + '', + false + ); + $this->shipment->setOrderId($orderId); + $order->expects($this->atLeastOnce()) + ->method('setHistoryEntityName') + ->with($entityName) + ->will($this->returnSelf()); + $order->expects($this->atLeastOnce()) + ->method('load') + ->with($orderId) + ->will($this->returnValue($order)); + + $this->orderFactory->expects($this->atLeastOnce()) + ->method('create') + ->will($this->returnValue($order)); + + $this->assertEquals($order, $this->shipment->getOrder()); + } + + public function testGetEntityType() + { + $this->assertEquals('shipment', $this->shipment->getEntityType()); + } +} diff --git a/dev/tests/unit/testsuite/Magento/Store/App/Action/Plugin/ContextTest.php b/dev/tests/unit/testsuite/Magento/Store/App/Action/Plugin/ContextTest.php index 717c727dd40f61843f2ea812ad18d1bc9fa68c17..365e06d976eb34d6eb1121dd041a4fa81decaa8f 100644 --- a/dev/tests/unit/testsuite/Magento/Store/App/Action/Plugin/ContextTest.php +++ b/dev/tests/unit/testsuite/Magento/Store/App/Action/Plugin/ContextTest.php @@ -79,40 +79,48 @@ class ContextTest extends \PHPUnit_Framework_TestCase */ protected $subjectMock; + /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $requestMock; + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $cookieManagerMock; + /** * Set up */ public function setUp() { $this->sessionMock = $this->getMock('Magento\Framework\Session\Generic', - array('getCurrencyCode'), array(), '', false); + ['getCurrencyCode'], [], '', false); $this->httpContextMock = $this->getMock('Magento\Framework\App\Http\Context', - array(), array(), '', false); + [], [], '', false); $this->httpRequestMock = $this->getMock('Magento\Framework\App\Request\Http', - array('getCookie', 'getParam'), array(), '', false); + ['getParam'], [], '', false); $this->storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', - array('getWebsite', '__wakeup'), array(), '', false); + ['getWebsite', '__wakeup'], [], '', false); $this->storeMock = $this->getMock('Magento\Store\Model\Store', - array('__wakeup', 'getDefaultCurrency'), array(), '', false); + ['__wakeup', 'getDefaultCurrency'], [], '', false); $this->currencyMock = $this->getMock('Magento\Directory\Model\Currency', - array('getCode', '__wakeup'), array(), '', false); + ['getCode', '__wakeup'], [], '', false); $this->websiteMock = $this->getMock('Magento\Store\Model\Website', - array('getDefaultStore', '__wakeup'), array(), '', false); + ['getDefaultStore', '__wakeup'], [], '', false); $this->closureMock = function () { return 'ExpectedValue'; }; - $this->subjectMock = $this->getMock('Magento\Framework\App\Action\Action', array(), array(), '', false); + $this->cookieManagerMock = $this->getMock('\Magento\Framework\Stdlib\CookieManager'); + $this->subjectMock = $this->getMock('Magento\Framework\App\Action\Action', [], [], '', false); $this->requestMock = $this->getMock('Magento\Framework\App\RequestInterface'); $this->plugin = new \Magento\Store\App\Action\Plugin\Context( $this->sessionMock, $this->httpContextMock, $this->httpRequestMock, - $this->storeManagerMock + $this->storeManagerMock, + $this->cookieManagerMock ); } @@ -142,17 +150,17 @@ class ContextTest extends \PHPUnit_Framework_TestCase ->with($this->equalTo('___store')) ->will($this->returnValue('default')); - $this->httpRequestMock->expects($this->once()) + $this->cookieManagerMock->expects($this->once()) ->method('getCookie') ->with($this->equalTo(\Magento\Store\Model\Store::COOKIE_NAME)) ->will($this->returnValue(null)); $this->httpContextMock->expects($this->atLeastOnce()) ->method('setValue') - ->will($this->returnValueMap(array( - array(\Magento\Core\Helper\Data::CONTEXT_CURRENCY, 'UAH', 'UAH', $this->httpContextMock), - array(\Magento\Core\Helper\Data::CONTEXT_STORE, 'default', 'default', $this->httpContextMock), - ))); + ->will($this->returnValueMap([ + [\Magento\Core\Helper\Data::CONTEXT_CURRENCY, 'UAH', 'UAH', $this->httpContextMock], + [\Magento\Core\Helper\Data::CONTEXT_STORE, 'default', 'default', $this->httpContextMock], + ])); $this->assertEquals( 'ExpectedValue', $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock) diff --git a/dev/tests/unit/testsuite/Magento/Store/App/Request/PathInfoProcessorTest.php b/dev/tests/unit/testsuite/Magento/Store/App/Request/PathInfoProcessorTest.php index a1319beb297842a5ed0852278d14bce7b22f239d..5866f1a9932498a5b23c3a547803eca77be937c9 100644 --- a/dev/tests/unit/testsuite/Magento/Store/App/Request/PathInfoProcessorTest.php +++ b/dev/tests/unit/testsuite/Magento/Store/App/Request/PathInfoProcessorTest.php @@ -55,7 +55,8 @@ class PathInfoProcessorTest extends \PHPUnit_Framework_TestCase 'setModuleName', 'getActionName', 'setActionName', - 'getParam' + 'getParam', + 'getCookie' ) ); $this->_storeManagerMock = $this->getMock('\Magento\Store\Model\StoreManager', array(), array(), '', false); diff --git a/dev/tests/unit/testsuite/Magento/Store/App/Response/RedirectTest.php b/dev/tests/unit/testsuite/Magento/Store/App/Response/RedirectTest.php index 42d91bb87bbcfc1b7eedf9c1e9ee7696342fc92c..52048dd9f3b5e26b4122e3b8d46094026a06f44b 100644 --- a/dev/tests/unit/testsuite/Magento/Store/App/Response/RedirectTest.php +++ b/dev/tests/unit/testsuite/Magento/Store/App/Response/RedirectTest.php @@ -72,7 +72,8 @@ class RedirectTest extends \PHPUnit_Framework_TestCase 'setModuleName', 'getActionName', 'setActionName', - 'getParam' + 'getParam', + 'getCookie' ) ); $this->_storeManagerMock = $this->getMock('\Magento\Store\Model\StoreManagerInterface'); diff --git a/dev/tests/unit/testsuite/Magento/Store/Helper/CookieTest.php b/dev/tests/unit/testsuite/Magento/Store/Helper/CookieTest.php index cff534f4fe12f8330c805e1d8900715d497b5120..2dd2773a136e5a291eaecc85569ec4af2503a2b9 100644 --- a/dev/tests/unit/testsuite/Magento/Store/Helper/CookieTest.php +++ b/dev/tests/unit/testsuite/Magento/Store/Helper/CookieTest.php @@ -137,9 +137,9 @@ class CookieTest extends \PHPUnit_Framework_TestCase } /** - * Create cookie model stub + * Generate getCookie stub for mock request object + * * @param array $cookieString - * @return \Magento\Framework\Stdlib\Cookie */ protected function _getCookieStub($cookieString = array()) { diff --git a/dev/tests/unit/testsuite/Magento/Store/Model/StorageFactoryTest.php b/dev/tests/unit/testsuite/Magento/Store/Model/StorageFactoryTest.php index d15acc6ee613fb11f11fa38363ba6cfb46e284bc..81400abe380868a3c9c8da93fe4e33149fd45894 100644 --- a/dev/tests/unit/testsuite/Magento/Store/Model/StorageFactoryTest.php +++ b/dev/tests/unit/testsuite/Magento/Store/Model/StorageFactoryTest.php @@ -85,7 +85,7 @@ class StorageFactoryTest extends \PHPUnit_Framework_TestCase /** * @var array */ - protected $_arguments = array(); + protected $_arguments = []; /** * @var \PHPUnit_Framework_MockObject_MockObject @@ -122,77 +122,97 @@ class StorageFactoryTest extends \PHPUnit_Framework_TestCase */ protected $request; + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $cookieManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $cookieMetadataFactoryMock; + + /** + * @var \Magento\TestFramework\Helper\ObjectManager + */ + protected $helper; protected function setUp() { - $this->_arguments = array('test' => 'argument', 'scopeCode' => '', 'scopeType' => ''); + $this->_arguments = ['test' => 'argument', 'scopeCode' => '', 'scopeType' => '']; $this->_objectManagerMock = $this->getMock('Magento\Framework\ObjectManager'); $this->_eventManagerMock = $this->getMock( 'Magento\Framework\Event\ManagerInterface', - array(), - array(), + [], + [], '', false ); - $this->_logMock = $this->getMock('Magento\Framework\Logger', array(), array(), '', false); + $this->_logMock = $this->getMock('Magento\Framework\Logger', [], [], '', false); $this->_sidResolverMock = $this->getMock( '\Magento\Framework\Session\SidResolverInterface', - array(), - array(), + [], + [], '', false ); - $this->_appStateMock = $this->getMock('Magento\Framework\App\State', array(), array(), '', false); + $this->helper = new \Magento\TestFramework\Helper\ObjectManager($this); + + $this->_appStateMock = $this->getMock('Magento\Framework\App\State', [], [], '', false); $this->_storeManager = $this->getMock('Magento\Store\Model\StoreManagerInterface'); - $this->_cookie = $this->getMock('Magento\Framework\Stdlib\Cookie', array(), array(), '', false); - $this->_httpContext = $this->getMock('Magento\Framework\App\Http\Context', array(), array(), '', false); + $this->cookieManagerMock = $this->getMock('Magento\Framework\Stdlib\CookieManager', [], [], '', false); + $this->_httpContext = $this->getMock('Magento\Framework\App\Http\Context', [], [], '', false); $this->_scopeConfig = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface'); - $this->request = $this->getMock('Magento\Framework\App\RequestInterface', array(), array(), '', false); + $this->request = $this->getMock('Magento\Framework\App\RequestInterface', [], [], '', false); + $this->cookieMetadataFactoryMock = $this->getMock('Magento\Framework\Stdlib\Cookie\CookieMetadataFactory', + [], + [], + '', + false + ); - $helper = new \Magento\TestFramework\Helper\ObjectManager($this); - $this->_model = $helper->getObject('\Magento\Store\Model\StorageFactory', array( + $this->_model = $this->helper->getObject('\Magento\Store\Model\StorageFactory', [ 'objectManager' => $this->_objectManagerMock, 'eventManager' => $this->_eventManagerMock, 'logger' => $this->_logMock, 'sidResolver' => $this->_sidResolverMock, 'appState' => $this->_appStateMock, - 'cookie' => $this->_cookie, + 'cookieManager' => $this->cookieManagerMock, 'httpContext' => $this->_httpContext, 'scopeConfig' => $this->_scopeConfig, 'request' => $this->request, - 'defaultStorageClassName' => $this->_defaultStorage, - 'installedStorageClassName' => $this->_dbStorage - )); + 'cookieMetadataFactory' => $this->cookieMetadataFactoryMock + ]); - $this->store = $this->getMock('Magento\Store\Model\Store', array(), array(), '', false); + $this->store = $this->getMock('Magento\Store\Model\Store', [], [], '', false); $this->store->expects($this->any())->method('getCode')->will($this->returnValue('store1')); - $this->website = $this->getMock('Magento\Store\Model\Website', array(), array(), '', false); + $this->website = $this->getMock('Magento\Store\Model\Website', [], [], '', false); $this->website->expects($this->any())->method('getCode')->will($this->returnValue('website1')); $this->group = $this->getMock( 'Magento\Store\Model\Group', - array('getDefaultStoreId', '__sleep', '__wakeup'), - array(), + ['getDefaultStoreId', '__sleep', '__wakeup'], + [], '', false ); - $this->storage = $this->getMock('Magento\Store\Model\Storage\Db', array(), array(), '', false); + $this->storage = $this->getMock('Magento\Store\Model\Storage\Db', [], [], '', false); $this->storage->expects($this->any())->method('getWebsite')->will($this->returnValue($this->website)); $this->storage->expects($this->any())->method('getWebsites')->will($this->returnValue( - array('website1' => $this->website) + ['website1' => $this->website] )); - $this->storage->expects($this->any())->method('getGroups')->will($this->returnValue(array(11 => $this->group))); + $this->storage->expects($this->any())->method('getGroups')->will($this->returnValue([11 => $this->group])); $this->storage->expects($this->any())->method('getStore')->will($this->returnValue($this->store)); $this->storage->expects($this->any()) ->method('getStores') ->will($this->returnCallback(function ($withDefault, $codeKey) { if ($codeKey) { - return array('store1' => $this->store); + return ['store1' => $this->store]; } else { - return array(21 => $this->store); + return [21 => $this->store]; } })); } @@ -226,7 +246,7 @@ class StorageFactoryTest extends \PHPUnit_Framework_TestCase { $this->_appStateMock->expects($this->exactly(2))->method('isInstalled')->will($this->returnValue(true)); - $store = $this->getMock('Magento\Store\Model\Store', array(), array(), '', false); + $store = $this->getMock('Magento\Store\Model\Store', [], [], '', false); $this->_storeManager->expects($this->exactly(3))->method('getStore')->will($this->returnValue($store)); @@ -289,7 +309,7 @@ class StorageFactoryTest extends \PHPUnit_Framework_TestCase { $this->_appStateMock->expects($this->once())->method('isInstalled')->will($this->returnValue(true)); - $invalidObject = $this->getMock('Magento\Store\Model\Store', array(), array(), '', false); + $invalidObject = $this->getMock('Magento\Store\Model\Store', [], [], '', false); $this->_objectManagerMock->expects( $this->once() @@ -351,15 +371,15 @@ class StorageFactoryTest extends \PHPUnit_Framework_TestCase */ public function getWithStoresReinitDataProvider() { - return array( - array('', '', 21, 11, 'store1'), - array('11', \Magento\Store\Model\ScopeInterface::SCOPE_GROUP, 21, null, 'store1'), - array('12', \Magento\Store\Model\ScopeInterface::SCOPE_GROUP, 22, null, null), - array('11', \Magento\Store\Model\ScopeInterface::SCOPE_GROUP, null, null, null), - array('website1', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE, 21, 11, 'store1'), - array('31', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE, 22, null, null), - array('website1', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE, null, 0, null), - ); + return [ + ['', '', 21, 11, 'store1'], + ['11', \Magento\Store\Model\ScopeInterface::SCOPE_GROUP, 21, null, 'store1'], + ['12', \Magento\Store\Model\ScopeInterface::SCOPE_GROUP, 22, null, null], + ['11', \Magento\Store\Model\ScopeInterface::SCOPE_GROUP, null, null, null], + ['website1', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE, 21, 11, 'store1'], + ['31', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE, 22, null, null], + ['website1', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE, null, 0, null], + ]; } /** @@ -401,7 +421,10 @@ class StorageFactoryTest extends \PHPUnit_Framework_TestCase $this->_objectManagerMock->expects($this->once())->method('create')->will($this->returnValue($this->storage)); - $this->_cookie->expects($this->atLeastOnce())->method('get')->will($this->returnValue('store1')); + $this->cookieManagerMock->expects($this->atLeastOnce()) + ->method('getCookie') + ->with(Store::COOKIE_NAME) + ->will($this->returnValue('store1')); $this->assertEquals($this->storage, $this->_model->get($this->_arguments)); } @@ -411,11 +434,11 @@ class StorageFactoryTest extends \PHPUnit_Framework_TestCase */ public function getFromCookieDataProvider() { - return array( - array('website1', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE), - array('11', \Magento\Store\Model\ScopeInterface::SCOPE_GROUP), - array('store1', \Magento\Store\Model\ScopeInterface::SCOPE_STORE), - ); + return [ + ['website1', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE], + ['11', \Magento\Store\Model\ScopeInterface::SCOPE_GROUP], + ['store1', \Magento\Store\Model\ScopeInterface::SCOPE_STORE], + ]; } /** @@ -432,7 +455,7 @@ class StorageFactoryTest extends \PHPUnit_Framework_TestCase { $this->_appStateMock->expects($this->once())->method('isInstalled')->will($this->returnValue(true)); - $storeDefault = $this->getMock('Magento\Store\Model\Store', array(), array(), '', false); + $storeDefault = $this->getMock('Magento\Store\Model\Store', [], [], '', false); if (!$isDefault) { $storeDefault->expects($this->atLeastOnce())->method('getId')->will($this->returnValue(22)); $this->_httpContext->expects($this->once())->method('setValue')->with( @@ -455,7 +478,12 @@ class StorageFactoryTest extends \PHPUnit_Framework_TestCase $this->storage->expects($this->any())->method('setCurrentStore')->with('store1'); + $numCreateCookieCalls = $isDefault ? 0 : 1; $this->_objectManagerMock->expects($this->once())->method('create')->will($this->returnValue($this->storage)); + $cookieMetadata = $this->helper->getObject('Magento\Framework\Stdlib\Cookie\PublicCookieMetadata', []); + $this->cookieMetadataFactoryMock->expects($this->exactly($numCreateCookieCalls)) + ->method('createPublicCookieMetadata') + ->will($this->returnValue($cookieMetadata)); $this->request->expects($this->atLeastOnce()) ->method('getParam') @@ -470,10 +498,10 @@ class StorageFactoryTest extends \PHPUnit_Framework_TestCase */ public function getFromRequestDataProvider() { - return array( - array(false, true), - array(true, true), - array(true, false), - ); + return [ + [false, true], + [true, true], + [true, false], + ]; } } diff --git a/dev/tests/unit/testsuite/Magento/Store/Model/StoreTest.php b/dev/tests/unit/testsuite/Magento/Store/Model/StoreTest.php index 40644391cf99067284a2ae433a098c9e784081e3..61001e986b6a9200ce65538147b657a0d8af6c71 100644 --- a/dev/tests/unit/testsuite/Magento/Store/Model/StoreTest.php +++ b/dev/tests/unit/testsuite/Magento/Store/Model/StoreTest.php @@ -34,9 +34,25 @@ class StoreTest extends \PHPUnit_Framework_TestCase */ protected $objectManagerHelper; + /** + * @var \Magento\TestFramework\Helper\ObjectManager + */ + protected $requestMock; + public function setUp() { $this->objectManagerHelper = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->requestMock = $this->getMock('\Magento\Framework\App\RequestInterface', [ + 'getRequestString', + 'getModuleName', + 'setModuleName', + 'getActionName', + 'setActionName', + 'getParam', + 'getQuery', + 'getCookie', + 'getDistroBaseUrl', + ], [], '', false); } /** @@ -51,7 +67,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase $resource = $this->getMock( '\Magento\Store\Model\Resource\Store', array('load', 'getIdFieldName', '__wakeup'), - array(), + [], '', false ); @@ -74,7 +90,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase public function testSetWebsite() { - $website = $this->getMock('\Magento\Store\Model\Website', array('getId', '__wakeup'), array(), '', false); + $website = $this->getMock('\Magento\Store\Model\Website', array('getId', '__wakeup'), [], '', false); $website->expects($this->atLeastOnce())->method('getId')->will($this->returnValue(2)); /** @var \Magento\Store\Model\Store $model */ $model = $this->objectManagerHelper->getObject('Magento\Store\Model\Store'); @@ -106,7 +122,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase public function getWebsiteDataProvider() { - $website = $this->getMock('\Magento\Store\Model\Website', array('__wakeup'), array(), '', false); + $website = $this->getMock('\Magento\Store\Model\Website', array('__wakeup'), [], '', false); return array( array(null, false), array(2, $website) @@ -116,7 +132,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase public function testGetUrl() { $params = array('_scope_to_url' => true); - $defaultStore = $this->getMock('\Magento\Store\Model\Store', array('getId', '__wakeup'), array(), '', false); + $defaultStore = $this->getMock('\Magento\Store\Model\Store', array('getId', '__wakeup'), [], '', false); $defaultStore->expects($this->atLeastOnce())->method('getId')->will($this->returnValue(5)); @@ -155,16 +171,9 @@ class StoreTest extends \PHPUnit_Framework_TestCase */ public function testGetBaseUrl($type, $secure, $expectedPath, $expectedBaseUrl) { - $request = $this->getMock('\Magento\Framework\App\RequestInterface', array( - 'getRequestString', - 'getModuleName', - 'setModuleName', - 'getActionName', - 'setActionName', - 'getParam', - 'getDistroBaseUrl' - ), array(), '', false); - $request->expects($this->any())->method('getDistroBaseUrl')->will($this->returnValue('http://distro.com/')); + $this->requestMock->expects($this->any()) + ->method('getDistroBaseUrl') + ->will($this->returnValue('http://distro.com/')); /** @var \Magento\Framework\App\Config\ReinitableConfigInterface $configMock */ $configMock = $this->getMockForAbstractClass('\Magento\Framework\App\Config\ReinitableConfigInterface'); @@ -181,7 +190,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase 'Magento\Store\Model\Store', array( 'config' => $configMock, - 'request' => $request, + 'request' => $this->requestMock, 'isCustomEntryPoint' => !$secure, ) ); @@ -299,7 +308,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase 'getId', 'isCurrentlySecure', '__wakeup' - ), array(), '', false); + ), [], '', false); $defaultStore->expects($this->atLeastOnce())->method('getId')->will($this->returnValue(5)); $defaultStore->expects($this->atLeastOnce())->method('isCurrentlySecure')->will($this->returnValue($secure)); @@ -308,17 +317,9 @@ class StoreTest extends \PHPUnit_Framework_TestCase $config = $this->getMockForAbstractClass('\Magento\Framework\App\Config\ReinitableConfigInterface'); - $request = $this->getMock('\Magento\Framework\App\RequestInterface', array( - 'getRequestString', - 'getModuleName', - 'setModuleName', - 'getActionName', - 'setActionName', - 'getParam', - 'getQuery' - ), array(), '', false); - $request->expects($this->atLeastOnce())->method('getRequestString')->will($this->returnValue('')); - $request->expects($this->atLeastOnce())->method('getQuery')->will($this->returnValue(array( + + $this->requestMock->expects($this->atLeastOnce())->method('getRequestString')->will($this->returnValue('')); + $this->requestMock->expects($this->atLeastOnce())->method('getQuery')->will($this->returnValue(array( 'SID' => 'sid' ))); @@ -336,7 +337,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase /** @var \Magento\Store\Model\Store $model */ $model = $this->objectManagerHelper->getObject( 'Magento\Store\Model\Store', - array('storeManager' => $storeManager, 'url' => $urlMock, 'request' => $request, 'config' => $config) + ['storeManager' => $storeManager, 'url' => $urlMock, 'request' => $this->requestMock, 'config' => $config] ); $model->setStoreId(2); $model->setCode('scope_code'); @@ -365,9 +366,9 @@ class StoreTest extends \PHPUnit_Framework_TestCase $model->setData('default_currency', false); $this->assertInstanceOf('\Magento\Framework\Filter\Sprintf', $model->getPriceFilter()); - $filter = $this->getMock('\Magento\Directory\Model\Currency\Filter', array(), array(), '', false); + $filter = $this->getMock('\Magento\Directory\Model\Currency\Filter', [], [], '', false); - $defaultCurrency = $this->getMock('\Magento\Directory\Model\Currency', array(), array(), '', false); + $defaultCurrency = $this->getMock('\Magento\Directory\Model\Currency', [], [], '', false); $defaultCurrency->expects($this->any())->method('getFilter')->will($this->returnValue($filter)); $model = $this->objectManagerHelper->getObject('Magento\Store\Model\Store'); @@ -378,10 +379,10 @@ class StoreTest extends \PHPUnit_Framework_TestCase $filter->expects($this->any())->method('setRate')->with(2.1)->will($this->returnSelf()); - $currentCurrency = $this->getMock('\Magento\Directory\Model\Currency', array(), array(), '', false); + $currentCurrency = $this->getMock('\Magento\Directory\Model\Currency', [], [], '', false); $currentCurrency->expects($this->any())->method('getFilter')->will($this->returnValue($filter)); - $baseCurrency = $this->getMock('\Magento\Directory\Model\Currency', array(), array(), '', false); + $baseCurrency = $this->getMock('\Magento\Directory\Model\Currency', [], [], '', false); $baseCurrency->expects($this->any())->method('getRate')->with($currentCurrency)->will($this->returnValue(2.1)); $model = $this->objectManagerHelper->getObject('Magento\Store\Model\Store'); @@ -408,7 +409,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase array('currency/options/base', \Magento\Store\Model\ScopeInterface::SCOPE_STORE, 'scope_code', 'UAH'), ))); - $currency = $this->getMock('\Magento\Directory\Model\Currency', array(), array(), '', false); + $currency = $this->getMock('\Magento\Directory\Model\Currency', [], [], '', false); $currency->expects($this->any())->method('load')->with($currencyCode)->will($this->returnSelf()); $currencyFactory = $this->getMock( @@ -417,7 +418,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase ); $currencyFactory->expects($this->any())->method('create')->will($this->returnValue($currency)); - $appState = $this->getMock('\Magento\Framework\App\State', array(), array(), '', false); + $appState = $this->getMock('\Magento\Framework\App\State', [], [], '', false); $appState->expects($this->any())->method('isInstalled')->will($this->returnValue(true)); /** @var \Magento\Store\Model\Store $model */ $model = $this->objectManagerHelper->getObject('Magento\Store\Model\Store', @@ -445,7 +446,7 @@ class StoreTest extends \PHPUnit_Framework_TestCase $configMock = $this->getMockForAbstractClass( 'Magento\Framework\App\Config\ReinitableConfigInterface', - array(), + [], '', false ); diff --git a/dev/tests/unit/testsuite/Magento/Tax/Block/Adminhtml/Items/Price/RendererTest.php b/dev/tests/unit/testsuite/Magento/Tax/Block/Adminhtml/Items/Price/RendererTest.php new file mode 100644 index 0000000000000000000000000000000000000000..952d40f3b1a55d5061bb1e75fe2ba7af0625735d --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Tax/Block/Adminhtml/Items/Price/RendererTest.php @@ -0,0 +1,149 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Tax\Block\Adminhtml\Items\Price; + +use Magento\Framework\Object; + +class RendererTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Tax\Block\Adminhtml\Items\Price\Renderer + */ + protected $renderer; + + /** + * @var \Magento\Tax\Block\Item\Price\Renderer|\PHPUnit_Framework_MockObject_MockObject + */ + protected $itemPriceRenderer; + + /** + * @var \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn|\PHPUnit_Framework_MockObject_MockObject + */ + protected $defaultColumnRenderer; + + protected function setUp() + { + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + + $this->itemPriceRenderer = $this->getMockBuilder('\Magento\Tax\Block\Item\Price\Renderer') + ->disableOriginalConstructor() + ->setMethods( + [ + 'displayPriceInclTax', + 'displayPriceExclTax', + 'displayBothPrices', + 'getTotalAmount', + 'formatPrice', + ] + ) + ->getMock(); + + $this->defaultColumnRenderer = $this->getMockBuilder( + '\Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn' + )->disableOriginalConstructor() + ->setMethods(['displayPrices']) + ->getMock(); + + $this->renderer = $objectManager->getObject( + '\Magento\Tax\Block\Adminhtml\Items\Price\Renderer', + [ + 'itemPriceRenderer' => $this->itemPriceRenderer, + 'defaultColumnRenderer' => $this->defaultColumnRenderer, + ] + ); + } + + public function testDisplayPriceInclTax() + { + $flag = false; + $this->itemPriceRenderer->expects($this->once()) + ->method('displayPriceInclTax') + ->will($this->returnValue($flag)); + + $this->assertEquals($flag, $this->renderer->displayPriceInclTax()); + } + + public function testDisplayPriceExclTax() + { + $flag = true; + $this->itemPriceRenderer->expects($this->once()) + ->method('displayPriceExclTax') + ->will($this->returnValue($flag)); + + $this->assertEquals($flag, $this->renderer->displayPriceExclTax()); + } + + public function testDisplayBothPrices() + { + $flag = true; + $this->itemPriceRenderer->expects($this->once()) + ->method('displayBothPrices') + ->will($this->returnValue($flag)); + + $this->assertEquals($flag, $this->renderer->displayBothPrices()); + } + + public function testDisplayPrices() + { + $basePrice = 3; + $price = 4; + $display = "$3 [L4]"; + + $this->defaultColumnRenderer->expects($this->once()) + ->method('displayPrices') + ->with($basePrice, $price) + ->will($this->returnValue($display)); + + $this->assertEquals($display, $this->renderer->displayPrices($basePrice, $price)); + } + + public function testFormatPrice() + { + $price = 4; + $display = "$3"; + + $this->itemPriceRenderer->expects($this->once()) + ->method('formatPrice') + ->with($price) + ->will($this->returnValue($display)); + + $this->assertEquals($display, $this->renderer->formatPrice($price)); + } + + public function testGetTotalAmount() + { + $totalAmount = 10; + $itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->getMock(); + + $this->itemPriceRenderer->expects($this->once()) + ->method('getTotalAmount') + ->with($itemMock) + ->will($this->returnValue($totalAmount)); + + $this->assertEquals($totalAmount, $this->renderer->getTotalAmount($itemMock)); + } + +} diff --git a/dev/tests/unit/testsuite/Magento/Tax/Block/Item/Price/RendererTest.php b/dev/tests/unit/testsuite/Magento/Tax/Block/Item/Price/RendererTest.php index 3557f30c30df0391d3aea07ce9109a2d7ade4b98..5fdd6366134f56cf05e37c1c8b830faa2a8d80f3 100644 --- a/dev/tests/unit/testsuite/Magento/Tax/Block/Item/Price/RendererTest.php +++ b/dev/tests/unit/testsuite/Magento/Tax/Block/Item/Price/RendererTest.php @@ -24,6 +24,7 @@ namespace Magento\Tax\Block\Item\Price; use Magento\Framework\Object; +use Magento\Framework\Pricing\Render; class RendererTest extends \PHPUnit_Framework_TestCase { @@ -44,7 +45,12 @@ class RendererTest extends \PHPUnit_Framework_TestCase $this->taxHelper = $this->getMockBuilder('\Magento\Tax\Helper\Data') ->disableOriginalConstructor() ->setMethods([ - 'displayCartPriceExclTax', 'displayCartBothPrices', 'displayCartPriceInclTax' + 'displayCartPriceExclTax', + 'displayCartBothPrices', + 'displayCartPriceInclTax', + 'displaySalesPriceExclTax', + 'displaySalesBothPrices', + 'displaySalesPriceInclTax', ]) ->getMock(); @@ -52,31 +58,389 @@ class RendererTest extends \PHPUnit_Framework_TestCase '\Magento\Tax\Block\Item\Price\Renderer', [ 'taxHelper' => $this->taxHelper, + 'data' => [ + 'zone' => Render::ZONE_CART, + ] ] ); } - public function testDisplayPriceInclTax() + /** + * @param $storeId + * @return \PHPUnit_Framework_MockObject_MockObject|\Magento\Sales\Model\Order\Item + */ + protected function getItemMockWithStoreId($storeId) + { + $itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods(['getStoreId', '__wakeup']) + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getStoreId') + ->will($this->returnValue($storeId)); + + return $itemMock; + } + + /** + * Test displayPriceInclTax + * + * @param string $zone + * @param string $methodName + * @dataProvider testDisplayPriceInclTaxDataProvider + */ + public function testDisplayPriceInclTax($zone, $methodName) { + $storeId = 1; + $flag = true; + + $itemMock = $this->getItemMockWithStoreId($storeId); + $this->renderer->setItem($itemMock); + $this->renderer->setZone($zone); $this->taxHelper->expects($this->once()) - ->method('displayCartPriceInclTax'); + ->method($methodName) + ->with($storeId) + ->will($this->returnValue($flag)); + + $this->assertEquals($flag, $this->renderer->displayPriceInclTax()); + } + + public function testDisplayPriceInclTaxDataProvider() + { + $data = [ + 'cart' => [ + 'zone' => Render::ZONE_CART, + 'method_name' => 'displayCartPriceInclTax' + ], + 'anythingelse' => [ + 'zone' => 'anythingelse', + 'method_name' => 'displayCartPriceInclTax' + ], + 'sale' => [ + 'zone' => Render::ZONE_SALES, + 'method_name' => 'displaySalesPriceInclTax' + ], + 'email' => [ + 'zone' => Render::ZONE_EMAIL, + 'method_name' => 'displaySalesPriceInclTax' + ] + ]; - $this->renderer->displayPriceInclTax(); + return $data; } - public function testDisplayPriceExclTax() + /** + * Test displayPriceExclTax + * + * @param string $zone + * @param string $methodName + * @dataProvider testDisplayPriceExclTaxDataProvider + */ + public function testDisplayPriceExclTax($zone, $methodName) { + $storeId = 1; + $flag = true; + + $itemMock = $this->getItemMockWithStoreId($storeId); + $this->renderer->setItem($itemMock); + $this->renderer->setZone($zone); $this->taxHelper->expects($this->once()) - ->method('displayCartPriceExclTax'); + ->method($methodName) + ->with($storeId) + ->will($this->returnValue($flag)); + + $this->assertEquals($flag, $this->renderer->displayPriceExclTax()); + } + + public function testDisplayPriceExclTaxDataProvider() + { + $data = [ + 'cart' => [ + 'zone' => Render::ZONE_CART, + 'method_name' => 'displayCartPriceExclTax' + ], + 'anythingelse' => [ + 'zone' => 'anythingelse', + 'method_name' => 'displayCartPriceExclTax' + ], + 'sale' => [ + 'zone' => Render::ZONE_SALES, + 'method_name' => 'displaySalesPriceExclTax' + ], + 'email' => [ + 'zone' => Render::ZONE_EMAIL, + 'method_name' => 'displaySalesPriceExclTax' + ] + ]; - $this->renderer->displayPriceExclTax(); + return $data; } - public function testDisplayBothPrices() + /** + * Test displayBothPrices + * + * @param string $zone + * @param string $methodName + * @dataProvider testDisplayBothPricesDataProvider + */ + public function testDisplayBothPrices($zone, $methodName) { + $storeId = 1; + $flag = true; + + $itemMock = $this->getItemMockWithStoreId($storeId); + $this->renderer->setItem($itemMock); + $this->renderer->setZone($zone); $this->taxHelper->expects($this->once()) - ->method('displayCartBothPrices'); + ->method($methodName) + ->with($storeId) + ->will($this->returnValue($flag)); + + $this->assertEquals($flag, $this->renderer->displayBothPrices()); + } + + public function testDisplayBothPricesDataProvider() + { + $data = [ + 'cart' => [ + 'zone' => Render::ZONE_CART, + 'method_name' => 'displayCartBothPrices' + ], + 'anythingelse' => [ + 'zone' => 'anythingelse', + 'method_name' => 'displayCartBothPrices' + ], + 'sale' => [ + 'zone' => Render::ZONE_SALES, + 'method_name' => 'displaySalesBothPrices' + ], + 'email' => [ + 'zone' => Render::ZONE_EMAIL, + 'method_name' => 'displaySalesBothPrices' + ] + ]; + + return $data; + } + + public function testFormatPriceQuoteItem() + { + $price = 3.554; + $formattedPrice = "$3.55"; + + $storeMock = $this->getMockBuilder('\Magento\Store\Model\Store') + ->disableOriginalConstructor() + ->setMethods(['formatPrice', '__wakeup']) + ->getMock(); + + $storeMock->expects($this->once()) + ->method('formatPrice') + ->with($price, true) + ->will($this->returnValue($formattedPrice)); + + $itemMock = $this->getMockBuilder('\Magento\Sales\Model\Quote\Item') + ->disableOriginalConstructor() + ->setMethods(['getStore', '__wakeup']) + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getStore') + ->will($this->returnValue($storeMock)); + + $this->renderer->setItem($itemMock); + $this->assertEquals($formattedPrice, $this->renderer->formatPrice($price)); + } + + public function testFormatPriceOrderItem() + { + $price = 3.554; + $formattedPrice = "$3.55"; + + $orderMock = $this->getMockBuilder('\Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods(['formatPrice', '__wakeup']) + ->getMock(); + + $orderMock->expects($this->once()) + ->method('formatPrice') + ->with($price, false) + ->will($this->returnValue($formattedPrice)); + + $itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods(['getOrder', '__wakeup']) + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getOrder') + ->will($this->returnValue($orderMock)); + + $this->renderer->setItem($itemMock); + $this->assertEquals($formattedPrice, $this->renderer->formatPrice($price)); + } + + public function testFormatPriceInvoiceItem() + { + $price = 3.554; + $formattedPrice = "$3.55"; + + $orderMock = $this->getMockBuilder('\Magento\Sales\Model\Order') + ->disableOriginalConstructor() + ->setMethods(['formatPrice', '__wakeup']) + ->getMock(); + + $orderMock->expects($this->once()) + ->method('formatPrice') + ->with($price, false) + ->will($this->returnValue($formattedPrice)); + + + $orderItemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods(['getOrder', '__wakeup']) + ->getMock(); + + $orderItemMock->expects($this->once()) + ->method('getOrder') + ->will($this->returnValue($orderMock)); + + $invoiceItemMock = $this->getMockBuilder('\Magento\Sales\Model\Invoice\Item') + ->disableOriginalConstructor() + ->setMethods(['getOrderItem', '__wakeup', 'getStoreId']) + ->getMock(); + + $invoiceItemMock->expects($this->once()) + ->method('getOrderItem') + ->will($this->returnValue($orderItemMock)); + + $this->renderer->setItem($invoiceItemMock); + $this->assertEquals($formattedPrice, $this->renderer->formatPrice($price)); + } + + public function testGetZone() + { + $this->assertEquals(Render::ZONE_CART, $this->renderer->getZone()); + } + + public function testGetStoreId() + { + $storeId = 'default'; + + $itemMock = $this->getMockBuilder('\Magento\Sales\Model\Quote\Item') + ->disableOriginalConstructor() + ->setMethods(['getStoreId', '__wakeup']) + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getStoreId') + ->will($this->returnValue($storeId)); + + $this->renderer->setItem($itemMock); + $this->assertEquals($storeId, $this->renderer->getStoreId()); + } + + public function testGetItemDisplayPriceExclTaxQuoteItem() + { + $price = 10; + + /** @var \Magento\Sales\Model\Quote\Item|\PHPUnit_Framework_MockObject_MockObject $quoteItemMock */ + $quoteItemMock = $this->getMockBuilder('\Magento\Sales\Model\Quote\Item') + ->disableOriginalConstructor() + ->setMethods(['getCalculationPrice', '__wakeup']) + ->getMock(); + + $quoteItemMock->expects($this->once()) + ->method('getCalculationPrice') + ->will($this->returnValue($price)); + + $this->renderer->setItem($quoteItemMock); + $this->assertEquals($price, $this->renderer->getItemDisplayPriceExclTax()); + } + + public function testGetItemDisplayPriceExclTaxOrderItem() + { + $price = 10; + + /** @var \Magento\Sales\Model\Order\Item|\PHPUnit_Framework_MockObject_MockObject $orderItemMock */ + $orderItemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods(['getPrice', '__wakeup']) + ->getMock(); + + $orderItemMock->expects($this->once()) + ->method('getPrice') + ->will($this->returnValue($price)); + + $this->renderer->setItem($orderItemMock); + $this->assertEquals($price, $this->renderer->getItemDisplayPriceExclTax()); + } + + public function testGetTotalAmount() + { + $rowTotal = 100; + $taxAmount = 10; + $hiddenTaxAmount = 2; + $discountAmount = 20; + + $expectedValue = $rowTotal + $taxAmount + $hiddenTaxAmount - $discountAmount; + + $itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods(['getRowTotal', 'getTaxAmount', 'getHiddenTaxAmount', 'getDiscountAmount', '__wakeup']) + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getRowTotal') + ->will($this->returnValue($rowTotal)); + + $itemMock->expects($this->once()) + ->method('getTaxAmount') + ->will($this->returnValue($taxAmount)); + + $itemMock->expects($this->once()) + ->method('getHiddenTaxAmount') + ->will($this->returnValue($hiddenTaxAmount)); + + $itemMock->expects($this->once()) + ->method('getDiscountAmount') + ->will($this->returnValue($discountAmount)); + + $this->assertEquals($expectedValue, $this->renderer->getTotalAmount($itemMock)); + } + + public function testGetBaseTotalAmount() + { + $baseRowTotal = 100; + $baseTaxAmount = 10; + $baseHiddenTaxAmount = 2; + $baseDiscountAmount = 20; + + $expectedValue = 92; + + $itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods( + ['getBaseRowTotal', 'getBaseTaxAmount', 'getBaseHiddenTaxAmount', 'getBaseDiscountAmount', '__wakeup'] + ) + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getBaseRowTotal') + ->will($this->returnValue($baseRowTotal)); + + $itemMock->expects($this->once()) + ->method('getBaseTaxAmount') + ->will($this->returnValue($baseTaxAmount)); + + $itemMock->expects($this->once()) + ->method('getBaseHiddenTaxAmount') + ->will($this->returnValue($baseHiddenTaxAmount)); + + $itemMock->expects($this->once()) + ->method('getBaseDiscountAmount') + ->will($this->returnValue($baseDiscountAmount)); - $this->renderer->displayBothPrices(); + $this->assertEquals($expectedValue, $this->renderer->getBaseTotalAmount($itemMock)); } } diff --git a/dev/tests/unit/testsuite/Magento/Tax/Model/Resource/CalculationTest.php b/dev/tests/unit/testsuite/Magento/Tax/Model/Resource/CalculationTest.php new file mode 100644 index 0000000000000000000000000000000000000000..a611c653ae365a66e4995e439b2373384f93318a --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Tax/Model/Resource/CalculationTest.php @@ -0,0 +1,111 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Tax\Model\Resource; + +use Magento\TestFramework\Helper\ObjectManager; + +class CalculationTest extends \PHPUnit_Framework_TestCase +{ + /** + * Tests the building of the search templates for the postal code + * + * @param string $postalCode + * @param string|null $exactPostalcode + * @dataProvider dataProviderCreateSearchPostCodeTemplates + */ + public function testCreateSearchPostCodeTemplates($postalCode, $exactPostalcode) + { + // create the mocks + $resource = $this->getMock('Magento\Framework\App\Resource', [], [], '', false); + $storeManager = $this->getMock('Magento\Store\Model\StoreManagerInterface', [], [], '', false); + + $taxData = $this->getMock('Magento\Tax\Helper\Data', ['getPostCodeSubStringLength'], [], '', false); + $taxData + ->expects($this->any()) + ->method('getPostCodeSubStringLength') + ->will($this->returnValue(10)); + + $objectManager = new ObjectManager($this); + $calcMock = $objectManager->getObject( + 'Magento\Tax\Model\Resource\Calculation', + [ + 'resource' => $resource, + 'taxData' => $taxData, + 'storeManager' => $storeManager + ] + ); + + // get access to the method + $method = new \ReflectionMethod('Magento\Tax\Model\Resource\Calculation', '_createSearchPostCodeTemplates'); + $method->setAccessible(true); + + // test & verify + $resultsArr = $method->invokeArgs($calcMock, [$postalCode, $exactPostalcode]); + $this->verifyResults($resultsArr, $postalCode, $exactPostalcode); + } + + /** + * Verify the results array, based on certain properties of the codes + * + * @param array $resultsArr + * @param string $code1 + * @param string|null $code2 + */ + private function verifyResults($resultsArr, $code1, $code2 = null) + { + // determine expected size of the results array + $expectedSize = strlen($code1) + 1; // array will also include the vanilla 'code1' value + if ($code2) { + $expectedSize = strlen($code2) + 2; // array will include both 'code1' and 'code2' + } + $actualSize = count($resultsArr); + $this->assertEquals( + $expectedSize, + $actualSize, + 'Expected size of the result array was ' . $expectedSize . ' but actual was ' . $actualSize + ); + + // verify code(s) are present within the array + $this->assertTrue( in_array($code1, $resultsArr, 'Expected to find code "' . $code1 . '"')); + if ($code2) { + $this->assertTrue( in_array($code2, $resultsArr, 'Expected to find code "' . $code2 . '"')); + } + } + + /** + * @return array + */ + public function dataProviderCreateSearchPostCodeTemplates() + { + return [ + 'USA basic' => + ['78729', null], + 'USA zip+4' => + ['54321', '12345-6789'], + 'Poland' => + ['05-509', null] + ]; + } +} + \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/UrlRewrite/Model/UrlRewriteTest.php b/dev/tests/unit/testsuite/Magento/UrlRewrite/Model/UrlRewriteTest.php new file mode 100644 index 0000000000000000000000000000000000000000..404171484c12be49248b99501e41e5f6c2319a0c --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/UrlRewrite/Model/UrlRewriteTest.php @@ -0,0 +1,103 @@ +<?php +/** + * Test class for /Magento/UrlRewrite/Model/UrlRewrite + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\UrlRewrite\Model; + +use Magento\TestFramework\Helper\ObjectManager as ObjectManager; +use Magento\UrlRewrite\Model\UrlRewrite as UrlRewrite; + +class UrlRewriteTest extends \PHPUnit_Framework_TestCase +{ + + /** + * @var \Magento\UrlRewrite\Model\UrlRewrite + */ + private $model; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + private $resourceMock; + + /** + * @var \Magento\TestFramework\Helper\ObjectManager + */ + private $objectManager; + + public function setUp() + { + + $resourceMethods = ['getIdFieldName', 'loadByRequestPath', 'load',]; + $this->resourceMock = $this->getMockForAbstractClass('\Magento\Framework\Model\Resource\AbstractResource', + [], '', false, true, true, $resourceMethods + + ); + + $this->objectManager= new ObjectManager($this); + + $this->model = $this->objectManager->getObject('\Magento\UrlRewrite\Model\UrlRewrite', + [ + 'resource' => $this->resourceMock, + ] + ); + } + + public function testLoadByRequestPath() + { + $path = 'path'; + + $this->resourceMock->expects($this->once()) + ->method('loadByRequestPath') + ->with($this->model, $path); + + $this->model->loadByRequestPath($path); + + } + + public function testLoadByIdPath() + { + $path = 'path'; + + $this->resourceMock->expects($this->once()) + ->method('load') + ->with($this->model, $path, UrlRewrite::PATH_FIELD); + + $this->model->loadByIdPath($path); + } + + public function testHasOption() + { + $searchOption = 'option2'; + $options='option1,' . $searchOption . ',option3'; + $this->assertTrue($this->model->setOptions($options)->hasOption('option2')); + } + + public function testGetStoreId() + { + $id = 42; + $this->assertEquals($id, $this->model->setStoreId($id)->getStoreId()); + } +} \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Webapi/Controller/RequestTest.php b/dev/tests/unit/testsuite/Magento/Webapi/Controller/RequestTest.php new file mode 100644 index 0000000000000000000000000000000000000000..8969e79cef128da2a06ffaa8b03a054dee211def --- /dev/null +++ b/dev/tests/unit/testsuite/Magento/Webapi/Controller/RequestTest.php @@ -0,0 +1,68 @@ +<?php +/** + * \Magento\Webapi\Controller\Request + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Webapi\Controller; + + +use Magento\TestFramework\Helper\ObjectManager; + +class RequestTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Webapi\Controller\Request + */ + private $request; + + /** + * @var \Magento\Framework\Stdlib\CookieManager + */ + private $cookieManager; + + public function setUp() + { + + $objectManager = new ObjectManager($this); + $this->cookieManager = $this->getMock('\Magento\Framework\Stdlib\CookieManager'); + + $this->request = $objectManager->getObject( + '\Magento\Webapi\Controller\Request', + ['cookieManager' => $this->cookieManager] + ); + } + + public function testGetCookie() + { + $key = "cookieName"; + $default = "defaultValue"; + + $this->cookieManager + ->expects($this->once()) + ->method('getCookie') + ->with($key, $default); + + $this->request->getCookie($key, $default); + } +} \ No newline at end of file diff --git a/dev/tests/unit/testsuite/Magento/Webapi/Controller/Rest/RequestTest.php b/dev/tests/unit/testsuite/Magento/Webapi/Controller/Rest/RequestTest.php index 492e54cb7b134578acf1d2aa18d186955696ef56..8b9edb462b9de22b99634bcd2dcf9ee472aaf51c 100644 --- a/dev/tests/unit/testsuite/Magento/Webapi/Controller/Rest/RequestTest.php +++ b/dev/tests/unit/testsuite/Magento/Webapi/Controller/Rest/RequestTest.php @@ -34,6 +34,11 @@ class RequestTest extends \PHPUnit_Framework_TestCase */ protected $_request; + /** + * @var \Magento\Framework\Stdlib\CookieManager + */ + protected $_cookieManagerMock; + /** @var \Magento\Webapi\Controller\Rest\Request\Deserializer\Factory */ protected $_deserializerFactory; @@ -50,11 +55,13 @@ class RequestTest extends \PHPUnit_Framework_TestCase $areaListMock->expects($this->once())->method('getFrontName')->will($this->returnValue('rest')); /** Instantiate request. */ // TODO: Get rid of SUT mocks. + $this->_cookieManagerMock = $this->getMock('\Magento\Framework\Stdlib\CookieManager'); $this->_request = $this->getMock( 'Magento\Webapi\Controller\Rest\Request', array('getHeader', 'getMethod', 'isGet', 'isPost', 'isPut', 'isDelete', 'getRawBody'), - array($areaListMock, $configScopeMock, $this->_deserializerFactory) + array($areaListMock, $configScopeMock,$this->_cookieManagerMock, $this->_deserializerFactory,) ); + parent::setUp(); } diff --git a/dev/tests/unit/testsuite/Magento/Webapi/Controller/Rest/RouterTest.php b/dev/tests/unit/testsuite/Magento/Webapi/Controller/Rest/RouterTest.php index 38407a76d7803d396ec083289a0aa59ddd9bbac1..1e11dc8130943ae736296db1603251f4a7d9912e 100644 --- a/dev/tests/unit/testsuite/Magento/Webapi/Controller/Rest/RouterTest.php +++ b/dev/tests/unit/testsuite/Magento/Webapi/Controller/Rest/RouterTest.php @@ -43,24 +43,34 @@ class RouterTest extends \PHPUnit_Framework_TestCase $this->_apiConfigMock = $this->getMockBuilder( 'Magento\Webapi\Model\Rest\Config' )->disableOriginalConstructor()->getMock(); - $deserializerFactory = $this->getMockBuilder( - 'Magento\Webapi\Controller\Rest\Request\Deserializer\Factory' - )->disableOriginalConstructor()->getMock(); + $this->_routeMock = $this->getMockBuilder( 'Magento\Webapi\Controller\Rest\Router\Route' )->disableOriginalConstructor()->setMethods( array('match') )->getMock(); - $areaListMock = $this->getMock('Magento\Framework\App\AreaList', array(), array(), '', false); - $configScopeMock = $this->getMock('Magento\Framework\Config\ScopeInterface'); - $areaListMock->expects($this->once())->method('getFrontName')->will($this->returnValue('rest')); - $this->_request = new \Magento\Webapi\Controller\Rest\Request( - $areaListMock, - $configScopeMock, - $deserializerFactory + + $areaListMock = $this->getMock('Magento\Framework\App\AreaList', [], [], '', false); + + $areaListMock->expects($this->once()) + ->method('getFrontName') + ->will($this->returnValue('rest')); + + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->_request = $objectManager->getObject( + 'Magento\Webapi\Controller\Rest\Request', + [ + 'areaList' => $areaListMock, + ] ); + /** Initialize SUT. */ - $this->_router = new \Magento\Webapi\Controller\Rest\Router($this->_apiConfigMock); + $this->_router = $objectManager->getObject( + 'Magento\Webapi\Controller\Rest\Router', + [ + 'apiConfig' => $this->_apiConfigMock + ] + ); } protected function tearDown() diff --git a/dev/tests/unit/testsuite/Magento/Webapi/Controller/Soap/RequestTest.php b/dev/tests/unit/testsuite/Magento/Webapi/Controller/Soap/RequestTest.php index f7949188b1e3430e4351082a8d09590c7bbaba3a..cd35d772953f6546b8d976b9ee0659b2097530c8 100644 --- a/dev/tests/unit/testsuite/Magento/Webapi/Controller/Soap/RequestTest.php +++ b/dev/tests/unit/testsuite/Magento/Webapi/Controller/Soap/RequestTest.php @@ -33,12 +33,18 @@ class RequestTest extends \PHPUnit_Framework_TestCase protected function setUp() { /** Prepare mocks for SUT constructor. */ - $areaListMock = $this->getMock('Magento\Framework\App\AreaList', array(), array(), '', false); - $configScopeMock = $this->getMock('Magento\Framework\Config\ScopeInterface'); + $areaListMock = $this->getMock('Magento\Framework\App\AreaList', [], [], '', false); $areaListMock->expects($this->once())->method('getFrontName')->will($this->returnValue('soap')); /** Initialize SUT. */ - $this->_soapRequest = new \Magento\Webapi\Controller\Soap\Request($areaListMock, $configScopeMock); + $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); + $this->_soapRequest = $objectManager->getObject( + 'Magento\Webapi\Controller\Soap\Request', + [ + 'areaList' => $areaListMock + ] + ); + parent::setUp(); } diff --git a/dev/tests/unit/testsuite/Magento/Webapi/Model/Config/ClassReflector/TypeProcessorTest.php b/dev/tests/unit/testsuite/Magento/Webapi/Model/Config/ClassReflector/TypeProcessorTest.php index 6c69df742d52db256899edc56dbc1e7481065b59..a005e4c949af3c503cdd1b5c985f37e6f8c26ba1 100644 --- a/dev/tests/unit/testsuite/Magento/Webapi/Model/Config/ClassReflector/TypeProcessorTest.php +++ b/dev/tests/unit/testsuite/Magento/Webapi/Model/Config/ClassReflector/TypeProcessorTest.php @@ -82,7 +82,8 @@ class TypeProcessorTest extends \PHPUnit_Framework_TestCase $this->_typeProcessor->setTypeData('typeA', array('dataA1')); $this->_typeProcessor->setTypeData('typeA', array('dataA2')); $this->_typeProcessor->setTypeData('typeA', array('dataA3')); - $this->assertEquals(array('dataA1', 'dataA2', 'dataA3'), $this->_typeProcessor->getTypeData('typeA')); + $this->_typeProcessor->setTypeData('typeA', array(null)); + $this->assertEquals(array('dataA1', 'dataA2', 'dataA3', null), $this->_typeProcessor->getTypeData('typeA')); } public function testNormalizeType() diff --git a/dev/tests/unit/testsuite/Magento/Weee/Block/Item/Price/RendererTest.php b/dev/tests/unit/testsuite/Magento/Weee/Block/Item/Price/RendererTest.php index 2229ad11bcd70c4c0a54d2cbef4c779c8d13d12a..9220b25bd064a2956de51320f9655ce79d92377e 100644 --- a/dev/tests/unit/testsuite/Magento/Weee/Block/Item/Price/RendererTest.php +++ b/dev/tests/unit/testsuite/Magento/Weee/Block/Item/Price/RendererTest.php @@ -48,6 +48,9 @@ class RendererTest extends \PHPUnit_Framework_TestCase */ protected $item; + const STORE_ID = 'store_id'; + const ZONE = 'zone'; + protected function setUp() { $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this); @@ -55,7 +58,12 @@ class RendererTest extends \PHPUnit_Framework_TestCase $this->weeeHelper = $this->getMockBuilder('\Magento\Weee\Helper\Data') ->disableOriginalConstructor() ->setMethods([ - 'isEnabled', 'typeOfDisplay', 'getWeeeTaxInclTax', 'getRowWeeeTaxInclTax' + 'isEnabled', + 'typeOfDisplay', + 'getWeeeTaxInclTax', + 'getRowWeeeTaxInclTax', + 'getBaseRowWeeeTaxInclTax', + 'getBaseWeeeTaxInclTax', ]) ->getMock(); @@ -74,9 +82,21 @@ class RendererTest extends \PHPUnit_Framework_TestCase 'getCalculationPrice', 'getRowTotal', 'getWeeeTaxAppliedRowAmount', + 'getStoreId', + 'getBaseRowTotalInclTax', + 'getBaseRowTotal', + 'getBaseWeeeTaxAppliedRowAmnt', + 'getBasePrice', + 'getBaseWeeeTaxAppliedAmount', + 'getBaseWeeeTaxInclTax', + 'getBasePriceInclTax', ]) ->getMock(); + $this->item->expects($this->any()) + ->method('getStoreId') + ->will($this->returnValue(self::STORE_ID)); + $this->renderer = $objectManager->getObject( '\Magento\Weee\Block\Item\Price\Renderer', [ @@ -85,24 +105,33 @@ class RendererTest extends \PHPUnit_Framework_TestCase ] ); $this->renderer->setItem($this->item); + $this->renderer->setZone(self::ZONE); } /** * @param bool $isWeeeEnabled * @param bool #showWeeeDetails * @param bool $hasWeeeAmount + * @param bool $expectedValue * @dataProvider testDisplayPriceWithWeeeDetailsDataProvider */ - public function testDisplayPriceWithWeeeDetails($isWeeeEnabled, $showWeeeDetails, $hasWeeeAmount, $expectedValue) - { + public function testDisplayPriceWithWeeeDetails( + $isWeeeEnabled, + $showWeeeDetails, + $hasWeeeAmount, + $expectedValue + ) { $this->weeeHelper->expects($this->once()) ->method('isEnabled') ->will($this->returnValue($isWeeeEnabled)); $this->weeeHelper->expects($this->any()) ->method('typeOfDisplay') - ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR], 'sales', null) - ->will($this->returnValue($showWeeeDetails)); + ->with( + [WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_EXCL_DESCR_INCL], + self::ZONE, + self::STORE_ID + )->will($this->returnValue($showWeeeDetails)); $this->item->expects($this->any()) ->method('getWeeeTaxAppliedAmount') @@ -197,13 +226,50 @@ class RendererTest extends \PHPUnit_Framework_TestCase $this->weeeHelper->expects($this->any()) ->method('typeOfDisplay') - ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], 'sales') + ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], self::ZONE) ->will($this->returnValue($includeWeee)); $this->assertEquals($expectedValue, $this->renderer->getUnitDisplayPriceInclTax()); } + /** + * @param $basePriceInclTax + * @param $baseWeeeTaxInclTax + * @param $weeeEnabled + * @param $includeWeee + * @param $expectedValue + * @dataProvider testGetDisplayPriceDataProvider + */ + public function testGetBaseUnitDisplayPriceInclTax( + $basePriceInclTax, + $baseWeeeTaxInclTax, + $weeeEnabled, + $includeWeee, + $expectedValue + ) { + $this->weeeHelper->expects($this->once()) + ->method('isEnabled') + ->will($this->returnValue($weeeEnabled)); + + $this->weeeHelper->expects($this->any()) + ->method('getBaseWeeeTaxInclTax') + ->with($this->item) + ->will($this->returnValue($baseWeeeTaxInclTax)); + + $this->item->expects($this->once()) + ->method('getBasePriceInclTax') + ->will($this->returnValue($basePriceInclTax)); + + $this->weeeHelper->expects($this->any()) + ->method('typeOfDisplay') + ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], self::ZONE) + ->will($this->returnValue($includeWeee)); + + $this->assertEquals($expectedValue, $this->renderer->getBaseUnitDisplayPriceInclTax()); + + } + /** * @param $priceExclTax * @param $weeeTaxExclTax @@ -233,13 +299,49 @@ class RendererTest extends \PHPUnit_Framework_TestCase $this->weeeHelper->expects($this->any()) ->method('typeOfDisplay') - ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], 'sales') + ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], self::ZONE) ->will($this->returnValue($includeWeee)); $this->assertEquals($expectedValue, $this->renderer->getUnitDisplayPriceExclTax()); } + /** + * @param $basePriceExclTax + * @param $baseWeeeTaxExclTax + * @param $weeeEnabled + * @param $includeWeee + * @param $expectedValue + * @dataProvider testGetDisplayPriceDataProvider + */ + public function testGetBaseUnitDisplayPriceExclTax( + $basePriceExclTax, + $baseWeeeTaxExclTax, + $weeeEnabled, + $includeWeee, + $expectedValue + ) { + $this->weeeHelper->expects($this->once()) + ->method('isEnabled') + ->will($this->returnValue($weeeEnabled)); + + $this->item->expects($this->any()) + ->method('getBaseWeeeTaxAppliedAmount') + ->will($this->returnValue($baseWeeeTaxExclTax)); + + $this->item->expects($this->once()) + ->method('getBasePrice') + ->will($this->returnValue($basePriceExclTax)); + + $this->weeeHelper->expects($this->any()) + ->method('typeOfDisplay') + ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], self::ZONE) + ->will($this->returnValue($includeWeee)); + + $this->assertEquals($expectedValue, $this->renderer->getBaseUnitDisplayPriceExclTax()); + + } + /** * @param $rowTotal * @param $rowWeeeTaxExclTax @@ -269,13 +371,49 @@ class RendererTest extends \PHPUnit_Framework_TestCase $this->weeeHelper->expects($this->any()) ->method('typeOfDisplay') - ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], 'sales') + ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], self::ZONE) ->will($this->returnValue($includeWeee)); $this->assertEquals($expectedValue, $this->renderer->getRowDisplayPriceExclTax()); } + /** + * @param $baseRowTotal + * @param $baseRowWeeeTaxExclTax + * @param $weeeEnabled + * @param $includeWeee + * @param $expectedValue + * @dataProvider testGetDisplayPriceDataProvider + */ + public function testGetBaseRowDisplayPriceExclTax( + $baseRowTotal, + $baseRowWeeeTaxExclTax, + $weeeEnabled, + $includeWeee, + $expectedValue + ) { + $this->weeeHelper->expects($this->once()) + ->method('isEnabled') + ->will($this->returnValue($weeeEnabled)); + + $this->item->expects($this->any()) + ->method('getBaseWeeeTaxAppliedRowAmnt') + ->will($this->returnValue($baseRowWeeeTaxExclTax)); + + $this->item->expects($this->once()) + ->method('getBaseRowTotal') + ->will($this->returnValue($baseRowTotal)); + + $this->weeeHelper->expects($this->any()) + ->method('typeOfDisplay') + ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], self::ZONE) + ->will($this->returnValue($includeWeee)); + + $this->assertEquals($expectedValue, $this->renderer->getBaseRowDisplayPriceExclTax()); + + } + /** * @param $rowTotalInclTax * @param $rowWeeeTaxInclTax @@ -306,13 +444,50 @@ class RendererTest extends \PHPUnit_Framework_TestCase $this->weeeHelper->expects($this->any()) ->method('typeOfDisplay') - ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], 'sales') + ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], self::ZONE) ->will($this->returnValue($includeWeee)); $this->assertEquals($expectedValue, $this->renderer->getRowDisplayPriceInclTax()); } + /** + * @param $baseRowTotalInclTax + * @param $baseRowWeeeTaxInclTax + * @param $weeeEnabled + * @param $includeWeee + * @param $expectedValue + * @dataProvider testGetDisplayPriceDataProvider + */ + public function testGetBaseRowDisplayPriceInclTax( + $baseRowTotalInclTax, + $baseRowWeeeTaxInclTax, + $weeeEnabled, + $includeWeee, + $expectedValue + ) { + $this->weeeHelper->expects($this->once()) + ->method('isEnabled') + ->will($this->returnValue($weeeEnabled)); + + $this->weeeHelper->expects($this->any()) + ->method('getBaseRowWeeeTaxInclTax') + ->with($this->item) + ->will($this->returnValue($baseRowWeeeTaxInclTax)); + + $this->item->expects($this->once()) + ->method('getBaseRowTotalInclTax') + ->will($this->returnValue($baseRowTotalInclTax)); + + $this->weeeHelper->expects($this->any()) + ->method('typeOfDisplay') + ->with([WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL], self::ZONE) + ->will($this->returnValue($includeWeee)); + + $this->assertEquals($expectedValue, $this->renderer->getBaseRowDisplayPriceInclTax()); + + } + public function testGetDisplayPriceDataProvider() { $data = [ @@ -378,6 +553,35 @@ class RendererTest extends \PHPUnit_Framework_TestCase } + /** + * @param $basePriceInclTax + * @param $baseWeeeTaxInclTax + * @param $weeeEnabled + * @param $expectedValue + * @dataProvider testGetFinalDisplayPriceDataProvider + */ + public function testGetBaseFinalUnitDisplayPriceInclTax( + $basePriceInclTax, + $baseWeeeTaxInclTax, + $weeeEnabled, + $expectedValue + ) { + $this->weeeHelper->expects($this->once()) + ->method('isEnabled') + ->will($this->returnValue($weeeEnabled)); + + $this->weeeHelper->expects($this->any()) + ->method('getBaseWeeeTaxInclTax') + ->with($this->item) + ->will($this->returnValue($baseWeeeTaxInclTax)); + + $this->item->expects($this->once()) + ->method('getBasePriceInclTax') + ->will($this->returnValue($basePriceInclTax)); + + $this->assertEquals($expectedValue, $this->renderer->getBaseFinalUnitDisplayPriceInclTax()); + } + /** * @param $priceExclTax * @param $weeeTaxExclTax @@ -407,6 +611,35 @@ class RendererTest extends \PHPUnit_Framework_TestCase } + /** + * @param $basePriceExclTax + * @param $baseWeeeTaxExclTax + * @param $weeeEnabled + * @param $expectedValue + * @dataProvider testGetFinalDisplayPriceDataProvider + */ + public function testGetBaseFinalUnitDisplayPriceExclTax( + $basePriceExclTax, + $baseWeeeTaxExclTax, + $weeeEnabled, + $expectedValue + ) { + $this->weeeHelper->expects($this->once()) + ->method('isEnabled') + ->will($this->returnValue($weeeEnabled)); + + $this->item->expects($this->any()) + ->method('getBaseWeeeTaxAppliedAmount') + ->will($this->returnValue($baseWeeeTaxExclTax)); + + $this->item->expects($this->once()) + ->method('getBasePrice') + ->will($this->returnValue($basePriceExclTax)); + + $this->assertEquals($expectedValue, $this->renderer->getBaseFinalUnitDisplayPriceExclTax()); + + } + /** * @param $rowTotal * @param $rowWeeeTaxExclTax @@ -436,6 +669,35 @@ class RendererTest extends \PHPUnit_Framework_TestCase } + /** + * @param $baseRowTotal + * @param $baseRowWeeeTaxExclTax + * @param $weeeEnabled + * @param $expectedValue + * @dataProvider testGetFinalDisplayPriceDataProvider + */ + public function testGetBaseFianlRowDisplayPriceExclTax( + $baseRowTotal, + $baseRowWeeeTaxExclTax, + $weeeEnabled, + $expectedValue + ) { + $this->weeeHelper->expects($this->once()) + ->method('isEnabled') + ->will($this->returnValue($weeeEnabled)); + + $this->item->expects($this->any()) + ->method('getBaseWeeeTaxAppliedRowAmnt') + ->will($this->returnValue($baseRowWeeeTaxExclTax)); + + $this->item->expects($this->once()) + ->method('getBaseRowTotal') + ->will($this->returnValue($baseRowTotal)); + + $this->assertEquals($expectedValue, $this->renderer->getBaseFinalRowDisplayPriceExclTax()); + + } + /** * @param $rowTotalInclTax * @param $rowWeeeTaxInclTax @@ -466,6 +728,36 @@ class RendererTest extends \PHPUnit_Framework_TestCase } + /** + * @param $baseRowTotalInclTax + * @param $baseRowWeeeTaxInclTax + * @param $weeeEnabled + * @param $expectedValue + * @dataProvider testGetFinalDisplayPriceDataProvider + */ + public function testGetBaseFinalRowDisplayPriceInclTax( + $baseRowTotalInclTax, + $baseRowWeeeTaxInclTax, + $weeeEnabled, + $expectedValue + ) { + $this->weeeHelper->expects($this->once()) + ->method('isEnabled') + ->will($this->returnValue($weeeEnabled)); + + $this->weeeHelper->expects($this->any()) + ->method('getBaseRowWeeeTaxInclTax') + ->with($this->item) + ->will($this->returnValue($baseRowWeeeTaxInclTax)); + + $this->item->expects($this->once()) + ->method('getBaseRowTotalInclTax') + ->will($this->returnValue($baseRowTotalInclTax)); + + $this->assertEquals($expectedValue, $this->renderer->getBaseFinalRowDisplayPriceInclTax()); + + } + public function testGetFinalDisplayPriceDataProvider() { $data = [ @@ -485,15 +777,83 @@ class RendererTest extends \PHPUnit_Framework_TestCase return $data; } - public function testFormatPrice() + public function testGetTotalAmount() { - $price = 10; - $formattedPrice ="$10.00"; - $this->priceCurrency->expects($this->once()) - ->method('format') - ->with($price) - ->will($this->returnValue($formattedPrice)); - - $this->assertEquals($formattedPrice, $this->renderer->formatPrice($price)); + $rowTotal = 100; + $taxAmount = 10; + $hiddenTaxAmount = 2; + $discountAmount = 20; + $weeeAmount = 5; + + $expectedValue = 97; + + $itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods(['getRowTotal', 'getTaxAmount', 'getHiddenTaxAmount', 'getDiscountAmount', '__wakeup']) + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getRowTotal') + ->will($this->returnValue($rowTotal)); + + $itemMock->expects($this->once()) + ->method('getTaxAmount') + ->will($this->returnValue($taxAmount)); + + $itemMock->expects($this->once()) + ->method('getHiddenTaxAmount') + ->will($this->returnValue($hiddenTaxAmount)); + + $itemMock->expects($this->once()) + ->method('getDiscountAmount') + ->will($this->returnValue($discountAmount)); + + $this->weeeHelper->expects($this->once()) + ->method('getRowWeeeTaxInclTax') + ->with($itemMock) + ->will($this->returnValue($weeeAmount)); + + $this->assertEquals($expectedValue, $this->renderer->getTotalAmount($itemMock)); + } + + public function testGetBaseTotalAmount() + { + $baseRowTotal = 100; + $baseTaxAmount = 10; + $baseHiddenTaxAmount = 2; + $baseDiscountAmount = 20; + $baseWeeeAmount = 5; + + $expectedValue = $baseRowTotal + $baseTaxAmount + $baseHiddenTaxAmount - $baseDiscountAmount + $baseWeeeAmount; + + $itemMock = $this->getMockBuilder('\Magento\Sales\Model\Order\Item') + ->disableOriginalConstructor() + ->setMethods( + ['getBaseRowTotal', 'getBaseTaxAmount', 'getBaseHiddenTaxAmount', 'getBaseDiscountAmount', '__wakeup'] + ) + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getBaseRowTotal') + ->will($this->returnValue($baseRowTotal)); + + $itemMock->expects($this->once()) + ->method('getBaseTaxAmount') + ->will($this->returnValue($baseTaxAmount)); + + $itemMock->expects($this->once()) + ->method('getBaseHiddenTaxAmount') + ->will($this->returnValue($baseHiddenTaxAmount)); + + $itemMock->expects($this->once()) + ->method('getBaseDiscountAmount') + ->will($this->returnValue($baseDiscountAmount)); + + $this->weeeHelper->expects($this->once()) + ->method('getBaseRowWeeeTaxInclTax') + ->with($itemMock) + ->will($this->returnValue($baseWeeeAmount)); + + $this->assertEquals($expectedValue, $this->renderer->getBaseTotalAmount($itemMock)); } } diff --git a/app/code/Magento/Sales/Service/V1/OrderNotifyUserInterface.php b/dev/tests/unit/testsuite/Magento/_files/session_set_name_mock.php similarity index 79% rename from app/code/Magento/Sales/Service/V1/OrderNotifyUserInterface.php rename to dev/tests/unit/testsuite/Magento/_files/session_set_name_mock.php index 2ed67edf6cc919c7efd35f74e740d486323f320d..29f3c2a4242aad34f300bbfb8e540c5ea8587b97 100644 --- a/app/code/Magento/Sales/Service/V1/OrderNotifyUserInterface.php +++ b/dev/tests/unit/testsuite/Magento/_files/session_set_name_mock.php @@ -21,18 +21,11 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Framework\Session; -/** - * Class OrderNotifyUser - */ -interface OrderNotifyUserInterface +use \Magento\Backend\Model\SessionTest; + +function session_name($name) { - /** - * Invoke notifyUser service - * - * @param int $id - * @return bool - */ - public function invoke($id); + SessionTest::assertEquals($name, 'adminhtml'); } diff --git a/lib/internal/Magento/Framework/App/Console/Request.php b/lib/internal/Magento/Framework/App/Console/Request.php index cfa00214f2e982d085a57c93c94543a612d24b5c..6b30e426886a66e132120636c67e01d8d6982fe2 100644 --- a/lib/internal/Magento/Framework/App/Console/Request.php +++ b/lib/internal/Magento/Framework/App/Console/Request.php @@ -105,4 +105,15 @@ class Request implements \Magento\Framework\App\RequestInterface } return $defaultValue; } + + /** + * Stub to satisfy RequestInterface + * + * @param null|string $name + * @param null|string $default + * @return null|string|void + */ + public function getCookie($name, $default) + { + } } diff --git a/lib/internal/Magento/Framework/App/PageCache/FormKey.php b/lib/internal/Magento/Framework/App/PageCache/FormKey.php index 5ea0c4b5531ab32a370af85931091574c595e6a0..dfbf440fc4cdd50b0df721c2196e24e9cdfdd878 100644 --- a/lib/internal/Magento/Framework/App/PageCache/FormKey.php +++ b/lib/internal/Magento/Framework/App/PageCache/FormKey.php @@ -35,19 +35,19 @@ class FormKey const COOKIE_NAME = 'form_key'; /** - * Cookie + * CookieManager * - * @var \Magento\Framework\Stdlib\Cookie + * @var \Magento\Framework\Stdlib\CookieManager */ - protected $cookie; + protected $cookieManager; /** - * @param \Magento\Framework\Stdlib\Cookie $cookie + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager */ public function __construct( - \Magento\Framework\Stdlib\Cookie $cookie + \Magento\Framework\Stdlib\CookieManager $cookieManager ) { - $this->cookie = $cookie; + $this->cookieManager = $cookieManager; } /** @@ -57,6 +57,6 @@ class FormKey */ public function get() { - return $this->cookie->get(self::COOKIE_NAME); + return $this->cookieManager->getCookie(self::COOKIE_NAME); } } diff --git a/lib/internal/Magento/Framework/App/PageCache/Version.php b/lib/internal/Magento/Framework/App/PageCache/Version.php index 5127f71b84ca0476d3e303f6d96fe33a06d902f1..55705dd2d3c6d8d4b3a6ac8661faf5527ac3f0cb 100644 --- a/lib/internal/Magento/Framework/App/PageCache/Version.php +++ b/lib/internal/Magento/Framework/App/PageCache/Version.php @@ -40,11 +40,11 @@ class Version const COOKIE_PERIOD = 315360000; /** - * Cookie + * Cookie Manager * - * @var \Magento\Framework\Stdlib\Cookie + * @var \Magento\Framework\Stdlib\CookieManager */ - protected $cookie; + protected $cookieManager; /** * Request @@ -54,13 +54,23 @@ class Version protected $request; /** - * @param \Magento\Framework\Stdlib\Cookie $cookie + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory + */ + protected $cookieMetadataFactory; + + /** + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param \Magento\Framework\App\Request\Http $request */ - public function __construct(\Magento\Framework\Stdlib\Cookie $cookie, \Magento\Framework\App\Request\Http $request) - { - $this->cookie = $cookie; + public function __construct( + \Magento\Framework\Stdlib\CookieManager $cookieManager, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, + \Magento\Framework\App\Request\Http $request + ) { + $this->cookieManager = $cookieManager; $this->request = $request; + $this->cookieMetadataFactory = $cookieMetadataFactory; } /** @@ -84,7 +94,10 @@ class Version public function process() { if ($this->request->isPost()) { - $this->cookie->set(self::COOKIE_NAME, $this->generateValue(), self::COOKIE_PERIOD, '/'); + $publicCookieMetadata = $this->cookieMetadataFactory->createPublicCookieMetadata() + ->setDuration(self::COOKIE_PERIOD) + ->setPath('/'); + $this->cookieManager->setPublicCookie(self::COOKIE_NAME, $this->generateValue(), $publicCookieMetadata); } } } diff --git a/lib/internal/Magento/Framework/App/Request/Http.php b/lib/internal/Magento/Framework/App/Request/Http.php index 353e2e8c71c31f4dbf98d88359c6d019db332c82..b3423de5f1a61579707b03decac6f6e18da91129 100644 --- a/lib/internal/Magento/Framework/App/Request/Http.php +++ b/lib/internal/Magento/Framework/App/Request/Http.php @@ -99,15 +99,22 @@ class Http extends \Zend_Controller_Request_Http implements \Magento\Framework\A */ private $_pathInfoProcessor; + /** + * @var \Magento\Framework\Stdlib\CookieManager + */ + protected $_cookieManager; + /** * @param \Magento\Framework\App\Route\ConfigInterface $routeConfig * @param PathInfoProcessorInterface $pathInfoProcessor + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager * @param string $uri * @param array $directFrontNames */ public function __construct( \Magento\Framework\App\Route\ConfigInterface $routeConfig, PathInfoProcessorInterface $pathInfoProcessor, + \Magento\Framework\Stdlib\CookieManager $cookieManager, $uri = null, $directFrontNames = array() ) { @@ -115,6 +122,7 @@ class Http extends \Zend_Controller_Request_Http implements \Magento\Framework\A $this->_directFrontNames = $directFrontNames; parent::__construct($uri); $this->_pathInfoProcessor = $pathInfoProcessor; + $this->_cookieManager = $cookieManager; } /** @@ -599,4 +607,16 @@ class Http extends \Zend_Controller_Request_Http implements \Magento\Framework\A { return array(); } + + /** + * Retrieve a value from a cookie. + * + * @param string|null $name + * @param string|null $default The default value to return if no value could be found for the given $name. + * @return string|null + */ + public function getCookie($name = null, $default = null) + { + return $this->_cookieManager->getCookie($name, $default); + } } diff --git a/lib/internal/Magento/Framework/App/RequestInterface.php b/lib/internal/Magento/Framework/App/RequestInterface.php index b22916ac6b48814c07744f9154cf7bf27fed10f4..35eeb3104d154acd9714c00a5d227a3e80ef91de 100644 --- a/lib/internal/Magento/Framework/App/RequestInterface.php +++ b/lib/internal/Magento/Framework/App/RequestInterface.php @@ -65,4 +65,13 @@ interface RequestInterface * @return mixed */ public function getParam($key, $defaultValue = null); + + /** + * Retrieve cookie value + * + * @param string|null $name + * @param string|null $default + * @return string|null + */ + public function getCookie($name, $default); } diff --git a/lib/internal/Magento/Framework/App/Response/Http.php b/lib/internal/Magento/Framework/App/Response/Http.php index 71c0255665ca36424156fe425fc71fe96b5102ee..76eeceb2411789e5d957eace9c529142d5c6c730 100644 --- a/lib/internal/Magento/Framework/App/Response/Http.php +++ b/lib/internal/Magento/Framework/App/Response/Http.php @@ -25,6 +25,11 @@ */ namespace Magento\Framework\App\Response; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Stdlib\CookieManager; +use Magento\Framework\Stdlib\Cookie\CookieMetadataFactory; +use Magento\Framework\App\Http\Context; + class Http extends \Zend_Controller_Response_Http implements HttpInterface { /** @@ -33,9 +38,14 @@ class Http extends \Zend_Controller_Response_Http implements HttpInterface const COOKIE_VARY_STRING = 'X-Magento-Vary'; /** - * @var \Magento\Framework\Stdlib\Cookie + * @var \Magento\Framework\Stdlib\CookieManager + */ + protected $cookieManager; + + /** + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory */ - protected $cookie; + protected $cookieMetadataFactory; /** * @var \Magento\Framework\App\Http\Context @@ -43,12 +53,17 @@ class Http extends \Zend_Controller_Response_Http implements HttpInterface protected $context; /** - * @param \Magento\Framework\Stdlib\Cookie $cookie + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param \Magento\Framework\App\Http\Context $context */ - public function __construct(\Magento\Framework\Stdlib\Cookie $cookie, \Magento\Framework\App\Http\Context $context) - { - $this->cookie = $cookie; + public function __construct( + CookieManager $cookieManager, + CookieMetadataFactory $cookieMetadataFactory, + Context $context + ) { + $this->cookieManager = $cookieManager; + $this->cookieMetadataFactory = $cookieMetadataFactory; $this->context = $context; } @@ -72,17 +87,23 @@ class Http extends \Zend_Controller_Response_Http implements HttpInterface /** * Send Vary coookie + * * @return void */ public function sendVary() { + $data = $this->context->getData(); if (!empty($data)) { ksort($data); - $vary = sha1(serialize($data)); - $this->cookie->set(self::COOKIE_VARY_STRING, $vary, null, '/'); + $cookieValue = sha1(serialize($data)); + $publicCookMetadata = $this->cookieMetadataFactory->createPublicCookieMetadata() + ->setPath('/'); + $this->cookieManager->setPublicCookie(self::COOKIE_VARY_STRING, $cookieValue, $publicCookMetadata); } else { - $this->cookie->set(self::COOKIE_VARY_STRING, null, -1, '/'); + $cookieMetadata = $this->cookieMetadataFactory->createCookieMetadata() + ->setPath('/'); + $this->cookieManager->deleteCookie(self::COOKIE_VARY_STRING, $cookieMetadata); } } @@ -162,6 +183,18 @@ class Http extends \Zend_Controller_Response_Http implements HttpInterface */ public function __sleep() { - return array('_body', '_exceptions', '_headers', '_headersRaw', '_httpResponseCode', 'context', 'cookie'); + return ['_body', '_exceptions', '_headers', '_headersRaw', '_httpResponseCode', 'context']; + } + + /** + * Need to reconstruct dependencies when being de-serialized. + * + * @return void + */ + public function __wakeup() + { + $objectManager = ObjectManager::getInstance(); + $this->cookieManager = $objectManager->create('Magento\Framework\Stdlib\CookieManager'); + $this->cookieMetadataFactory = $objectManager->get('Magento\Framework\Stdlib\Cookie\CookieMetadataFactory'); } } diff --git a/lib/internal/Magento/Framework/AppInterface.php b/lib/internal/Magento/Framework/AppInterface.php index f8ac21218bbe636822b7ca7ac6553b063e1ac4cd..6d9736238af2fb0f2d25c91046790341a7471186 100644 --- a/lib/internal/Magento/Framework/AppInterface.php +++ b/lib/internal/Magento/Framework/AppInterface.php @@ -35,7 +35,7 @@ interface AppInterface /** * Magento version */ - const VERSION = '0.1.0-alpha92'; + const VERSION = '0.1.0-alpha93'; /** * Launch application diff --git a/lib/internal/Magento/Framework/Data/Form/Element/Editablemultiselect.php b/lib/internal/Magento/Framework/Data/Form/Element/Editablemultiselect.php index b26501324dff031a5495d7e5b98761da311ba3b4..813759118a0eb8acd2c97f577456a9dc25d1757f 100644 --- a/lib/internal/Magento/Framework/Data/Form/Element/Editablemultiselect.php +++ b/lib/internal/Magento/Framework/Data/Form/Element/Editablemultiselect.php @@ -61,12 +61,41 @@ class Editablemultiselect extends \Magento\Framework\Data\Form\Element\Multisele $selectConfigJson = \Zend_Json::encode($selectConfig); $jsObjectName = $this->getJsObjectName(); - $html .= '<script type="text/javascript">' . - 'require(["jquery","jquery/ui"], function($) {'. - 'setTimeout(function () { ' . - "var {$jsObjectName} = new {$elementJsClass}({$selectConfigJson}); " . - "{$jsObjectName}.init(); }); }, 1000);" . - '</script>'; + + // TODO: TaxRateEditableMultiselect should be moved to a static .js module. + $html .= " + <script type='text/javascript'> + require([ + 'jquery', + 'jquery/ui' + ], function( $ ){ + + function isResolved(){ + return typeof window['{$elementJsClass}'] !== 'undefined'; + } + + function init(){ + var {$jsObjectName} = new {$elementJsClass}({$selectConfigJson}); + + {$jsObjectName}.init(); + } + + function check( tries, delay ){ + if( isResolved() ){ + init(); + } + else if( tries-- ){ + setTimeout( check.bind(this, tries, delay), delay); + } + else{ + console.warn( 'Unable to resolve dependency: {$elementJsClass}' ); + } + } + + check(8, 500); + + }); + </script>"; return $html; } diff --git a/lib/internal/Magento/Framework/ObjectManager/Code/Generator/Repository.php b/lib/internal/Magento/Framework/ObjectManager/Code/Generator/Repository.php index de3cd6c97bdde364aaec8d7e54ea951321cece09..bc43a467506945cd0c42346b1f506a2a8055f83b 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Code/Generator/Repository.php +++ b/lib/internal/Magento/Framework/ObjectManager/Code/Generator/Repository.php @@ -37,6 +37,7 @@ class Repository extends \Magento\Framework\Code\Generator\EntityAbstract * No Such Entity Exception */ const NO_SUCH_ENTITY_EXCEPTION = '\\Magento\Framework\Exception\NoSuchEntityException'; + const INPUT_EXCEPTION = '\\Magento\Framework\Exception\InputException'; const SEARCH_CRITERIA = '\\Magento\Framework\Service\V1\Data\SearchCriteria'; /** @@ -181,12 +182,14 @@ class Repository extends \Magento\Framework\Code\Generator\EntityAbstract protected function _getGetMethod() { $body = "if (!\$id) {\n" - . " throw new " . self::NO_SUCH_ENTITY_EXCEPTION . "('Requested product doesn\\'t exist');\n" + . " throw new " . self::INPUT_EXCEPTION . "('ID required');\n" . "}\n" . "if (!isset(\$this->registry[\$id])) {\n" - . " \$this->registry[\$id] = \$this->" - . $this->_getSourceFactoryPropertyName() - . "->create()->load(\$id);\n" + . " \$entity = \$this->" . $this->_getSourceFactoryPropertyName() . "->create()->load(\$id);\n" + . " if (!\$entity->getId()) {\n" + . " throw new " . self::NO_SUCH_ENTITY_EXCEPTION . "('Requested entity doesn\\'t exist');\n" + . " }\n" + . " \$this->registry[\$id] = \$entity;\n" . "}\n" . "return \$this->registry[\$id];"; return [ @@ -209,6 +212,10 @@ class Repository extends \Magento\Framework\Code\Generator\EntityAbstract 'name' => 'return', 'description' => $this->_getFullyQualifiedClassName($this->_getSourceClassName()), ], + [ + 'name' => 'throws', + 'description' => self::INPUT_EXCEPTION, + ], [ 'name' => 'throws', 'description' => self::NO_SUCH_ENTITY_EXCEPTION, @@ -255,7 +262,7 @@ class Repository extends \Magento\Framework\Code\Generator\EntityAbstract } /** - * Returns get() method + * Returns find() method * * @return string */ @@ -268,6 +275,8 @@ class Repository extends \Magento\Framework\Code\Generator\EntityAbstract . " \$collection->addFieldToFilter(\$filter->getField(), [\$condition => \$filter->getValue()]);\n" . " }\n" . "}\n" + . "\$collection->setCurPage(\$criteria->getCurrentPage());\n" + . "\$collection->setPageSize(\$criteria->getPageSize());\n" . "foreach (\$collection as \$object) {\n" . " \$this->register(\$object);\n" . "}\n" diff --git a/lib/internal/Magento/Framework/Pricing/Render.php b/lib/internal/Magento/Framework/Pricing/Render.php index 77d625b37f44950edef4ec0b83cef585b3b96262..4eda7df712dfd0d6ed63bb5217bff913912d481b 100644 --- a/lib/internal/Magento/Framework/Pricing/Render.php +++ b/lib/internal/Magento/Framework/Pricing/Render.php @@ -46,6 +46,7 @@ class Render extends AbstractBlock const ZONE_ITEM_OPTION = 'item_option'; const ZONE_SALES = 'sales'; const ZONE_EMAIL = 'email'; + const ZONE_CART = 'cart'; const ZONE_DEFAULT = null; /**@#-*/ diff --git a/lib/internal/Magento/Framework/Search/Adapter/Mysql/Adapter.php b/lib/internal/Magento/Framework/Search/Adapter/Mysql/Adapter.php new file mode 100644 index 0000000000000000000000000000000000000000..0f39d132f712d330257b8747260412ef670cd85d --- /dev/null +++ b/lib/internal/Magento/Framework/Search/Adapter/Mysql/Adapter.php @@ -0,0 +1,77 @@ +<?php +/** + * MySQL Search Adapter + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search\Adapter\Mysql; + +use Magento\Framework\Search\AdapterInterface; +use Magento\Framework\Search\RequestInterface; + +class Adapter implements AdapterInterface +{ + /** + * Mapper instance + * + * @var Mapper + */ + protected $mapper; + + /** + * Response Factory + * + * @var ResponseFactory + */ + protected $responseFactory; + + /** + * @param Mapper $mapper + * @param ResponseFactory $responseFactory + */ + public function __construct( + Mapper $mapper, + ResponseFactory $responseFactory + ) { + $this->mapper = $mapper; + $this->responseFactory = $responseFactory; + } + + /** + * {@inheritdoc} + */ + public function query(RequestInterface $request) + { + $query = $this->mapper->buildQuery($request); + $response = $this->executeQuery($query); + return $this->responseFactory->create($response); + } + + /** + * Executes query and return raw response + * + * @return mixed + */ + private function executeQuery() + { + } +} diff --git a/lib/internal/Magento/Framework/Search/Adapter/Mysql/AggregationFactory.php b/lib/internal/Magento/Framework/Search/Adapter/Mysql/AggregationFactory.php new file mode 100644 index 0000000000000000000000000000000000000000..855cc50bf852a4247b00d4779158595f84519bd5 --- /dev/null +++ b/lib/internal/Magento/Framework/Search/Adapter/Mysql/AggregationFactory.php @@ -0,0 +1,67 @@ +<?php +/** + * Aggregation Factory + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search\Adapter\Mysql; + +class AggregationFactory +{ + /** + * Object Manager instance + * + * @var \Magento\Framework\ObjectManager + */ + protected $objectManager; + + /** + * @param \Magento\Framework\ObjectManager $objectManager + */ + public function __construct( + \Magento\Framework\ObjectManager $objectManager + ) { + $this->objectManager = $objectManager; + } + + /** + * Create Aggregation instance + * + * @param mixed $rawAggregation + * @return \Magento\Framework\Search\Aggregation + */ + public function create($rawAggregation) + { + $buckets = array(); + foreach ($rawAggregation as $rawBucket) { + /** @var \Magento\Framework\Search\Bucket[] $buckets */ + $buckets[] = $this->objectManager->create( + '\Magento\Framework\Search\Bucket', + [ + $rawBucket['name'], + $rawBucket['value'] + ] + ); + } + return $this->objectManager->create('\Magento\Framework\Search\Aggregation', $buckets); + } +} diff --git a/lib/internal/Magento/Framework/Search/Adapter/Mysql/DocumentFactory.php b/lib/internal/Magento/Framework/Search/Adapter/Mysql/DocumentFactory.php new file mode 100644 index 0000000000000000000000000000000000000000..5d28d0264244cb4e1bd2773a19c5d62dbe2263f8 --- /dev/null +++ b/lib/internal/Magento/Framework/Search/Adapter/Mysql/DocumentFactory.php @@ -0,0 +1,67 @@ +<?php +/** + * Response Factory + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search\Adapter\Mysql; + +class DocumentFactory +{ + /** + * Object Manager instance + * + * @var \Magento\Framework\ObjectManager + */ + protected $objectManager; + + /** + * @param \Magento\Framework\ObjectManager $objectManager + */ + public function __construct( + \Magento\Framework\ObjectManager $objectManager + ) { + $this->objectManager = $objectManager; + } + + /** + * Create Search Document instance + * + * @param mixed $rawDocument + * @return \Magento\Framework\Search\Document + */ + public function create($rawDocument) + { + $fields = array(); + foreach ($rawDocument as $rawField) { + /** @var \Magento\Framework\Search\DocumentField[] $fields */ + $fields[] = $this->objectManager->create( + '\Magento\Framework\Search\DocumentField', + [ + $rawField['name'], + $rawField['values'] + ] + ); + } + return $this->objectManager->create('\Magento\Framework\Search\Document', $fields); + } +} diff --git a/app/code/Magento/Sales/Service/V1/OrderListInterface.php b/lib/internal/Magento/Framework/Search/Adapter/Mysql/Mapper.php similarity index 69% rename from app/code/Magento/Sales/Service/V1/OrderListInterface.php rename to lib/internal/Magento/Framework/Search/Adapter/Mysql/Mapper.php index 508fd35e1f54383ea7c5181e03f3a989e5798dfb..938d160486d9a525aeec623f724e3fc9c5fb0c97 100644 --- a/app/code/Magento/Sales/Service/V1/OrderListInterface.php +++ b/lib/internal/Magento/Framework/Search/Adapter/Mysql/Mapper.php @@ -1,5 +1,7 @@ <?php /** + * Mapper class. Maps library request to specific adapter dependent query + * * Magento * * NOTICE OF LICENSE @@ -21,20 +23,20 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Framework\Search\Adapter\Mysql; -use Magento\Framework\Service\V1\Data\SearchCriteria; +use Magento\Framework\Search\RequestInterface; -/** - * Interface OrderListInterface - */ -interface OrderListInterface +class Mapper { /** - * Invoke OrderList service + * Build adapter dependent query * - * @param \Magento\Framework\Service\V1\Data\SearchCriteria $searchCriteria - * @return \Magento\Catalog\Service\V1\Data\Product\SearchResults + * @param RequestInterface $request + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * @return mixed */ - public function invoke(SearchCriteria $searchCriteria); + public function buildQuery(RequestInterface $request) + { + } } diff --git a/lib/internal/Magento/Framework/Search/Adapter/Mysql/ResponseFactory.php b/lib/internal/Magento/Framework/Search/Adapter/Mysql/ResponseFactory.php new file mode 100644 index 0000000000000000000000000000000000000000..1040b48b5d911b10bd4aa2f4b359c57b856091b6 --- /dev/null +++ b/lib/internal/Magento/Framework/Search/Adapter/Mysql/ResponseFactory.php @@ -0,0 +1,91 @@ +<?php +/** + * Response Factory + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search\Adapter\Mysql; + +use Magento\Framework\Search\QueryResponse; + +class ResponseFactory +{ + /** + * Object Manager instance + * + * @var \Magento\Framework\ObjectManager + */ + protected $objectManager; + + /** + * Document Factory + * + * @var DocumentFactory + */ + protected $documentFactory; + + /** + * Aggregation Factory + * + * @var AggregationFactory + */ + protected $aggregationFactory; + + /** + * @param \Magento\Framework\ObjectManager $objectManager + * @param DocumentFactory $documentFactory + * @param AggregationFactory $aggregationFactory + */ + public function __construct( + \Magento\Framework\ObjectManager $objectManager, + DocumentFactory $documentFactory, + AggregationFactory $aggregationFactory + ) { + $this->objectManager = $objectManager; + $this->documentFactory = $documentFactory; + $this->aggregationFactory = $aggregationFactory; + } + + /** + * Create Query Response instance + * + * @param mixed $rawResponse + * @return QueryResponse + */ + public function create($rawResponse) + { + $documents = array(); + foreach ($rawResponse['documents'] as $rawDocument) { + /** @var \Magento\Framework\Search\Document[] $documents */ + $documents[] = $this->documentFactory->create($rawDocument); + } + /** @var \Magento\Framework\Search\Aggregation $aggregations */ + $aggregations = $this->documentFactory->create($rawResponse['aggregation']); + return $this->objectManager->create( + '\Magento\Framework\Search\QueryResponse', + [ + 'documents' => $documents, + 'aggregations' => $aggregations + ] + ); + } +} diff --git a/lib/internal/Magento/Framework/Search/AdapterFactory.php b/lib/internal/Magento/Framework/Search/AdapterFactory.php new file mode 100644 index 0000000000000000000000000000000000000000..72af3424bd6c7642e4f1d6e90b3abf1aa0e50976 --- /dev/null +++ b/lib/internal/Magento/Framework/Search/AdapterFactory.php @@ -0,0 +1,91 @@ +<?php +/** + * Adapter Factory + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search; + +class AdapterFactory +{ + /** + * Scope configuration + * + * @var \Magento\Framework\App\Config\ScopeConfigInterface + */ + protected $scopeConfig; + + /** + * Object Manager instance + * + * @var \Magento\Framework\ObjectManager + */ + protected $objectManager; + + /** + * Config path + * + * @var string + */ + protected $path; + + /** + * Config Scope + */ + protected $scope; + + /** + * @param \Magento\Framework\ObjectManager $objectManager + * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig + * @param string $path + * @param string $scopeType + */ + public function __construct( + \Magento\Framework\ObjectManager $objectManager, + \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, + $path, + $scopeType + ) { + $this->objectManager = $objectManager; + $this->scopeConfig = $scopeConfig; + $this->path = $path; + $this->scope = $scopeType; + } + + /** + * Create Adapter instance + * + * @param array $data + * @return AdapterInterface + */ + public function create(array $data = array()) + { + $adapterClass = $this->scopeConfig->getValue($this->path, $this->scope); + $adapter = $this->objectManager->create($adapterClass, $data); + if (!($adapter instanceof \Magento\Framework\Search\AdapterInterface)) { + throw new \InvalidArgumentException( + 'Adapter must implement \Magento\Framework\Search\AdapterInterface' + ); + } + return $adapter; + } +} diff --git a/app/code/Magento/Sales/Service/V1/OrderHoldInterface.php b/lib/internal/Magento/Framework/Search/AdapterInterface.php similarity index 77% rename from app/code/Magento/Sales/Service/V1/OrderHoldInterface.php rename to lib/internal/Magento/Framework/Search/AdapterInterface.php index 0ba9ba3733c12b17b2067f72065d542658214437..b439981f00e88ceb37ff012de205c80ab171d230 100644 --- a/app/code/Magento/Sales/Service/V1/OrderHoldInterface.php +++ b/lib/internal/Magento/Framework/Search/AdapterInterface.php @@ -1,5 +1,7 @@ <?php /** + * Search Adapter interface + * * Magento * * NOTICE OF LICENSE @@ -21,19 +23,15 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Framework\Search; -/** - * Interface OrderHoldInterface - */ -interface OrderHoldInterface +interface AdapterInterface { /** - * Invoke orderHold service + * Process Search Request * - * @param int $id - * @return bool - * @throws \Magento\Framework\Exception\NoSuchEntityException + * @param RequestInterface $request + * @return QueryResponse */ - public function invoke($id); + public function query(RequestInterface $request); } diff --git a/lib/internal/Magento/Framework/Search/Aggregation.php b/lib/internal/Magento/Framework/Search/Aggregation.php new file mode 100644 index 0000000000000000000000000000000000000000..b9a065fb59987cd737f3fa3dac5e29e1da12cd54 --- /dev/null +++ b/lib/internal/Magento/Framework/Search/Aggregation.php @@ -0,0 +1,75 @@ +<?php +/** + * Faceted data + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search; + +class Aggregation implements \IteratorAggregate +{ + /** + * Buckets array + * + * @var Bucket[] + */ + protected $buckets; + + /** + * @param Bucket[] $buckets + */ + public function __construct(array $buckets) + { + $this->buckets = $buckets; + } + + /** + * Implementation of \IteratorAggregate::getIterator() + * + * @return \ArrayIterator + */ + public function getIterator() + { + return new \ArrayIterator($this->buckets); + } + + /** + * Get Document field + * + * @param string $bucketName + * @return Bucket + */ + public function getBucket($bucketName) + { + return $this->buckets[$bucketName]; + } + + /** + * Get Document field names + * + * @return array + */ + public function getBucketNames() + { + return array_keys($this->buckets); + } +} diff --git a/lib/internal/Magento/Framework/Search/Bucket.php b/lib/internal/Magento/Framework/Search/Bucket.php new file mode 100644 index 0000000000000000000000000000000000000000..17e7f27a704f76accde138319bfdec18be80c961 --- /dev/null +++ b/lib/internal/Magento/Framework/Search/Bucket.php @@ -0,0 +1,73 @@ +<?php +/** + * Facet Bucket + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search; + +class Bucket +{ + /** + * Bucket name + * + * @var string + */ + protected $name; + + /** + * Bucket value + * + * @var mixed + */ + protected $value; + + /** + * @param string $name + * @param mixed $value + */ + public function __construct($name, $value) + { + $this->name = $name; + $this->value = $value; + } + + /** + * Get bucket name + * + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Get bucket values + * + * @return mixed + */ + public function getValue() + { + return $this->value; + } +} diff --git a/lib/internal/Magento/Framework/Search/Document.php b/lib/internal/Magento/Framework/Search/Document.php new file mode 100644 index 0000000000000000000000000000000000000000..ea540197a39247a38e59a133150ca3bfa0b8c69f --- /dev/null +++ b/lib/internal/Magento/Framework/Search/Document.php @@ -0,0 +1,97 @@ +<?php +/** + * Search Document + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search; + +class Document implements \IteratorAggregate +{ + /** + * Document fields array + * + * @var DocumentField[] + */ + protected $documentFields; + + /** + * Document Id + * + * @var int + */ + protected $documentId; + + /** + * @param int $documentId + * @param DocumentField[] $documentFields + */ + public function __construct( + $documentId, + array $documentFields + ) { + $this->documentId = $documentId; + $this->documentFields = $documentFields; + } + + /** + * Implementation of \IteratorAggregate::getIterator() + * + * @return \ArrayIterator + */ + public function getIterator() + { + return new \ArrayIterator($this->documentFields); + } + + /** + * Get Document field + * + * @param string $fieldName + * @return DocumentField + */ + public function getField($fieldName) + { + return $this->documentFields[$fieldName]; + } + + /** + * Get Document field names + * + * @return array + */ + public function getFieldNames() + { + return array_keys($this->documentFields); + } + + /** + * Get Document Id + * + * @return int + * @codeCoverageIgnore + */ + public function getId() + { + return $this->documentId; + } +} diff --git a/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/CookieTest.php b/lib/internal/Magento/Framework/Search/DocumentField.php similarity index 57% rename from dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/CookieTest.php rename to lib/internal/Magento/Framework/Search/DocumentField.php index c2c4aa6befbc220f24533f8b23c8ac1d2874cde7..5e8af0f3cfe344966370fd922e11feaaaf8a868f 100644 --- a/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/CookieTest.php +++ b/lib/internal/Magento/Framework/Search/DocumentField.php @@ -1,5 +1,7 @@ <?php /** + * Search Document Field + * * Magento * * NOTICE OF LICENSE @@ -21,31 +23,51 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Test; +namespace Magento\Framework\Search; -class CookieTest extends \PHPUnit_Framework_TestCase +class DocumentField { /** - * Name of the sample cookie to be used in tests + * Document field name + * + * @var string */ - const SAMPLE_COOKIE_NAME = 'sample_cookie'; + protected $name; /** - * @var \Magento\TestFramework\Cookie + * Document field values + * + * @var array */ - protected $_model; + protected $values; + + /** + * @param string $name + * @param array $values + */ + public function __construct($name, array $values) + { + $this->name = $name; + $this->values = $values; + } - protected function setUp() + /** + * Get field name + * + * @return string + */ + public function getName() { - $this->_model = new \Magento\TestFramework\Cookie(); + return $this->name; } - public function testSet() + /** + * Get field values + * + * @return array + */ + public function getValues() { - $cookieValue = 'some_cookie_value'; - $this->assertNull($this->_model->get(self::SAMPLE_COOKIE_NAME)); - $this->_model->set(self::SAMPLE_COOKIE_NAME, $cookieValue); - $this->assertEquals($cookieValue, $this->_model->get(self::SAMPLE_COOKIE_NAME)); - $this->assertEquals($cookieValue, $_COOKIE[self::SAMPLE_COOKIE_NAME]); + return $this->values; } } diff --git a/lib/internal/Magento/Framework/Search/QueryResponse.php b/lib/internal/Magento/Framework/Search/QueryResponse.php new file mode 100644 index 0000000000000000000000000000000000000000..f93bb9156420dccc2df4ae52b4109ab7286cc4c7 --- /dev/null +++ b/lib/internal/Magento/Framework/Search/QueryResponse.php @@ -0,0 +1,82 @@ +<?php +/** + * Search Response + * + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search; + +class QueryResponse implements ResponseInterface, \IteratorAggregate, \Countable +{ + /** + * Document Collection + * + * @var Document[] + */ + protected $documents; + + /** + * Aggregation Collection + * + * @var Aggregation[] + */ + protected $aggregations; + + /** + * @param Document[] $documents + * @param Aggregation[] $aggregations + */ + public function __construct(array $documents, array $aggregations) + { + $this->documents = $documents; + $this->aggregations = $aggregations; + } + + /** + * Countable: return count of fields in document + * @return int + */ + public function count() + { + return count($this->documents); + } + + /** + * Implementation of \IteratorAggregate::getIterator() + * + * @return \ArrayIterator + */ + public function getIterator() + { + return new \ArrayIterator($this->documents); + } + + /** + * Return Aggregation Collection + * + * @return Aggregation[] + */ + public function getAggregations() + { + return $this->aggregations; + } +} diff --git a/lib/internal/Magento/Framework/Search/Request.php b/lib/internal/Magento/Framework/Search/Request.php index 5bae18e314ab21e8bf997d55893b18fc2e89637b..787aed2417aaddbcd31c276d74cc3d0da98888d4 100644 --- a/lib/internal/Magento/Framework/Search/Request.php +++ b/lib/internal/Magento/Framework/Search/Request.php @@ -25,6 +25,7 @@ namespace Magento\Framework\Search; use Magento\Framework\Search\Request\BucketInterface; +use Magento\Framework\Search\Request\Dimension; use Magento\Framework\Search\Request\QueryInterface; /** @@ -64,12 +65,18 @@ class Request implements RequestInterface */ protected $size; + /** + * @var Dimension[] + */ + protected $dimensions; + /** * @param string $name * @param string $indexName * @param QueryInterface $query * @param int|null $from * @param int|null $size + * @param Dimension[] $dimensions * @param BucketInterface[] $buckets */ public function __construct( @@ -78,14 +85,16 @@ class Request implements RequestInterface QueryInterface $query, $from = null, $size = null, + array $dimensions = null, array $buckets = null ) { $this->name = $name; $this->index = $indexName; - $this->buckets = $buckets; $this->query = $query; $this->from = $from; $this->size = $size; + $this->buckets = $buckets; + $this->dimensions = $dimensions; } /** @@ -104,6 +113,14 @@ class Request implements RequestInterface return $this->index; } + /** + * @return Dimension[] + */ + public function getDimensions() + { + $this->dimensions; + } + /** * {@inheritdoc} */ diff --git a/app/code/Magento/Sales/Service/V1/OrderGetStatusInterface.php b/lib/internal/Magento/Framework/Search/Request/Aggregation/Metric.php similarity index 73% rename from app/code/Magento/Sales/Service/V1/OrderGetStatusInterface.php rename to lib/internal/Magento/Framework/Search/Request/Aggregation/Metric.php index 821a64129ae24296e6f97dc8148676091f6a1a0a..ac529f8ed124da186f12eefef79eabf5cf335a47 100644 --- a/app/code/Magento/Sales/Service/V1/OrderGetStatusInterface.php +++ b/lib/internal/Magento/Framework/Search/Request/Aggregation/Metric.php @@ -1,5 +1,7 @@ <?php /** + * Metric + * * Magento * * NOTICE OF LICENSE @@ -21,20 +23,30 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Framework\Search\Request\Aggregation; -/** - * Interface OrderGetStatusInterface - * @package Magento\Sales\Service\V1 - */ -interface OrderGetStatusInterface +class Metric { /** - * Retrieve order status by id + * @var string + */ + protected $type; + + /** + * @param string $type + */ + public function __construct($type) + { + $this->type = $type; + } + + /** + * Get Type * - * @param int $id * @return string - * @throws \Magento\Framework\Exception\NoSuchEntityException */ - public function invoke($id); + public function getType() + { + return $this->type; + } } diff --git a/lib/internal/Magento/Framework/Search/Request/BucketInterface.php b/lib/internal/Magento/Framework/Search/Request/BucketInterface.php index 8fc0463fe21ffd6b7df73b3289147407e27cb3bf..3457b28817958944f81cdb75dbf9687321db7cf3 100644 --- a/lib/internal/Magento/Framework/Search/Request/BucketInterface.php +++ b/lib/internal/Magento/Framework/Search/Request/BucketInterface.php @@ -30,9 +30,9 @@ interface BucketInterface /** * #@+ Bucket Types */ - const TYPE_TERM = 'term'; + const TYPE_TERM = 'termBucket'; - const TYPE_RANGE = 'range'; + const TYPE_RANGE = 'rangeBucket'; /**#@-*/ diff --git a/lib/internal/Magento/Framework/Search/Request/Config/Converter.php b/lib/internal/Magento/Framework/Search/Request/Config/Converter.php index 87bd3895fbe75e4fc40cb5b60e8b81cd60e600fe..9c244774944cf04a003d8a74b8fec6b5c1d393fa 100644 --- a/lib/internal/Magento/Framework/Search/Request/Config/Converter.php +++ b/lib/internal/Magento/Framework/Search/Request/Config/Converter.php @@ -42,9 +42,10 @@ class Converter implements \Magento\Framework\Config\ConverterInterface /** @var \DOMElement $requestNode */ $name = $requestNode->getAttribute('query'); $request = $this->mergeAttributes((array)$simpleXmlNode); + $request['dimensions'] = $this->convertNodes($simpleXmlNode->dimensions, 'name'); $request['queries'] = $this->convertNodes($simpleXmlNode->queries, 'name'); $request['filters'] = $this->convertNodes($simpleXmlNode->filters, 'name'); - //$request['aggregation'] = $this->convertNodes($simpleXmlNode->aggregation, 'name'); + $request['aggregation'] = $this->convertNodes($simpleXmlNode->aggregation, 'name'); $requests[$name] = $request; } return $requests; @@ -89,10 +90,8 @@ class Converter implements \Magento\Framework\Config\ConverterInterface /** @var \SimpleXMLElement $node */ foreach ($nodes->children() as $node) { $element = $this->convertToArray($node->attributes()); - if (count($node->children()) > 0) { - foreach ($node->children() as $child) { - $element[$child->getName()][] = $this->convertToArray($child); - } + if ($node->count() > 0) { + $element = $this->convertChildNodes($element, $node); } $type = (string)$node->attributes('xsi', true)['type']; if (!empty($type)) { @@ -103,4 +102,23 @@ class Converter implements \Magento\Framework\Config\ConverterInterface } return $list; } + + /** + * Convert child nodes to array + * + * @param array $element + * @param \SimpleXMLElement $node + * @return array + */ + protected function convertChildNodes(array $element, \SimpleXMLElement $node) + { + if ($node->count() == 0) { + $element[$node->getName()][] = $this->convertToArray($node); + } else { + foreach ($node->children() as $child) { + $element = $this->convertChildNodes($element, $child); + } + } + return $element; + } } diff --git a/lib/internal/Magento/Framework/Search/Request/Dimension.php b/lib/internal/Magento/Framework/Search/Request/Dimension.php new file mode 100644 index 0000000000000000000000000000000000000000..1cdc73a0b24b07c7056fc0d8f9dce3ae822f20d0 --- /dev/null +++ b/lib/internal/Magento/Framework/Search/Request/Dimension.php @@ -0,0 +1,59 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +namespace Magento\Framework\Search\Request; + +class Dimension +{ + /** @var string */ + private $name; + + /** @var string */ + private $value; + + /** + * @param string $name + * @param string $value + */ + public function __construct($name, $value) + { + $this->name = $name; + $this->value = $value; + } + + /** + * @return string + */ + public function getValue() + { + return $this->value; + } + + /** + * @return string + */ + public function getName() + { + return $this->name; + } +} diff --git a/lib/internal/Magento/Framework/Search/Request/Mapper.php b/lib/internal/Magento/Framework/Search/Request/Mapper.php index a54a217ce80a8167e057408514c1a46b4ff07ecd..8b76ac54787b0021845eb054eeb252861d6348d5 100644 --- a/lib/internal/Magento/Framework/Search/Request/Mapper.php +++ b/lib/internal/Magento/Framework/Search/Request/Mapper.php @@ -24,6 +24,7 @@ namespace Magento\Framework\Search\Request; use Magento\Framework\Search\Request\Query\Filter; +use Magento\Framework\Exception\StateException; class Mapper { @@ -37,24 +38,62 @@ class Mapper */ private $filters; + /** + * @var string[] + */ + private $mappedQueries; + + /** + * @var string[] + */ + private $mappedFilters; + + /** + * @var array + */ + private $aggregation; + /** * @var \Magento\Framework\ObjectManager */ private $objectManager; + /** + * @var QueryInterface + */ + private $rootQuery = null; + /** * @param \Magento\Framework\ObjectManager $objectManager * @param array $queries + * @param string $rootQueryName + * @param array $aggregation * @param array $filters + * @throws \Exception + * @throws \InvalidArgumentException + * @throws StateException */ public function __construct( \Magento\Framework\ObjectManager $objectManager, array $queries, - array $filters = null + $rootQueryName, + array $aggregation, + array $filters = [] ) { $this->objectManager = $objectManager; $this->queries = $queries; + $this->aggregation = $aggregation; $this->filters = $filters; + + $this->rootQuery = $this->get($rootQueryName); + } + + /** + * @return QueryInterface + */ + public function getRootQuery() + { + return $this->rootQuery; } /** @@ -62,24 +101,36 @@ class Mapper * * @param string $queryName * @return QueryInterface + * @throws \Exception + * @throws \InvalidArgumentException + * @throws StateException */ - public function get($queryName) + private function get($queryName) { - return $this->mapQuery($queryName); + $this->mappedQueries = []; + $this->mappedFilters = []; + $query = $this->mapQuery($queryName); + $this->validate(); + return $query; } /** * Convert array to Query instance * * @param string $queryName - * @throws \Exception * @return QueryInterface + * @throws \Exception + * @throws \InvalidArgumentException + * @throws StateException */ private function mapQuery($queryName) { if (!isset($this->queries[$queryName])) { throw new \Exception('Query ' . $queryName . ' does not exist'); + } elseif (in_array($queryName, $this->mappedQueries)) { + throw new StateException('Cycle found. Query %1 already used in request hierarchy', [$queryName]); } + $this->mappedQueries[] = $queryName; $query = $this->queries[$queryName]; switch ($query['type']) { case QueryInterface::TYPE_MATCH: @@ -164,12 +215,18 @@ class Mapper * @param string $filterName * @throws \Exception * @return FilterInterface + * @throws \Exception + * @throws \InvalidArgumentException + * @throws StateException */ private function mapFilter($filterName) { if (!isset($this->filters[$filterName])) { throw new \Exception('Filter ' . $filterName . ' does not exist'); + } elseif (in_array($filterName, $this->mappedFilters)) { + throw new StateException('Cycle found. Filter %1 already used in request hierarchy', [$filterName]); } + $this->mappedFilters[] = $filterName; $filter = $this->filters[$filterName]; switch ($filter['type']) { case FilterInterface::TYPE_TERM: @@ -209,4 +266,129 @@ class Mapper } return $filter; } + + /** + * @return void + * @throws StateException + */ + private function validate() + { + $this->validateQueries(); + $this->validateFilters(); + } + + /** + * @return void + * @throws StateException + */ + private function validateQueries() + { + $this->validateNotUsed($this->queries, $this->mappedQueries, 'Query %1 not used in request hierarchy'); + } + + /** + * @return void + * @throws StateException + */ + private function validateFilters() + { + $this->validateNotUsed($this->filters, $this->mappedFilters, 'Filter %1 not used in request hierarchy'); + } + + /** + * @param array $elements + * @param string[] $mappedElements + * @param string $errorMessage + * @return void + * @throws \Magento\Framework\Exception\StateException + */ + private function validateNotUsed($elements, $mappedElements, $errorMessage) + { + $allElements = array_keys($elements); + $notUsedElements = implode(', ', array_diff($allElements, $mappedElements)); + if (!empty($notUsedElements)) { + throw new StateException($errorMessage, [$notUsedElements]); + } + } + + /** + * Build BucketInterface[] from array + * + * @return array + * @throws StateException + */ + public function getBuckets() + { + $buckets = array(); + foreach ($this->aggregation as $bucketData) { + $arguments = + [ + 'name' => $bucketData['name'], + 'field' => $bucketData['field'], + 'metrics' => $this->mapMetrics($bucketData['metric']) + ]; + switch ($bucketData['type']) { + case BucketInterface::TYPE_TERM: + $bucket = $this->objectManager->create( + 'Magento\Framework\Search\Request\Aggregation\TermBucket', + $arguments + ); + break; + case BucketInterface::TYPE_RANGE: + $bucket = $this->objectManager->create( + 'Magento\Framework\Search\Request\Aggregation\RangeBucket', + array_merge( + $arguments, + ['ranges' => $this->mapRanges($bucketData['range'])] + ) + ); + break; + default: + throw new StateException('Invalid bucket type'); + } + $buckets[] = $bucket; + } + return $buckets; + } + + /** + * Build Metric[] from array + * + * @param array $metrics + * @return array + */ + private function mapMetrics(array $metrics) + { + $metricObjects = array(); + foreach ($metrics as $metric) { + $metricObjects[] = $this->objectManager->create( + 'Magento\Framework\Search\Request\Aggregation\Metric', + [ + 'type' => $metric['type'] + ] + ); + } + return $metricObjects; + } + + /** + * Build Range[] from array + * + * @param array $ranges + * @return array + */ + private function mapRanges(array $ranges) + { + $rangeObjects = array(); + foreach ($ranges as $range) { + $rangeObjects[] = $this->objectManager->create( + 'Magento\Framework\Search\Request\Aggregation\Range', + [ + 'from' => $range['from'], + 'to' => $range['to'] + ] + ); + } + return $rangeObjects; + } } diff --git a/lib/internal/Magento/Framework/Search/RequestFactory.php b/lib/internal/Magento/Framework/Search/RequestFactory.php index 38db68f9dbe8f1f5d5dbbda52dc3513efbca620f..a83c16c9c6f822722ea65eb0f82e84b7e1851ba0 100644 --- a/lib/internal/Magento/Framework/Search/RequestFactory.php +++ b/lib/internal/Magento/Framework/Search/RequestFactory.php @@ -96,11 +96,14 @@ class RequestFactory */ private function convert($data) { + /** @var \Magento\Framework\Search\Request\Mapper $mapper */ $mapper = $this->objectManager->create( 'Magento\Framework\Search\Request\Mapper', [ 'objectManager' => $this->objectManager, + 'rootQueryName' => $data['query'], 'queries' => $data['queries'], + 'aggregation' => $data['aggregation'], 'filters' => $data['filters'] ] ); @@ -111,8 +114,17 @@ class RequestFactory 'indexName' => $data['index'], 'from' => $data['from'], 'size' => $data['size'], - 'query' => $mapper->get($data['query']), - 'buckets' => [], + 'query' => $mapper->getRootQuery(), + 'demensions' => array_map( + function ($data) { + return $this->objectManager->create( + 'Magento\Framework\Search\Request\Dimension', + $data + ); + }, + isset($data['demensions']) ? $data['demensions'] : [] + ), + 'buckets' => $mapper->getBuckets() ] ); } diff --git a/lib/internal/Magento/Framework/Search/RequestInterface.php b/lib/internal/Magento/Framework/Search/RequestInterface.php index b249646af6557a45a8b5e32ca0ca99c66779d9ca..822b29af80d4ae53323e3e534521fc5f44d67816 100644 --- a/lib/internal/Magento/Framework/Search/RequestInterface.php +++ b/lib/internal/Magento/Framework/Search/RequestInterface.php @@ -25,9 +25,9 @@ */ namespace Magento\Framework\Search; -use Magento\Framework\Search\Request\FilterInterface; use Magento\Framework\Search\Request\BucketInterface; use Magento\Framework\Search\Request\QueryInterface; +use Magento\Framework\Search\Request\Dimension; interface RequestInterface { @@ -45,6 +45,11 @@ interface RequestInterface */ public function getIndex(); + /** + * @return Dimension[] + */ + public function getDimensions(); + /** * Get Aggregation Buckets * diff --git a/lib/internal/Magento/Framework/Search/SearchEngine.php b/lib/internal/Magento/Framework/Search/SearchEngine.php index 7a738edf64ff20013dd8a651eb157574e0d033f0..8297585cd909b6ae1b8c8c885e588850c66bd07d 100644 --- a/lib/internal/Magento/Framework/Search/SearchEngine.php +++ b/lib/internal/Magento/Framework/Search/SearchEngine.php @@ -27,11 +27,25 @@ namespace Magento\Framework\Search; class SearchEngine implements SearchEngineInterface { + /** + * @var AdapterInterface + */ + protected $adapter; + + /** + * @param AdapterFactory $adapterFactory + */ + public function __construct( + AdapterFactory $adapterFactory + ) { + $this->adapter = $adapterFactory->create(); + } + /** * {@inheritdoc} - * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function search(RequestInterface $request) { + return $this->adapter->query($request); } } diff --git a/lib/internal/Magento/Framework/Search/etc/requests.xsd b/lib/internal/Magento/Framework/Search/etc/requests.xsd index 67d2cfb81dc40927b8a5f03c4bba77e48bead05b..cfdd133b4588673756545d3c13744e4a51dd5407 100644 --- a/lib/internal/Magento/Framework/Search/etc/requests.xsd +++ b/lib/internal/Magento/Framework/Search/etc/requests.xsd @@ -27,6 +27,7 @@ <xs:complexType name="request"> <xs:sequence> + <xs:element type="dimensions" name="dimensions" minOccurs="0" maxOccurs="1"/> <xs:element type="queries" name="queries" minOccurs="1"> <xs:key name="queryName"> <xs:selector xpath="query" /> @@ -65,6 +66,21 @@ </xs:simpleType> </xs:attribute> + <xs:complexType name="dimension"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute type="xs:string" name="name" use="required" /> + <xs:attribute type="xs:string" name="value" use="required" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + + <xs:complexType name="dimensions"> + <xs:sequence> + <xs:element type="dimension" name="dimension" /> + </xs:sequence> + </xs:complexType> + <!-- Queries Type hierarchy --> <xs:complexType name="queries"> <xs:annotation> diff --git a/lib/internal/Magento/Framework/Session/Config.php b/lib/internal/Magento/Framework/Session/Config.php index 407750a9ade7894e82853f38dae3b85a06e4a7a8..f66cb6fcbcfc213ab189660e62e1396f77b588db 100644 --- a/lib/internal/Magento/Framework/Session/Config.php +++ b/lib/internal/Magento/Framework/Session/Config.php @@ -123,6 +123,11 @@ class Config implements ConfigInterface */ protected $_scopeType; + /** + * @var \Magento\TestFramework\ObjectManager + */ + protected $_objectManager; + /** * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Framework\Stdlib\String $stringHelper @@ -165,7 +170,7 @@ class Config implements ConfigInterface $this->setOption('session.cache_limiter', $cacheLimiter); } - $lifetime = $this->_scopeConfig->getValue(self::XML_PATH_COOKIE_LIFETIME, $this->_scopeType); + $lifetime = $this->_scopeConfig->getValue($lifetimePath, $this->_scopeType); $lifetime = is_numeric($lifetime) ? $lifetime : self::COOKIE_LIFETIME_DEFAULT; $this->setCookieLifetime($lifetime); @@ -231,10 +236,7 @@ class Config implements ConfigInterface public function setOption($option, $value) { $option = $this->getFixedOptionName($option); - if (!array_key_exists($option, $this->options) || $this->options[$option] != $value) { - $this->setStorageOption($option, $value); - $this->options[$option] = $value; - } + $this->options[$option] = $value; return $this; } @@ -248,7 +250,7 @@ class Config implements ConfigInterface public function getOption($option) { $option = $this->getFixedOptionName($option); - if ($this->hasOption($option)) { + if (array_key_exists($option, $this->options)) { return $this->options[$option]; } @@ -261,18 +263,6 @@ class Config implements ConfigInterface return null; } - /** - * Check to see if an internal option has been set for the key provided. - * - * @param string $option - * @return bool - */ - public function hasOption($option) - { - $option = $this->getFixedOptionName($option); - return array_key_exists($option, $this->options); - } - /** * Convert config to array * @@ -390,13 +380,6 @@ class Config implements ConfigInterface */ public function getCookiePath() { - if (!$this->hasOption('session.cookie_path')) { - $path = $this->_scopeConfig->getValue(self::XML_PATH_COOKIE_PATH, $this->_scopeType); - if (empty($path)) { - $path = $this->_httpRequest->getBasePath(); - } - $this->setCookiePath($path); - } return (string)$this->getOption('session.cookie_path'); } @@ -499,24 +482,6 @@ class Config implements ConfigInterface return (bool)$this->getOption('session.use_cookies'); } - /** - * Set storage option in backend configuration store - * - * @param string $option - * @param string $value - * @return $this - * @throws \InvalidArgumentException - */ - protected function setStorageOption($option, $value) - { - $result = ini_set($option, $value); - if ($result === false) { - throw new \InvalidArgumentException(sprintf('"%s" is not a valid sessions-related ini setting.', $option)); - } - - return $this; - } - /** * Retrieve a storage option from a backend configuration store * diff --git a/lib/internal/Magento/Framework/Session/Config/ConfigInterface.php b/lib/internal/Magento/Framework/Session/Config/ConfigInterface.php index b6f88385634815b2e0a6316903fc1e096b6100e2..6df53723a77f9aa45b7cc727449b990f7e1d1b67 100644 --- a/lib/internal/Magento/Framework/Session/Config/ConfigInterface.php +++ b/lib/internal/Magento/Framework/Session/Config/ConfigInterface.php @@ -59,14 +59,6 @@ interface ConfigInterface */ public function getOption($option); - /** - * Check to see if an internal option has been set for the key provided. - * - * @param string $option - * @return bool - */ - public function hasOption($option); - /** * Convert config to array * diff --git a/lib/internal/Magento/Framework/Session/Generic.php b/lib/internal/Magento/Framework/Session/Generic.php index 35f2350ba3639a43e41c453e6d6f3bdf378ba9c4..d429ec02720dcc83a49e94256c33912c4dca51bb 100644 --- a/lib/internal/Magento/Framework/Session/Generic.php +++ b/lib/internal/Magento/Framework/Session/Generic.php @@ -34,6 +34,8 @@ class Generic extends SessionManager * @param SaveHandlerInterface $saveHandler * @param ValidatorInterface $validator * @param StorageInterface $storage + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param null $sessionName */ public function __construct( @@ -43,9 +45,20 @@ class Generic extends SessionManager SaveHandlerInterface $saveHandler, ValidatorInterface $validator, StorageInterface $storage, + \Magento\Framework\Stdlib\CookieManager $cookieManager, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, $sessionName = null ) { - parent::__construct($request, $sidResolver, $sessionConfig, $saveHandler, $validator, $storage); + parent::__construct( + $request, + $sidResolver, + $sessionConfig, + $saveHandler, + $validator, + $storage, + $cookieManager, + $cookieMetadataFactory + ); $this->start($sessionName); } } diff --git a/lib/internal/Magento/Framework/Session/SessionManager.php b/lib/internal/Magento/Framework/Session/SessionManager.php index 4df283272e9937e0b3704ab5d31299dc1d9dbbed..219a76b39d504eb7d6e9ac55889d19d864d1de8a 100644 --- a/lib/internal/Magento/Framework/Session/SessionManager.php +++ b/lib/internal/Magento/Framework/Session/SessionManager.php @@ -25,6 +25,8 @@ */ namespace Magento\Framework\Session; +use Magento\Framework\Session\Config\ConfigInterface; + /** * Session Manager */ @@ -90,23 +92,39 @@ class SessionManager implements SessionManagerInterface */ protected $storage; + /** + * Cookie Manager + * + * @var \Magento\Framework\Stdlib\CookieManager + */ + protected $cookieManager; + + /** + * @var \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory + */ + protected $cookieMetadataFactory; + /** * Constructor * * @param \Magento\Framework\App\Request\Http $request * @param SidResolverInterface $sidResolver - * @param Config\ConfigInterface $sessionConfig + * @param ConfigInterface $sessionConfig * @param SaveHandlerInterface $saveHandler * @param ValidatorInterface $validator * @param StorageInterface $storage + * @param \Magento\Framework\Stdlib\CookieManager $cookieManager + * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory */ public function __construct( \Magento\Framework\App\Request\Http $request, SidResolverInterface $sidResolver, - Config\ConfigInterface $sessionConfig, + ConfigInterface $sessionConfig, SaveHandlerInterface $saveHandler, ValidatorInterface $validator, - StorageInterface $storage + StorageInterface $storage, + \Magento\Framework\Stdlib\CookieManager $cookieManager, + \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory ) { $this->request = $request; $this->sidResolver = $sidResolver; @@ -114,6 +132,8 @@ class SessionManager implements SessionManagerInterface $this->saveHandler = $saveHandler; $this->validator = $validator; $this->storage = $storage; + $this->cookieManager = $cookieManager; + $this->cookieMetadataFactory = $cookieMetadataFactory; // Enable session.use_only_cookies ini_set('session.use_only_cookies', '1'); @@ -157,6 +177,8 @@ class SessionManager implements SessionManagerInterface { if (!$this->isSessionExists()) { \Magento\Framework\Profiler::start('session_start'); + // Need to apply the config options so they can be ready by session_start + $this->initIniOptions(); if (!empty($sessionName)) { $this->setName($sessionName); } @@ -464,15 +486,12 @@ class SessionManager implements SessionManagerInterface foreach (array_keys($this->_getHosts()) as $host) { // Delete cookies with the same name for parent domains if (strpos($this->sessionConfig->getCookieDomain(), $host) > 0) { - setcookie( - $this->getName(), - '', - 0, - $this->sessionConfig->getCookiePath(), - $host, - $this->sessionConfig->getCookieSecure(), - $this->sessionConfig->getCookieHttpOnly() - ); + $metadata = $this->cookieMetadataFactory->createPublicCookieMetadata(); + $metadata->setPath($this->sessionConfig->getCookiePath()); + $metadata->setDomain($host); + $metadata->setSecure($this->sessionConfig->getCookieSecure()); + $metadata->setHttpOnly($this->sessionConfig->getCookieHttpOnly()); + $this->cookieManager->deleteCookie($this->getName(), $metadata); } } } @@ -490,15 +509,24 @@ class SessionManager implements SessionManagerInterface return; } - setcookie( - $this->getName(), - '', - 0, - $this->sessionConfig->getCookiePath(), - $this->sessionConfig->getCookieDomain(), - $this->sessionConfig->getCookieSecure(), - $this->sessionConfig->getCookieHttpOnly() - ); + $metadata = $this->cookieMetadataFactory->createPublicCookieMetadata(); + $metadata->setPath($this->sessionConfig->getCookiePath()); + $metadata->setDomain($this->sessionConfig->getCookieDomain()); + $metadata->setSecure($this->sessionConfig->getCookieSecure()); + $metadata->setHttpOnly($this->sessionConfig->getCookieHttpOnly()); + $this->cookieManager->deleteCookie($this->getName(), $metadata); $this->clearSubDomainSessionCookie(); } + + /** + * Performs ini_set for all of the config options so they can be read by session_start + * + * @return void + */ + private function initIniOptions() + { + foreach ($this->sessionConfig->getOptions() as $option => $value) { + ini_set($option, $value); + } + } } diff --git a/lib/internal/Magento/Framework/Stdlib/Cookie.php b/lib/internal/Magento/Framework/Stdlib/Cookie.php deleted file mode 100644 index 59f29dfc48238591e790b9c4dbf3e409b8bb2e98..0000000000000000000000000000000000000000 --- a/lib/internal/Magento/Framework/Stdlib/Cookie.php +++ /dev/null @@ -1,104 +0,0 @@ -<?php -/** - * Magento - * - * NOTICE OF LICENSE - * - * This source file is subject to the Open Software License (OSL 3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://opensource.org/licenses/osl-3.0.php - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@magentocommerce.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade Magento to newer - * versions in the future. If you wish to customize Magento for your - * needs please refer to http://www.magentocommerce.com for more information. - * - * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) - */ -namespace Magento\Framework\Stdlib; - -/** - * Core cookie model - */ -class Cookie -{ - /** - * Set cookie - * - * @param string $name The cookie name - * @param string $value The cookie value - * @param int $period Lifetime period - * @param string $path - * @param string $domain - * @param bool|int|string $secure - * @param bool|string $httponly - * @return $this - */ - public function set($name, $value, $period = null, $path = null, $domain = null, $secure = null, $httponly = null) - { - /** - * Check headers sent - */ - if (headers_sent()) { - return $this; - } - - if ($period === true) { - $period = 3600 * 24 * 365; - } - - if ($period == 0) { - $expire = 0; - } else { - $expire = time() + $period; - } - - setcookie($name, $value, $expire, $path, $domain, $secure, $httponly); - - return $this; - } - - /** - * Postpone cookie expiration time if cookie value defined - * - * @param string $name The cookie name - * @param int $period Lifetime period - * @param string $path - * @param string $domain - * @param bool|int|string $secure - * @param string|bool $httponly - * @return $this - */ - public function renew($name, $period = null, $path = null, $domain = null, $secure = null, $httponly = null) - { - if ($period === null) { - return $this; - } - $value = $this->get($name, false); - if ($value !== false) { - $this->set($name, $value, $period, $path, $domain, $secure, $httponly); - } - return $this; - } - - /** - * Retrieve cookie or false if not exists - * - * @param string|null $name - * @param mixed|null $default - * @return mixed - */ - public function get($name = null, $default = null) - { - if (null === $name) { - return $_COOKIE; - } - return (isset($_COOKIE[$name])) ? $_COOKIE[$name] : $default; - } -} diff --git a/lib/internal/Magento/Framework/Stdlib/Cookie/CookieMetadataFactory.php b/lib/internal/Magento/Framework/Stdlib/Cookie/CookieMetadataFactory.php index f41a5fdf5f2432b8adfbf391884848eee86904aa..7b733c3cf1d9db95382cb4643e6eb0309efe9402 100644 --- a/lib/internal/Magento/Framework/Stdlib/Cookie/CookieMetadataFactory.php +++ b/lib/internal/Magento/Framework/Stdlib/Cookie/CookieMetadataFactory.php @@ -78,7 +78,7 @@ class CookieMetadataFactory * @param array $metadata * @return CookieMetadata */ - public function createCookieMetadata($metadata) + public function createCookieMetadata($metadata = []) { return $this->objectManager->create( 'Magento\Framework\Stdlib\Cookie\CookieMetadata', diff --git a/lib/internal/Magento/Framework/Stdlib/Cookie/PhpCookieManager.php b/lib/internal/Magento/Framework/Stdlib/Cookie/PhpCookieManager.php index dc5729ccc25ec9a7b0337fd06c06b014660ef888..90ba0fa4077a1192a2270584049bf354ba3681fc 100644 --- a/lib/internal/Magento/Framework/Stdlib/Cookie/PhpCookieManager.php +++ b/lib/internal/Magento/Framework/Stdlib/Cookie/PhpCookieManager.php @@ -122,7 +122,7 @@ class PhpCookieManager implements CookieManager * @throws CookieSizeLimitReachedException Thrown when the cookie is too big to store any additional data. * @throws InputException If the cookie name is empty or contains invalid characters. */ - private function setCookie($name, $value, array $metadataArray) + protected function setCookie($name, $value, array $metadataArray) { $expire = $this->computeExpirationTime($metadataArray); @@ -272,9 +272,6 @@ class PhpCookieManager implements CookieManager */ public function deleteCookie($name, CookieMetadata $metadata = null) { - // Remove the cookie - unset($_COOKIE[$name]); - $metadataArray = $this->scope->getCookieMetadata($metadata)->__toArray(); // explicitly set an expiration time in the metadataArray. @@ -284,5 +281,8 @@ class PhpCookieManager implements CookieManager // cookie value set to empty string to delete from the remote client $this->setCookie($name, '', $metadataArray); + + // Remove the cookie + unset($_COOKIE[$name]); } } diff --git a/lib/internal/Magento/Framework/Stdlib/Cookie/PublicCookieMetadata.php b/lib/internal/Magento/Framework/Stdlib/Cookie/PublicCookieMetadata.php index ef6089a3f6bb5c5f04089aa4ab5bf2c8a968eba3..f8d146701abe65c09bcd381114bc25dc23cb6a75 100644 --- a/lib/internal/Magento/Framework/Stdlib/Cookie/PublicCookieMetadata.php +++ b/lib/internal/Magento/Framework/Stdlib/Cookie/PublicCookieMetadata.php @@ -51,6 +51,16 @@ class PublicCookieMetadata extends CookieMetadata return $this->set(self::KEY_DURATION, $duration); } + /** + * Set the cookie duration to one year + * + * @return $this + */ + public function setDurationOneYear() + { + return $this->setDuration(3600 * 24 * 365); + } + /** * Get the number of seconds until the cookie expires * diff --git a/lib/internal/Magento/Framework/View/Element/Html/Date.php b/lib/internal/Magento/Framework/View/Element/Html/Date.php index aa0f083c9d65e5c9fc048e3558e2da2b3e6283f9..f725e3f2dcd56f06852cacccb957cdd603a420c2 100644 --- a/lib/internal/Magento/Framework/View/Element/Html/Date.php +++ b/lib/internal/Magento/Framework/View/Element/Html/Date.php @@ -41,9 +41,6 @@ class Date extends \Magento\Framework\View\Element\Template $calendarYearsRange = $this->getYearsRange(); $html .= '<script type="text/javascript"> require(["jquery", "mage/calendar"], function($){ - //<![CDATA[ - (function($) { - $(document).ready(function(){ $("#' . $this->getId() . '").calendar({ @@ -72,10 +69,7 @@ class Date extends \Magento\Framework\View\Element\Template ) . '" }) - }); }); - }); - //]]> </script>'; return $html; diff --git a/lib/internal/Magento/Framework/composer.json b/lib/internal/Magento/Framework/composer.json index 9f523df43e0deec650c70b2ed269527629c0cab4..d833446ad663dad7556590cd6de9fe38687ff207 100644 --- a/lib/internal/Magento/Framework/composer.json +++ b/lib/internal/Magento/Framework/composer.json @@ -2,7 +2,7 @@ "name": "magento/framework", "description": "N/A", "type": "magento2-library", - "version": "0.1.0-alpha92", + "version": "0.1.0-alpha93", "require": { "php": "~5.4.11|~5.5.0", "ext-spl": "*", diff --git a/lib/web/app-config.js b/lib/web/app-config.js index 2b3bda7d3f699c428faa74a53144fd8f5d7008c6..d97b793ecad784a95ed88c21a1a55cdd7f7b1b5b 100644 --- a/lib/web/app-config.js +++ b/lib/web/app-config.js @@ -46,7 +46,7 @@ require.config({ "jquery/hover-intent": "jquery/jquery.hoverIntent", "jquery/template": "jquery/jquery.tmpl.min", "jquery/farbtastic": "jquery/farbtastic/jquery.farbtastic", - "jquery/file-uploader": "jquery/fileUploader/jquery.fileupload-ui", + "jquery/file-uploader": "jquery/fileUploader/jquery.fileupload-fp", "handlebars": "jquery/handlebars/handlebars-v1.3.0", "jquery/jquery.hashchange": "jquery/jquery.ba-hashchange.min", "prototype": "prototype/prototype-amd", diff --git a/lib/web/css/source/lib/popups.less b/lib/web/css/source/lib/popups.less index e2647a2890f9d20c78703d97f648d13f4788f842..a483ace643f84e7f5f3166aacfbaf653d8625973 100644 --- a/lib/web/css/source/lib/popups.less +++ b/lib/web/css/source/lib/popups.less @@ -125,7 +125,7 @@ } .popup-actions { .action.close { - position: @_popup-button-close-position; + .css(position, @_popup-button-close-position); ._popup-button-close-icon( @_popup-button-close-icon, @_popup-icon-font-content, diff --git a/lib/web/jquery/fileUploader/jquery.fileupload.js b/lib/web/jquery/fileUploader/jquery.fileupload.js index f4813d16a10440c393a93cabbb23a96a1f61a2bf..8b73c9fbc45cc76345490fd6f5c862d053cc5d7e 100644 --- a/lib/web/jquery/fileUploader/jquery.fileupload.js +++ b/lib/web/jquery/fileUploader/jquery.fileupload.js @@ -18,7 +18,8 @@ // Register as an anonymous AMD module: define([ 'jquery', - 'jquery/ui' + 'jquery/ui', + 'jquery/fileUploader/jquery.iframe-transport' ], factory); } else { // Browser globals: diff --git a/lib/web/mage/backend/button.js b/lib/web/mage/backend/button.js index b5c82ccd8bb19d1152f420cf266fd3db010ca943..7f056a485667b3c30bd5089dfb8100e033e27494 100644 --- a/lib/web/mage/backend/button.js +++ b/lib/web/mage/backend/button.js @@ -20,6 +20,7 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ +/*global require:true*/ (function (factory) { if (typeof define === 'function' && define.amd) { define([ @@ -32,13 +33,16 @@ }(function ($) { 'use strict'; + var resolver = require && require.resolver; + $.widget('ui.button', $.ui.button, { options: { - eventData: {} + eventData: {}, + waitTillResolved: true }, /** - * Button creation + * Button creation. * @protected */ _create: function() { @@ -50,15 +54,54 @@ }, /** - * Bind handler on button click + * Bind handler on button click. * @protected */ _bind: function() { + var waitTillResolved = this.options.waitTillResolved, + handler = !waitTillResolved || !resolver ? this._click : this._proxyClick; + this.element - .off('click.button') - .on('click.button', $.proxy(function() { - $(this.target).trigger(this.event, [this.eventData]); - }, this.options)); + .off( 'click.button' ) + .on( 'click.button', $.proxy(handler, this) ); + }, + + /** + * Button click handler. + * @protected + */ + _click: function(){ + var options = this.options; + + $(options.target).trigger(options.event, [options.eventData]); + }, + + /** + * Proxy button click handler that might postpone the event + * untill all of the rjs dependencies will be resolved. + * @protected + */ + _proxyClick: function(){ + var options = this.options; + + if( resolver.resolved ){ + this._click(); + } + else if( !resolver.hasListeners('spinnerCover') ){ + $('body').trigger('processStart'); + + resolver.on('spinnerCover', $.proxy(this._onResolve, this) ); + } + }, + + /** + * Callback of the rjs resolver 'onAllResolved' event. + * @protected + */ + _onResolve: function(){ + $('body').trigger('processStop'); + + this._click(); } }); })); diff --git a/lib/web/mage/backend/validation.js b/lib/web/mage/backend/validation.js index ae008f7aff7c8dc2c78ddacb46568b838c80ca13..e74ac4196943b6d43c6a3f0c4d90dba047108761 100644 --- a/lib/web/mage/backend/validation.js +++ b/lib/web/mage/backend/validation.js @@ -126,7 +126,8 @@ context: $('body'), success: $.proxy(this._onSuccess, this), error: $.proxy(this._onError, this), - showLoader: true + showLoader: true, + dontHide: true }); }, diff --git a/lib/web/mage/loader_old.js b/lib/web/mage/loader_old.js index dc53d813090e77d3a9ad545b9b242f5e310ce597..9468f8818836daaef39f0197552bf456fc624124 100644 --- a/lib/web/mage/loader_old.js +++ b/lib/web/mage/loader_old.js @@ -187,7 +187,7 @@ } }, _onAjaxComplete: function(e, jqxhr, settings) { - if (settings && settings.showLoader) { + if (settings && settings.showLoader && !settings.dontHide) { this._getJqueryObj(settings.loaderContext).trigger('processStop'); } } diff --git a/lib/web/mage/mage.js b/lib/web/mage/mage.js index dac3a1f72ec92b83c99cfb78378076677796f93e..2a87af8bbe2af701049f1b2f954b290c4d77c884 100644 --- a/lib/web/mage/mage.js +++ b/lib/web/mage/mage.js @@ -79,13 +79,6 @@ }); }; - window.onerror = function (message) { - if ($.mage.isDevMode()) { - $('[data-container-for=messages]').append( - '<div class="messages"><div class="message error" data-role="js-error"><div>' + message + '</div></div></div>' - ); - } - }; /** * Storage of declared resources diff --git a/lib/web/mage/requirejs/resolver.js b/lib/web/mage/requirejs/resolver.js new file mode 100644 index 0000000000000000000000000000000000000000..497501f70a415804590db52a0b4a7e857e6c48ad --- /dev/null +++ b/lib/web/mage/requirejs/resolver.js @@ -0,0 +1,130 @@ +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ + /*global require:true*/ +(function(factory){ + if( require && define && define.amd ){ + factory( require ); + } +}(function(require){ + + var context = require.s.contexts._, + completeLoad = context.completeLoad, + registry = context.registry, + resolver, + listeners; + + listeners = {}; + + /** + * Method that triggers all of the attached 'onAllResolved' callbacks. + * @protected + */ + function trigger(){ + var namespace, + handlers, + hi, + hl; + + resolver.resolved = true; + + for( namespace in listeners ){ + handlers = listeners[ namespace ]; + hl = handlers.length; + + for( hi = 0; hi < hl; hi++ ){ + handlers[ hi ](); + } + + handlers.splice( 0, hl ); + } + + } + + resolver = { + + /** + * Checks wethre all of the current dependencies are resolved. + * returns {Boolean} + */ + isResolved: function(){ + return !Object.keys( registry ).length; + }, + + + /** + * Attaches event handler for the 'onAllResolved' event. + * @param {String} [namespace = _default] - Namespace of the handler. + * @param {Function} callback - Events' callback function. + */ + on: function( namespace, callback ){ + var handlers; + + if( arguments.length === 1 && typeof namespace === 'function' ){ + callback = namespace; + namespace = '_default'; + } + + if( this.isResolved() ){ + callback(); + } + else{ + handlers = listeners[namespace] = listeners[namespace] || []; + + handlers.push( callback ); + } + + return resolver; + }, + + /** + * Checks for the attached listeners. + * @praram {String} [namespace = _default] - Namespace of the handler. + * @return {Boolean} + */ + hasListeners: function( namespace ){ + var handlers; + + if( typeof namespace === 'undefined' ){ + namespace = '_default'; + } + + handlers = listeners[namespace]; + + return handlers && handlers.length; + } + }; + + + /** + * Inner requirejs's context method that fires whenever script has been loaded. + */ + context.completeLoad = function(){ + completeLoad.apply(context, arguments); + + if( resolver.isResolved() ){ + trigger(); + } + }; + + require.resolver = resolver; +})); diff --git a/pub/errors/404.php b/pub/errors/404.php index 1fa58c285e0b4b0892ff3e709cb5a2d729967dba..a301c545ce21226fc420d70cf96fee096788a9cc 100644 --- a/pub/errors/404.php +++ b/pub/errors/404.php @@ -22,14 +22,9 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once __DIR__ . '/../../app/bootstrap.php'; -require_once 'processor.php'; +require_once 'processorFactory.php'; -$processor = new \Magento\Framework\Error\Processor( - new \Magento\Framework\App\Response\Http( - new \Magento\Framework\Stdlib\Cookie(), - new \Magento\Framework\App\Http\Context() - ) -); +$processorFactory = new \Magento\Framework\Error\ProcessorFactory(); +$processor = $processorFactory->createProcessor(); $response = $processor->process404(); $response->sendResponse(); diff --git a/pub/errors/503.php b/pub/errors/503.php index d975494a64c9d3f390d15a71a3786f748543e4a4..740f25089754b230f96030b0c12adf945fa65950 100644 --- a/pub/errors/503.php +++ b/pub/errors/503.php @@ -22,14 +22,9 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once __DIR__ . '/../../app/bootstrap.php'; -require_once 'processor.php'; +require_once 'processorFactory.php'; -$processor = new \Magento\Framework\Error\Processor( - new \Magento\Framework\App\Response\Http( - new \Magento\Framework\Stdlib\Cookie(), - new \Magento\Framework\App\Http\Context() - ) -); +$processorFactory = new \Magento\Framework\Error\ProcessorFactory(); +$processor = $processorFactory->createProcessor(); $response = $processor->process503(); $response->sendResponse(); diff --git a/pub/errors/noCache.php b/pub/errors/noCache.php index 991353cad2965c9c2240a178a3f8a9cce40040e0..b0c2028dbb6c5d8725bb84737ed0bf0cc2f75487 100644 --- a/pub/errors/noCache.php +++ b/pub/errors/noCache.php @@ -22,13 +22,9 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once 'processor.php'; +require_once 'processorFactory.php'; -$processor = new \Magento\Framework\Error\Processor( - new \Magento\Framework\App\Response\Http( - new \Magento\Framework\Stdlib\Cookie(), - new \Magento\Framework\App\Http\Context() - ) -); +$processorFactory = new \Magento\Framework\Error\ProcessorFactory(); +$processor = $processorFactory->createProcessor(); $response = $processor->processNoCache(); $response->sendResponse(); diff --git a/pub/errors/processor.php b/pub/errors/processor.php index 8325828bf8c7429a1943c3ffd4f43c1ca8a4aaf6..a03bf221ac57f7d5af392f62a2dd799ce1e4a3a2 100644 --- a/pub/errors/processor.php +++ b/pub/errors/processor.php @@ -139,7 +139,7 @@ class Processor /** * Http response * - * @var Magento\Framework\App\Response\Http + * @var \Magento\Framework\App\Response\Http */ protected $_response; diff --git a/app/code/Magento/Sales/Service/V1/OrderStatusHistoryAddInterface.php b/pub/errors/processorFactory.php similarity index 64% rename from app/code/Magento/Sales/Service/V1/OrderStatusHistoryAddInterface.php rename to pub/errors/processorFactory.php index d02279df3f8c04acb0ae8dd839f843cef87676b0..290fafb42d5c3262e496a40baadd7ed646c138e5 100644 --- a/app/code/Magento/Sales/Service/V1/OrderStatusHistoryAddInterface.php +++ b/pub/errors/processorFactory.php @@ -21,22 +21,26 @@ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Sales\Service\V1; +namespace Magento\Framework\Error; -use Magento\Sales\Service\V1\Data\OrderStatusHistory; +require_once __DIR__ . '/../../app/bootstrap.php'; +require_once 'processor.php'; /** - * Interface OrderCommentsAddInterface - * @package Magento\Sales\Service\V1 + * Error processor factory */ -interface OrderStatusHistoryAddInterface +class ProcessorFactory { /** - * Invoke service + * Create Processor * - * @param int $id - * @param \Magento\Sales\Service\V1\Data\OrderStatusHistory $statusHistory - * @return bool + * @return Processor */ - public function invoke($id, OrderStatusHistory $statusHistory); + public function createProcessor() + { + $locatorFactory = new \Magento\Framework\App\ObjectManagerFactory(); + $locator = $locatorFactory->create(BP, $_SERVER); + $response = $locator->create('\Magento\Framework\App\Response\Http'); + return new Processor($response); + } } diff --git a/pub/errors/report.php b/pub/errors/report.php index fd18d1929173a3b13db4269a80e6c4cf4116267b..7ed45f7b4b8325c6bf7f2921fb19eca1c758ddcd 100644 --- a/pub/errors/report.php +++ b/pub/errors/report.php @@ -22,15 +22,11 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once __DIR__ . '/../../app/bootstrap.php'; -require_once 'processor.php'; +require_once 'processorFactory.php'; -$processor = new \Magento\Framework\Error\Processor( - new \Magento\Framework\App\Response\Http( - new \Magento\Framework\Stdlib\Cookie(), - new \Magento\Framework\App\Http\Context() - ) -); + +$processorFactory = new \Magento\Framework\Error\ProcessorFactory(); +$processor = $processorFactory->createProcessor(); if (isset($reportData) && is_array($reportData)) { $processor->saveReport($reportData); }