Skip to content

Commit bb90ae3

Browse files
committed
Factory methods for affected tests
This prepares the test suite for the changes coming in the following commit that adds new arguments to the streaming server and request header parser constructors, creating a change line in almost every tests. To cut down the noise in the feature implementation of the PR factory method refactoring has been moved into a different commit.
1 parent c14e0da commit bb90ae3

File tree

2 files changed

+161
-150
lines changed

2 files changed

+161
-150
lines changed

tests/Io/RequestHeaderParserTest.php

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace React\Tests\Http\Io;
44

55
use Psr\Http\Message\ServerRequestInterface;
6+
use React\Http\Io\Clock;
67
use React\Http\Io\RequestHeaderParser;
78
use React\Tests\Http\TestCase;
89

@@ -12,7 +13,7 @@ public function testSplitShouldHappenOnDoubleCrlf()
1213
{
1314
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
1415

15-
$parser = new RequestHeaderParser($clock);
16+
$parser = $this->createRequestHeaderParser($clock);
1617
$parser->on('headers', $this->expectCallableNever());
1718

1819
$connection = $this->getMockBuilder('React\Socket\Connection')->disableOriginalConstructor()->setMethods(null)->getMock();
@@ -33,7 +34,7 @@ public function testFeedInOneGo()
3334
{
3435
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
3536

36-
$parser = new RequestHeaderParser($clock);
37+
$parser = $this->createRequestHeaderParser($clock);
3738
$parser->on('headers', $this->expectCallableOnce());
3839

3940
$connection = $this->getMockBuilder('React\Socket\Connection')->disableOriginalConstructor()->setMethods(null)->getMock();
@@ -47,7 +48,7 @@ public function testFeedTwoRequestsOnSeparateConnections()
4748
{
4849
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
4950

50-
$parser = new RequestHeaderParser($clock);
51+
$parser = $this->createRequestHeaderParser($clock);
5152

5253
$called = 0;
5354
$parser->on('headers', function () use (&$called) {
@@ -73,7 +74,7 @@ public function testHeadersEventShouldEmitRequestAndConnection()
7374

7475
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
7576

76-
$parser = new RequestHeaderParser($clock);
77+
$parser = $this->createRequestHeaderParser($clock);
7778
$parser->on('headers', function ($parsedRequest, $connection) use (&$request, &$conn) {
7879
$request = $parsedRequest;
7980
$conn = $connection;
@@ -98,7 +99,7 @@ public function testHeadersEventShouldEmitRequestWhichShouldEmitEndForStreamingB
9899
{
99100
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
100101

101-
$parser = new RequestHeaderParser($clock);
102+
$parser = $this->createRequestHeaderParser($clock);
102103

103104
$ended = false;
104105
$that = $this;
@@ -124,7 +125,7 @@ public function testHeadersEventShouldEmitRequestWhichShouldEmitStreamingBodyDat
124125
{
125126
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
126127

127-
$parser = new RequestHeaderParser($clock);
128+
$parser = $this->createRequestHeaderParser($clock);
128129

129130
$buffer = '';
130131
$that = $this;
@@ -154,7 +155,7 @@ public function testHeadersEventShouldEmitRequestWhichShouldEmitStreamingBodyWit
154155
{
155156
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
156157

157-
$parser = new RequestHeaderParser($clock);
158+
$parser = $this->createRequestHeaderParser($clock);
158159

159160
$buffer = '';
160161
$that = $this;
@@ -182,7 +183,7 @@ public function testHeadersEventShouldEmitRequestWhichShouldNotEmitStreamingBody
182183
{
183184
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
184185

185-
$parser = new RequestHeaderParser($clock);
186+
$parser = $this->createRequestHeaderParser($clock);
186187

187188
$buffer = '';
188189
$that = $this;
@@ -209,7 +210,7 @@ public function testHeadersEventShouldEmitRequestWhichShouldEmitStreamingBodyDat
209210
{
210211
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
211212

212-
$parser = new RequestHeaderParser($clock);
213+
$parser = $this->createRequestHeaderParser($clock);
213214

214215
$buffer = '';
215216
$that = $this;
@@ -238,7 +239,7 @@ public function testHeadersEventShouldParsePathAndQueryString()
238239

239240
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
240241

241-
$parser = new RequestHeaderParser($clock);
242+
$parser = $this->createRequestHeaderParser($clock);
242243
$parser->on('headers', function ($parsedRequest) use (&$request) {
243244
$request = $parsedRequest;
244245
});
@@ -267,7 +268,7 @@ public function testHeaderEventWithShouldApplyDefaultAddressFromLocalConnectionA
267268

268269
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
269270

270-
$parser = new RequestHeaderParser($clock);
271+
$parser = $this->createRequestHeaderParser($clock);
271272
$parser->on('headers', function ($parsedRequest) use (&$request) {
272273
$request = $parsedRequest;
273274
});
@@ -288,7 +289,7 @@ public function testHeaderEventViaHttpsShouldApplyHttpsSchemeFromLocalTlsConnect
288289

289290
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
290291

291-
$parser = new RequestHeaderParser($clock);
292+
$parser = $this->createRequestHeaderParser($clock);
292293
$parser->on('headers', function ($parsedRequest) use (&$request) {
293294
$request = $parsedRequest;
294295
});
@@ -310,7 +311,7 @@ public function testHeaderOverflowShouldEmitError()
310311

311312
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
312313

313-
$parser = new RequestHeaderParser($clock);
314+
$parser = $this->createRequestHeaderParser($clock);
314315
$parser->on('headers', $this->expectCallableNever());
315316
$parser->on('error', function ($message, $connection) use (&$error, &$passedConnection) {
316317
$error = $message;
@@ -334,7 +335,7 @@ public function testInvalidEmptyRequestHeadersParseException()
334335

335336
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
336337

337-
$parser = new RequestHeaderParser($clock);
338+
$parser = $this->createRequestHeaderParser($clock);
338339
$parser->on('headers', $this->expectCallableNever());
339340
$parser->on('error', function ($message) use (&$error) {
340341
$error = $message;
@@ -355,7 +356,7 @@ public function testInvalidMalformedRequestLineParseException()
355356

356357
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
357358

358-
$parser = new RequestHeaderParser($clock);
359+
$parser = $this->createRequestHeaderParser($clock);
359360
$parser->on('headers', $this->expectCallableNever());
360361
$parser->on('error', function ($message) use (&$error) {
361362
$error = $message;
@@ -376,7 +377,7 @@ public function testInvalidMalformedRequestHeadersThrowsParseException()
376377

377378
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
378379

379-
$parser = new RequestHeaderParser($clock);
380+
$parser = $this->createRequestHeaderParser($clock);
380381
$parser->on('headers', $this->expectCallableNever());
381382
$parser->on('error', function ($message) use (&$error) {
382383
$error = $message;
@@ -397,7 +398,7 @@ public function testInvalidMalformedRequestHeadersWhitespaceThrowsParseException
397398

398399
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
399400

400-
$parser = new RequestHeaderParser($clock);
401+
$parser = $this->createRequestHeaderParser($clock);
401402
$parser->on('headers', $this->expectCallableNever());
402403
$parser->on('error', function ($message) use (&$error) {
403404
$error = $message;
@@ -418,7 +419,7 @@ public function testInvalidAbsoluteFormSchemeEmitsError()
418419

419420
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
420421

421-
$parser = new RequestHeaderParser($clock);
422+
$parser = $this->createRequestHeaderParser($clock);
422423
$parser->on('headers', $this->expectCallableNever());
423424
$parser->on('error', function ($message) use (&$error) {
424425
$error = $message;
@@ -439,7 +440,7 @@ public function testOriginFormWithSchemeSeparatorInParam()
439440

440441
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
441442

442-
$parser = new RequestHeaderParser($clock);
443+
$parser = $this->createRequestHeaderParser($clock);
443444
$parser->on('error', $this->expectCallableNever());
444445
$parser->on('headers', function ($parsedRequest, $parsedBodyBuffer) use (&$request) {
445446
$request = $parsedRequest;
@@ -466,7 +467,7 @@ public function testUriStartingWithColonSlashSlashFails()
466467

467468
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
468469

469-
$parser = new RequestHeaderParser($clock);
470+
$parser = $this->createRequestHeaderParser($clock);
470471
$parser->on('headers', $this->expectCallableNever());
471472
$parser->on('error', function ($message) use (&$error) {
472473
$error = $message;
@@ -487,7 +488,7 @@ public function testInvalidAbsoluteFormWithFragmentEmitsError()
487488

488489
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
489490

490-
$parser = new RequestHeaderParser($clock);
491+
$parser = $this->createRequestHeaderParser($clock);
491492
$parser->on('headers', $this->expectCallableNever());
492493
$parser->on('error', function ($message) use (&$error) {
493494
$error = $message;
@@ -508,7 +509,7 @@ public function testInvalidHeaderContainsFullUri()
508509

509510
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
510511

511-
$parser = new RequestHeaderParser($clock);
512+
$parser = $this->createRequestHeaderParser($clock);
512513
$parser->on('headers', $this->expectCallableNever());
513514
$parser->on('error', function ($message) use (&$error) {
514515
$error = $message;
@@ -529,7 +530,7 @@ public function testInvalidAbsoluteFormWithHostHeaderEmpty()
529530

530531
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
531532

532-
$parser = new RequestHeaderParser($clock);
533+
$parser = $this->createRequestHeaderParser($clock);
533534
$parser->on('headers', $this->expectCallableNever());
534535
$parser->on('error', function ($message) use (&$error) {
535536
$error = $message;
@@ -550,7 +551,7 @@ public function testInvalidConnectRequestWithNonAuthorityForm()
550551

551552
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
552553

553-
$parser = new RequestHeaderParser($clock);
554+
$parser = $this->createRequestHeaderParser($clock);
554555
$parser->on('headers', $this->expectCallableNever());
555556
$parser->on('error', function ($message) use (&$error) {
556557
$error = $message;
@@ -571,7 +572,7 @@ public function testInvalidHttpVersion()
571572

572573
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
573574

574-
$parser = new RequestHeaderParser($clock);
575+
$parser = $this->createRequestHeaderParser($clock);
575576
$parser->on('headers', $this->expectCallableNever());
576577
$parser->on('error', function ($message) use (&$error) {
577578
$error = $message;
@@ -593,7 +594,7 @@ public function testInvalidContentLengthRequestHeaderWillEmitError()
593594

594595
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
595596

596-
$parser = new RequestHeaderParser($clock);
597+
$parser = $this->createRequestHeaderParser($clock);
597598
$parser->on('headers', $this->expectCallableNever());
598599
$parser->on('error', function ($message) use (&$error) {
599600
$error = $message;
@@ -615,7 +616,7 @@ public function testInvalidRequestWithMultipleContentLengthRequestHeadersWillEmi
615616

616617
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
617618

618-
$parser = new RequestHeaderParser($clock);
619+
$parser = $this->createRequestHeaderParser($clock);
619620
$parser->on('headers', $this->expectCallableNever());
620621
$parser->on('error', function ($message) use (&$error) {
621622
$error = $message;
@@ -637,7 +638,7 @@ public function testInvalidTransferEncodingRequestHeaderWillEmitError()
637638

638639
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
639640

640-
$parser = new RequestHeaderParser($clock);
641+
$parser = $this->createRequestHeaderParser($clock);
641642
$parser->on('headers', $this->expectCallableNever());
642643
$parser->on('error', function ($message) use (&$error) {
643644
$error = $message;
@@ -659,7 +660,7 @@ public function testInvalidRequestWithBothTransferEncodingAndContentLengthWillEm
659660

660661
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
661662

662-
$parser = new RequestHeaderParser($clock);
663+
$parser = $this->createRequestHeaderParser($clock);
663664
$parser->on('headers', $this->expectCallableNever());
664665
$parser->on('error', function ($message) use (&$error) {
665666
$error = $message;
@@ -682,7 +683,7 @@ public function testServerParamsWillBeSetOnHttpsRequest()
682683
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
683684
$clock->expects($this->once())->method('now')->willReturn(1652972091.3958);
684685

685-
$parser = new RequestHeaderParser($clock);
686+
$parser = $this->createRequestHeaderParser($clock);
686687

687688
$parser->on('headers', function ($parsedRequest) use (&$request) {
688689
$request = $parsedRequest;
@@ -715,7 +716,7 @@ public function testServerParamsWillBeSetOnHttpRequest()
715716
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
716717
$clock->expects($this->once())->method('now')->willReturn(1652972091.3958);
717718

718-
$parser = new RequestHeaderParser($clock);
719+
$parser = $this->createRequestHeaderParser($clock);
719720

720721
$parser->on('headers', function ($parsedRequest) use (&$request) {
721722
$request = $parsedRequest;
@@ -748,7 +749,7 @@ public function testServerParamsWillNotSetRemoteAddressForUnixDomainSockets()
748749
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
749750
$clock->expects($this->once())->method('now')->willReturn(1652972091.3958);
750751

751-
$parser = new RequestHeaderParser($clock);
752+
$parser = $this->createRequestHeaderParser($clock);
752753

753754
$parser->on('headers', function ($parsedRequest) use (&$request) {
754755
$request = $parsedRequest;
@@ -785,7 +786,7 @@ public function testServerParamsWontBeSetOnMissingUrls()
785786
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
786787
$clock->expects($this->once())->method('now')->willReturn(1652972091.3958);
787788

788-
$parser = new RequestHeaderParser($clock);
789+
$parser = $this->createRequestHeaderParser($clock);
789790

790791
$parser->on('headers', function ($parsedRequest) use (&$request) {
791792
$request = $parsedRequest;
@@ -870,7 +871,7 @@ public function testQueryParmetersWillBeSet()
870871

871872
$clock = $this->getMockBuilder('React\Http\Io\Clock')->disableOriginalConstructor()->getMock();
872873

873-
$parser = new RequestHeaderParser($clock);
874+
$parser = $this->createRequestHeaderParser($clock);
874875

875876
$parser->on('headers', function ($parsedRequest) use (&$request) {
876877
$request = $parsedRequest;
@@ -907,4 +908,9 @@ private function createAdvancedPostRequest()
907908

908909
return $data;
909910
}
911+
912+
private function createRequestHeaderParser(Clock $clock)
913+
{
914+
return new RequestHeaderParser($clock);
915+
}
910916
}

0 commit comments

Comments
 (0)