RegisterTest.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Customer\Block\Form;
  7. use Magento\Customer\Block\DataProviders\AddressAttributeData;
  8. use Magento\Framework\View\Element\Template;
  9. use Magento\TestFramework\Helper\Bootstrap;
  10. /**
  11. * Test class for \Magento\Customer\Block\Form\Register
  12. *
  13. * @magentoAppArea frontend
  14. */
  15. class RegisterTest extends \PHPUnit\Framework\TestCase
  16. {
  17. /**
  18. * @magentoAppIsolation enabled
  19. * @magentoDbIsolation enabled
  20. * @return void
  21. */
  22. public function testCompanyDefault(): void
  23. {
  24. /** @var \Magento\Customer\Block\Widget\Company $block */
  25. $block = Bootstrap::getObjectManager()->create(Register::class)
  26. ->setTemplate('Magento_Customer::form/register.phtml')
  27. ->setShowAddressFields(true);
  28. $this->setAttributeDataProvider($block);
  29. $this->assertContains('title="Company"', $block->toHtml());
  30. }
  31. /**
  32. * @magentoAppIsolation enabled
  33. * @magentoDbIsolation enabled
  34. * @return void
  35. */
  36. public function testTelephoneDefault(): void
  37. {
  38. /** @var \Magento\Customer\Block\Widget\Company $block */
  39. $block = Bootstrap::getObjectManager()->create(
  40. Register::class
  41. )->setTemplate('Magento_Customer::form/register.phtml')
  42. ->setShowAddressFields(true);
  43. $this->setAttributeDataProvider($block);
  44. $this->assertContains('title="Phone&#x20;Number"', $block->toHtml());
  45. }
  46. /**
  47. * @magentoAppIsolation enabled
  48. * @magentoDbIsolation enabled
  49. * @return void
  50. */
  51. public function testFaxDefault(): void
  52. {
  53. /** @var \Magento\Customer\Block\Widget\Company $block */
  54. $block = Bootstrap::getObjectManager()->create(
  55. Register::class
  56. )->setTemplate('Magento_Customer::form/register.phtml')
  57. ->setShowAddressFields(true);
  58. $this->setAttributeDataProvider($block);
  59. $this->assertNotContains('title="Fax"', $block->toHtml());
  60. }
  61. /**
  62. * @magentoAppIsolation enabled
  63. * @magentoDbIsolation enabled
  64. * @return void
  65. */
  66. public function testCompanyDisabled(): void
  67. {
  68. /** @var \Magento\Customer\Model\Attribute $model */
  69. $model = Bootstrap::getObjectManager()->create(
  70. \Magento\Customer\Model\Attribute::class
  71. );
  72. $model->loadByCode('customer_address', 'company')->setIsVisible('0');
  73. $model->save();
  74. /** @var \Magento\Customer\Block\Widget\Company $block */
  75. $block = Bootstrap::getObjectManager()->create(
  76. Register::class
  77. )->setTemplate('Magento_Customer::form/register.phtml')
  78. ->setShowAddressFields(true);
  79. $this->setAttributeDataProvider($block);
  80. $this->assertNotContains('title="Company"', $block->toHtml());
  81. }
  82. /**
  83. * @magentoAppIsolation enabled
  84. * @magentoDbIsolation enabled
  85. * @return void
  86. */
  87. public function testTelephoneDisabled(): void
  88. {
  89. /** @var \Magento\Customer\Model\Attribute $model */
  90. $model = Bootstrap::getObjectManager()->create(
  91. \Magento\Customer\Model\Attribute::class
  92. );
  93. $model->loadByCode('customer_address', 'telephone')->setIsVisible('0');
  94. $model->save();
  95. /** @var \Magento\Customer\Block\Widget\Company $block */
  96. $block = Bootstrap::getObjectManager()->create(
  97. Register::class
  98. )->setTemplate('Magento_Customer::form/register.phtml')
  99. ->setShowAddressFields(true);
  100. $this->setAttributeDataProvider($block);
  101. $this->assertNotContains('title="Phone&#x20;Number"', $block->toHtml());
  102. }
  103. /**
  104. * @magentoAppIsolation enabled
  105. * @magentoDbIsolation enabled
  106. * @return void
  107. */
  108. public function testFaxEnabled(): void
  109. {
  110. /** @var \Magento\Customer\Model\Attribute $model */
  111. $model = Bootstrap::getObjectManager()->create(
  112. \Magento\Customer\Model\Attribute::class
  113. );
  114. $model->loadByCode('customer_address', 'fax')->setIsVisible('1');
  115. $model->save();
  116. /** @var \Magento\Customer\Block\Widget\Company $block */
  117. $block = Bootstrap::getObjectManager()->create(
  118. Register::class
  119. )->setTemplate('Magento_Customer::form/register.phtml')
  120. ->setShowAddressFields(true);
  121. $this->setAttributeDataProvider($block);
  122. $this->assertContains('title="Fax"', $block->toHtml());
  123. }
  124. /**
  125. * @inheritdoc
  126. */
  127. protected function tearDown()
  128. {
  129. /** @var \Magento\Eav\Model\Config $eavConfig */
  130. $eavConfig = Bootstrap::getObjectManager()->get(\Magento\Eav\Model\Config::class);
  131. $eavConfig->clear();
  132. }
  133. /**
  134. * Set attribute data provider.
  135. *
  136. * @param Template $block
  137. * @return void
  138. */
  139. private function setAttributeDataProvider(Template $block): void
  140. {
  141. $attributeData = Bootstrap::getObjectManager()->get(AddressAttributeData::class);
  142. $block->setAttributeData($attributeData);
  143. }
  144. }