protected function setUp() { /** @var \Magento\Framework\View\FileSystem $viewFileSystem */ $viewFileSystem = $this->getMock('Magento\\Framework\\View\\FileSystem', ['getLocaleFileName', 'getDesignTheme'], [], '', false); $viewFileSystem->expects($this->any())->method('getLocaleFileName')->will($this->returnValue(dirname(__DIR__) . '/Theme/Model/_files/design/frontend/Test/default/i18n/en_US.csv')); /** @var \Magento\Framework\View\Design\ThemeInterface $theme */ $theme = $this->getMock('Magento\\Framework\\View\\Design\\ThemeInterface', []); $theme->expects($this->any())->method('getId')->will($this->returnValue(10)); $viewFileSystem->expects($this->any())->method('getDesignTheme')->will($this->returnValue($theme)); $objectManager = Bootstrap::getObjectManager(); $objectManager->addSharedInstance($viewFileSystem, 'Magento\\Framework\\View\\FileSystem'); /** @var $moduleReader \Magento\Framework\Module\Dir\Reader */ $moduleReader = $objectManager->get('Magento\\Framework\\Module\\Dir\\Reader'); $moduleReader->setModuleDir('Magento_Store', 'i18n', dirname(__DIR__) . '/Translation/Model/_files/Magento/Store/i18n'); $moduleReader->setModuleDir('Magento_Catalog', 'i18n', dirname(__DIR__) . '/Translation/Model/_files/Magento/Catalog/i18n'); /** @var \Magento\Theme\Model\View\Design $designModel */ $designModel = $this->getMock('Magento\\Theme\\Model\\View\\Design', ['getDesignTheme'], [$objectManager->get('Magento\\Store\\Model\\StoreManagerInterface'), $objectManager->get('Magento\\Framework\\View\\Design\\Theme\\FlyweightFactory'), $objectManager->get('Magento\\Framework\\App\\Config\\ScopeConfigInterface'), $objectManager->get('Magento\\Theme\\Model\\ThemeFactory'), $objectManager->get('Magento\\Framework\\ObjectManagerInterface'), $objectManager->get('Magento\\Framework\\App\\State'), ['frontend' => 'Test/default']]); $designModel->expects($this->any())->method('getDesignTheme')->will($this->returnValue($theme)); $objectManager->addSharedInstance($designModel, 'Magento\\Theme\\Model\\View\\Design\\Proxy'); $model = $objectManager->create('Magento\\Framework\\Translate'); $objectManager->addSharedInstance($model, 'Magento\\Framework\\Translate'); $objectManager->removeSharedInstance('Magento\\Framework\\Phrase\\Renderer\\Composite'); $objectManager->removeSharedInstance('Magento\\Framework\\Phrase\\Renderer\\Translate'); \Magento\Framework\Phrase::setRenderer($objectManager->get('Magento\\Framework\\Phrase\\RendererInterface')); $model->loadData(\Magento\Framework\App\Area::AREA_FRONTEND); }
protected function tearDown() { Phrase::setRenderer($this->renderer); /** @var \Magento\Framework\App\Cache\Type\Translate $cache */ $cache = $this->objectManager->get('Magento\\Framework\\App\\Cache\\Type\\Translate'); $cache->clean(); }
/** * @param string $message * @param string $expectedMessage * @return void * @dataProvider constantsDataProvider */ public function testConstants($message, $expectedMessage) { $this->renderedMessage = $message; $this->rendererMock->expects($this->once())->method('render')->will($this->returnValue($this->renderedMessage)); \Magento\Framework\Phrase::setRenderer($this->rendererMock); $exception = new NoSuchEntityException(new Phrase($message, ['consumer_id' => 1, 'resources' => 'record2'])); $this->assertSame($expectedMessage, $exception->getMessage()); }
/** * Test that to string is alias to render * * @return void */ public function testThatToStringIsAliasToRender() { $text = 'some text'; $arguments = ['arg1', 'arg2']; $result = 'rendered text'; $phrase = new Phrase($text, $arguments); Phrase::setRenderer($this->rendererMock); $this->rendererMock->expects($this->once())->method('render')->with([$text], $arguments)->willReturn($result); $this->assertEquals($result, (string) $phrase); }
protected function setUp() { $this->_booleanUtils = $this->getMock('\\Magento\\Framework\\Stdlib\\BooleanUtils'); $this->_booleanUtils->expects($this->any())->method('toBoolean')->will($this->returnValueMap([['true', true], ['false', false]])); $this->_model = new String($this->_booleanUtils); $translateRenderer = $this->getMockForAbstractClass('Magento\\Framework\\Phrase\\RendererInterface'); $translateRenderer->expects($this->any())->method('render')->will($this->returnCallback(function ($input) { return end($input) . ' (translated)'; })); \Magento\Framework\Phrase::setRenderer($translateRenderer); }
/** * @return void */ public function testConstructor() { $this->renderedMessage = 'rendered message'; $this->rendererMock->expects($this->once())->method('render')->will($this->returnValue($this->renderedMessage)); \Magento\Framework\Phrase::setRenderer($this->rendererMock); $message = 'message %1 %2'; $params = ['parameter1', 'parameter2']; $expectedLogMessage = 'message parameter1 parameter2'; $cause = new \Exception(); $localizeException = new NoSuchEntityException(new Phrase($message, $params), $cause); $this->assertEquals(0, $localizeException->getCode()); $this->assertEquals($message, $localizeException->getRawMessage()); $this->assertEquals($this->renderedMessage, $localizeException->getMessage()); $this->assertEquals($expectedLogMessage, $localizeException->getLogMessage()); $this->assertSame($cause, $localizeException->getPrevious()); }
/** * @return void */ public function tearDown() { \Magento\Framework\Phrase::setRenderer($this->defaultRenderer); }
/** * Initialize application * * @param array $overriddenParams */ public function initialize($overriddenParams = array()) { $overriddenParams['base_dir'] = BP; $overriddenParams[\Magento\Framework\App\State::PARAM_MODE] = $this->_appMode; $overriddenParams = $this->_customizeParams($overriddenParams); /** @var \Magento\TestFramework\ObjectManager $objectManager */ $objectManager = Helper\Bootstrap::getObjectManager(); if (!$objectManager) { $objectManager = $this->_factory->create(BP, $overriddenParams); } else { $objectManager = $this->_factory->restore($objectManager, BP, $overriddenParams); } $directories = isset($overriddenParams[Filesystem::PARAM_APP_DIRS]) ? $overriddenParams[Filesystem::PARAM_APP_DIRS] : array(); $directoryList = new \Magento\TestFramework\App\Filesystem\DirectoryList(BP, $directories); $objectManager->addSharedInstance($directoryList, 'Magento\\Framework\\App\\Filesystem\\DirectoryList'); $objectManager->addSharedInstance($directoryList, 'Magento\\Framework\\Filesystem\\DirectoryList'); $objectManager->removeSharedInstance('Magento\\Framework\\App\\Filesystem'); $objectManager->removeSharedInstance('Magento\\Framework\\App\\Filesystem\\DirectoryList\\Verification'); Helper\Bootstrap::setObjectManager($objectManager); $objectManager->configure(array('preferences' => array('Magento\\Framework\\App\\State' => 'Magento\\TestFramework\\App\\State'))); /** Register event observer of Integration Framework */ /** @var \Magento\Framework\Event\Config\Data $eventConfigData */ $eventConfigData = $objectManager->get('Magento\\Framework\\Event\\Config\\Data'); $eventConfigData->merge(array('core_app_init_current_store_after' => array('integration_tests' => array('instance' => 'Magento\\TestFramework\\Event\\Magento', 'method' => 'initStoreAfter', 'name' => 'integration_tests')))); $this->loadArea(\Magento\TestFramework\Application::DEFAULT_APP_AREA); \Magento\Framework\Phrase::setRenderer($objectManager->get('Magento\\Framework\\Phrase\\RendererInterface')); /** @var \Magento\Framework\App\Filesystem\DirectoryList\Verification $verification */ $verification = $objectManager->get('Magento\\Framework\\App\\Filesystem\\DirectoryList\\Verification'); $verification->createAndVerifyDirectories(); $directoryList = $objectManager->get('Magento\\Framework\\App\\Filesystem\\DirectoryList'); $directoryListConfig = $objectManager->get('Magento\\Framework\\App\\Filesystem\\DirectoryList\\Configuration'); $directoryListConfig->configure($directoryList); $directories = isset($overriddenParams[\Magento\Framework\App\Filesystem::PARAM_APP_DIRS]) ? $overriddenParams[\Magento\Framework\App\Filesystem::PARAM_APP_DIRS] : array(); foreach ($directories as $code => $configOverrides) { $config = array_merge($directoryList->getConfig($code), $configOverrides); $directoryList->addDirectory($code, $config); } }
/** * Initialize application * * @param array $overriddenParams * @return void */ public function initialize($overriddenParams = []) { $overriddenParams[\Magento\Framework\App\State::PARAM_MODE] = $this->_appMode; $overriddenParams = $this->_customizeParams($overriddenParams); $directories = isset($overriddenParams[\Magento\Framework\App\Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS]) ? $overriddenParams[\Magento\Framework\App\Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS] : []; $directoryList = new DirectoryList(BP, $directories); /** @var \Magento\TestFramework\ObjectManager $objectManager */ $objectManager = Helper\Bootstrap::getObjectManager(); if (!$objectManager) { $objectManager = $this->_factory->create($overriddenParams); $objectManager->addSharedInstance($directoryList, 'Magento\\Framework\\App\\Filesystem\\DirectoryList'); $objectManager->addSharedInstance($directoryList, 'Magento\\Framework\\Filesystem\\DirectoryList'); } else { $objectManager = $this->_factory->restore($objectManager, $directoryList, $overriddenParams); } /** @var \Magento\TestFramework\App\Filesystem $filesystem */ $filesystem = $objectManager->get('Magento\\TestFramework\\App\\Filesystem'); $objectManager->removeSharedInstance('Magento\\Framework\\Filesystem'); $objectManager->addSharedInstance($filesystem, 'Magento\\Framework\\Filesystem'); /** @var \Psr\Log\LoggerInterface $logger */ $logger = $objectManager->create('Magento\\TestFramework\\ErrorLog\\Logger', ['name' => 'integration-tests', 'handlers' => ['system' => $objectManager->create('Magento\\Framework\\Logger\\Handler\\System', ['exceptionHandler' => $objectManager->create('Magento\\Framework\\Logger\\Handler\\Exception', ['filePath' => $this->installDir]), 'filePath' => $this->installDir]), 'debug' => $objectManager->create('Magento\\Framework\\Logger\\Handler\\Debug', ['filePath' => $this->installDir])]]); $objectManager->removeSharedInstance('Magento\\Framework\\Logger\\Monolog'); $objectManager->addSharedInstance($logger, 'Magento\\Framework\\Logger\\Monolog'); $sequenceBuilder = $objectManager->get('\\Magento\\TestFramework\\Db\\Sequence\\Builder'); $objectManager->addSharedInstance($sequenceBuilder, 'Magento\\SalesSequence\\Model\\Builder'); Helper\Bootstrap::setObjectManager($objectManager); $objectManagerConfiguration = ['preferences' => ['Magento\\Framework\\App\\State' => 'Magento\\TestFramework\\App\\State', 'Magento\\Framework\\Mail\\TransportInterface' => 'Magento\\TestFramework\\Mail\\TransportInterfaceMock', 'Magento\\Framework\\Mail\\Template\\TransportBuilder' => 'Magento\\TestFramework\\Mail\\Template\\TransportBuilderMock']]; if ($this->loadTestExtensionAttributes) { $objectManagerConfiguration = array_merge($objectManagerConfiguration, ['Magento\\Framework\\Api\\ExtensionAttribute\\Config\\Reader' => ['arguments' => ['fileResolver' => ['instance' => 'Magento\\TestFramework\\Api\\Config\\Reader\\FileResolver']]]]); } $objectManager->configure($objectManagerConfiguration); /** Register event observer of Integration Framework */ /** @var \Magento\Framework\Event\Config\Data $eventConfigData */ $eventConfigData = $objectManager->get('Magento\\Framework\\Event\\Config\\Data'); $eventConfigData->merge(['core_app_init_current_store_after' => ['integration_tests' => ['instance' => 'Magento\\TestFramework\\Event\\Magento', 'name' => 'integration_tests']]]); $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\\Renderer\\Placeholder')); /** @var \Magento\TestFramework\Db\Sequence $sequence */ $sequence = $objectManager->get('Magento\\TestFramework\\Db\\Sequence'); $sequence->generateSequences(); $objectManager->create('Magento\\TestFramework\\Config', ['configPath' => $this->globalConfigFile])->rewriteAdditionalConfig(); }
/** * @param $directive * @param $translations * @param $expectedResult * @internal param $translatorData * @dataProvider transDirectiveDataProvider */ public function testTransDirective($directive, $translations, $expectedResult) { $renderer = Phrase::getRenderer(); $translator = $this->getMockBuilder('\\Magento\\Framework\\Translate')->disableOriginalConstructor()->setMethods(['getData'])->getMock(); $translator->expects($this->atLeastOnce())->method('getData')->will($this->returnValue($translations)); $this->_objectManager->addSharedInstance($translator, 'Magento\\Framework\\Translate'); $this->_objectManager->removeSharedInstance('Magento\\Framework\\Phrase\\Renderer\\Translate'); Phrase::setRenderer($this->_objectManager->create('Magento\\Framework\\Phrase\\RendererInterface')); $this->assertEquals($expectedResult, $this->_model->filter($directive)); Phrase::setRenderer($renderer); }
<?php /** * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ require_once __DIR__ . '/../../../../app/autoload.php'; if (!defined('TESTS_TEMP_DIR')) { define('TESTS_TEMP_DIR', dirname(__DIR__) . '/tmp'); } require_once __DIR__ . '/autoload.php'; require BP . '/app/functions.php'; \Magento\Framework\Phrase::setRenderer(new \Magento\Framework\Phrase\Renderer\Placeholder()); error_reporting(E_ALL); ini_set('display_errors', 1);
/** * Initialize translate object. * * @return $this */ protected function _initTranslate() { $this->_translator->loadData(null, false); \Magento\Framework\Phrase::setRenderer($this->_objectManager->get('Magento\\Framework\\Phrase\\RendererInterface')); return $this; }
/** * Set phrase renderer * @return void */ protected function setPhraseRenderer() { \Magento\Framework\Phrase::setRenderer($this->rendererCompositeFactory->create()); }
protected function tearDown() { $this->removeRendererFromPhrase(); \Magento\Framework\Phrase::setRenderer(new \Magento\Framework\Phrase\Renderer\Placeholder()); }
/** * {inheritdoc} */ protected function tearDown() { $this->model = null; \Magento\Framework\Phrase::setRenderer($this->defaultRenderer); }
/** * Check if server is applicable for Magento * @return $this */ public function checkServer() { \Magento\Framework\Phrase::setRenderer($this->_objectManager->get('Magento\\Framework\\Phrase\\RendererInterface')); $installer = $this->_getInstaller(); $result = $installer->checkServer(); if (!$result) { /** @var \Magento\Framework\Message\ManagerInterface $messageManager*/ $messageManager = $this->_objectManager->get('Magento\\Framework\\Message\\ManagerInterface'); /** @var \Magento\Framework\Message\MessageInterface $message */ foreach ($messageManager->getMessages()->getItems() as $message) { $this->addError($message->toString()); } } return $this; }