|
|
@@ -0,0 +1,115 @@
|
|
|
+<?php
|
|
|
+/**
|
|
|
+ * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
|
|
|
+ * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
|
|
+ *
|
|
|
+ * Licensed under The MIT License
|
|
|
+ * For full copyright and license information, please see the LICENSE.txt
|
|
|
+ * Redistributions of files must retain the above copyright notice.
|
|
|
+ *
|
|
|
+ * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
|
|
+ * @link http://cakephp.org CakePHP(tm) Project
|
|
|
+ * @since CakePHP(tm) v3.0
|
|
|
+ * @license http://www.opensource.org/licenses/mit-license.php MIT License
|
|
|
+ */
|
|
|
+namespace Cake\Test\TestCase\View\Input;
|
|
|
+
|
|
|
+use Cake\TestSuite\TestCase;
|
|
|
+use Cake\View\Input\Text;
|
|
|
+use Cake\View\StringTemplate;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Text input test.
|
|
|
+ */
|
|
|
+class TextTest extends TestCase {
|
|
|
+
|
|
|
+ public function setUp() {
|
|
|
+ parent::setUp();
|
|
|
+ $templates = [
|
|
|
+ 'input' => '<input type="{{type}}" name="{{name}}"{{attrs}}>',
|
|
|
+ ];
|
|
|
+ $this->templates = new StringTemplate();
|
|
|
+ $this->templates->add($templates);
|
|
|
+ }
|
|
|
+
|
|
|
+/**
|
|
|
+ * Test render in a simple case.
|
|
|
+ *
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function testRenderSimple() {
|
|
|
+ $text = new Text($this->templates);
|
|
|
+ $result = $text->render(['name' => 'my_input']);
|
|
|
+ $expected = [
|
|
|
+ 'input' => ['type' => 'text', 'name' => 'my_input']
|
|
|
+ ];
|
|
|
+ $this->assertTags($result, $expected);
|
|
|
+ }
|
|
|
+
|
|
|
+/**
|
|
|
+ * Test render with custom type
|
|
|
+ *
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function testRenderType() {
|
|
|
+ $text = new Text($this->templates);
|
|
|
+ $data = [
|
|
|
+ 'name' => 'my_input',
|
|
|
+ 'type' => 'email',
|
|
|
+ ];
|
|
|
+ $result = $text->render($data);
|
|
|
+ $expected = [
|
|
|
+ 'input' => ['type' => 'email', 'name' => 'my_input']
|
|
|
+ ];
|
|
|
+ $this->assertTags($result, $expected);
|
|
|
+ }
|
|
|
+
|
|
|
+/**
|
|
|
+ * Test render with a value
|
|
|
+ *
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function testRenderWithValue() {
|
|
|
+ $text = new Text($this->templates);
|
|
|
+ $data = [
|
|
|
+ 'name' => 'my_input',
|
|
|
+ 'type' => 'email',
|
|
|
+ 'val' => 'Some <value>'
|
|
|
+ ];
|
|
|
+ $result = $text->render($data);
|
|
|
+ $expected = [
|
|
|
+ 'input' => [
|
|
|
+ 'type' => 'email',
|
|
|
+ 'name' => 'my_input',
|
|
|
+ 'value' => 'Some <value>'
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+ $this->assertTags($result, $expected);
|
|
|
+ }
|
|
|
+
|
|
|
+/**
|
|
|
+ * Test render with additional attributes.
|
|
|
+ *
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function testRenderAttributes() {
|
|
|
+ $text = new Text($this->templates);
|
|
|
+ $data = [
|
|
|
+ 'name' => 'my_input',
|
|
|
+ 'type' => 'email',
|
|
|
+ 'class' => 'form-control',
|
|
|
+ 'required' => true
|
|
|
+ ];
|
|
|
+ $result = $text->render($data);
|
|
|
+ $expected = [
|
|
|
+ 'input' => [
|
|
|
+ 'type' => 'email',
|
|
|
+ 'name' => 'my_input',
|
|
|
+ 'class' => 'form-control',
|
|
|
+ 'required' => 'required',
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+ $this->assertTags($result, $expected);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|