148 lines
4.4 KiB
PHP
148 lines
4.4 KiB
PHP
<?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\Bridge\PhpUnit\Tests;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use Symfony\Bridge\PhpUnit\DnsMock;
|
|
|
|
class DnsMockTest extends TestCase
|
|
{
|
|
protected function tearDown()
|
|
{
|
|
DnsMock::withMockedHosts(array());
|
|
}
|
|
|
|
public function testCheckdnsrr()
|
|
{
|
|
DnsMock::withMockedHosts(array('example.com' => array(array('type' => 'MX'))));
|
|
$this->assertTrue(DnsMock::checkdnsrr('example.com'));
|
|
|
|
DnsMock::withMockedHosts(array('example.com' => array(array('type' => 'A'))));
|
|
$this->assertFalse(DnsMock::checkdnsrr('example.com'));
|
|
$this->assertTrue(DnsMock::checkdnsrr('example.com', 'a'));
|
|
$this->assertTrue(DnsMock::checkdnsrr('example.com', 'any'));
|
|
$this->assertFalse(DnsMock::checkdnsrr('foobar.com', 'ANY'));
|
|
}
|
|
|
|
public function testGetmxrr()
|
|
{
|
|
DnsMock::withMockedHosts(array(
|
|
'example.com' => array(array(
|
|
'type' => 'MX',
|
|
'host' => 'mx.example.com',
|
|
'pri' => 10,
|
|
)),
|
|
));
|
|
|
|
$this->assertFalse(DnsMock::getmxrr('foobar.com', $mxhosts, $weight));
|
|
$this->assertTrue(DnsMock::getmxrr('example.com', $mxhosts, $weight));
|
|
$this->assertSame(array('mx.example.com'), $mxhosts);
|
|
$this->assertSame(array(10), $weight);
|
|
}
|
|
|
|
public function testGethostbyaddr()
|
|
{
|
|
DnsMock::withMockedHosts(array(
|
|
'example.com' => array(
|
|
array(
|
|
'type' => 'A',
|
|
'ip' => '1.2.3.4',
|
|
),
|
|
array(
|
|
'type' => 'AAAA',
|
|
'ipv6' => '::12',
|
|
),
|
|
),
|
|
));
|
|
|
|
$this->assertSame('::21', DnsMock::gethostbyaddr('::21'));
|
|
$this->assertSame('example.com', DnsMock::gethostbyaddr('::12'));
|
|
$this->assertSame('example.com', DnsMock::gethostbyaddr('1.2.3.4'));
|
|
}
|
|
|
|
public function testGethostbyname()
|
|
{
|
|
DnsMock::withMockedHosts(array(
|
|
'example.com' => array(
|
|
array(
|
|
'type' => 'AAAA',
|
|
'ipv6' => '::12',
|
|
),
|
|
array(
|
|
'type' => 'A',
|
|
'ip' => '1.2.3.4',
|
|
),
|
|
),
|
|
));
|
|
|
|
$this->assertSame('foobar.com', DnsMock::gethostbyname('foobar.com'));
|
|
$this->assertSame('1.2.3.4', DnsMock::gethostbyname('example.com'));
|
|
}
|
|
|
|
public function testGethostbynamel()
|
|
{
|
|
DnsMock::withMockedHosts(array(
|
|
'example.com' => array(
|
|
array(
|
|
'type' => 'A',
|
|
'ip' => '1.2.3.4',
|
|
),
|
|
array(
|
|
'type' => 'A',
|
|
'ip' => '2.3.4.5',
|
|
),
|
|
),
|
|
));
|
|
|
|
$this->assertFalse(DnsMock::gethostbynamel('foobar.com'));
|
|
$this->assertSame(array('1.2.3.4', '2.3.4.5'), DnsMock::gethostbynamel('example.com'));
|
|
}
|
|
|
|
public function testDnsGetRecord()
|
|
{
|
|
DnsMock::withMockedHosts(array(
|
|
'example.com' => array(
|
|
array(
|
|
'type' => 'A',
|
|
'ip' => '1.2.3.4',
|
|
),
|
|
array(
|
|
'type' => 'PTR',
|
|
'ip' => '2.3.4.5',
|
|
),
|
|
),
|
|
));
|
|
|
|
$records = array(
|
|
array(
|
|
'host' => 'example.com',
|
|
'class' => 'IN',
|
|
'ttl' => 1,
|
|
'type' => 'A',
|
|
'ip' => '1.2.3.4',
|
|
),
|
|
$ptr = array(
|
|
'host' => 'example.com',
|
|
'class' => 'IN',
|
|
'ttl' => 1,
|
|
'type' => 'PTR',
|
|
'ip' => '2.3.4.5',
|
|
),
|
|
);
|
|
|
|
$this->assertFalse(DnsMock::dns_get_record('foobar.com'));
|
|
$this->assertSame($records, DnsMock::dns_get_record('example.com'));
|
|
$this->assertSame($records, DnsMock::dns_get_record('example.com', DNS_ALL));
|
|
$this->assertSame($records, DnsMock::dns_get_record('example.com', DNS_A | DNS_PTR));
|
|
$this->assertSame(array($ptr), DnsMock::dns_get_record('example.com', DNS_PTR));
|
|
}
|
|
}
|