Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AllowspecificTest.php
Go to the documentation of this file.
1 <?php
7 
8 class AllowspecificTest extends \PHPUnit\Framework\TestCase
9 {
13  protected $_object;
14 
18  protected $_formMock;
19 
20  protected function setUp()
21  {
22  $testHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
23  $this->_object = $testHelper->getObject(
24  \Magento\Config\Block\System\Config\Form\Field\Select\Allowspecific::class
25  );
26  $this->_object->setData('html_id', 'spec_element');
27  $this->_formMock = $this->createPartialMock(
28  \Magento\Framework\Data\Form::class,
29  ['getHtmlIdPrefix', 'getHtmlIdSuffix', 'getElement']
30  );
31  }
32 
33  public function testGetAfterElementHtml()
34  {
35  $this->_formMock->expects(
36  $this->once()
37  )->method(
38  'getHtmlIdPrefix'
39  )->will(
40  $this->returnValue('test_prefix_')
41  );
42  $this->_formMock->expects(
43  $this->once()
44  )->method(
45  'getHtmlIdSuffix'
46  )->will(
47  $this->returnValue('_test_suffix')
48  );
49 
50  $afterHtmlCode = 'after html';
51  $this->_object->setData('after_element_html', $afterHtmlCode);
52  $this->_object->setForm($this->_formMock);
53 
54  $actual = $this->_object->getAfterElementHtml();
55 
56  $this->assertStringEndsWith('</script>' . $afterHtmlCode, $actual);
57  $this->assertStringStartsWith('<script type="text/javascript">', trim($actual));
58  $this->assertContains('test_prefix_spec_element_test_suffix', $actual);
59  }
60 
66  {
67  $this->_object->setForm($this->_formMock);
68 
69  $elementMock = $this->createPartialMock(\Magento\Framework\Data\Form\Element\Select::class, ['setDisabled']);
70 
71  $elementMock->expects($this->once())->method('setDisabled')->with('disabled');
72  $countryId = 'tetst_county_specificcountry';
73  $this->_object->setId('tetst_county_allowspecific');
74  $this->_formMock->expects(
75  $this->once()
76  )->method(
77  'getElement'
78  )->with(
79  $countryId
80  )->will(
81  $this->returnValue($elementMock)
82  );
83 
84  $this->_object->setValue($value);
85  $this->assertNotEmpty($this->_object->getHtml());
86  }
87 
92  {
93  return [
94  'zero' => ['1' => 0],
95  'null' => ['1' => null],
96  'false' => ['1' => false],
97  'negative' => ['1' => -1]
98  ];
99  }
100 }
$value
Definition: gender.phtml:16