diff --git a/app/code/Magento/Authorizenet/Model/Authorizenet.php b/app/code/Magento/Authorizenet/Model/Authorizenet.php index 745d3b048125514eaa0c5f8965da0ef2ad98642c..f7ec2778ad5054815043c0608317690baff2845d 100644 --- a/app/code/Magento/Authorizenet/Model/Authorizenet.php +++ b/app/code/Magento/Authorizenet/Model/Authorizenet.php @@ -5,6 +5,8 @@ */ namespace Magento\Authorizenet\Model; +use Magento\Payment\Model\Method\Logger; + /** * @SuppressWarnings(PHPMD.TooManyFields) * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) @@ -54,6 +56,8 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc const RESPONSE_REASON_CODE_PENDING_REVIEW_DECLINED = 254; + const PAYMENT_UPDATE_STATUS_CODE_SUCCESS = 'Ok'; + /** * Transaction fraud state key */ @@ -95,6 +99,11 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc */ protected $transactionDetails = []; + /** + * {@inheritdoc} + */ + protected $_debugReplacePrivateDataKeys = ['merchantAuthentication', 'x_login']; + /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry @@ -364,11 +373,11 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc */ protected function postRequest(\Magento\Authorizenet\Model\Request $request) { - $debugData = ['request' => $request->getData()]; $result = $this->responseFactory->create(); $client = new \Magento\Framework\HTTP\ZendClient(); - $uri = $this->getConfigData('cgi_url'); - $client->setUri($uri ? $uri : self::CGI_URL); + $url = $this->getConfigData('cgi_url') ?: self::CGI_URL; + $debugData = ['url' => $url, 'request' => $request->getData()]; + $client->setUri($url); $client->setConfig(['maxredirects' => 0, 'timeout' => 30]); foreach ($request->getData() as $key => $value) { @@ -381,21 +390,21 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc try { $response = $client->request(); + $responseBody = $response->getBody(); + $debugData['response'] = $responseBody; } catch (\Exception $e) { $result->setXResponseCode(-1) ->setXResponseReasonCode($e->getCode()) ->setXResponseReasonText($e->getMessage()); - $debugData['result'] = $result->getData(); - $this->_debug($debugData); throw new \Magento\Framework\Exception\LocalizedException( $this->dataHelper->wrapGatewayError($e->getMessage()) ); + } finally { + $this->_debug($debugData); } - $responseBody = $response->getBody(); $r = explode(self::RESPONSE_DELIM_CHAR, $responseBody); - if ($r) { $result->setXResponseCode((int)str_replace('"', '', $r[0])) ->setXResponseReasonCode((int)str_replace('"', '', $r[2])) @@ -413,10 +422,6 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc __('Something went wrong in the payment gateway.') ); } - - $debugData['result'] = $result->getData(); - $this->_debug($debugData); - return $result; } @@ -473,24 +478,35 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc ); $client = new \Magento\Framework\HTTP\ZendClient(); - $uri = $this->getConfigData('cgi_url_td'); - $client->setUri($uri ? $uri : self::CGI_URL_TD); + $url = $this->getConfigData('cgi_url_td') ?: self::CGI_URL_TD; + $client->setUri($url); $client->setConfig(['timeout' => 45]); $client->setHeaders(['Content-Type: text/xml']); $client->setMethod(\Zend_Http_Client::POST); $client->setRawData($requestBody); - $debugData = ['request' => $requestBody]; + $debugData = ['url' => $url, 'request' => $this->removePrivateDataFromXml($requestBody)]; try { $responseBody = $client->request()->getBody(); - $debugData['result'] = $responseBody; - $this->_debug($debugData); + $debugData['response'] = $responseBody; libxml_use_internal_errors(true); $responseXmlDocument = new \Magento\Framework\Simplexml\Element($responseBody); libxml_use_internal_errors(false); } catch (\Exception $e) { - throw new \Magento\Framework\Exception\LocalizedException(__('Payment updating error.')); + throw new \Magento\Framework\Exception\LocalizedException( + __('Unable to get transaction details. Try again later.') + ); + } finally { + $this->_debug($debugData); + } + + if (!isset($responseXmlDocument->messages->resultCode) + || $responseXmlDocument->messages->resultCode != static::PAYMENT_UPDATE_STATUS_CODE_SUCCESS + ) { + throw new \Magento\Framework\Exception\LocalizedException( + __('Unable to get transaction details. Try again later.') + ); } $this->transactionDetails[$transactionId] = $responseXmlDocument; @@ -509,4 +525,20 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc ? $this->transactionDetails[$transactionId] : $this->loadTransactionDetails($transactionId); } + + /** + * Remove nodes with private data from XML string + * + * Uses values from $_debugReplacePrivateDataKeys property + * + * @param string $xml + * @return string + */ + protected function removePrivateDataFromXml($xml) + { + foreach ($this->getDebugReplacePrivateDataKeys() as $key) { + $xml = preg_replace(sprintf('~(?<=<%s>).*?(?=</%s>)~', $key, $key), Logger::DEBUG_KEYS_MASK, $xml); + } + return $xml; + } } diff --git a/app/code/Magento/Authorizenet/Model/Directpost.php b/app/code/Magento/Authorizenet/Model/Directpost.php index 71e81e1727e8b24259510278b2ae6bb1e737293b..7b8c6f10df3ae465556228c26c819a8c46cddc28 100644 --- a/app/code/Magento/Authorizenet/Model/Directpost.php +++ b/app/code/Magento/Authorizenet/Model/Directpost.php @@ -726,17 +726,21 @@ class Directpost extends \Magento\Authorizenet\Model\Authorizenet implements Tra */ protected function processPaymentFraudStatus(\Magento\Sales\Model\Order\Payment $payment) { - $fraudDetailsResponse = $payment->getMethodInstance() - ->fetchTransactionFraudDetails($this->getResponse()->getXTransId()); - $fraudData = $fraudDetailsResponse->getData(); + try { + $fraudDetailsResponse = $payment->getMethodInstance() + ->fetchTransactionFraudDetails($this->getResponse()->getXTransId()); + $fraudData = $fraudDetailsResponse->getData(); - if (empty($fraudData)) { - $payment->setIsFraudDetected(false); - return $this; - } + if (empty($fraudData)) { + $payment->setIsFraudDetected(false); + return $this; + } - $payment->setIsFraudDetected(true); - $payment->setAdditionalInformation('fraud_details', $fraudData); + $payment->setIsFraudDetected(true); + $payment->setAdditionalInformation('fraud_details', $fraudData); + } catch (\Exception $e) { + //this request is optional + } return $this; } @@ -749,23 +753,27 @@ class Directpost extends \Magento\Authorizenet\Model\Authorizenet implements Tra */ protected function addStatusComment(\Magento\Sales\Model\Order\Payment $payment) { - $transactionId = $this->getResponse()->getXTransId(); - $data = $payment->getMethodInstance()->getTransactionDetails($transactionId); - $transactionStatus = (string)$data->transaction->transactionStatus; - $fdsFilterAction = (string)$data->transaction->FDSFilterAction; - - if ($payment->getIsTransactionPending()) { - $message = 'Amount of %1 is pending approval on the gateway.<br/>' - . 'Transaction "%2" status is "%3".<br/>' - . 'Transaction FDS Filter Action is "%4"'; - $message = __( - $message, - $payment->getOrder()->getBaseCurrency()->formatTxt($this->getResponse()->getXAmount()), - $transactionId, - $this->dataHelper->getTransactionStatusLabel($transactionStatus), - $this->dataHelper->getFdsFilterActionLabel($fdsFilterAction) - ); - $payment->getOrder()->addStatusHistoryComment($message); + try { + $transactionId = $this->getResponse()->getXTransId(); + $data = $payment->getMethodInstance()->getTransactionDetails($transactionId); + $transactionStatus = (string)$data->transaction->transactionStatus; + $fdsFilterAction = (string)$data->transaction->FDSFilterAction; + + if ($payment->getIsTransactionPending()) { + $message = 'Amount of %1 is pending approval on the gateway.<br/>' + . 'Transaction "%2" status is "%3".<br/>' + . 'Transaction FDS Filter Action is "%4"'; + $message = __( + $message, + $payment->getOrder()->getBaseCurrency()->formatTxt($this->getResponse()->getXAmount()), + $transactionId, + $this->dataHelper->getTransactionStatusLabel($transactionStatus), + $this->dataHelper->getFdsFilterActionLabel($fdsFilterAction) + ); + $payment->getOrder()->addStatusHistoryComment($message); + } + } catch (\Exception $e) { + //this request is optional } return $this; } diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php index 300b9bd89f898fb92bf574df310b9a1858cd6b88..21549a5862ae9420010f50d906cf26d9029cccf7 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php +++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php @@ -18,12 +18,37 @@ class Custom extends \Magento\Framework\App\Config\Value const CONFIG_SCOPE_ID = 0; const XML_PATH_UNSECURE_BASE_URL = 'web/unsecure/base_url'; - const XML_PATH_SECURE_BASE_URL = 'web/secure/base_url'; - const XML_PATH_UNSECURE_BASE_LINK_URL = 'web/unsecure/base_link_url'; - const XML_PATH_SECURE_BASE_LINK_URL = 'web/secure/base_link_url'; + const XML_PATH_CURRENCY_OPTIONS_BASE = 'currency/options/base'; + const XML_PATH_ADMIN_SECURITY_USEFORMKEY = 'admin/security/use_form_key'; + const XML_PATH_MAINTENANCE_MODE = 'maintenance_mode'; + const XML_PATH_WEB_COOKIE_COOKIE_LIFETIME = 'web/cookie/cookie_lifetime'; + const XML_PATH_WEB_COOKIE_COOKE_PATH = 'web/cookie/cookie_path'; + const XML_PATH_WEB_COOKIE_COOKIE_DOMAIN = 'web/cookie/cookie_domain'; + const XML_PATH_WEB_COOKIE_HTTPONLY = 'web/cookie/cookie_httponly'; + const XML_PATH_WEB_COOKIE_RESTRICTION = 'web/cookie/cookie_restriction'; + const XML_PATH_GENERAL_LOCALE_TIMEZONE = 'general/locale/timezone'; + const XML_PATH_GENERAL_LOCALE_CODE = 'general/locale/code'; + const XML_PATH_GENERAL_COUNTRY_DEFAULT = 'general/country/default'; + const XML_PATH_SYSTEM_BACKUP_ENABLED = 'system/backup/enabled'; + const XML_PATH_DEV_JS_MERGE_FILES = 'dev/js/merge_files'; + const XML_PATH_DEV_JS_MINIFY_FILES = 'dev/js/minify_files'; + const XML_PATH_DEV_CSS_MERGE_CSS_FILES = 'dev/css/merge_css_files'; + const XML_PATH_DEV_CSS_MINIFY_FILES = 'dev/css/minify_files'; + const XML_PATH_DEV_IMAGE_DEFAULT_ADAPTER = 'dev/image/default_adapter'; + const XML_PATH_WEB_SESSION_USE_FRONTEND_SID = 'web/session/use_frontend_sid'; + const XML_PATH_WEB_SESSION_USE_HTTP_X_FORWARDED_FOR = 'web/session/use_http_x_forwarded_for'; + const XML_PATH_WEB_SESSION_USE_HTTP_VIA = 'web/session/use_http_via'; + const XML_PATH_WEB_SESSION_USE_REMOTE_ADDR = 'web/session/use_remote_addr'; + const XML_PATH_WEB_SESSION_USE_HTTP_USER_AGENT = 'web/session/use_http_user_agent'; + const XML_PATH_CATALOG_FRONTEND_FLAT_CATALOG_CATEGORY = 'catalog/frontend/flat_catalog_category'; + const XML_PATH_CATALOG_FRONTEND_FLAT_CATALOG_PRODUCT = 'catalog/frontend/flat_catalog_product'; + const XML_PATH_TAX_WEEE_ENABLE = 'tax/weee/enable'; + const XML_PATH_CATALOG_SEARCH_ENGINE = 'catalog/search/engine'; + const XML_PATH_CARRIERS = 'carriers'; + const XML_PATH_PAYMENT = 'payment'; /* @var \Magento\Framework\App\Config\Storage\WriterInterface */ protected $_configWriter; diff --git a/app/code/Magento/Payment/Model/Method/AbstractMethod.php b/app/code/Magento/Payment/Model/Method/AbstractMethod.php index 81d0afc88763fe9a1f7ed09a049770ccbfc55767..9d8ba1fffd62c5239ea8735c38a28916d4e67a5f 100644 --- a/app/code/Magento/Payment/Model/Method/AbstractMethod.php +++ b/app/code/Magento/Payment/Model/Method/AbstractMethod.php @@ -58,6 +58,8 @@ abstract class AbstractMethod extends \Magento\Framework\Model\AbstractExtensibl const CHECK_ZERO_TOTAL = 'zero_total'; + const GROUP_OFFLINE = 'offline'; + /** * @var string */ diff --git a/app/code/Magento/Store/App/Response/Redirect.php b/app/code/Magento/Store/App/Response/Redirect.php index 96e46e47432a126dc78b8af324733ebe16dbc64e..1b041e6f05e487ad93c88c6d95da8c9ce1bf98cf 100644 --- a/app/code/Magento/Store/App/Response/Redirect.php +++ b/app/code/Magento/Store/App/Response/Redirect.php @@ -7,6 +7,8 @@ */ namespace Magento\Store\App\Response; +use Magento\Store\Api\StoreResolverInterface; + class Redirect implements \Magento\Framework\App\Response\RedirectInterface { /** @@ -94,6 +96,8 @@ class Redirect implements \Magento\Framework\App\Response\RedirectInterface if (!$this->_isUrlInternal($refererUrl)) { $refererUrl = $this->_storeManager->getStore()->getBaseUrl(); + } else { + $refererUrl = $this->normalizeRefererUrl($refererUrl); } return $refererUrl; } @@ -210,4 +214,57 @@ class Redirect implements \Magento\Framework\App\Response\RedirectInterface } return false; } + + /** + * Normalize path to avoid wrong store change + * + * @param string $refererUrl + * @return string + */ + protected function normalizeRefererUrl($refererUrl) + { + if (!$refererUrl || !filter_var($refererUrl, FILTER_VALIDATE_URL)) { + return $refererUrl; + } + + $redirectParsedUrl = parse_url($refererUrl); + $refererQuery = []; + + if (!isset($redirectParsedUrl['query'])) { + return $refererUrl; + } + + parse_str($redirectParsedUrl['query'], $refererQuery); + + $refererQuery = $this->normalizeRefererQueryParts($refererQuery); + $normalizedUrl = $redirectParsedUrl['scheme'] + . '://' + . $redirectParsedUrl['host'] + . (isset($redirectParsedUrl['port']) ? ':' . $redirectParsedUrl['port'] : '') + . $redirectParsedUrl['path'] + . ($refererQuery ? '?' . http_build_query($refererQuery) : ''); + + return $normalizedUrl; + } + + /** + * Normalize special parts of referer query + * + * @param array $refererQuery + * @return array + */ + protected function normalizeRefererQueryParts($refererQuery) + { + $store = $this->_storeManager->getStore(); + + if ( + $store + && !empty($refererQuery[StoreResolverInterface::PARAM_NAME]) + && ($refererQuery[StoreResolverInterface::PARAM_NAME] !== $store->getCode()) + ) { + $refererQuery[StoreResolverInterface::PARAM_NAME] = $store->getCode(); + } + + return $refererQuery; + } } diff --git a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-login.xml b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-login.xml index 5c7c757a560dfd7ec48b78f5701e373d0a85674f..bba3e8c3cc482d1c4bd6975edc579ed3714a1571 100644 --- a/app/code/Magento/Theme/view/adminhtml/page_layout/admin-login.xml +++ b/app/code/Magento/Theme/view/adminhtml/page_layout/admin-login.xml @@ -7,6 +7,7 @@ --> <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_layout.xsd"> <container name="root" htmlTag="section" htmlClass="page-wrapper"> + <container name="after.body.start" as="after.body.start" label="Page Top" before="-"/> <container name="login.header" htmlTag="header" htmlClass="login-header"/> <container name="login.content" htmlTag="div" htmlClass="login-content"/> <container name="login.footer" htmlTag="footer" htmlClass="login-footer"/> diff --git a/app/code/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Chooser/Container.php b/app/code/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Chooser/Container.php index 1b1d5a6cf68f9e53cd87bfa66b7f164ccbf32102..2a56d336ef8ab1fd7614e15d54eef3c796f0438f 100644 --- a/app/code/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Chooser/Container.php +++ b/app/code/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Chooser/Container.php @@ -15,6 +15,15 @@ namespace Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser; */ class Container extends \Magento\Framework\View\Element\Html\Select { + /**#@+ + * Frontend page layouts + */ + const PAGE_LAYOUT_1COLUMN = '1column-center'; + const PAGE_LAYOUT_2COLUMNS_LEFT = '2columns-left'; + const PAGE_LAYOUT_2COLUMNS_RIGHT = '2columns-right'; + const PAGE_LAYOUT_3COLUMNS = '3columns'; + /**#@-*/ + /** * @var \Magento\Framework\View\Layout\ProcessorFactory */ @@ -73,7 +82,10 @@ class Container extends \Magento\Framework\View\Element\Html\Select $layoutProcessor->load(); $pageLayoutProcessor = $this->_layoutProcessorFactory->create($layoutMergeParams); - $pageLayoutProcessor->addHandle($layoutProcessor->getPageLayout()); + $pageLayouts = $this->getPageLayouts(); + foreach ($pageLayouts as $pageLayout) { + $pageLayoutProcessor->addHandle($pageLayout); + } $pageLayoutProcessor->load(); $containers = array_merge($pageLayoutProcessor->getContainers(), $layoutProcessor->getContainers()); @@ -106,4 +118,19 @@ class Container extends \Magento\Framework\View\Element\Html\Select $themeCollection = $this->_themesFactory->create(); return $themeCollection->getItemById($themeId); } + + /** + * Retrieve page layouts + * + * @return array + */ + protected function getPageLayouts() + { + return [ + self::PAGE_LAYOUT_1COLUMN, + self::PAGE_LAYOUT_2COLUMNS_LEFT, + self::PAGE_LAYOUT_2COLUMNS_RIGHT, + self::PAGE_LAYOUT_3COLUMNS, + ]; + } } diff --git a/app/code/Magento/Widget/Test/Unit/Block/Adminhtml/Widget/Instance/Edit/Chooser/AbstractContainerTest.php b/app/code/Magento/Widget/Test/Unit/Block/Adminhtml/Widget/Instance/Edit/Chooser/AbstractContainerTest.php new file mode 100644 index 0000000000000000000000000000000000000000..1553a9654b41a57e8da202335de598f9df99bd7c --- /dev/null +++ b/app/code/Magento/Widget/Test/Unit/Block/Adminhtml/Widget/Instance/Edit/Chooser/AbstractContainerTest.php @@ -0,0 +1,114 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Widget\Test\Unit\Block\Adminhtml\Widget\Instance\Edit\Chooser; + +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; + +abstract class AbstractContainerTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Framework\Event\Manager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $eventManagerMock; + + /** + * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $scopeConfigMock; + + /** + * @var \Magento\Backend\Block\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \Magento\Theme\Model\Resource\Theme\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $themeCollectionMock; + + /** + * @var \Magento\Theme\Model\Resource\Theme\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $themeCollectionFactoryMock; + + /** + * @var \Magento\Theme\Model\Theme|\PHPUnit_Framework_MockObject_MockObject + */ + protected $themeMock; + + /** + * @var \Magento\Framework\View\Layout\ProcessorFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $layoutProcessorFactoryMock; + + /** + * @var \Magento\Framework\View\Model\Layout\Merge|\PHPUnit_Framework_MockObject_MockObject + */ + protected $layoutMergeMock; + + /** + * @var \Magento\Framework\Escaper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $escaperMock; + + /** + * @var ObjectManagerHelper + */ + protected $objectManagerHelper; + + /** + * @return void + */ + protected function setUp() + { + $this->objectManagerHelper = new ObjectManagerHelper($this); + + $this->eventManagerMock = $this->getMockBuilder('Magento\Framework\Event\Manager') + ->setMethods(['dispatch']) + ->disableOriginalConstructor() + ->getMock(); + $this->scopeConfigMock = $this->getMockBuilder('Magento\Framework\App\Config') + ->setMethods(['getValue']) + ->disableOriginalConstructor() + ->getMock(); + + $this->themeCollectionFactoryMock = $this->getMock( + 'Magento\Theme\Model\Resource\Theme\CollectionFactory', + ['create'], + [], + '', + false + ); + $this->themeCollectionMock = $this->getMockBuilder('Magento\Theme\Model\Resource\Theme\Collection') + ->disableOriginalConstructor() + ->setMethods(['getItemById']) + ->getMock(); + $this->themeMock = $this->getMockBuilder('Magento\Theme\Model\Theme')->disableOriginalConstructor()->getMock(); + + $this->layoutProcessorFactoryMock = $this->getMock( + 'Magento\Framework\View\Layout\ProcessorFactory', + ['create'], + [], + '', + false + ); + + $this->layoutMergeMock = $this->getMockBuilder('Magento\Framework\View\Model\Layout\Merge') + ->setMethods(['addPageHandles', 'load', 'getContainers']) + ->disableOriginalConstructor() + ->getMock(); + + $this->escaperMock = $this->getMock('Magento\Framework\Escaper', ['escapeHtml'], [], '', false); + + $this->contextMock = $this->getMockBuilder('Magento\Backend\Block\Context') + ->setMethods(['getEventManager', 'getScopeConfig', 'getEscaper']) + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->once())->method('getEventManager')->willReturn($this->eventManagerMock); + $this->contextMock->expects($this->once())->method('getScopeConfig')->willReturn($this->scopeConfigMock); + $this->contextMock->expects($this->once())->method('getEscaper')->willReturn($this->escaperMock); + } +} diff --git a/app/code/Magento/Widget/Test/Unit/Block/Adminhtml/Widget/Instance/Edit/Chooser/ContainerTest.php b/app/code/Magento/Widget/Test/Unit/Block/Adminhtml/Widget/Instance/Edit/Chooser/ContainerTest.php new file mode 100644 index 0000000000000000000000000000000000000000..9316be68fa739718568cf0dcc874fc881c6da6fa --- /dev/null +++ b/app/code/Magento/Widget/Test/Unit/Block/Adminhtml/Widget/Instance/Edit/Chooser/ContainerTest.php @@ -0,0 +1,440 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Widget\Test\Unit\Block\Adminhtml\Widget\Instance\Edit\Chooser; + +class ContainerTest extends AbstractContainerTest +{ + /** + * @var \Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container + */ + protected $containerBlock; + + /** + * @return void + */ + protected function setUp() + { + parent::setUp(); + + $this->containerBlock = $this->objectManagerHelper->getObject( + 'Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container', + [ + 'context' => $this->contextMock, + 'themesFactory' => $this->themeCollectionFactoryMock, + 'layoutProcessorFactory' => $this->layoutProcessorFactoryMock + ] + ); + } + + /** + * @return void + */ + public function testToHtmlCatalogProductsListGroupedProduct() + { + $pageLayoutProcessorContainers = [ + 'after.body.start' => 'Page Top', + 'columns.top' => 'Before Main Columns', + 'main' => 'Main Content Container', + 'page.bottom' => 'Before Page Footer Container', + 'before.body.end' => 'Page Bottom', + 'header.container' => 'Page Header Container', + 'page.top' => 'After Page Header', + 'footer-container' => 'Page Footer Container', + 'sidebar.main' => 'Sidebar Main', + 'sidebar.additional' => 'Sidebar Additional' + ]; + $layoutProcessorContainers = [ + 'product.info.virtual.extra' => 'Product Extra Info', + 'header.panel' => 'Page Header Panel', + 'header-wrapper' => 'Page Header', + 'top.container' => 'After Page Header Top', + 'content.top' => 'Main Content Top', + 'content' => 'Main Content Area', + 'content.aside' => 'Main Content Aside', + 'content.bottom' => 'Main Content Bottom', + 'page.bottom' => 'Before Page Footer', + 'footer' => 'Page Footer', + 'cms_footer_links_container' => 'CMS Footer Links' + ]; + $allowedContainers = ['content', 'content.top', 'content.bottom']; + $expectedHtml = '<select name="block" id="" class="required-entry select" title="" ' + . 'onchange="WidgetInstance.loadSelectBoxByType(\'block_template\', this.up(\'div.group_container\'), ' + . 'this.value)"><option value="" selected="selected" >-- Please Select --</option><option value="content" >' + . 'Main Content Area</option><option value="content.bottom" >Main Content Bottom</option>' + . '<option value="content.top" >Main Content Top</option></select>'; + + $this->eventManagerMock->expects($this->once())->method('dispatch')->willReturn(true); + $this->scopeConfigMock->expects($this->once())->method('getValue')->willReturn(false); + + $this->themeCollectionFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($this->themeCollectionMock); + $this->themeCollectionMock->expects($this->once())->method('getItemById')->willReturn($this->themeMock); + + $this->layoutProcessorFactoryMock->expects($this->exactly(2)) + ->method('create') + ->willReturn($this->layoutMergeMock); + $this->layoutMergeMock->expects($this->exactly(2))->method('addPageHandles')->willReturn(true); + $this->layoutMergeMock->expects($this->exactly(2))->method('load')->willReturnSelf(); + $this->layoutMergeMock->expects($this->any())->method('addHandle')->willReturnSelf(); + $this->layoutMergeMock->expects($this->any())->method('getContainers')->willReturnOnConsecutiveCalls( + $pageLayoutProcessorContainers, + $layoutProcessorContainers + ); + + $this->containerBlock->setAllowedContainers($allowedContainers); + $this->containerBlock->setValue(''); + + $this->escaperMock->expects($this->any())->method('escapeHtml')->willReturnMap( + [ + ['', null, ''], + ['-- Please Select --', null, '-- Please Select --'], + ['content', null, 'content'], + ['Main Content Area', null, 'Main Content Area'], + ['content.bottom', null, 'content.bottom'], + ['Main Content Bottom', null, 'Main Content Bottom'], + ['content.top', null, 'content.top'], + ['Main Content Top', null, 'Main Content Top'] + ] + ); + + $this->assertEquals($expectedHtml, $this->containerBlock->toHtml()); + } + + /** + * @return void + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + public function testToHtmlCatalogCategoryLinkSimpleProduct() + { + $pageLayoutProcessorContainers = [ + 'after.body.start' => 'Page Top', + 'columns.top' => 'Before Main Columns', + 'main' => 'Main Content Container', + 'page.bottom' => 'Before Page Footer Container', + 'before.body.end' => 'Page Bottom', + 'header.container' => 'Page Header Container', + 'page.top' => 'After Page Header', + 'footer-container' => 'Page Footer Container', + 'sidebar.main' => 'Sidebar Main', + 'sidebar.additional' => 'Sidebar Additional' + ]; + $layoutProcessorContainers = [ + 'product.info.simple.extra' => 'Product Extra Info', + 'header.panel' => 'Page Header Panel', + 'header-wrapper' => 'Page Header', + 'top.container' => 'After Page Header Top', + 'content.top' => 'Main Content Top', + 'content' => 'Main Content Area', + 'content.aside' => 'Main Content Aside', + 'content.bottom' => 'Main Content Bottom', + 'page.bottom' => 'Before Page Footer', + 'footer' => 'Page Footer', + 'cms_footer_links_container' => 'CMS Footer Links' + ]; + $allowedContainers = []; + $expectedHtml = '<select name="block" id="" class="required-entry select" title="" ' + . 'onchange="WidgetInstance.loadSelectBoxByType(\'block_template\', this.up(\'div.group_container\'), ' + . 'this.value)"><option value="" selected="selected" >-- Please Select --</option>' + . '<option value="page.top" >After Page Header</option><option value="top.container" >After Page Header Top' + . '</option><option value="columns.top" >Before Main Columns</option><option value="page.bottom" >' + . 'Before Page Footer</option><option value="cms_footer_links_container" >CMS Footer Links</option>' + . '<option value="content" >Main Content Area</option><option value="content.aside" >Main Content Aside' + . '</option><option value="content.bottom" >Main Content Bottom</option><option value="main" >' + . 'Main Content Container</option><option value="content.top" >Main Content Top</option>' + . '<option value="before.body.end" >Page Bottom</option><option value="footer" >Page Footer</option>' + . '<option value="footer-container" >Page Footer Container</option><option value="header-wrapper" >' + . 'Page Header</option><option value="header.container" >Page Header Container</option>' + . '<option value="header.panel" >Page Header Panel</option><option value="after.body.start" >' + . 'Page Top</option><option value="product.info.simple.extra" >Product Extra Info</option>' + . '<option value="sidebar.additional" >Sidebar Additional</option>' + . '<option value="sidebar.main" >Sidebar Main</option></select>'; + + $this->eventManagerMock->expects($this->once())->method('dispatch')->willReturn(true); + $this->scopeConfigMock->expects($this->once())->method('getValue')->willReturn(false); + + $this->themeCollectionFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($this->themeCollectionMock); + $this->themeCollectionMock->expects($this->once())->method('getItemById')->willReturn($this->themeMock); + + $this->layoutProcessorFactoryMock->expects($this->exactly(2)) + ->method('create') + ->willReturn($this->layoutMergeMock); + $this->layoutMergeMock->expects($this->exactly(2))->method('addPageHandles')->willReturn(true); + $this->layoutMergeMock->expects($this->exactly(2))->method('load')->willReturnSelf(); + $this->layoutMergeMock->expects($this->any())->method('addHandle')->willReturnSelf(); + $this->layoutMergeMock->expects($this->any())->method('getContainers')->willReturnOnConsecutiveCalls( + $pageLayoutProcessorContainers, + $layoutProcessorContainers + ); + + $this->containerBlock->setAllowedContainers($allowedContainers); + $this->containerBlock->setValue(''); + + $this->escaperMock->expects($this->any())->method('escapeHtml')->willReturnMap( + [ + ['', null, ''], + ['-- Please Select --', null, '-- Please Select --'], + ['page.top', null, 'page.top'], + ['After Page Header', null, 'After Page Header'], + ['top.container', null, 'top.container'], + ['After Page Header Top', null, 'After Page Header Top'], + ['columns.top', null, 'columns.top'], + ['Before Main Columns', null, 'Before Main Columns'], + ['page.bottom', null, 'page.bottom'], + ['Before Page Footer', null, 'Before Page Footer'], + ['cms_footer_links_container', null, 'cms_footer_links_container'], + ['CMS Footer Links', null, 'CMS Footer Links'], + ['content', null, 'content'], + ['Main Content Area', null, 'Main Content Area'], + ['content.aside', null, 'content.aside'], + ['Main Content Aside', null, 'Main Content Aside'], + ['content.bottom', null, 'content.bottom'], + ['Main Content Bottom', null, 'Main Content Bottom'], + ['main', null, 'main'], + ['Main Content Container', null, 'Main Content Container'], + ['content.top', null, 'content.top'], + ['Main Content Top', null, 'Main Content Top'], + ['before.body.end', null, 'before.body.end'], + ['Page Bottom', null, 'Page Bottom'], + ['footer', null, 'footer'], + ['Page Footer', null, 'Page Footer'], + ['footer-container', null, 'footer-container'], + ['Page Footer Container', null, 'Page Footer Container'], + ['header-wrapper', null, 'header-wrapper'], + ['Page Header', null, 'Page Header'], + ['header.container', null, 'header.container'], + ['Page Header Container', null, 'Page Header Container'], + ['header.panel', null, 'header.panel'], + ['Page Header Panel', null, 'Page Header Panel'], + ['after.body.start', null, 'after.body.start'], + ['Page Top', null, 'Page Top'], + ['product.info.simple.extra', null, 'product.info.simple.extra'], + ['Product Extra Info', null, 'Product Extra Info'], + ['sidebar.additional', null, 'sidebar.additional'], + ['Sidebar Additional', null, 'Sidebar Additional'], + ['sidebar.main', null, 'sidebar.main'], + ['Sidebar Main', null, 'Sidebar Main'] + ] + ); + + $this->assertEquals($expectedHtml, $this->containerBlock->toHtml()); + } + + /** + * @return void + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + public function testToHtmlCmsStaticBlockAllProductTypes() + { + $pageLayoutProcessorContainers = [ + 'after.body.start' => 'Page Top', + 'columns.top' => 'Before Main Columns', + 'main' => 'Main Content Container', + 'page.bottom' => 'Before Page Footer Container', + 'before.body.end' => 'Page Bottom', + 'header.container' => 'Page Header Container', + 'page.top' => 'After Page Header', + 'footer-container' => 'Page Footer Container', + 'sidebar.main' => 'Sidebar Main', + 'sidebar.additional' => 'Sidebar Additional' + ]; + $layoutProcessorContainers = [ + 'product.info.price' => 'Product info auxiliary container', + 'product.info.stock.sku' => 'Product auxiliary info', + 'alert.urls' => 'Alert Urls', + 'product.info.extrahint' => 'Product View Extra Hint', + 'product.info.social' => 'Product social links container', + 'product.review.form.fields.before' => 'Review Form Fields Before', + 'header.panel' => 'Page Header Panel', + 'header-wrapper' => 'Page Header', + 'top.container' => 'After Page Header Top', + 'content.top' => 'Main Content Top', + 'content' => 'Main Content Area', + 'content.aside' => 'Main Content Aside', + 'content.bottom' => 'Main Content Bottom', + 'page.bottom' => 'Before Page Footer', + 'footer' => 'Page Footer', + 'cms_footer_links_container' => 'CMS Footer Links' + ]; + $allowedContainers = []; + $expectedHtml = '<select name="block" id="" class="required-entry select" title="" ' + . 'onchange="WidgetInstance.loadSelectBoxByType(\'block_template\', this.up(\'div.group_container\'), ' + . 'this.value)"><option value="" selected="selected" >-- Please Select --</option>' + . '<option value="page.top" >After Page Header</option><option value="top.container" >After Page Header Top' + . '</option><option value="alert.urls" >Alert Urls</option><option value="columns.top" >Before Main Columns' + . '</option><option value="page.bottom" >Before Page Footer</option><option ' + . 'value="cms_footer_links_container" >CMS Footer Links</option><option value="content" >' + . 'Main Content Area</option><option value="content.aside" >Main Content Aside</option>' + . '<option value="content.bottom" >Main Content Bottom</option><option value="main" >Main Content Container' + . '</option><option value="content.top" >Main Content Top</option><option value="before.body.end" >' + . 'Page Bottom</option><option value="footer" >Page Footer</option><option value="footer-container" >' + . 'Page Footer Container</option><option value="header-wrapper" >Page Header</option>' + . '<option value="header.container" >Page Header Container</option><option value="header.panel" >' + . 'Page Header Panel</option><option value="after.body.start" >Page Top</option>' + . '<option value="product.info.extrahint" >Product View Extra Hint</option>' + . '<option value="product.info.stock.sku" >Product auxiliary info</option>' + . '<option value="product.info.price" >Product info auxiliary container</option>' + . '<option value="product.info.social" >Product social links container</option>' + . '<option value="product.review.form.fields.before" >Review Form Fields Before</option>' + . '<option value="sidebar.additional" >Sidebar Additional</option>' + . '<option value="sidebar.main" >Sidebar Main</option></select>'; + + $this->eventManagerMock->expects($this->once())->method('dispatch')->willReturn(true); + $this->scopeConfigMock->expects($this->once())->method('getValue')->willReturn(false); + + $this->themeCollectionFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($this->themeCollectionMock); + $this->themeCollectionMock->expects($this->once())->method('getItemById')->willReturn($this->themeMock); + + $this->layoutProcessorFactoryMock->expects($this->exactly(2)) + ->method('create') + ->willReturn($this->layoutMergeMock); + $this->layoutMergeMock->expects($this->exactly(2))->method('addPageHandles')->willReturn(true); + $this->layoutMergeMock->expects($this->exactly(2))->method('load')->willReturnSelf(); + $this->layoutMergeMock->expects($this->any())->method('addHandle')->willReturnSelf(); + $this->layoutMergeMock->expects($this->any())->method('getContainers')->willReturnOnConsecutiveCalls( + $pageLayoutProcessorContainers, + $layoutProcessorContainers + ); + + $this->containerBlock->setAllowedContainers($allowedContainers); + $this->containerBlock->setValue(''); + + $this->escaperMock->expects($this->any())->method('escapeHtml')->willReturnMap( + [ + ['', null, ''], + ['-- Please Select --', null, '-- Please Select --'], + ['page.top', null, 'page.top'], + ['After Page Header', null, 'After Page Header'], + ['top.container', null, 'top.container'], + ['After Page Header Top', null, 'After Page Header Top'], + ['alert.urls', null, 'alert.urls'], + ['Alert Urls', null, 'Alert Urls'], + ['columns.top', null, 'columns.top'], + ['Before Main Columns', null, 'Before Main Columns'], + ['page.bottom', null, 'page.bottom'], + ['Before Page Footer', null, 'Before Page Footer'], + ['cms_footer_links_container', null, 'cms_footer_links_container'], + ['CMS Footer Links', null, 'CMS Footer Links'], + ['content', null, 'content'], + ['Main Content Area', null, 'Main Content Area'], + ['content.aside', null, 'content.aside'], + ['Main Content Aside', null, 'Main Content Aside'], + ['content.bottom', null, 'content.bottom'], + ['Main Content Bottom', null, 'Main Content Bottom'], + ['main', null, 'main'], + ['Main Content Container', null, 'Main Content Container'], + ['content.top', null, 'content.top'], + ['Main Content Top', null, 'Main Content Top'], + ['before.body.end', null, 'before.body.end'], + ['Page Bottom', null, 'Page Bottom'], + ['footer', null, 'footer'], + ['Page Footer', null, 'Page Footer'], + ['footer-container', null, 'footer-container'], + ['Page Footer Container', null, 'Page Footer Container'], + ['header-wrapper', null, 'header-wrapper'], + ['Page Header', null, 'Page Header'], + ['header.container', null, 'header.container'], + ['Page Header Container', null, 'Page Header Container'], + ['header.panel', null, 'header.panel'], + ['Page Header Panel', null, 'Page Header Panel'], + ['after.body.start', null, 'after.body.start'], + ['Page Top', null, 'Page Top'], + ['product.info.extrahint', null, 'product.info.extrahint'], + ['Product View Extra Hint', null, 'Product View Extra Hint'], + ['product.info.stock.sku', null, 'product.info.stock.sku'], + ['Product auxiliary info', null, 'Product auxiliary info'], + ['product.info.price', null, 'product.info.price'], + ['Product info auxiliary container', null, 'Product info auxiliary container'], + ['product.info.social', null, 'product.info.social'], + ['Product social links container', null, 'Product social links container'], + ['product.review.form.fields.before', null, 'product.review.form.fields.before'], + ['Review Form Fields Before', null, 'Review Form Fields Before'], + ['sidebar.additional', null, 'sidebar.additional'], + ['Sidebar Additional', null, 'Sidebar Additional'], + ['sidebar.main', null, 'sidebar.main'], + ['Sidebar Main', null, 'Sidebar Main'] + ] + ); + + $this->assertEquals($expectedHtml, $this->containerBlock->toHtml()); + } + + /** + * @return void + */ + public function testToHtmlOrderBySkuAllPages() + { + $pageLayoutProcessorContainers = [ + 'after.body.start' => 'Page Top', + 'columns.top' => 'Before Main Columns', + 'main' => 'Main Content Container', + 'page.bottom' => 'Before Page Footer Container', + 'before.body.end' => 'Page Bottom', + 'header.container' => 'Page Header Container', + 'page.top' => 'After Page Header', + 'footer-container' => 'Page Footer Container', + 'sidebar.main' => 'Sidebar Main', + 'sidebar.additional' => 'Sidebar Additional' + ]; + $layoutProcessorContainers = [ + 'header.panel' => 'Page Header Panel', + 'header-wrapper' => 'Page Header', + 'top.container' => 'After Page Header Top', + 'content.top' => 'Main Content Top', + 'content' => 'Main Content Area', + 'content.aside' => 'Main Content Aside', + 'content.bottom' => 'Main Content Bottom', + 'page.bottom' => 'Before Page Footer', + 'footer' => 'Page Footer', + 'cms_footer_links_container' => 'CMS Footer Links' + ]; + $allowedContainers = ['sidebar.main', 'sidebar.additional']; + $expectedHtml = '<select name="block" id="" class="required-entry select" title="" ' + . 'onchange="WidgetInstance.loadSelectBoxByType(\'block_template\', this.up(\'div.group_container\'), ' + . 'this.value)"><option value="" selected="selected" >-- Please Select --</option>' + . '<option value="sidebar.additional" >Sidebar Additional</option><option value="sidebar.main" >' + . 'Sidebar Main</option></select>'; + + $this->eventManagerMock->expects($this->once())->method('dispatch')->willReturn(true); + $this->scopeConfigMock->expects($this->once())->method('getValue')->willReturn(false); + + $this->themeCollectionFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($this->themeCollectionMock); + $this->themeCollectionMock->expects($this->once())->method('getItemById')->willReturn($this->themeMock); + + $this->layoutProcessorFactoryMock->expects($this->exactly(2)) + ->method('create') + ->willReturn($this->layoutMergeMock); + $this->layoutMergeMock->expects($this->exactly(2))->method('addPageHandles')->willReturn(true); + $this->layoutMergeMock->expects($this->exactly(2))->method('load')->willReturnSelf(); + $this->layoutMergeMock->expects($this->any())->method('addHandle')->willReturnSelf(); + $this->layoutMergeMock->expects($this->any())->method('getContainers')->willReturnOnConsecutiveCalls( + $pageLayoutProcessorContainers, + $layoutProcessorContainers + ); + + $this->containerBlock->setAllowedContainers($allowedContainers); + $this->containerBlock->setValue(''); + + $this->escaperMock->expects($this->any())->method('escapeHtml')->willReturnMap( + [ + ['', null, ''], + ['-- Please Select --', null, '-- Please Select --'], + ['sidebar.additional', null, 'sidebar.additional'], + ['Sidebar Additional', null, 'Sidebar Additional'], + ['sidebar.main', null, 'sidebar.main'], + ['Sidebar Main', null, 'Sidebar Main'] + ] + ); + + $this->assertEquals($expectedHtml, $this->containerBlock->toHtml()); + } +} diff --git a/composer.lock b/composer.lock index 5f638af51713461dbdf2da2e6ad428b7b827ab1b..7b9e8f0f7f2e4197432b42cf7591e3eed6f3f008 100644 --- a/composer.lock +++ b/composer.lock @@ -5,6 +5,7 @@ "This file is @generated automatically" ], "hash": "ba8186cbc63f5db144177d64249726e6", + "content-hash": "3cd6f56bf239297dae995a6f57937f93", "packages": [ { "name": "braintree/braintree_php", @@ -1016,12 +1017,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-code.git", - "reference": "0ed94f842ba60cdc900c46a61bdbd7ac95a3e140" + "reference": "cfd5951ff4348e4430850560416c7ddb755f95d3" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-code/zipball/0ed94f842ba60cdc900c46a61bdbd7ac95a3e140", - "reference": "0ed94f842ba60cdc900c46a61bdbd7ac95a3e140", + "reference": "cfd5951ff4348e4430850560416c7ddb755f95d3", "shasum": "" }, "require": { @@ -1030,9 +1031,6 @@ }, "require-dev": { "doctrine/common": ">=2.1", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-stdlib": "self.version" }, "suggest": { @@ -1048,7 +1046,7 @@ }, "autoload": { "psr-4": { - "Zend\\Code\\": "src/" + "Zend\\Code\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1056,12 +1054,12 @@ "BSD-3-Clause" ], "description": "provides facilities to generate arbitrary code using an object oriented interface", - "homepage": "https://github.com/zendframework/zend-code", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "code", "zf2" ], - "time": "2015-03-31 15:39:14" + "time": "2015-04-01 17:59:08" }, { "name": "zendframework/zend-config", @@ -1069,12 +1067,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-config.git", - "reference": "95f3a4b3fa85d49e6f060183122de4596fa6d29d" + "reference": "8682fe4e2923b383bb6472fc84b5796a07589163" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-config/zipball/95f3a4b3fa85d49e6f060183122de4596fa6d29d", - "reference": "95f3a4b3fa85d49e6f060183122de4596fa6d29d", + "reference": "8682fe4e2923b383bb6472fc84b5796a07589163", "shasum": "" }, "require": { @@ -1082,9 +1080,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-filter": "self.version", "zendframework/zend-i18n": "self.version", "zendframework/zend-json": "self.version", @@ -1105,7 +1100,7 @@ }, "autoload": { "psr-4": { - "Zend\\Config\\": "src/" + "Zend\\Config\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1113,12 +1108,12 @@ "BSD-3-Clause" ], "description": "provides a nested object property based user interface for accessing this configuration data within application code", - "homepage": "https://github.com/zendframework/zend-config", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "config", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 17:59:31" }, { "name": "zendframework/zend-console", @@ -1126,23 +1121,18 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-console.git", - "reference": "54823d9ba6f8ce39046384ee5a043b5b3d5f56d7" + "reference": "94ab6663b07e19f20b3319ecf317bd72b6a72dca" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-console/zipball/54823d9ba6f8ce39046384ee5a043b5b3d5f56d7", - "reference": "54823d9ba6f8ce39046384ee5a043b5b3d5f56d7", + "reference": "94ab6663b07e19f20b3319ecf317bd72b6a72dca", "shasum": "" }, "require": { "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "suggest": { "zendframework/zend-filter": "To support DefaultRouteMatcher usage", "zendframework/zend-validator": "To support DefaultRouteMatcher usage" @@ -1156,19 +1146,19 @@ }, "autoload": { "psr-4": { - "Zend\\Console\\": "src/" + "Zend\\Console\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-console", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "console", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 17:59:48" }, { "name": "zendframework/zend-crypt", @@ -1227,12 +1217,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-di.git", - "reference": "b9f8de081adecf71a003a569e9ba76c0a4c00bf2" + "reference": "0811f2a67ad0b50dfb8d602ed67cde0b82249190" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-di/zipball/b9f8de081adecf71a003a569e9ba76c0a4c00bf2", - "reference": "b9f8de081adecf71a003a569e9ba76c0a4c00bf2", + "reference": "0811f2a67ad0b50dfb8d602ed67cde0b82249190", "shasum": "" }, "require": { @@ -1241,9 +1231,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-servicemanager": "self.version" }, "suggest": { @@ -1258,19 +1245,19 @@ }, "autoload": { "psr-4": { - "Zend\\Di\\": "src/" + "Zend\\Di\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-di", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "di", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:01:30" }, { "name": "zendframework/zend-escaper", @@ -1278,22 +1265,17 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-escaper.git", - "reference": "15e5769e4fcdb4bf07ebd76500810e7070e23a97" + "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/15e5769e4fcdb4bf07ebd76500810e7070e23a97", - "reference": "15e5769e4fcdb4bf07ebd76500810e7070e23a97", + "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96", "shasum": "" }, "require": { "php": ">=5.3.23" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -1303,19 +1285,19 @@ }, "autoload": { "psr-4": { - "Zend\\Escaper\\": "src/" + "Zend\\Escaper\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-escaper", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "escaper", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:02:07" }, { "name": "zendframework/zend-eventmanager", @@ -1323,23 +1305,18 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-eventmanager.git", - "reference": "58d21c95c7005a527262fd536499195f104e83f9" + "reference": "38df5b567d4ff4d22144745c503ba0502d0d5695" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/58d21c95c7005a527262fd536499195f104e83f9", - "reference": "58d21c95c7005a527262fd536499195f104e83f9", + "reference": "38df5b567d4ff4d22144745c503ba0502d0d5695", "shasum": "" }, "require": { "php": ">=5.3.23", "zendframework/zend-stdlib": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -1349,19 +1326,19 @@ }, "autoload": { "psr-4": { - "Zend\\EventManager\\": "src/" + "Zend\\EventManager\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-event-manager", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "eventmanager", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:05:26" }, { "name": "zendframework/zend-filter", @@ -1369,12 +1346,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-filter.git", - "reference": "6d8aed2da81b62a04747346c4370562cdbe34595" + "reference": "b13741a88553351fc52472de529b57b580b8f6f1" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-filter/zipball/6d8aed2da81b62a04747346c4370562cdbe34595", - "reference": "6d8aed2da81b62a04747346c4370562cdbe34595", + "reference": "b13741a88553351fc52472de529b57b580b8f6f1", "shasum": "" }, "require": { @@ -1382,9 +1359,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-crypt": "self.version", "zendframework/zend-servicemanager": "self.version", "zendframework/zend-uri": "self.version" @@ -1404,7 +1378,7 @@ }, "autoload": { "psr-4": { - "Zend\\Filter\\": "src/" + "Zend\\Filter\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1412,12 +1386,12 @@ "BSD-3-Clause" ], "description": "provides a set of commonly needed data filters", - "homepage": "https://github.com/zendframework/zend-filter", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "filter", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:25" }, { "name": "zendframework/zend-form", @@ -1425,12 +1399,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-form.git", - "reference": "bca0db55718355d25c2c10fdd41a83561f1c94b3" + "reference": "09f5bd46ffbf783df22281898e2175b291bd43a3" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-form/zipball/bca0db55718355d25c2c10fdd41a83561f1c94b3", - "reference": "bca0db55718355d25c2c10fdd41a83561f1c94b3", + "reference": "09f5bd46ffbf783df22281898e2175b291bd43a3", "shasum": "" }, "require": { @@ -1439,9 +1413,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-captcha": "self.version", "zendframework/zend-code": "self.version", "zendframework/zend-eventmanager": "self.version", @@ -1472,19 +1443,19 @@ }, "autoload": { "psr-4": { - "Zend\\Form\\": "src/" + "Zend\\Form\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-form", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "form", "zf2" ], - "time": "2015-03-28 20:29:18" + "time": "2015-04-01 18:09:25" }, { "name": "zendframework/zend-http", @@ -1492,12 +1463,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-http.git", - "reference": "9c6047a0bdb3094d3ea07a215ff929cc47de4deb" + "reference": "ee6220609845b32d1b2873c9ac694aef56d508f5" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-http/zipball/9c6047a0bdb3094d3ea07a215ff929cc47de4deb", - "reference": "9c6047a0bdb3094d3ea07a215ff929cc47de4deb", + "reference": "ee6220609845b32d1b2873c9ac694aef56d508f5", "shasum": "" }, "require": { @@ -1507,11 +1478,6 @@ "zendframework/zend-uri": "self.version", "zendframework/zend-validator": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -1521,7 +1487,7 @@ }, "autoload": { "psr-4": { - "Zend\\Http\\": "src/" + "Zend\\Http\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1529,12 +1495,12 @@ "BSD-3-Clause" ], "description": "provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", - "homepage": "https://github.com/zendframework/zend-http", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "http", "zf2" ], - "time": "2015-03-27 15:46:30" + "time": "2015-04-01 18:09:25" }, { "name": "zendframework/zend-i18n", @@ -1542,12 +1508,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-i18n.git", - "reference": "9aebc5287373a802540d75fe5508417f866c2e52" + "reference": "33051775d9a8c341fe3b77d1f3daa0e921e2f4bd" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-i18n/zipball/9aebc5287373a802540d75fe5508417f866c2e52", - "reference": "9aebc5287373a802540d75fe5508417f866c2e52", + "reference": "33051775d9a8c341fe3b77d1f3daa0e921e2f4bd", "shasum": "" }, "require": { @@ -1555,9 +1521,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-cache": "self.version", "zendframework/zend-config": "self.version", "zendframework/zend-eventmanager": "self.version", @@ -1586,19 +1549,19 @@ }, "autoload": { "psr-4": { - "Zend\\I18n\\": "src/" + "Zend\\I18n\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-i18n", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "i18n", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:26" }, { "name": "zendframework/zend-inputfilter", @@ -1606,12 +1569,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-inputfilter.git", - "reference": "4b1398f3635fae3cc5e873c5bb067274f3d10a93" + "reference": "16856fec61f285e41e5492235220a4dec06ab90f" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-inputfilter/zipball/4b1398f3635fae3cc5e873c5bb067274f3d10a93", - "reference": "4b1398f3635fae3cc5e873c5bb067274f3d10a93", + "reference": "16856fec61f285e41e5492235220a4dec06ab90f", "shasum": "" }, "require": { @@ -1621,9 +1584,6 @@ "zendframework/zend-validator": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-servicemanager": "self.version" }, "suggest": { @@ -1638,19 +1598,19 @@ }, "autoload": { "psr-4": { - "Zend\\InputFilter\\": "src/" + "Zend\\InputFilter\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-input-filter", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "inputfilter", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:09:26" }, { "name": "zendframework/zend-json", @@ -1658,12 +1618,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-json.git", - "reference": "2d845e151c1b9a237cf1899ac31e17fb10bd1e3f" + "reference": "76aeb27e4baf39799e5ca3cf6f2fdd6748ee930c" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-json/zipball/2d845e151c1b9a237cf1899ac31e17fb10bd1e3f", - "reference": "2d845e151c1b9a237cf1899ac31e17fb10bd1e3f", + "reference": "76aeb27e4baf39799e5ca3cf6f2fdd6748ee930c", "shasum": "" }, "require": { @@ -1671,9 +1631,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-http": "self.version", "zendframework/zend-server": "self.version" }, @@ -1691,7 +1648,7 @@ }, "autoload": { "psr-4": { - "Zend\\Json\\": "src/" + "Zend\\Json\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1699,12 +1656,12 @@ "BSD-3-Clause" ], "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP", - "homepage": "https://github.com/zendframework/zend-json", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "json", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:26" }, { "name": "zendframework/zend-loader", @@ -1712,22 +1669,17 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-loader.git", - "reference": "65de2c7a56f8eee633c6bf1cfab73e45648880d4" + "reference": "6868b8a0c346f17fb97724c3a63aa2cbf6b94865" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/65de2c7a56f8eee633c6bf1cfab73e45648880d4", - "reference": "65de2c7a56f8eee633c6bf1cfab73e45648880d4", + "reference": "6868b8a0c346f17fb97724c3a63aa2cbf6b94865", "shasum": "" }, "require": { "php": ">=5.3.23" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -1737,19 +1689,19 @@ }, "autoload": { "psr-4": { - "Zend\\Loader\\": "src/" + "Zend\\Loader\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-loader", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "loader", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:09:26" }, { "name": "zendframework/zend-log", @@ -1757,12 +1709,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-log.git", - "reference": "002e3c810cad7e31e51c9895e9e3cb6fbd312cdd" + "reference": "2d5d20fd45470506bdaff727c46dc25fe953146e" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-log/zipball/002e3c810cad7e31e51c9895e9e3cb6fbd312cdd", - "reference": "002e3c810cad7e31e51c9895e9e3cb6fbd312cdd", + "reference": "2d5d20fd45470506bdaff727c46dc25fe953146e", "shasum": "" }, "require": { @@ -1771,9 +1723,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-console": "self.version", "zendframework/zend-db": "self.version", "zendframework/zend-escaper": "self.version", @@ -1797,7 +1746,7 @@ }, "autoload": { "psr-4": { - "Zend\\Log\\": "src/" + "Zend\\Log\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1805,13 +1754,13 @@ "BSD-3-Clause" ], "description": "component for general purpose logging", - "homepage": "https://github.com/zendframework/zend-log", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "log", "logging", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:26" }, { "name": "zendframework/zend-math", @@ -1819,22 +1768,17 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-math.git", - "reference": "f41fe4acfd809c14f2a802d1aa45dec8fcd2cc73" + "reference": "634123f83ca90b6613f132d0d100e6b5e9890a29" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-math/zipball/f41fe4acfd809c14f2a802d1aa45dec8fcd2cc73", - "reference": "f41fe4acfd809c14f2a802d1aa45dec8fcd2cc73", + "reference": "634123f83ca90b6613f132d0d100e6b5e9890a29", "shasum": "" }, "require": { "php": ">=5.3.23" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "suggest": { "ext-bcmath": "If using the bcmath functionality", "ext-gmp": "If using the gmp functionality", @@ -1850,19 +1794,19 @@ }, "autoload": { "psr-4": { - "Zend\\Math\\": "src/" + "Zend\\Math\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-math", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "math", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:09:27" }, { "name": "zendframework/zend-modulemanager", @@ -1870,12 +1814,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-modulemanager.git", - "reference": "af7ae3cd29a1efb73cc66ae1081e606039d5c20f" + "reference": "cbe16b0eafe734a062ed0182381e64b9c953dccf" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-modulemanager/zipball/af7ae3cd29a1efb73cc66ae1081e606039d5c20f", - "reference": "af7ae3cd29a1efb73cc66ae1081e606039d5c20f", + "reference": "cbe16b0eafe734a062ed0182381e64b9c953dccf", "shasum": "" }, "require": { @@ -1884,9 +1828,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-config": "self.version", "zendframework/zend-console": "self.version", "zendframework/zend-loader": "self.version", @@ -1908,19 +1849,19 @@ }, "autoload": { "psr-4": { - "Zend\\ModuleManager\\": "src/" + "Zend\\ModuleManager\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-module-manager", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "modulemanager", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:09:27" }, { "name": "zendframework/zend-mvc", @@ -1928,12 +1869,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-mvc.git", - "reference": "0b4a4a829b30be510a3f215c4ff00c703ee8b431" + "reference": "bfff0f5f9e4d925ee13b8c159c9d6ae7e0db5412" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-mvc/zipball/0b4a4a829b30be510a3f215c4ff00c703ee8b431", - "reference": "0b4a4a829b30be510a3f215c4ff00c703ee8b431", + "reference": "bfff0f5f9e4d925ee13b8c159c9d6ae7e0db5412", "shasum": "" }, "require": { @@ -1944,9 +1885,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-authentication": "self.version", "zendframework/zend-console": "self.version", "zendframework/zend-di": "self.version", @@ -1995,19 +1933,19 @@ }, "autoload": { "psr-4": { - "Zend\\Mvc\\": "src/" + "Zend\\Mvc\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-mvc", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "mvc", "zf2" ], - "time": "2015-03-26 18:55:14" + "time": "2015-04-01 18:09:27" }, { "name": "zendframework/zend-serializer", @@ -2015,12 +1953,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-serializer.git", - "reference": "3c531789a9882a5deb721356a7bd2642b65d4b09" + "reference": "a46960854d6326f0036d98c9abc7a79e36e25928" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-serializer/zipball/3c531789a9882a5deb721356a7bd2642b65d4b09", - "reference": "3c531789a9882a5deb721356a7bd2642b65d4b09", + "reference": "a46960854d6326f0036d98c9abc7a79e36e25928", "shasum": "" }, "require": { @@ -2030,9 +1968,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-servicemanager": "self.version" }, "suggest": { @@ -2047,7 +1982,7 @@ }, "autoload": { "psr-4": { - "Zend\\Serializer\\": "src/" + "Zend\\Serializer\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2055,12 +1990,12 @@ "BSD-3-Clause" ], "description": "provides an adapter based interface to simply generate storable representation of PHP types by different facilities, and recover", - "homepage": "https://github.com/zendframework/zend-serializer", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "serializer", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:28" }, { "name": "zendframework/zend-server", @@ -2068,12 +2003,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-server.git", - "reference": "d11ff0bd529d202022823d4accf5983cbd50fc49" + "reference": "fc73c34490908ba143af3c57c7e166b40c4b9f8e" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-server/zipball/d11ff0bd529d202022823d4accf5983cbd50fc49", - "reference": "d11ff0bd529d202022823d4accf5983cbd50fc49", + "reference": "fc73c34490908ba143af3c57c7e166b40c4b9f8e", "shasum": "" }, "require": { @@ -2081,11 +2016,6 @@ "zendframework/zend-code": "self.version", "zendframework/zend-stdlib": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -2095,19 +2025,19 @@ }, "autoload": { "psr-4": { - "Zend\\Server\\": "src/" + "Zend\\Server\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-server", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "server", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:28" }, { "name": "zendframework/zend-servicemanager", @@ -2115,21 +2045,18 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-servicemanager.git", - "reference": "57cf99fa5ac08c05a135a8d0d676c52a5e450083" + "reference": "d3c27c708a148a30608f313a5b7a61a531bd9cb9" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/57cf99fa5ac08c05a135a8d0d676c52a5e450083", - "reference": "57cf99fa5ac08c05a135a8d0d676c52a5e450083", + "reference": "d3c27c708a148a30608f313a5b7a61a531bd9cb9", "shasum": "" }, "require": { "php": ">=5.3.23" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-di": "self.version" }, "suggest": { @@ -2145,19 +2072,19 @@ }, "autoload": { "psr-4": { - "Zend\\ServiceManager\\": "src/" + "Zend\\ServiceManager\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-service-manager", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "servicemanager", "zf2" ], - "time": "2015-03-23 18:29:14" + "time": "2015-04-01 18:09:28" }, { "name": "zendframework/zend-soap", @@ -2165,12 +2092,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-soap.git", - "reference": "a599463aba97ce247faf3fb443e3c7858b46449b" + "reference": "e42b900798ea95a9063fa4922da976d8b3a8ab6f" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-soap/zipball/a599463aba97ce247faf3fb443e3c7858b46449b", - "reference": "a599463aba97ce247faf3fb443e3c7858b46449b", + "reference": "e42b900798ea95a9063fa4922da976d8b3a8ab6f", "shasum": "" }, "require": { @@ -2180,9 +2107,6 @@ "zendframework/zend-uri": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-http": "self.version" }, "suggest": { @@ -2197,19 +2121,19 @@ }, "autoload": { "psr-4": { - "Zend\\Soap\\": "src/" + "Zend\\Soap\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-soap", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "soap", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:29" }, { "name": "zendframework/zend-stdlib", @@ -2217,21 +2141,18 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-stdlib.git", - "reference": "cf05c5ba75606e47ffee91cedc72778da46f74c3" + "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/cf05c5ba75606e47ffee91cedc72778da46f74c3", - "reference": "cf05c5ba75606e47ffee91cedc72778da46f74c3", + "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030", "shasum": "" }, "require": { "php": ">=5.3.23" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-eventmanager": "self.version", "zendframework/zend-filter": "self.version", "zendframework/zend-serializer": "self.version", @@ -2252,19 +2173,19 @@ }, "autoload": { "psr-4": { - "Zend\\Stdlib\\": "src/" + "Zend\\Stdlib\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-stdlib", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "stdlib", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:29" }, { "name": "zendframework/zend-text", @@ -2272,12 +2193,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-text.git", - "reference": "d962ea25647b20527f3ca34ae225bbc885dabfc7" + "reference": "35f519e20e575a331c2ee554e5a555a59ce4b9e2" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-text/zipball/d962ea25647b20527f3ca34ae225bbc885dabfc7", - "reference": "d962ea25647b20527f3ca34ae225bbc885dabfc7", + "reference": "35f519e20e575a331c2ee554e5a555a59ce4b9e2", "shasum": "" }, "require": { @@ -2285,11 +2206,6 @@ "zendframework/zend-servicemanager": "self.version", "zendframework/zend-stdlib": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -2299,19 +2215,19 @@ }, "autoload": { "psr-4": { - "Zend\\Text\\": "src/" + "Zend\\Text\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-text", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "text", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:29" }, { "name": "zendframework/zend-uri", @@ -2319,12 +2235,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-uri.git", - "reference": "bd9e625639415376f6a82551c73328448d7bc7d1" + "reference": "53f5b162b293f80de8b951eece8e08be83c4fe16" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/bd9e625639415376f6a82551c73328448d7bc7d1", - "reference": "bd9e625639415376f6a82551c73328448d7bc7d1", + "reference": "53f5b162b293f80de8b951eece8e08be83c4fe16", "shasum": "" }, "require": { @@ -2332,11 +2248,6 @@ "zendframework/zend-escaper": "self.version", "zendframework/zend-validator": "self.version" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master" - }, "type": "library", "extra": { "branch-alias": { @@ -2346,7 +2257,7 @@ }, "autoload": { "psr-4": { - "Zend\\Uri\\": "src/" + "Zend\\Uri\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2354,12 +2265,12 @@ "BSD-3-Clause" ], "description": "a component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", - "homepage": "https://github.com/zendframework/zend-uri", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "uri", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:29" }, { "name": "zendframework/zend-validator", @@ -2367,12 +2278,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-validator.git", - "reference": "45fac2545a0f2eb66d71cb7966feee481e7c475f" + "reference": "eb678d20256f120a72ca27276bbb2875841701ab" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-validator/zipball/45fac2545a0f2eb66d71cb7966feee481e7c475f", - "reference": "45fac2545a0f2eb66d71cb7966feee481e7c475f", + "reference": "eb678d20256f120a72ca27276bbb2875841701ab", "shasum": "" }, "require": { @@ -2380,9 +2291,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-db": "self.version", "zendframework/zend-filter": "self.version", "zendframework/zend-i18n": "self.version", @@ -2410,7 +2318,7 @@ }, "autoload": { "psr-4": { - "Zend\\Validator\\": "src/" + "Zend\\Validator\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2418,12 +2326,12 @@ "BSD-3-Clause" ], "description": "provides a set of commonly needed validators", - "homepage": "https://github.com/zendframework/zend-validator", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "validator", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:30" }, { "name": "zendframework/zend-view", @@ -2431,12 +2339,12 @@ "source": { "type": "git", "url": "https://github.com/zendframework/zend-view.git", - "reference": "37beb1ad46e530f627b4b6c3716efd728e976ba9" + "reference": "e119b4b5f082af58a96eb206e782b62c193227bf" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/zendframework/zend-view/zipball/37beb1ad46e530f627b4b6c3716efd728e976ba9", - "reference": "37beb1ad46e530f627b4b6c3716efd728e976ba9", + "reference": "e119b4b5f082af58a96eb206e782b62c193227bf", "shasum": "" }, "require": { @@ -2446,9 +2354,6 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", "zendframework/zend-authentication": "self.version", "zendframework/zend-escaper": "self.version", "zendframework/zend-feed": "self.version", @@ -2487,7 +2392,7 @@ }, "autoload": { "psr-4": { - "Zend\\View\\": "src/" + "Zend\\View\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2495,12 +2400,12 @@ "BSD-3-Clause" ], "description": "provides a system of helpers, output filters, and variable escaping", - "homepage": "https://github.com/zendframework/zend-view", + "homepage": "https://github.com/zendframework/zf2", "keywords": [ "view", "zf2" ], - "time": "2015-03-25 20:55:48" + "time": "2015-04-01 18:09:30" } ], "packages-dev": [ @@ -2663,16 +2568,16 @@ }, { "name": "lusitanian/oauth", - "version": "v0.4.1", + "version": "v0.5.4", "source": { "type": "git", "url": "https://github.com/Lusitanian/PHPoAuthLib.git", - "reference": "b617831ffe58564c3ae06772a8b20310929af2ea" + "reference": "824e1389151e458555995faa70a89428f9f6ddeb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/b617831ffe58564c3ae06772a8b20310929af2ea", - "reference": "b617831ffe58564c3ae06772a8b20310929af2ea", + "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/824e1389151e458555995faa70a89428f9f6ddeb", + "reference": "824e1389151e458555995faa70a89428f9f6ddeb", "shasum": "" }, "require": { @@ -2726,7 +2631,7 @@ "oauth", "security" ], - "time": "2015-09-09 23:42:55" + "time": "2015-09-17 00:54:25" }, { "name": "pdepend/pdepend", @@ -2831,16 +2736,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "2.2.2", + "version": "2.2.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c" + "reference": "ef1ca6835468857944d5c3b48fa503d5554cff2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2d7c03c0e4e080901b8f33b2897b0577be18a13c", - "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef1ca6835468857944d5c3b48fa503d5554cff2f", + "reference": "ef1ca6835468857944d5c3b48fa503d5554cff2f", "shasum": "" }, "require": { @@ -2889,7 +2794,7 @@ "testing", "xunit" ], - "time": "2015-08-04 03:42:39" + "time": "2015-09-14 06:51:16" }, { "name": "phpunit/php-file-iterator", @@ -3020,16 +2925,16 @@ }, { "name": "phpunit/php-token-stream", - "version": "1.4.6", + "version": "1.4.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "3ab72c62e550370a6cd5dc873e1a04ab57562f5b" + "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3ab72c62e550370a6cd5dc873e1a04ab57562f5b", - "reference": "3ab72c62e550370a6cd5dc873e1a04ab57562f5b", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", + "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", "shasum": "" }, "require": { @@ -3065,7 +2970,7 @@ "keywords": [ "tokenizer" ], - "time": "2015-08-16 08:51:00" + "time": "2015-09-15 10:49:45" }, { "name": "phpunit/phpunit", diff --git a/dev/tests/integration/testsuite/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Chooser/ContainerTest.php b/dev/tests/integration/testsuite/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Chooser/ContainerTest.php index 895132b55846cecf1abd3357ebe5b88fdabee1e5..5b8e110b28ecf72d05343ff7c71e5ea0d1617f24 100644 --- a/dev/tests/integration/testsuite/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Chooser/ContainerTest.php +++ b/dev/tests/integration/testsuite/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Chooser/ContainerTest.php @@ -39,10 +39,8 @@ class ContainerTest extends \PHPUnit_Framework_TestCase */ public function testAvailableContainers() { - $design = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( - 'Magento\Framework\View\DesignInterface' - ); - $this->block->setTheme($design->getDesignTheme()->getId()); + $themeId = '3'; + $this->block->setTheme($themeId); $this->assertContains('<option value="before.body.end" >', $this->block->toHtml()); } } diff --git a/lib/internal/Magento/Framework/Config/ConfigOptionsListConstants.php b/lib/internal/Magento/Framework/Config/ConfigOptionsListConstants.php index 16bb120e24707e422e55880cb8482427cecaa40e..6608cb60426d4f4a735f9ccf27f3d7f5be65c1a7 100644 --- a/lib/internal/Magento/Framework/Config/ConfigOptionsListConstants.php +++ b/lib/internal/Magento/Framework/Config/ConfigOptionsListConstants.php @@ -23,6 +23,13 @@ class ConfigOptionsListConstants const CONFIG_PATH_DB_PREFIX = 'db/table_prefix'; const CONFIG_PATH_X_FRAME_OPT = 'x-frame-options'; const CONFIG_PATH_CACHE_HOSTS = 'http_cache_hosts'; + const CONFIG_PATH_BACKEND = 'backend'; + const CONFIG_PATH_INSTALL = 'install'; + const CONFIG_PATH_CRYPT = 'crypt'; + const CONFIG_PATH_SESSION = 'session'; + const CONFIG_PATH_DB = 'db'; + const CONFIG_PATH_RESOURCE = 'resource'; + const CONFIG_PATH_CACHE_TYPES = 'cache_types'; /**#@-*/ /**#@+