Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
FormTest.php
Go to the documentation of this file.
1 <?php
7 
8 class FormTest extends \PHPUnit\Framework\TestCase
9 {
13  protected $_helper;
14 
18  protected $_formMock;
19 
23  protected $_fieldsetMock;
24 
29 
30  protected function setUp()
31  {
32  $this->_formMock = $this->createPartialMock(
33  \Magento\Framework\Data\Form::class,
34  ['setFieldNameSuffix', 'addFieldset']
35  );
36  $this->_fieldsetMock = $this->createMock(\Magento\Framework\Data\Form\Element\Fieldset::class);
37  $this->_experimentCodeMock = $this->createPartialMock(
38  \Magento\GoogleOptimizer\Model\Code::class,
39  ['getExperimentScript', 'getCodeId', '__wakeup']
40  );
41  $context = $this->createMock(\Magento\Framework\App\Helper\Context::class);
42  $data = ['context' => $context];
43  $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
44  $this->_helper = $objectManagerHelper->getObject(\Magento\GoogleOptimizer\Helper\Form::class, $data);
45  }
46 
48  {
49  $experimentCode = 'some-code';
50  $experimentCodeId = 'code-id';
51  $this->_experimentCodeMock->expects(
52  $this->once()
53  )->method(
54  'getExperimentScript'
55  )->will(
56  $this->returnValue($experimentCode)
57  );
58  $this->_experimentCodeMock->expects(
59  $this->once()
60  )->method(
61  'getCodeId'
62  )->will(
63  $this->returnValue($experimentCodeId)
64  );
65  $this->_prepareFormMock($experimentCode, $experimentCodeId);
66 
67  $this->_helper->addGoogleoptimizerFields($this->_formMock, $this->_experimentCodeMock);
68  }
69 
71  {
72  $experimentCode = '';
73  $experimentCodeId = '';
74  $this->_prepareFormMock($experimentCode, $experimentCodeId);
75 
76  $this->_helper->addGoogleoptimizerFields($this->_formMock, null);
77  }
78 
83  protected function _prepareFormMock($experimentCode, $experimentCodeId)
84  {
85  $this->_formMock->expects(
86  $this->once()
87  )->method(
88  'addFieldset'
89  )->with(
90  'googleoptimizer_fields',
91  ['legend' => 'Google Analytics Content Experiments Code']
92  )->will(
93  $this->returnValue($this->_fieldsetMock)
94  );
95 
96  $this->_fieldsetMock->expects(
97  $this->at(0)
98  )->method(
99  'addField'
100  )->with(
101  'experiment_script',
102  'textarea',
103  [
104  'name' => 'experiment_script',
105  'label' => 'Experiment Code',
106  'value' => $experimentCode,
107  'class' => 'textarea googleoptimizer',
108  'required' => false,
109  'note' => 'Experiment code should be added to the original page only.',
110  'data-form-part' => ''
111  ]
112  );
113 
114  $this->_fieldsetMock->expects(
115  $this->at(1)
116  )->method(
117  'addField'
118  )->with(
119  'code_id',
120  'hidden',
121  [
122  'name' => 'code_id',
123  'value' => $experimentCodeId,
124  'required' => false,
125  'data-form-part' => ''
126  ]
127  );
128  $this->_formMock->expects($this->once())->method('setFieldNameSuffix')->with('google_experiment');
129  }
130 }
_prepareFormMock($experimentCode, $experimentCodeId)
Definition: FormTest.php:83