Skip to content

Commit 2712152

Browse files
committed
Add more E2E tests
1 parent 3a26525 commit 2712152

File tree

4 files changed

+97
-0
lines changed

4 files changed

+97
-0
lines changed

test/End2End/App/Controller/MainController.php

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

33
namespace Sentry\SentryBundle\Test\End2End\App\Controller;
44

5+
use Sentry\State\HubInterface;
6+
use Symfony\Component\HttpFoundation\Request;
7+
use Symfony\Component\HttpFoundation\RequestStack;
58
use Symfony\Component\HttpFoundation\Response;
9+
use Symfony\Component\HttpKernel\HttpKernelInterface;
610

711
class MainController
812
{
13+
/** @var HubInterface */
14+
private $sentry;
15+
16+
/** @var RequestStack */
17+
private $requestStack;
18+
19+
/** @var HttpKernelInterface */
20+
private $kernel;
21+
22+
public function __construct(HubInterface $sentry, RequestStack $requestStack, HttpKernelInterface $kernel)
23+
{
24+
$this->sentry = $sentry;
25+
$this->requestStack = $requestStack;
26+
$this->kernel = $kernel;
27+
}
28+
929
public function exception(): Response
1030
{
1131
throw new \RuntimeException('This is an intentional error');
1232
}
33+
34+
public function index(): Response
35+
{
36+
$this->sentry->captureMessage('Hello there');
37+
38+
return new Response('Hello there');
39+
}
40+
41+
public function subrequest(): Response
42+
{
43+
$request = $this->requestStack->getCurrentRequest();
44+
assert($request instanceof Request);
45+
$path['_controller'] = __CLASS__ . '::index';
46+
47+
$subRequest = $request->duplicate([], null, $path);
48+
49+
return $this->kernel->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
50+
}
1351
}

test/End2End/App/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ services:
88
alias: Sentry\State\HubInterface
99
public: true
1010

11+
Sentry\SentryBundle\Test\End2End\App\Controller\MainController:
12+
autowire: true
13+
tags:
14+
- controller.service_arguments
15+
1116
monolog:
1217
handlers:
1318
main:

test/End2End/App/routing.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
11
exception:
22
path: /exception
33
defaults: { _controller: '\Sentry\SentryBundle\Test\End2End\App\Controller\MainController::exception' }
4+
5+
200:
6+
path: /200
7+
defaults: { _controller: '\Sentry\SentryBundle\Test\End2End\App\Controller\MainController::index' }
8+
9+
secured200:
10+
path: /secured/200
11+
defaults: { _controller: '\Sentry\SentryBundle\Test\End2End\App\Controller\MainController::index' }
12+
13+
subrequest:
14+
path: /subrequest
15+
defaults: { _controller: '\Sentry\SentryBundle\Test\End2End\App\Controller\MainController::subrequest' }

test/End2End/End2EndTest.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,48 @@ protected static function getKernelClass(): string
2626
return Kernel::class;
2727
}
2828

29+
public function testGet200(): void
30+
{
31+
$client = static::createClient(['debug' => false]);
32+
33+
$client->request('GET', '/200');
34+
35+
$response = $client->getResponse();
36+
37+
$this->assertInstanceOf(Response::class, $response);
38+
$this->assertSame(200, $response->getStatusCode());
39+
40+
$this->assertLastEventIdIsNotNull($client);
41+
}
42+
43+
public function testGet200BehindFirewall(): void
44+
{
45+
$client = static::createClient(['debug' => false]);
46+
47+
$client->request('GET', '/secured/200');
48+
49+
$response = $client->getResponse();
50+
51+
$this->assertInstanceOf(Response::class, $response);
52+
$this->assertSame(200, $response->getStatusCode());
53+
54+
$this->assertLastEventIdIsNotNull($client);
55+
}
56+
57+
public function testGet200WithSubrequest(): void
58+
{
59+
$client = static::createClient(['debug' => false]);
60+
61+
$client->request('GET', '/subrequest');
62+
63+
$response = $client->getResponse();
64+
65+
$this->assertInstanceOf(Response::class, $response);
66+
$this->assertSame(200, $response->getStatusCode());
67+
68+
$this->assertLastEventIdIsNotNull($client);
69+
}
70+
2971
public function testGet404(): void
3072
{
3173
$client = static::createClient(['debug' => false]);

0 commit comments

Comments
 (0)