Example #1
0
 public function testRenderingWithoutRenderer()
 {
     $this->removeRendererFromPhrase();
     $result = 'some text';
     $this->phrase = new \Magento\Framework\Phrase($result);
     $this->assertEquals($result, $this->phrase->render());
 }
 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();
 }
 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);
 }
 /**
  * @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());
 }
Example #5
0
 /**
  * Combine submessages delimited by separator and render them with main message
  *
  * @param string $mainMessage
  * @param MessageInterface[] $subMessages
  * @param string $separator
  * @return Phrase
  */
 public function create($mainMessage, $subMessages, $separator = '; ')
 {
     $renderedErrors = '';
     $eol = '';
     /** @var MessageInterface $subMessage */
     foreach ($subMessages as $subMessage) {
         if ($subMessage instanceof MessageInterface) {
             $phrase = new Phrase($subMessage->getText());
         } else {
             $phrase = new Phrase('Cannot render error message!');
         }
         $renderedErrors .= $eol . $phrase->render();
         $eol = $separator;
     }
     //$mainMessage should contain %1 to be substituted by concatenated errors
     return new Phrase($mainMessage, [$renderedErrors]);
 }
Example #6
0
 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);
 }
 /**
  * Intercept core config form block getScopeLabel() method
  * to add additional override hints.
  *
  * @see Magento\Config\Block\System\Config\Form::getScopeLabel()
  * @param \Magento\Config\Block\System\Config\Form $form
  * @param callable $getScopeLabel
  * @param Field $field
  * @return Phrase
  */
 public function aroundGetScopeLabel(\Magento\Config\Block\System\Config\Form $form, \Closure $getScopeLabel, Field $field)
 {
     $currentScopeId = null;
     switch ($form->getScope()) {
         case 'websites':
             $currentScopeId = $form->getWebsiteCode();
             break;
         case 'stores':
             $currentScopeId = $form->getStoreCode();
             break;
     }
     $overriddenLevels = $this->helper->getOverriddenLevels($field->getPath(), $form->getScope(), $currentScopeId);
     /* @var $returnPhrase Phrase */
     $labelPhrase = $getScopeLabel($field);
     if (!empty($overriddenLevels)) {
         $scopeHintText = $labelPhrase . $this->helper->formatOverriddenScopes($form, $overriddenLevels);
         // create new phrase, now that constituent strings are translated individually
         $labelPhrase = new Phrase($scopeHintText, $labelPhrase->getArguments());
     }
     return $labelPhrase;
 }
 /**
  * Add new error into the list of exceptions
  *
  * @param \Magento\Framework\Phrase $phrase
  * @return $this
  */
 public function addError(Phrase $phrase)
 {
     $this->addErrorCalls++;
     if (empty($this->errors)) {
         if (1 === $this->addErrorCalls) {
             // First call: simply overwrite the phrase and message
             $this->phrase = $phrase;
             $this->message = $phrase->render();
             $this->logMessage = null;
         } elseif (2 === $this->addErrorCalls) {
             // Second call: store the error from the first call and the second call in the array
             // restore the phrase to its original value
             $this->errors[] = new LocalizedException($this->phrase);
             $this->errors[] = new LocalizedException($phrase);
             $this->phrase = $this->originalPhrase;
             $this->message = $this->originalPhrase->render();
             $this->logMessage = null;
         }
     } else {
         // All subsequent calls after the second should reach here
         $this->errors[] = new LocalizedException($phrase);
     }
     return $this;
 }
 /**
  * @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());
 }
Example #10
0
 /**
  * @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);
 }
Example #11
0
 /**
  * {inheritdoc}
  */
 protected function tearDown()
 {
     $this->model = null;
     \Magento\Framework\Phrase::setRenderer($this->defaultRenderer);
 }
Example #12
0
 /**
  * Test default renderer
  */
 public function testDefaultRenderer()
 {
     $this->assertInstanceOf('Magento\\Framework\\Phrase\\Renderer\\Placeholder', Phrase::getRenderer());
 }
 /**
  * Set phrase renderer
  * @return void
  */
 protected function setPhraseRenderer()
 {
     \Magento\Framework\Phrase::setRenderer($this->rendererCompositeFactory->create());
 }
Example #14
0
/**
 * @param E|string|Phrase $e
 * @return string|Phrase
 */
function df_ets($e)
{
    return !$e instanceof E ? $e : ($e instanceof DFE ? $e->message() : $e->getMessage());
}
Example #15
0
 /**
  * Test get arguments
  *
  * @return void
  */
 public function testGetArguments()
 {
     $text = 'some text';
     $arguments = ['arg1', 'arg2'];
     $phrase1 = new Phrase($text);
     $phrase2 = new Phrase($text, $arguments);
     $this->assertEquals([], $phrase1->getArguments());
     $this->assertEquals($arguments, $phrase2->getArguments());
 }
 /**
  * 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();
 }
Example #17
0
 /**
  * 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);
     }
 }
Example #18
0
 /**
  * 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;
 }
 /**
  * @return void
  */
 public function tearDown()
 {
     \Magento\Framework\Phrase::setRenderer($this->defaultRenderer);
 }
Example #20
0
<?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);
 /**
  * Get parameters, corresponding to placeholders in raw exception message
  *
  * @return array
  */
 public function getParameters()
 {
     return $this->phrase->getArguments();
 }
Example #22
0
 /**
  * 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;
 }