Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 /*
|
Chris@0
|
4 * This file is part of the Symfony package.
|
Chris@0
|
5 *
|
Chris@0
|
6 * (c) Fabien Potencier <fabien@symfony.com>
|
Chris@0
|
7 *
|
Chris@0
|
8 * For the full copyright and license information, please view the LICENSE
|
Chris@0
|
9 * file that was distributed with this source code.
|
Chris@0
|
10 */
|
Chris@0
|
11
|
Chris@0
|
12 namespace Symfony\Bridge\PhpUnit\Tests;
|
Chris@0
|
13
|
Chris@0
|
14 use PHPUnit\Framework\TestCase;
|
Chris@0
|
15 use Symfony\Bridge\PhpUnit\DnsMock;
|
Chris@0
|
16
|
Chris@0
|
17 class DnsMockTest extends TestCase
|
Chris@0
|
18 {
|
Chris@0
|
19 protected function tearDown()
|
Chris@0
|
20 {
|
Chris@0
|
21 DnsMock::withMockedHosts(array());
|
Chris@0
|
22 }
|
Chris@0
|
23
|
Chris@0
|
24 public function testCheckdnsrr()
|
Chris@0
|
25 {
|
Chris@0
|
26 DnsMock::withMockedHosts(array('example.com' => array(array('type' => 'MX'))));
|
Chris@0
|
27 $this->assertTrue(DnsMock::checkdnsrr('example.com'));
|
Chris@0
|
28
|
Chris@0
|
29 DnsMock::withMockedHosts(array('example.com' => array(array('type' => 'A'))));
|
Chris@0
|
30 $this->assertFalse(DnsMock::checkdnsrr('example.com'));
|
Chris@0
|
31 $this->assertTrue(DnsMock::checkdnsrr('example.com', 'a'));
|
Chris@0
|
32 $this->assertTrue(DnsMock::checkdnsrr('example.com', 'any'));
|
Chris@0
|
33 $this->assertFalse(DnsMock::checkdnsrr('foobar.com', 'ANY'));
|
Chris@0
|
34 }
|
Chris@0
|
35
|
Chris@0
|
36 public function testGetmxrr()
|
Chris@0
|
37 {
|
Chris@0
|
38 DnsMock::withMockedHosts(array(
|
Chris@0
|
39 'example.com' => array(array(
|
Chris@0
|
40 'type' => 'MX',
|
Chris@0
|
41 'host' => 'mx.example.com',
|
Chris@0
|
42 'pri' => 10,
|
Chris@0
|
43 )),
|
Chris@0
|
44 ));
|
Chris@0
|
45
|
Chris@0
|
46 $this->assertFalse(DnsMock::getmxrr('foobar.com', $mxhosts, $weight));
|
Chris@0
|
47 $this->assertTrue(DnsMock::getmxrr('example.com', $mxhosts, $weight));
|
Chris@0
|
48 $this->assertSame(array('mx.example.com'), $mxhosts);
|
Chris@0
|
49 $this->assertSame(array(10), $weight);
|
Chris@0
|
50 }
|
Chris@0
|
51
|
Chris@0
|
52 public function testGethostbyaddr()
|
Chris@0
|
53 {
|
Chris@0
|
54 DnsMock::withMockedHosts(array(
|
Chris@0
|
55 'example.com' => array(
|
Chris@0
|
56 array(
|
Chris@0
|
57 'type' => 'A',
|
Chris@0
|
58 'ip' => '1.2.3.4',
|
Chris@0
|
59 ),
|
Chris@0
|
60 array(
|
Chris@0
|
61 'type' => 'AAAA',
|
Chris@0
|
62 'ipv6' => '::12',
|
Chris@0
|
63 ),
|
Chris@0
|
64 ),
|
Chris@0
|
65 ));
|
Chris@0
|
66
|
Chris@0
|
67 $this->assertSame('::21', DnsMock::gethostbyaddr('::21'));
|
Chris@0
|
68 $this->assertSame('example.com', DnsMock::gethostbyaddr('::12'));
|
Chris@0
|
69 $this->assertSame('example.com', DnsMock::gethostbyaddr('1.2.3.4'));
|
Chris@0
|
70 }
|
Chris@0
|
71
|
Chris@0
|
72 public function testGethostbyname()
|
Chris@0
|
73 {
|
Chris@0
|
74 DnsMock::withMockedHosts(array(
|
Chris@0
|
75 'example.com' => array(
|
Chris@0
|
76 array(
|
Chris@0
|
77 'type' => 'AAAA',
|
Chris@0
|
78 'ipv6' => '::12',
|
Chris@0
|
79 ),
|
Chris@0
|
80 array(
|
Chris@0
|
81 'type' => 'A',
|
Chris@0
|
82 'ip' => '1.2.3.4',
|
Chris@0
|
83 ),
|
Chris@0
|
84 ),
|
Chris@0
|
85 ));
|
Chris@0
|
86
|
Chris@0
|
87 $this->assertSame('foobar.com', DnsMock::gethostbyname('foobar.com'));
|
Chris@0
|
88 $this->assertSame('1.2.3.4', DnsMock::gethostbyname('example.com'));
|
Chris@0
|
89 }
|
Chris@0
|
90
|
Chris@0
|
91 public function testGethostbynamel()
|
Chris@0
|
92 {
|
Chris@0
|
93 DnsMock::withMockedHosts(array(
|
Chris@0
|
94 'example.com' => array(
|
Chris@0
|
95 array(
|
Chris@0
|
96 'type' => 'A',
|
Chris@0
|
97 'ip' => '1.2.3.4',
|
Chris@0
|
98 ),
|
Chris@0
|
99 array(
|
Chris@0
|
100 'type' => 'A',
|
Chris@0
|
101 'ip' => '2.3.4.5',
|
Chris@0
|
102 ),
|
Chris@0
|
103 ),
|
Chris@0
|
104 ));
|
Chris@0
|
105
|
Chris@0
|
106 $this->assertFalse(DnsMock::gethostbynamel('foobar.com'));
|
Chris@0
|
107 $this->assertSame(array('1.2.3.4', '2.3.4.5'), DnsMock::gethostbynamel('example.com'));
|
Chris@0
|
108 }
|
Chris@0
|
109
|
Chris@0
|
110 public function testDnsGetRecord()
|
Chris@0
|
111 {
|
Chris@0
|
112 DnsMock::withMockedHosts(array(
|
Chris@0
|
113 'example.com' => array(
|
Chris@0
|
114 array(
|
Chris@0
|
115 'type' => 'A',
|
Chris@0
|
116 'ip' => '1.2.3.4',
|
Chris@0
|
117 ),
|
Chris@0
|
118 array(
|
Chris@0
|
119 'type' => 'PTR',
|
Chris@0
|
120 'ip' => '2.3.4.5',
|
Chris@0
|
121 ),
|
Chris@0
|
122 ),
|
Chris@0
|
123 ));
|
Chris@0
|
124
|
Chris@0
|
125 $records = array(
|
Chris@0
|
126 array(
|
Chris@0
|
127 'host' => 'example.com',
|
Chris@0
|
128 'class' => 'IN',
|
Chris@0
|
129 'ttl' => 1,
|
Chris@0
|
130 'type' => 'A',
|
Chris@0
|
131 'ip' => '1.2.3.4',
|
Chris@0
|
132 ),
|
Chris@0
|
133 $ptr = array(
|
Chris@0
|
134 'host' => 'example.com',
|
Chris@0
|
135 'class' => 'IN',
|
Chris@0
|
136 'ttl' => 1,
|
Chris@0
|
137 'type' => 'PTR',
|
Chris@0
|
138 'ip' => '2.3.4.5',
|
Chris@0
|
139 ),
|
Chris@0
|
140 );
|
Chris@0
|
141
|
Chris@0
|
142 $this->assertFalse(DnsMock::dns_get_record('foobar.com'));
|
Chris@0
|
143 $this->assertSame($records, DnsMock::dns_get_record('example.com'));
|
Chris@0
|
144 $this->assertSame($records, DnsMock::dns_get_record('example.com', DNS_ALL));
|
Chris@0
|
145 $this->assertSame($records, DnsMock::dns_get_record('example.com', DNS_A | DNS_PTR));
|
Chris@0
|
146 $this->assertSame(array($ptr), DnsMock::dns_get_record('example.com', DNS_PTR));
|
Chris@0
|
147 }
|
Chris@0
|
148 }
|