Skip to content

Commit 8a58745

Browse files
authored
Merge pull request #125 from clue-labs/eventloop
Fix forward compatibility with upcoming EventLoop releases in tests
2 parents 5deb19b + 3c699b9 commit 8a58745

6 files changed

Lines changed: 53 additions & 51 deletions

File tree

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"react/promise-timer": "~1.0"
1414
},
1515
"require-dev": {
16-
"clue/block-react": "^1.1",
16+
"clue/block-react": "^1.2",
1717
"phpunit/phpunit": "^5.0 || ^4.8"
1818
},
1919
"autoload": {

tests/FunctionalConnectorTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
namespace React\Tests\Socket;
44

55
use Clue\React\Block;
6-
use React\EventLoop\StreamSelectLoop;
7-
use React\Socket\TcpServer;
6+
use React\EventLoop\Factory;
87
use React\Socket\Connector;
8+
use React\Socket\TcpServer;
99

1010
class FunctionalConnectorTest extends TestCase
1111
{
@@ -14,7 +14,7 @@ class FunctionalConnectorTest extends TestCase
1414
/** @test */
1515
public function connectionToTcpServerShouldSucceedWithLocalhost()
1616
{
17-
$loop = new StreamSelectLoop();
17+
$loop = Factory::create();
1818

1919
$server = new TcpServer(9998, $loop);
2020
$server->on('connection', $this->expectCallableOnce());

tests/IntegrationTest.php

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
namespace React\Tests\Socket;
44

5-
use React\Dns\Resolver\Factory;
6-
use React\EventLoop\StreamSelectLoop;
5+
use Clue\React\Block;
6+
use React\Dns\Resolver\Factory as ResolverFactory;
7+
use React\EventLoop\Factory;
78
use React\Socket\Connector;
9+
use React\Socket\DnsConnector;
810
use React\Socket\SecureConnector;
911
use React\Socket\TcpConnector;
10-
use Clue\React\Block;
11-
use React\Socket\DnsConnector;
1212

1313
class IntegrationTest extends TestCase
1414
{
@@ -17,7 +17,7 @@ class IntegrationTest extends TestCase
1717
/** @test */
1818
public function gettingStuffFromGoogleShouldWork()
1919
{
20-
$loop = new StreamSelectLoop();
20+
$loop = Factory::create();
2121
$connector = new Connector($loop);
2222

2323
$conn = Block\await($connector->connect('google.com:80'), $loop);
@@ -39,7 +39,7 @@ public function gettingEncryptedStuffFromGoogleShouldWork()
3939
$this->markTestSkipped('Not supported on your platform (outdated HHVM?)');
4040
}
4141

42-
$loop = new StreamSelectLoop();
42+
$loop = Factory::create();
4343
$secureConnector = new Connector($loop);
4444

4545
$conn = Block\await($secureConnector->connect('tls://google.com:443'), $loop);
@@ -58,9 +58,9 @@ public function gettingEncryptedStuffFromGoogleShouldWorkIfHostIsResolvedFirst()
5858
$this->markTestSkipped('Not supported on your platform (outdated HHVM?)');
5959
}
6060

61-
$loop = new StreamSelectLoop();
61+
$loop = Factory::create();
6262

63-
$factory = new Factory();
63+
$factory = new ResolverFactory();
6464
$dns = $factory->create('8.8.8.8', $loop);
6565

6666
$connector = new DnsConnector(
@@ -83,7 +83,7 @@ public function gettingEncryptedStuffFromGoogleShouldWorkIfHostIsResolvedFirst()
8383
/** @test */
8484
public function gettingPlaintextStuffFromEncryptedGoogleShouldNotWork()
8585
{
86-
$loop = new StreamSelectLoop();
86+
$loop = Factory::create();
8787
$connector = new Connector($loop);
8888

8989
$conn = Block\await($connector->connect('google.com:443'), $loop);
@@ -101,9 +101,9 @@ public function gettingPlaintextStuffFromEncryptedGoogleShouldNotWork()
101101
/** @test */
102102
public function testConnectingFailsIfDnsUsesInvalidResolver()
103103
{
104-
$loop = new StreamSelectLoop();
104+
$loop = Factory::create();
105105

106-
$factory = new Factory();
106+
$factory = new ResolverFactory();
107107
$dns = $factory->create('demo.invalid', $loop);
108108

109109
$connector = new Connector($loop, array(
@@ -121,7 +121,7 @@ public function testConnectingFailsIfTimeoutIsTooSmall()
121121
$this->markTestSkipped('Not supported on your platform (outdated HHVM?)');
122122
}
123123

124-
$loop = new StreamSelectLoop();
124+
$loop = Factory::create();
125125

126126
$connector = new Connector($loop, array(
127127
'timeout' => 0.001
@@ -138,7 +138,7 @@ public function testSelfSignedRejectsIfVerificationIsEnabled()
138138
$this->markTestSkipped('Not supported on your platform (outdated HHVM?)');
139139
}
140140

141-
$loop = new StreamSelectLoop();
141+
$loop = Factory::create();
142142

143143
$connector = new Connector($loop, array(
144144
'tls' => array(
@@ -157,7 +157,7 @@ public function testSelfSignedResolvesIfVerificationIsDisabled()
157157
$this->markTestSkipped('Not supported on your platform (outdated HHVM?)');
158158
}
159159

160-
$loop = new StreamSelectLoop();
160+
$loop = Factory::create();
161161

162162
$connector = new Connector($loop, array(
163163
'tls' => array(
@@ -171,7 +171,7 @@ public function testSelfSignedResolvesIfVerificationIsDisabled()
171171

172172
public function testCancelPendingConnection()
173173
{
174-
$loop = new StreamSelectLoop();
174+
$loop = Factory::create();
175175

176176
$connector = new TcpConnector($loop);
177177
$pending = $connector->connect('8.8.8.8:80');

tests/TcpConnectorTest.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
namespace React\Tests\Socket;
44

5-
use React\EventLoop\StreamSelectLoop;
6-
use React\Socket\TcpServer;
7-
use React\Socket\TcpConnector;
8-
use React\Socket\ConnectionInterface;
95
use Clue\React\Block;
6+
use React\EventLoop\Factory;
7+
use React\Socket\ConnectionInterface;
8+
use React\Socket\TcpConnector;
9+
use React\Socket\TcpServer;
1010

1111
class TcpConnectorTest extends TestCase
1212
{
@@ -15,7 +15,7 @@ class TcpConnectorTest extends TestCase
1515
/** @test */
1616
public function connectionToEmptyPortShouldFail()
1717
{
18-
$loop = new StreamSelectLoop();
18+
$loop = Factory::create();
1919

2020
$connector = new TcpConnector($loop);
2121
$connector->connect('127.0.0.1:9999')
@@ -27,7 +27,7 @@ public function connectionToEmptyPortShouldFail()
2727
/** @test */
2828
public function connectionToTcpServerShouldSucceed()
2929
{
30-
$loop = new StreamSelectLoop();
30+
$loop = Factory::create();
3131

3232
$server = new TcpServer(9999, $loop);
3333
$server->on('connection', $this->expectCallableOnce());
@@ -45,7 +45,7 @@ public function connectionToTcpServerShouldSucceed()
4545
/** @test */
4646
public function connectionToTcpServerShouldSucceedWithRemoteAdressSameAsTarget()
4747
{
48-
$loop = new StreamSelectLoop();
48+
$loop = Factory::create();
4949

5050
$server = new TcpServer(9999, $loop);
5151
$server->on('connection', array($server, 'close'));
@@ -63,7 +63,7 @@ public function connectionToTcpServerShouldSucceedWithRemoteAdressSameAsTarget()
6363
/** @test */
6464
public function connectionToTcpServerShouldSucceedWithLocalAdressOnLocalhost()
6565
{
66-
$loop = new StreamSelectLoop();
66+
$loop = Factory::create();
6767

6868
$server = new TcpServer(9999, $loop);
6969
$server->on('connection', array($server, 'close'));
@@ -82,7 +82,7 @@ public function connectionToTcpServerShouldSucceedWithLocalAdressOnLocalhost()
8282
/** @test */
8383
public function connectionToTcpServerShouldSucceedWithNullAddressesAfterConnectionClosed()
8484
{
85-
$loop = new StreamSelectLoop();
85+
$loop = Factory::create();
8686

8787
$server = new TcpServer(9999, $loop);
8888
$server->on('connection', array($server, 'close'));
@@ -101,7 +101,7 @@ public function connectionToTcpServerShouldSucceedWithNullAddressesAfterConnecti
101101
/** @test */
102102
public function connectionToEmptyIp6PortShouldFail()
103103
{
104-
$loop = new StreamSelectLoop();
104+
$loop = Factory::create();
105105

106106
$connector = new TcpConnector($loop);
107107
$connector
@@ -114,7 +114,7 @@ public function connectionToEmptyIp6PortShouldFail()
114114
/** @test */
115115
public function connectionToIp6TcpServerShouldSucceed()
116116
{
117-
$loop = new StreamSelectLoop();
117+
$loop = Factory::create();
118118

119119
try {
120120
$server = new TcpServer('[::1]:9999', $loop);
@@ -191,7 +191,7 @@ public function connectionWithInvalidContextShouldFailImmediately()
191191
/** @test */
192192
public function cancellingConnectionShouldRejectPromise()
193193
{
194-
$loop = new StreamSelectLoop();
194+
$loop = Factory::create();
195195
$connector = new TcpConnector($loop);
196196

197197
$server = new TcpServer(0, $loop);

tests/TcpServerTest.php

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
namespace React\Tests\Socket;
44

5-
use React\EventLoop\StreamSelectLoop;
5+
use Clue\React\Block;
6+
use React\EventLoop\Factory;
67
use React\Socket\TcpServer;
78
use React\Stream\DuplexResourceStream;
89

@@ -14,7 +15,7 @@ class TcpServerTest extends TestCase
1415

1516
private function createLoop()
1617
{
17-
return new StreamSelectLoop();
18+
return Factory::create();
1819
}
1920

2021
/**
@@ -37,7 +38,8 @@ public function testConnection()
3738
$client = stream_socket_client('tcp://localhost:'.$this->port);
3839

3940
$this->server->on('connection', $this->expectCallableOnce());
40-
$this->loop->tick();
41+
42+
$this->tick();
4143
}
4244

4345
/**
@@ -50,9 +52,9 @@ public function testConnectionWithManyClients()
5052
$client3 = stream_socket_client('tcp://localhost:'.$this->port);
5153

5254
$this->server->on('connection', $this->expectCallableExactly(3));
53-
$this->loop->tick();
54-
$this->loop->tick();
55-
$this->loop->tick();
55+
$this->tick();
56+
$this->tick();
57+
$this->tick();
5658
}
5759

5860
public function testDataEventWillNotBeEmittedWhenClientSendsNoData()
@@ -79,8 +81,8 @@ public function testDataWillBeEmittedWithDataClientSends()
7981
$this->server->on('connection', function ($conn) use ($mock) {
8082
$conn->on('data', $mock);
8183
});
82-
$this->loop->tick();
83-
$this->loop->tick();
84+
$this->tick();
85+
$this->tick();
8486
}
8587

8688
public function testDataWillBeEmittedEvenWhenClientShutsDownAfterSending()
@@ -94,8 +96,8 @@ public function testDataWillBeEmittedEvenWhenClientShutsDownAfterSending()
9496
$this->server->on('connection', function ($conn) use ($mock) {
9597
$conn->on('data', $mock);
9698
});
97-
$this->loop->tick();
98-
$this->loop->tick();
99+
$this->tick();
100+
$this->tick();
99101
}
100102

101103
public function testLoopWillEndWhenServerIsClosed()
@@ -169,9 +171,6 @@ public function testDataWillBeEmittedInMultipleChunksWhenClientSendsExcessiveAmo
169171
$this->assertEquals($bytes, $received);
170172
}
171173

172-
/**
173-
* @covers React\EventLoop\StreamSelectLoop::tick
174-
*/
175174
public function testConnectionDoesNotEndWhenClientDoesNotClose()
176175
{
177176
$client = stream_socket_client('tcp://localhost:'.$this->port);
@@ -181,12 +180,11 @@ public function testConnectionDoesNotEndWhenClientDoesNotClose()
181180
$this->server->on('connection', function ($conn) use ($mock) {
182181
$conn->on('end', $mock);
183182
});
184-
$this->loop->tick();
185-
$this->loop->tick();
183+
$this->tick();
184+
$this->tick();
186185
}
187186

188187
/**
189-
* @covers React\EventLoop\StreamSelectLoop::tick
190188
* @covers React\Socket\Connection::end
191189
*/
192190
public function testConnectionDoesEndWhenClientCloses()
@@ -200,8 +198,8 @@ public function testConnectionDoesEndWhenClientCloses()
200198
$this->server->on('connection', function ($conn) use ($mock) {
201199
$conn->on('end', $mock);
202200
});
203-
$this->loop->tick();
204-
$this->loop->tick();
201+
$this->tick();
202+
$this->tick();
205203
}
206204

207205
public function testCtorAddsResourceToLoop()
@@ -270,4 +268,9 @@ public function tearDown()
270268
$this->server->close();
271269
}
272270
}
271+
272+
private function tick()
273+
{
274+
Block\sleep(0, $this->loop);
275+
}
273276
}

tests/UnixConnectorTest.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
namespace React\Tests\Socket;
44

5-
use React\Socket\UnixConnector;
6-
use Clue\React\Block;
75
use React\Socket\ConnectionInterface;
6+
use React\Socket\UnixConnector;
87

98
class UnixConnectorTest extends TestCase
109
{

0 commit comments

Comments
 (0)