/
UrlTypeTest.php
98 lines (77 loc) · 2.94 KB
/
UrlTypeTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Form\Tests\Extension\Core\Type;
class UrlTypeTest extends TextTypeTest
{
const TESTED_TYPE = 'Symfony\Component\Form\Extension\Core\Type\UrlType';
public function testSubmitAddsDefaultProtocolIfNoneIsIncluded()
{
$form = $this->factory->create(static::TESTED_TYPE, 'name');
$form->submit('www.domain.com');
$this->assertSame('http://www.domain.com', $form->getData());
$this->assertSame('http://www.domain.com', $form->getViewData());
}
public function testSubmitAddsNoDefaultProtocolIfAlreadyIncluded()
{
$form = $this->factory->create(static::TESTED_TYPE, null, array(
'default_protocol' => 'http',
));
$form->submit('ftp://www.domain.com');
$this->assertSame('ftp://www.domain.com', $form->getData());
$this->assertSame('ftp://www.domain.com', $form->getViewData());
}
public function testSubmitAddsNoDefaultProtocolIfEmpty()
{
$form = $this->factory->create(static::TESTED_TYPE, null, array(
'default_protocol' => 'http',
));
$form->submit('');
$this->assertNull($form->getData());
$this->assertSame('', $form->getViewData());
}
public function testSubmitAddsNoDefaultProtocolIfNull()
{
$form = $this->factory->create(static::TESTED_TYPE, null, array(
'default_protocol' => 'http',
));
$form->submit(null);
$this->assertNull($form->getData());
$this->assertSame('', $form->getViewData());
}
public function testSubmitAddsNoDefaultProtocolIfSetToNull()
{
$form = $this->factory->create(static::TESTED_TYPE, null, array(
'default_protocol' => null,
));
$form->submit('www.domain.com');
$this->assertSame('www.domain.com', $form->getData());
$this->assertSame('www.domain.com', $form->getViewData());
}
/**
* @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
*/
public function testThrowExceptionIfDefaultProtocolIsInvalid()
{
$this->factory->create(static::TESTED_TYPE, null, array(
'default_protocol' => array(),
));
}
public function testSubmitNullUsesDefaultEmptyData($emptyData = 'empty', $expectedData = 'http://empty')
{
$form = $this->factory->create(static::TESTED_TYPE, null, array(
'empty_data' => $emptyData,
));
$form->submit(null);
// listener normalizes data on submit
$this->assertSame($expectedData, $form->getViewData());
$this->assertSame($expectedData, $form->getNormData());
$this->assertSame($expectedData, $form->getData());
}
}