Skip to content

Commit 895e7e1

Browse files
committed
Updated to codeception 2.1, enabled followRedirects
1 parent 696af84 commit 895e7e1

File tree

16 files changed

+235
-220
lines changed

16 files changed

+235
-220
lines changed

composer.json

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,33 @@
1313
"require": {
1414
"php": ">=5.5.0",
1515
"arachne/bootstrap": "~0.1",
16-
"codeception/codeception": "~2.0",
16+
"codeception/codeception": "~2.1",
1717
"nette/bootstrap": "~2.2",
1818
"nette/di": "~2.2",
1919
"nette/http": "~2.2"
2020
},
2121
"require-dev": {
22-
"arachne/coding-style": "~0.2",
22+
"arachne/coding-style": "~0.3",
2323
"enumag/application": "~0.2",
24-
"nette/nette": "~2.2",
25-
"squizlabs/php_codesniffer": "~2.0"
24+
"latte/latte": "~2.2",
25+
"squizlabs/php_codesniffer": "~2.0",
26+
"tracy/tracy": "~2.2"
2627
},
2728
"autoload": {
2829
"psr-4": {
29-
"Arachne\\Codeception\\": "src",
30-
"Codeception\\Module\\": "src/CodeceptionModule"
30+
"Arachne\\Codeception\\": "src"
3131
}
3232
},
3333
"autoload-dev": {
3434
"psr-4": {
3535
"Tests\\Unit\\": "tests/unit/src",
3636
"Tests\\Integration\\": "tests/integration/src"
3737
}
38-
}
38+
},
39+
"repositories": [
40+
{
41+
"type": "composer",
42+
"url": "http://packages.m33.cz"
43+
}
44+
]
3945
}

src/CodeceptionModule/Nette.php

Lines changed: 0 additions & 164 deletions
This file was deleted.

src/Connector/Nette.php

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

33
namespace Arachne\Codeception\Connector;
44

5+
use Arachne\Codeception\Http\Request as HttpRequest;
6+
use Arachne\Codeception\Http\Response as HttpResponse;
7+
use Nette\Application\Application;
58
use Nette\DI\Container;
9+
use Nette\Http\IRequest;
610
use Nette\Http\IResponse;
711
use Symfony\Component\BrowserKit\Client;
812
use Symfony\Component\BrowserKit\Request;
@@ -32,25 +36,33 @@ public function doRequest($request)
3236
$_SERVER = $request->getServer();
3337
$_FILES = $request->getFiles();
3438

35-
$uri = str_replace('http://localhost', '', $request->getUri());
39+
$_SERVER['REQUEST_METHOD'] = $method = strtoupper($request->getMethod());
40+
$_SERVER['REQUEST_URI'] = $uri = str_replace('http://localhost', '', $request->getUri());
3641

37-
$_SERVER['REQUEST_METHOD'] = strtoupper($request->getMethod());
38-
$_SERVER['REQUEST_URI'] = $uri;
42+
if ($method === 'HEAD' || $method === 'GET') {
43+
$_GET = $request->getParameters();
44+
} else {
45+
$_POST = $request->getParameters();
46+
}
3947

40-
// Container initialization can't be called earlier because Nette\Http\IRequest service might be initialized too soon and amOnPage method would not work anymore.
41-
$this->container->initialize();
48+
$httpRequest = $this->container->getByType(IRequest::class);
49+
$httpResponse = $this->container->getByType(IResponse::class);
50+
if (!$httpRequest instanceof HttpRequest || !$httpResponse instanceof HttpResponse) {
51+
throw new \Exception('Arachne\Codeception\DI\CodeceptionExtension is not used or conflicts with another extension.');
52+
}
53+
$httpRequest->reset();
54+
$httpResponse->reset();
4255

4356
try {
4457
ob_start();
45-
$this->container->getByType('Nette\Application\Application')->run();
58+
$this->container->getByType(Application::class)->run();
4659
$content = ob_get_clean();
4760

4861
} catch (\Exception $e) {
4962
ob_end_clean();
5063
throw $e;
5164
}
5265

53-
$httpResponse = $this->container->getByType('Nette\Http\IResponse');
5466
$code = $httpResponse->getCode();
5567
$headers = $httpResponse->getHeaders();
5668

src/Console/RunTestInput.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
class RunTestInput extends ArgvInput
1616
{
1717

18-
public function __construct(InputDefinition $definition = NULL)
18+
public function __construct(InputDefinition $definition = null)
1919
{
2020
$parameters = [ $_SERVER['argv'][0], 'run' ];
2121

src/DI/CodeceptionExtension.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,15 @@ public function beforeCompile()
1818
$request = $builder->getByType('Nette\Http\IRequest') ?: 'httpRequest';
1919
if ($builder->hasDefinition($request)) {
2020
$builder->getDefinition($request)
21-
// RequestFactory leaves port NULL in CLI mode but the urls created by amOnPage have port 80 which breaks canonicalization.
22-
->addSetup('$url = ?->getUrl(); if (!$url->getPort()) { $url->setPort(80); }', [ '@self' ]);
21+
->setClass('Nette\Http\Request')
22+
->setFactory('Arachne\Codeception\Http\Request');
2323
}
2424

2525
$response = $builder->getByType('Nette\Http\IResponse') ?: 'httpResponse';
2626
if ($builder->hasDefinition($response)) {
2727
$builder->getDefinition($response)
2828
->setClass('Nette\Http\IResponse')
29-
->setFactory('Arachne\Codeception\Http\Response')
30-
// The HTTP code from previous test sometimes survives in http_response_code() so it's necessary to reset it manually.
31-
->addSetup('setCode', [ IResponse::S200_OK ]);
29+
->setFactory('Arachne\Codeception\Http\Response');
3230
}
3331
}
3432

0 commit comments

Comments
 (0)