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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
<?php
namespace React\Tests\Socket;
use React\Socket\Connector;
use React\Promise\Promise;
class ConnectorTest extends TestCase
{
public function testConnectorUsesTcpAsDefaultScheme()
{
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
$promise = new Promise(function () { });
$tcp = $this->getMockBuilder('React\Socket\ConnectorInterface')->getMock();
$tcp->expects($this->once())->method('connect')->with('127.0.0.1:80')->willReturn($promise);
$connector = new Connector($loop, array(
'tcp' => $tcp
));
$connector->connect('127.0.0.1:80');
}
public function testConnectorPassedThroughHostnameIfDnsIsDisabled()
{
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
$promise = new Promise(function () { });
$tcp = $this->getMockBuilder('React\Socket\ConnectorInterface')->getMock();
$tcp->expects($this->once())->method('connect')->with('tcp://google.com:80')->willReturn($promise);
$connector = new Connector($loop, array(
'tcp' => $tcp,
'dns' => false
));
$connector->connect('tcp://google.com:80');
}
public function testConnectorWithUnknownSchemeAlwaysFails()
{
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
$connector = new Connector($loop);
$promise = $connector->connect('unknown://google.com:80');
$promise->then(null, $this->expectCallableOnce());
}
public function testConnectorWithDisabledTcpDefaultSchemeAlwaysFails()
{
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
$connector = new Connector($loop, array(
'tcp' => false
));
$promise = $connector->connect('google.com:80');
$promise->then(null, $this->expectCallableOnce());
}
public function testConnectorWithDisabledTcpSchemeAlwaysFails()
{
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
$connector = new Connector($loop, array(
'tcp' => false
));
$promise = $connector->connect('tcp://google.com:80');
$promise->then(null, $this->expectCallableOnce());
}
public function testConnectorWithDisabledTlsSchemeAlwaysFails()
{
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
$connector = new Connector($loop, array(
'tls' => false
));
$promise = $connector->connect('tls://google.com:443');
$promise->then(null, $this->expectCallableOnce());
}
public function testConnectorWithDisabledUnixSchemeAlwaysFails()
{
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
$connector = new Connector($loop, array(
'unix' => false
));
$promise = $connector->connect('unix://demo.sock');
$promise->then(null, $this->expectCallableOnce());
}
public function testConnectorUsesGivenResolverInstance()
{
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
$promise = new Promise(function () { });
$resolver = $this->getMockBuilder('React\Dns\Resolver\Resolver')->disableOriginalConstructor()->getMock();
$resolver->expects($this->once())->method('resolve')->with('google.com')->willReturn($promise);
$connector = new Connector($loop, array(
'dns' => $resolver
));
$connector->connect('google.com:80');
}
public function testConnectorUsesResolvedHostnameIfDnsIsUsed()
{
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
$promise = new Promise(function ($resolve) { $resolve('127.0.0.1'); });
$resolver = $this->getMockBuilder('React\Dns\Resolver\Resolver')->disableOriginalConstructor()->getMock();
$resolver->expects($this->once())->method('resolve')->with('google.com')->willReturn($promise);
$promise = new Promise(function () { });
$tcp = $this->getMockBuilder('React\Socket\ConnectorInterface')->getMock();
$tcp->expects($this->once())->method('connect')->with('tcp://127.0.0.1:80?hostname=google.com')->willReturn($promise);
$connector = new Connector($loop, array(
'tcp' => $tcp,
'dns' => $resolver
));
$connector->connect('tcp://google.com:80');
}
}
|