Move select block integration test to unit test

[MAILPOET-2665]
This commit is contained in:
Rostislav Wolny
2020-01-30 12:28:22 +01:00
committed by Jack Kitterhing
parent c1180cd0aa
commit f0c1c3e424
2 changed files with 26 additions and 9 deletions

View File

@@ -2,8 +2,6 @@
namespace MailPoet\Form\Block; namespace MailPoet\Form\Block;
use MailPoet\WP\Functions as WPFunctions;
class Select extends Base { class Select extends Base {
public function render($block) { public function render($block) {
@@ -55,7 +53,7 @@ class Select extends Base {
} }
$html .= '<option value="' . $value . '"' . $isSelected . $isDisabled . '>'; $html .= '<option value="' . $value . '"' . $isSelected . $isDisabled . '>';
$html .= WPFunctions::get()->escAttr($label); $html .= $this->wp->escAttr($label);
$html .= '</option>'; $html .= '</option>';
} }
$html .= '</select>'; $html .= '</select>';

View File

@@ -3,12 +3,31 @@
namespace MailPoet\Test\Form\Block; namespace MailPoet\Test\Form\Block;
use MailPoet\Form\Block\Select; use MailPoet\Form\Block\Select;
use MailPoet\Form\Util\FieldNameObfuscator;
use MailPoet\Models\Subscriber; use MailPoet\Models\Subscriber;
use MailPoet\WP\Functions;
use PHPUnit\Framework\MockObject\MockObject;
class SelectTest extends \MailPoetUnitTest {
/** @var array */
private $block;
/** @var Select */
private $selectBlock;
/** @var MockObject | Functions */
private $wpMock;
/** @var MockObject | FieldNameObfuscator */
private $fieldNameObfuscatorMock;
class SelectTest extends \MailPoetTest {
public $block;
public function _before() { public function _before() {
parent::_before(); parent::_before();
$this->wpMock = $this->createMock(Functions::class);
$this->wpMock->method('escAttr')->will($this->returnArgument(0));
$this->fieldNameObfuscatorMock = $this->createMock(FieldNameObfuscator::class);
$this->fieldNameObfuscatorMock->method('obfuscate')->will($this->returnArgument(0));
$this->selectBlock = new Select($this->fieldNameObfuscatorMock, $this->wpMock);
$this->block = [ $this->block = [
'id' => 'status', 'id' => 'status',
'type' => 'select', 'type' => 'select',
@@ -42,7 +61,7 @@ class SelectTest extends \MailPoetTest {
} }
public function testItRendersSelectBlock() { public function testItRendersSelectBlock() {
$rendered = Select::render($this->block); $rendered = $this->selectBlock->render($this->block);
expect($rendered)->contains(Subscriber::STATUS_SUBSCRIBED); expect($rendered)->contains(Subscriber::STATUS_SUBSCRIBED);
expect($rendered)->contains(Subscriber::STATUS_UNSUBSCRIBED); expect($rendered)->contains(Subscriber::STATUS_UNSUBSCRIBED);
expect($rendered)->contains(Subscriber::STATUS_BOUNCED); expect($rendered)->contains(Subscriber::STATUS_BOUNCED);
@@ -50,19 +69,19 @@ class SelectTest extends \MailPoetTest {
public function testItRendersSelectedOption() { public function testItRendersSelectedOption() {
$this->block['params']['values'][0]['is_checked'] = true; $this->block['params']['values'][0]['is_checked'] = true;
$rendered = Select::render($this->block); $rendered = $this->selectBlock->render($this->block);
expect($rendered)->contains('selected="selected"'); expect($rendered)->contains('selected="selected"');
} }
public function testItRendersDisabledOptions() { public function testItRendersDisabledOptions() {
$this->block['params']['values'][2]['is_disabled'] = true; $this->block['params']['values'][2]['is_disabled'] = true;
$rendered = Select::render($this->block); $rendered = $this->selectBlock->render($this->block);
expect($rendered)->contains('disabled="disabled"'); expect($rendered)->contains('disabled="disabled"');
} }
public function testItDoesNotRenderHiddenOptions() { public function testItDoesNotRenderHiddenOptions() {
$this->block['params']['values'][2]['is_hidden'] = true; $this->block['params']['values'][2]['is_hidden'] = true;
$rendered = Select::render($this->block); $rendered = $this->selectBlock->render($this->block);
expect($rendered)->notContains(Subscriber::STATUS_BOUNCED); expect($rendered)->notContains(Subscriber::STATUS_BOUNCED);
} }
} }