44
55namespace OpenTelemetry \Tests \Instrumentation \Symfony \tests \Integration ;
66
7+ use OpenTelemetry \Contrib \Propagation \TraceResponse \TraceResponsePropagator ;
78use OpenTelemetry \SemConv \TraceAttributes ;
89use Symfony \Component \EventDispatcher \EventDispatcher ;
910use Symfony \Component \EventDispatcher \EventDispatcherInterface ;
@@ -27,7 +28,13 @@ public function test_http_kernel_handle_exception(): void
2728 });
2829 $ this ->assertCount (0 , $ this ->storage );
2930
30- $ kernel ->handle (new Request ());
31+ $ response = $ kernel ->handle (new Request ());
32+
33+ $ this ->assertArrayHasKey (
34+ TraceResponsePropagator::TRACERESPONSE ,
35+ $ response ->headers ->all (),
36+ 'traceresponse header is present if TraceResponsePropagator is present '
37+ );
3138 }
3239
3340 public function test_http_kernel_handle_attributes (): void
@@ -37,7 +44,7 @@ public function test_http_kernel_handle_attributes(): void
3744 $ request = new Request ();
3845 $ request ->attributes ->set ('_route ' , 'test_route ' );
3946
40- $ kernel ->handle ($ request );
47+ $ response = $ kernel ->handle ($ request );
4148
4249 $ attributes = $ this ->storage [0 ]->getAttributes ();
4350 $ this ->assertCount (1 , $ this ->storage );
@@ -49,6 +56,12 @@ public function test_http_kernel_handle_attributes(): void
4956 $ this ->assertEquals (200 , $ attributes ->get (TraceAttributes::HTTP_STATUS_CODE ));
5057 $ this ->assertEquals ('1.0 ' , $ attributes ->get (TraceAttributes::HTTP_FLAVOR ));
5158 $ this ->assertEquals (5 , $ attributes ->get (TraceAttributes::HTTP_RESPONSE_CONTENT_LENGTH ));
59+
60+ $ this ->assertArrayHasKey (
61+ TraceResponsePropagator::TRACERESPONSE ,
62+ $ response ->headers ->all (),
63+ 'traceresponse header is present if TraceResponsePropagator is present '
64+ );
5265 }
5366
5467 public function test_http_kernel_handle_stream_response (): void
@@ -59,19 +72,31 @@ public function test_http_kernel_handle_stream_response(): void
5972 }));
6073 $ this ->assertCount (0 , $ this ->storage );
6174
62- $ kernel ->handle (new Request ());
75+ $ response = $ kernel ->handle (new Request ());
6376 $ this ->assertCount (1 , $ this ->storage );
6477 $ this ->assertNull ($ this ->storage [0 ]->getAttributes ()->get (TraceAttributes::HTTP_RESPONSE_CONTENT_LENGTH ));
78+
79+ $ this ->assertArrayHasKey (
80+ TraceResponsePropagator::TRACERESPONSE ,
81+ $ response ->headers ->all (),
82+ 'traceresponse header is present if TraceResponsePropagator is present '
83+ );
6584 }
6685
6786 public function test_http_kernel_handle_binary_file_response (): void
6887 {
6988 $ kernel = $ this ->getHttpKernel (new EventDispatcher (), fn () => new BinaryFileResponse (__FILE__ ));
7089 $ this ->assertCount (0 , $ this ->storage );
7190
72- $ kernel ->handle (new Request ());
91+ $ response = $ kernel ->handle (new Request ());
7392 $ this ->assertCount (1 , $ this ->storage );
7493 $ this ->assertNull ($ this ->storage [0 ]->getAttributes ()->get (TraceAttributes::HTTP_RESPONSE_CONTENT_LENGTH ));
94+
95+ $ this ->assertArrayHasKey (
96+ TraceResponsePropagator::TRACERESPONSE ,
97+ $ response ->headers ->all (),
98+ 'traceresponse header is present if TraceResponsePropagator is present '
99+ );
75100 }
76101
77102 public function test_http_kernel_handle_with_empty_route (): void
@@ -81,19 +106,31 @@ public function test_http_kernel_handle_with_empty_route(): void
81106 $ request = new Request ();
82107 $ request ->attributes ->set ('_route ' , '' );
83108
84- $ kernel ->handle ($ request , HttpKernelInterface::MAIN_REQUEST , true );
109+ $ response = $ kernel ->handle ($ request , HttpKernelInterface::MAIN_REQUEST , true );
85110 $ this ->assertCount (1 , $ this ->storage );
86111 $ this ->assertFalse ($ this ->storage [0 ]->getAttributes ()->has (TraceAttributes::HTTP_ROUTE ));
112+
113+ $ this ->assertArrayHasKey (
114+ TraceResponsePropagator::TRACERESPONSE ,
115+ $ response ->headers ->all (),
116+ 'traceresponse header is present if TraceResponsePropagator is present '
117+ );
87118 }
88119
89120 public function test_http_kernel_handle_without_route (): void
90121 {
91122 $ kernel = $ this ->getHttpKernel (new EventDispatcher ());
92123 $ this ->assertCount (0 , $ this ->storage );
93124
94- $ kernel ->handle (new Request (), HttpKernelInterface::MAIN_REQUEST , true );
125+ $ response = $ kernel ->handle (new Request (), HttpKernelInterface::MAIN_REQUEST , true );
95126 $ this ->assertCount (1 , $ this ->storage );
96127 $ this ->assertFalse ($ this ->storage [0 ]->getAttributes ()->has (TraceAttributes::HTTP_ROUTE ));
128+
129+ $ this ->assertArrayHasKey (
130+ TraceResponsePropagator::TRACERESPONSE ,
131+ $ response ->headers ->all (),
132+ 'traceresponse header is present if TraceResponsePropagator is present '
133+ );
97134 }
98135
99136 private function getHttpKernel (EventDispatcherInterface $ eventDispatcher , $ controller = null , RequestStack $ requestStack = null , array $ arguments = []): HttpKernel
0 commit comments