123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\GoogleOptimizer\Test\Unit\Helper;
- class FormTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var \Magento\GoogleOptimizer\Helper\Form
- */
- protected $_helper;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_formMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_fieldsetMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_experimentCodeMock;
- protected function setUp()
- {
- $this->_formMock = $this->createPartialMock(
- \Magento\Framework\Data\Form::class,
- ['setFieldNameSuffix', 'addFieldset']
- );
- $this->_fieldsetMock = $this->createMock(\Magento\Framework\Data\Form\Element\Fieldset::class);
- $this->_experimentCodeMock = $this->createPartialMock(
- \Magento\GoogleOptimizer\Model\Code::class,
- ['getExperimentScript', 'getCodeId', '__wakeup']
- );
- $context = $this->createMock(\Magento\Framework\App\Helper\Context::class);
- $data = ['context' => $context];
- $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $this->_helper = $objectManagerHelper->getObject(\Magento\GoogleOptimizer\Helper\Form::class, $data);
- }
- public function testAddFieldsWithExperimentCode()
- {
- $experimentCode = 'some-code';
- $experimentCodeId = 'code-id';
- $this->_experimentCodeMock->expects(
- $this->once()
- )->method(
- 'getExperimentScript'
- )->will(
- $this->returnValue($experimentCode)
- );
- $this->_experimentCodeMock->expects(
- $this->once()
- )->method(
- 'getCodeId'
- )->will(
- $this->returnValue($experimentCodeId)
- );
- $this->_prepareFormMock($experimentCode, $experimentCodeId);
- $this->_helper->addGoogleoptimizerFields($this->_formMock, $this->_experimentCodeMock);
- }
- public function testAddFieldsWithoutExperimentCode()
- {
- $experimentCode = '';
- $experimentCodeId = '';
- $this->_prepareFormMock($experimentCode, $experimentCodeId);
- $this->_helper->addGoogleoptimizerFields($this->_formMock, null);
- }
- /**
- * @param string|array $experimentCode
- * @param string $experimentCodeId
- */
- protected function _prepareFormMock($experimentCode, $experimentCodeId)
- {
- $this->_formMock->expects(
- $this->once()
- )->method(
- 'addFieldset'
- )->with(
- 'googleoptimizer_fields',
- ['legend' => 'Google Analytics Content Experiments Code']
- )->will(
- $this->returnValue($this->_fieldsetMock)
- );
- $this->_fieldsetMock->expects(
- $this->at(0)
- )->method(
- 'addField'
- )->with(
- 'experiment_script',
- 'textarea',
- [
- 'name' => 'experiment_script',
- 'label' => 'Experiment Code',
- 'value' => $experimentCode,
- 'class' => 'textarea googleoptimizer',
- 'required' => false,
- 'note' => 'Experiment code should be added to the original page only.',
- 'data-form-part' => ''
- ]
- );
- $this->_fieldsetMock->expects(
- $this->at(1)
- )->method(
- 'addField'
- )->with(
- 'code_id',
- 'hidden',
- [
- 'name' => 'code_id',
- 'value' => $experimentCodeId,
- 'required' => false,
- 'data-form-part' => ''
- ]
- );
- $this->_formMock->expects($this->once())->method('setFieldNameSuffix')->with('google_experiment');
- }
- }
|