diff --git a/app/code/Magento/PageCache/Model/App/FrontController/MessageBox.php b/app/code/Magento/PageCache/Model/App/FrontController/MessageBox.php
deleted file mode 100644
index 38d2e63c6e2fb..0000000000000
--- a/app/code/Magento/PageCache/Model/App/FrontController/MessageBox.php
+++ /dev/null
@@ -1,100 +0,0 @@
-cookieManager = $cookieManager;
- $this->cookieMetadataFactory = $cookieMetadataFactory;
- $this->request = $request;
- $this->config = $config;
- $this->messageManager = $messageManager;
- }
-
- /**
- * Set Cookie for msg box when it displays first
- *
- * @param FrontController $subject
- * @param \Magento\Framework\App\ResponseInterface|\Magento\Framework\Controller\ResultInterface $result
- *
- * @return \Magento\Framework\App\ResponseInterface|\Magento\Framework\Controller\ResultInterface
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- */
- public function afterDispatch(FrontController $subject, $result)
- {
- if ($this->request->isPost() && $this->messageManager->hasMessages()) {
- $publicCookieMetadata = $this->cookieMetadataFactory->createPublicCookieMetadata()
- ->setDuration(self::COOKIE_PERIOD)
- ->setPath('/')
- ->setHttpOnly(false);
- $this->cookieManager->setPublicCookie(self::COOKIE_NAME, 1, $publicCookieMetadata);
- }
- return $result;
- }
-}
diff --git a/app/code/Magento/PageCache/Test/Unit/Model/App/FrontController/MessageBoxTest.php b/app/code/Magento/PageCache/Test/Unit/Model/App/FrontController/MessageBoxTest.php
deleted file mode 100644
index cec6b6f530382..0000000000000
--- a/app/code/Magento/PageCache/Test/Unit/Model/App/FrontController/MessageBoxTest.php
+++ /dev/null
@@ -1,148 +0,0 @@
-cookieManagerMock = $this->getMock('Magento\Framework\Stdlib\CookieManagerInterface');
- $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 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', [], [], '', false);
- $this->responseMock = $this->getMock('Magento\Framework\App\ResponseInterface', [], [], '', false);
- }
-
- /**
- * @param bool $isPost
- * @param int $numOfCalls
- * @dataProvider afterDispatchTestDataProvider
- */
- public function testAfterDispatch($isPost, $numOfCalls)
- {
- $this->messageManagerMock->expects($this->exactly($numOfCalls))
- ->method('hasMessages')
- ->will($this->returnValue(true));
- $this->requestMock->expects($this->once())
- ->method('isPost')
- ->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->publicCookieMetadataMock->expects(($this->exactly($numOfCalls)))
- ->method('setHttpOnly')
- ->with(false)
- ->will($this->returnValue($this->publicCookieMetadataMock));
- $this->cookieManagerMock->expects($this->exactly($numOfCalls))
- ->method('setPublicCookie')
- ->with(
- MessageBox::COOKIE_NAME,
- 1,
- $this->publicCookieMetadataMock
- );
- $this->assertSame($this->responseMock, $this->msgBox->afterDispatch($this->objectMock, $this->responseMock));
- }
-
- /**
- * Data provider
- *
- * @return array
- */
- public function afterDispatchTestDataProvider()
- {
- return [
- [true, 1],
- [false, 0],
- ];
- }
-}
diff --git a/app/code/Magento/PageCache/etc/frontend/di.xml b/app/code/Magento/PageCache/etc/frontend/di.xml
index 658dce3f72ed6..1d57d767e9904 100644
--- a/app/code/Magento/PageCache/etc/frontend/di.xml
+++ b/app/code/Magento/PageCache/etc/frontend/di.xml
@@ -9,7 +9,6 @@
-
diff --git a/app/code/Magento/PageCache/view/frontend/web/js/page-cache.js b/app/code/Magento/PageCache/view/frontend/web/js/page-cache.js
index 162a8412aeda8..26f394b98dd07 100644
--- a/app/code/Magento/PageCache/view/frontend/web/js/page-cache.js
+++ b/app/code/Magento/PageCache/view/frontend/web/js/page-cache.js
@@ -51,28 +51,6 @@ define([
return elements;
};
- /**
- * MsgBox Widget checks if message box is displayed and sets cookie
- */
- $.widget('mage.msgBox', {
- options: {
- msgBoxCookieName: 'message_box_display',
- msgBoxSelector: '.main div.messages'
- },
-
- /**
- * Creates widget 'mage.msgBox'
- * @private
- */
- _create: function () {
- if ($.mage.cookies.get(this.options.msgBoxCookieName)) {
- $.mage.cookies.clear(this.options.msgBoxCookieName);
- } else {
- $(this.options.msgBoxSelector).hide();
- }
- }
- });
-
/**
* FormKey Widget - this widget is generating from key, saves it to cookie and
*/
@@ -272,14 +250,12 @@ define([
domReady(function () {
$('body')
- .msgBox()
.formKey();
});
return {
'pageCache': $.mage.pageCache,
- 'formKey': $.mage.formKey,
- 'msgBox': $.mage.msgBox
+ 'formKey': $.mage.formKey
};
/**
diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/PageCache/frontend/js/page-cache.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/PageCache/frontend/js/page-cache.test.js
index 1f7a247a2faf1..8df486f29c6fb 100644
--- a/dev/tests/js/jasmine/tests/app/code/Magento/PageCache/frontend/js/page-cache.test.js
+++ b/dev/tests/js/jasmine/tests/app/code/Magento/PageCache/frontend/js/page-cache.test.js
@@ -64,64 +64,6 @@ define([
});
});
- describe('Testing msgBox Widget', function () {
- var wdContainer,
- msgCookieName,
- msgContainer;
-
- beforeEach(function () {
- wdContainer = $('');
- msgContainer = $('');
- msgCookieName = 'FAKE_COOKIE';
- });
-
- afterEach(function () {
- $(wdContainer).remove();
- $(msgContainer).remove();
- });
-
- it('widget extends jQuery object', function () {
- expect($.fn.msgBox).toBeDefined();
- });
-
- it('widget gets options', function () {
- wdContainer.msgBox({
- 'msgBoxCookieName': msgCookieName
- });
- expect(wdContainer.msgBox('option', 'msgBoxCookieName')).toBe('FAKE_COOKIE');
- });
-
- it('widget disables cookie if it exist', function () {
- spyOn($.mage.cookies, 'get').and.returnValue('FAKE_MAGE_COOKIE');
- spyOn($.mage.cookies, 'clear');
-
- wdContainer.msgBox({
- 'msgBoxSelector': msgContainer
- });
-
- expect($.mage.cookies.get).toHaveBeenCalled();
- expect($.mage.cookies.clear).toHaveBeenCalled();
- });
-
- it('widget disables messageBox if cookie not exist', function () {
- spyOn($.mage.cookies, 'get');
-
- wdContainer.msgBox({
- 'msgBoxSelector': msgContainer
- });
-
- expect($.mage.cookies.get).toHaveBeenCalled();
- expect(msgContainer.is(':hidden')).toBeTruthy();
- });
-
- it('widget exist on load on body', function (done) {
- $(function () {
- expect($('body').data('mageMsgBox')).toBeDefined();
- done();
- });
- });
- });
-
describe('Testing FormKey Widget', function () {
var wdContainer,
msgCookieName,
diff --git a/lib/internal/Magento/Framework/App/ObjectManager/Environment/Developer.php b/lib/internal/Magento/Framework/App/ObjectManager/Environment/Developer.php
index 09d25c7de4d1b..df2a6ceee56e0 100644
--- a/lib/internal/Magento/Framework/App/ObjectManager/Environment/Developer.php
+++ b/lib/internal/Magento/Framework/App/ObjectManager/Environment/Developer.php
@@ -62,6 +62,7 @@ public function getObjectManagerConfigLoader()
*/
public function configureObjectManager(ConfigInterface $diConfig, &$sharedInstances)
{
+ $originalSharedInstances = $sharedInstances;
$objectManager = ObjectManager::getInstance();
$sharedInstances['Magento\Framework\ObjectManager\ConfigLoaderInterface'] = $objectManager
->get('Magento\Framework\App\ObjectManager\ConfigLoader');
@@ -80,5 +81,9 @@ public function configureObjectManager(ConfigInterface $diConfig, &$sharedInstan
$diConfig->setInterceptionConfig(
$objectManager->get('Magento\Framework\Interception\Config\Config')
);
+ /** Reset the shared instances once interception config is set so classes can be intercepted if necessary */
+ $sharedInstances = $originalSharedInstances;
+ $sharedInstances['Magento\Framework\ObjectManager\ConfigLoaderInterface'] = $objectManager
+ ->get('Magento\Framework\App\ObjectManager\ConfigLoader');
}
}
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/ObjectManager/Environment/DeveloperTest.php b/lib/internal/Magento/Framework/App/Test/Unit/ObjectManager/Environment/DeveloperTest.php
index c86318181a2c0..6e7ddc94f3d26 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/ObjectManager/Environment/DeveloperTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/ObjectManager/Environment/DeveloperTest.php
@@ -5,6 +5,7 @@
*/
namespace Magento\Framework\App\Test\Unit\ObjectManager\Environment;
+use Magento\Framework\App\ObjectManager;
use Magento\Framework\App\ObjectManager\Environment\Developer;
class DeveloperTest extends \PHPUnit_Framework_TestCase
@@ -29,4 +30,61 @@ public function testGetObjectManagerConfigLoader()
{
$this->assertNull($this->_developer->getObjectManagerConfigLoader());
}
+
+ public function testConfigureObjectManager()
+ {
+ try {
+ $origObjectManager = ObjectManager::getInstance();
+ } catch (\Exception $e) {
+ $origObjectManager = null;
+ }
+
+
+ $objectManagerMock = $this->getMockBuilder('Magento\Framework\App\ObjectManager')
+ ->disableOriginalConstructor()
+ ->getMock();
+ ObjectManager::setInstance($objectManagerMock);
+ $diConfigMock = $this->getMockBuilder('\Magento\Framework\Interception\ObjectManager\ConfigInterface')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $configLoaderMock = $this->getMockBuilder('Magento\Framework\App\ObjectManager\ConfigLoader')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $configLoaderMock->expects($this->any())->method('load')->willReturn([]);
+ $omReturnMap = [
+ ['Magento\Framework\App\ObjectManager\ConfigLoader', $configLoaderMock],
+ [
+ 'Magento\Framework\Config\ScopeInterface',
+ $this->getMockBuilder('Magento\Framework\Config\ScopeInterface')
+ ->disableOriginalConstructor()
+ ->getMock()
+ ],
+ [
+ 'Magento\Framework\App\ObjectManager\ConfigCache',
+ $this->getMockBuilder('Magento\Framework\App\ObjectManager\ConfigCache')
+ ->disableOriginalConstructor()
+ ->getMock()
+ ],
+ [
+ 'Magento\Framework\Interception\Config\Config',
+ $this->getMockBuilder('Magento\Framework\Interception\Config\Config')
+ ->disableOriginalConstructor()
+ ->getMock()
+ ]
+ ];
+ $objectManagerMock->expects($this->any())->method('get')->willReturnMap($omReturnMap);
+
+ $sharedInstances = ['class_name' => 'shared_object'];
+ $this->_developer->configureObjectManager($diConfigMock, $sharedInstances);
+
+ $expectedSharedInstances = [
+ 'class_name' => 'shared_object',
+ 'Magento\Framework\ObjectManager\ConfigLoaderInterface' => $configLoaderMock
+ ];
+ $this->assertSame($expectedSharedInstances, $sharedInstances);
+ if (isset($origObjectManager)) {
+ ObjectManager::setInstance($origObjectManager);
+ }
+ }
}