Skip to content
This repository was archived by the owner on Jan 30, 2020. It is now read-only.

Commit 4c8f6ef

Browse files
committed
Merge pull request #211 from rolandoisidoro/minlength-attribute
Added minlength to the validTagAttributes array on multiple elements
2 parents f9802ed + 0e3d167 commit 4c8f6ef

File tree

11 files changed

+169
-0
lines changed

11 files changed

+169
-0
lines changed

src/View/Helper/FormEmail.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class FormEmail extends FormInput
2626
'form' => true,
2727
'list' => true,
2828
'maxlength' => true,
29+
'minlength' => true,
2930
'multiple' => true,
3031
'pattern' => true,
3132
'placeholder' => true,

src/View/Helper/FormPassword.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class FormPassword extends FormInput
2525
'disabled' => true,
2626
'form' => true,
2727
'maxlength' => true,
28+
'minlength' => true,
2829
'pattern' => true,
2930
'placeholder' => true,
3031
'readonly' => true,

src/View/Helper/FormTel.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class FormTel extends FormInput
2626
'form' => true,
2727
'list' => true,
2828
'maxlength' => true,
29+
'minlength' => true,
2930
'pattern' => true,
3031
'placeholder' => true,
3132
'readonly' => true,

src/View/Helper/FormText.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class FormText extends FormInput
2727
'form' => true,
2828
'list' => true,
2929
'maxlength' => true,
30+
'minlength' => true,
3031
'pattern' => true,
3132
'placeholder' => true,
3233
'readonly' => true,

src/View/Helper/FormUrl.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class FormUrl extends FormInput
2626
'form' => true,
2727
'list' => true,
2828
'maxlength' => true,
29+
'minlength' => true,
2930
'pattern' => true,
3031
'placeholder' => true,
3132
'readonly' => true,

test/View/Helper/FormEmailTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public function validAttributes()
6767
['max', 'assertNotContains'],
6868
['maxlength', 'assertContains'],
6969
['min', 'assertNotContains'],
70+
['minlength', 'assertContains'],
7071
['multiple', 'assertContains'],
7172
['pattern', 'assertContains'],
7273
['placeholder', 'assertContains'],
@@ -103,6 +104,7 @@ public function getCompleteElement()
103104
'max' => 'value',
104105
'maxlength' => 'value',
105106
'min' => 'value',
107+
'minlength' => 'value',
106108
'multiple' => 'multiple',
107109
'name' => 'value',
108110
'pattern' => 'value',

test/View/Helper/FormPasswordTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public function validAttributes()
6767
['max', 'assertNotContains'],
6868
['maxlength', 'assertContains'],
6969
['min', 'assertNotContains'],
70+
['minlength', 'assertContains'],
7071
['multiple', 'assertNotContains'],
7172
['pattern', 'assertContains'],
7273
['placeholder', 'assertContains'],
@@ -103,6 +104,7 @@ public function getCompleteElement()
103104
'max' => 'value',
104105
'maxlength' => 'value',
105106
'min' => 'value',
107+
'minlength' => 'value',
106108
'multiple' => 'multiple',
107109
'name' => 'value',
108110
'pattern' => 'value',

test/View/Helper/FormSearchTest.php

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
<?php
2+
/**
3+
* Zend Framework (http://framework.zend.com/)
4+
*
5+
* @link http://github.com/zendframework/zf2 for the canonical source repository
6+
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
7+
* @license http://framework.zend.com/license/new-bsd New BSD License
8+
*/
9+
10+
namespace ZendTest\Form\View\Helper;
11+
12+
use Zend\Form\Element;
13+
use Zend\Form\View\Helper\FormSearch as FormSearchHelper;
14+
15+
class FormSearchTest extends CommonTestCase
16+
{
17+
public function setUp()
18+
{
19+
$this->helper = new FormSearchHelper();
20+
parent::setUp();
21+
}
22+
23+
public function testRaisesExceptionWhenNameIsNotPresentInElement()
24+
{
25+
$element = new Element();
26+
$this->expectException('Zend\Form\Exception\DomainException');
27+
$this->expectExceptionMessage('name');
28+
$this->helper->render($element);
29+
}
30+
31+
public function testGeneratesTextInputTagWithElement()
32+
{
33+
$element = new Element('foo');
34+
$markup = $this->helper->render($element);
35+
$this->assertContains('<input ', $markup);
36+
$this->assertContains('type="search"', $markup);
37+
}
38+
39+
public function testGeneratesTextInputTagRegardlessOfElementType()
40+
{
41+
$element = new Element('foo');
42+
$element->setAttribute('type', 'email');
43+
$markup = $this->helper->render($element);
44+
$this->assertContains('<input ', $markup);
45+
$this->assertContains('type="search"', $markup);
46+
}
47+
48+
public function validAttributes()
49+
{
50+
return [
51+
['name', 'assertContains'],
52+
['accept', 'assertNotContains'],
53+
['alt', 'assertNotContains'],
54+
['autocomplete', 'assertContains'],
55+
['autofocus', 'assertContains'],
56+
['checked', 'assertNotContains'],
57+
['dirname', 'assertContains'],
58+
['disabled', 'assertContains'],
59+
['form', 'assertContains'],
60+
['formaction', 'assertNotContains'],
61+
['formenctype', 'assertNotContains'],
62+
['formmethod', 'assertNotContains'],
63+
['formnovalidate', 'assertNotContains'],
64+
['formtarget', 'assertNotContains'],
65+
['height', 'assertNotContains'],
66+
['list', 'assertContains'],
67+
['max', 'assertNotContains'],
68+
['maxlength', 'assertContains'],
69+
['min', 'assertNotContains'],
70+
['minlength', 'assertContains'],
71+
['multiple', 'assertNotContains'],
72+
['pattern', 'assertContains'],
73+
['placeholder', 'assertContains'],
74+
['readonly', 'assertContains'],
75+
['required', 'assertContains'],
76+
['size', 'assertContains'],
77+
['src', 'assertNotContains'],
78+
['step', 'assertNotContains'],
79+
['value', 'assertContains'],
80+
['width', 'assertNotContains'],
81+
];
82+
}
83+
84+
public function getCompleteElement()
85+
{
86+
$element = new Element('foo');
87+
$element->setAttributes([
88+
'accept' => 'value',
89+
'alt' => 'value',
90+
'autocomplete' => 'on',
91+
'autofocus' => 'autofocus',
92+
'checked' => 'checked',
93+
'dirname' => 'value',
94+
'disabled' => 'disabled',
95+
'form' => 'value',
96+
'formaction' => 'value',
97+
'formenctype' => 'value',
98+
'formmethod' => 'value',
99+
'formnovalidate' => 'value',
100+
'formtarget' => 'value',
101+
'height' => 'value',
102+
'id' => 'value',
103+
'list' => 'value',
104+
'max' => 'value',
105+
'maxlength' => 'value',
106+
'min' => 'value',
107+
'minlength' => 'value',
108+
'multiple' => 'multiple',
109+
'name' => 'value',
110+
'pattern' => 'value',
111+
'placeholder' => 'value',
112+
'readonly' => 'readonly',
113+
'required' => 'required',
114+
'size' => 'value',
115+
'src' => 'value',
116+
'step' => 'value',
117+
'width' => 'value',
118+
]);
119+
$element->setValue('value');
120+
return $element;
121+
}
122+
123+
/**
124+
* @dataProvider validAttributes
125+
*/
126+
public function testAllValidFormMarkupAttributesPresentInElementAreRendered($attribute, $assertion)
127+
{
128+
$element = $this->getCompleteElement();
129+
$markup = $this->helper->render($element);
130+
switch ($attribute) {
131+
case 'value':
132+
$expect = sprintf('%s="%s"', $attribute, $element->getValue());
133+
break;
134+
default:
135+
$expect = sprintf('%s="%s"', $attribute, $element->getAttribute($attribute));
136+
break;
137+
}
138+
$this->$assertion($expect, $markup);
139+
}
140+
141+
public function testInvokeProxiesToRender()
142+
{
143+
$element = new Element('foo');
144+
$markup = $this->helper->__invoke($element);
145+
$this->assertContains('<input', $markup);
146+
$this->assertContains('name="foo"', $markup);
147+
$this->assertContains('type="search"', $markup);
148+
}
149+
150+
public function testInvokeWithNoElementChainsHelper()
151+
{
152+
$this->assertSame($this->helper, $this->helper->__invoke());
153+
}
154+
}

test/View/Helper/FormTelTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public function validAttributes()
6767
['max', 'assertNotContains'],
6868
['maxlength', 'assertContains'],
6969
['min', 'assertNotContains'],
70+
['minlength', 'assertContains'],
7071
['multiple', 'assertNotContains'],
7172
['pattern', 'assertContains'],
7273
['placeholder', 'assertContains'],
@@ -103,6 +104,7 @@ public function getCompleteElement()
103104
'max' => 'value',
104105
'maxlength' => 'value',
105106
'min' => 'value',
107+
'minlength' => 'value',
106108
'multiple' => 'multiple',
107109
'name' => 'value',
108110
'pattern' => 'value',

test/View/Helper/FormTextTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public function validAttributes()
6767
['max', 'assertNotContains'],
6868
['maxlength', 'assertContains'],
6969
['min', 'assertNotContains'],
70+
['minlength', 'assertContains'],
7071
['multiple', 'assertNotContains'],
7172
['pattern', 'assertContains'],
7273
['placeholder', 'assertContains'],
@@ -103,6 +104,7 @@ public function getCompleteElement()
103104
'max' => 'value',
104105
'maxlength' => 'value',
105106
'min' => 'value',
107+
'minlength' => 'value',
106108
'multiple' => 'multiple',
107109
'name' => 'value',
108110
'pattern' => 'value',

test/View/Helper/FormUrlTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public function validAttributes()
6767
['max', 'assertNotContains'],
6868
['maxlength', 'assertContains'],
6969
['min', 'assertNotContains'],
70+
['minlength', 'assertContains'],
7071
['multiple', 'assertNotContains'],
7172
['pattern', 'assertContains'],
7273
['placeholder', 'assertContains'],
@@ -103,6 +104,7 @@ public function getCompleteElement()
103104
'max' => 'value',
104105
'maxlength' => 'value',
105106
'min' => 'value',
107+
'minlength' => 'value',
106108
'multiple' => 'multiple',
107109
'name' => 'value',
108110
'pattern' => 'value',

0 commit comments

Comments
 (0)