renderer = new BlockStylesRenderer(); } public function testItShouldReturnEmptyStringForNoStylesOrUnsupportedStyles() { expect($this->renderer->renderForTextInput([]))->equals(''); expect($this->renderer->renderForTextInput(['nonsense' => '10px']))->equals(''); } public function testItShouldRenderSingleTextInputStyles() { expect($this->renderer->renderForTextInput(['border_radius' => 10]))->equals('border-style:solid;border-radius:10px;'); expect($this->renderer->renderForTextInput(['border_color' => '#fff']))->equals('border-style:solid;border-color:#fff;'); expect($this->renderer->renderForTextInput(['border_size' => 10]))->equals('border-style:solid;border-width:10px;'); expect($this->renderer->renderForTextInput(['background_color' => '#dddddd']))->equals('background-color:#dddddd;'); } public function testItShouldCompleteTextInputStyles() { $styles = [ 'border_radius' => 10, 'border_color' => '#fff', 'border_size' => 10, 'background_color' => '#dddddd', 'bold' => '1', ]; $settings = [ 'input_padding' => '40', 'fontSize' => 13, ]; $result = $this->renderer->renderForTextInput($styles, $settings); expect($result)->contains('border-radius:10px;'); expect($result)->contains('border-color:#fff;'); expect($result)->contains('border-width:10px;'); expect($result)->contains('background-color:#dddddd;'); expect($result)->contains('padding:40px;'); expect($result)->contains('font-size:13px;'); expect($result)->notContains('font-weight:bold;'); } public function testItShouldRenderSingleButtonStyles() { expect($this->renderer->renderForButton(['border_radius' => 10]))->equals('border-style:solid;border-radius:10px;border-color:transparent;'); expect($this->renderer->renderForButton(['border_color' => '#fff']))->equals('border-style:solid;border-color:#fff;'); expect($this->renderer->renderForButton(['border_size' => 10]))->equals('border-style:solid;border-width:10px;border-color:transparent;'); expect($this->renderer->renderForButton(['background_color' => '#dddddd']))->equals('background-color:#dddddd;border-color:transparent;'); expect($this->renderer->renderForButton(['font_color' => '#aaa']))->equals('color:#aaa;border-color:transparent;'); expect($this->renderer->renderForButton(['font_size' => 10]))->equals('font-size:10px;border-color:transparent;'); } public function testItShouldCompleteButtonStyles() { $styles = [ 'border_radius' => 10, 'border_color' => '#fff', 'border_size' => 10, 'background_color' => '#dddddd', 'font_color' => '#eeeeee', 'font_size' => 8, 'bold' => '1', ]; $settings = [ 'input_padding' => '40', 'fontSize' => 13, ]; $result = $this->renderer->renderForButton($styles, $settings); expect($result)->contains('border-radius:10px;'); expect($result)->contains('border-color:#fff;'); expect($result)->contains('border-width:10px;'); expect($result)->contains('background-color:#dddddd;'); expect($result)->contains('color:#eeeeee;'); expect($result)->contains('font-size:8px;'); expect($result)->contains('font-weight:bold;'); expect($result)->contains('padding:40px;'); } public function testItShouldRenderSegmentInputStyles() { expect($this->renderer->renderForSelect([], ['input_padding' => 10]))->equals('padding:10px;'); expect($this->renderer->renderForSelect([], ['alignment' => 'right']))->equals('margin: 0 0 0 auto;'); expect($this->renderer->renderForSelect([], ['alignment' => 'center']))->equals('margin: 0 auto;'); } }