1313use  Sentry \SentryBundle \EventListener \RequestListenerTerminateEvent ;
1414use  Sentry \SentryBundle \EventListener \TracingRequestListener ;
1515use  Sentry \State \HubInterface ;
16+ use  Sentry \Tracing \DynamicSamplingContext ;
1617use  Sentry \Tracing \SpanId ;
1718use  Sentry \Tracing \SpanStatus ;
1819use  Sentry \Tracing \TraceId ;
1920use  Sentry \Tracing \Transaction ;
2021use  Sentry \Tracing \TransactionContext ;
22+ use  Sentry \Tracing \TransactionSource ;
2123use  Symfony \Bridge \PhpUnit \ClockMock ;
2224use  Symfony \Component \HttpFoundation \Request ;
2325use  Symfony \Component \HttpFoundation \Response ;
@@ -85,11 +87,15 @@ public function testHandleKernelRequestEvent(Options $options, Request $request,
8587     */ 
8688    public  function  handleKernelRequestEventDataProvider (): \Generator  
8789    {
90+         $ samplingContext  = DynamicSamplingContext::fromHeader ('' );
91+         $ samplingContext ->freeze ();
92+ 
8893        $ transactionContext  = new  TransactionContext ();
8994        $ transactionContext ->setTraceId (new  TraceId ('566e3688a61d4bc888951642d6f14a19 ' ));
9095        $ transactionContext ->setParentSpanId (new  SpanId ('566e3688a61d4bc8 ' ));
9196        $ transactionContext ->setParentSampled (true );
9297        $ transactionContext ->setName ('GET http://www.example.com/ ' );
98+         $ transactionContext ->setSource (TransactionSource::url ());
9399        $ transactionContext ->setOp ('http.server ' );
94100        $ transactionContext ->setStartTimestamp (1613493597.010275 );
95101        $ transactionContext ->setTags ([
@@ -100,6 +106,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
100106            'route '  => '<unknown> ' ,
101107            'net.host.name '  => 'www.example.com ' ,
102108        ]);
109+         $ transactionContext ->getMetadata ()->setDynamicSamplingContext ($ samplingContext );
103110
104111        yield  'request.headers.sentry-trace EXISTS '  => [
105112            new  Options (),
@@ -117,8 +124,47 @@ public function handleKernelRequestEventDataProvider(): \Generator
117124            $ transactionContext ,
118125        ];
119126
127+         $ samplingContext  = DynamicSamplingContext::fromHeader ('sentry-trace_id=566e3688a61d4bc888951642d6f14a19,sentry-public_key=public,sentry-sample_rate=1 ' );
128+         $ samplingContext ->freeze ();
129+ 
130+         $ transactionContext  = new  TransactionContext ();
131+         $ transactionContext ->setTraceId (new  TraceId ('566e3688a61d4bc888951642d6f14a19 ' ));
132+         $ transactionContext ->setParentSpanId (new  SpanId ('566e3688a61d4bc8 ' ));
133+         $ transactionContext ->setParentSampled (true );
134+         $ transactionContext ->setName ('GET http://www.example.com/ ' );
135+         $ transactionContext ->setSource (TransactionSource::url ());
136+         $ transactionContext ->setOp ('http.server ' );
137+         $ transactionContext ->setStartTimestamp (1613493597.010275 );
138+         $ transactionContext ->setTags ([
139+             'net.host.port '  => '80 ' ,
140+             'http.method '  => 'GET ' ,
141+             'http.url '  => 'http://www.example.com/ ' ,
142+             'http.flavor '  => '1.1 ' ,
143+             'route '  => '<unknown> ' ,
144+             'net.host.name '  => 'www.example.com ' ,
145+         ]);
146+         $ transactionContext ->getMetadata ()->setDynamicSamplingContext ($ samplingContext );
147+ 
148+         yield  'request.headers.sentry-trace and headers.baggage EXISTS '  => [
149+             new  Options (),
150+             Request::create (
151+                 'http://www.example.com ' ,
152+                 'GET ' ,
153+                 [],
154+                 [],
155+                 [],
156+                 [
157+                     'REQUEST_TIME_FLOAT '  => 1613493597.010275 ,
158+                     'HTTP_sentry-trace '  => '566e3688a61d4bc888951642d6f14a19-566e3688a61d4bc8-1 ' ,
159+                     'HTTP_baggage '  => 'sentry-trace_id=566e3688a61d4bc888951642d6f14a19,sentry-public_key=public,sentry-sample_rate=1 ' ,
160+                 ]
161+             ),
162+             $ transactionContext ,
163+         ];
164+ 
120165        $ transactionContext  = new  TransactionContext ();
121166        $ transactionContext ->setName ('GET http://www.example.com/ ' );
167+         $ transactionContext ->setSource (TransactionSource::url ());
122168        $ transactionContext ->setOp ('http.server ' );
123169        $ transactionContext ->setStartTimestamp (1613493597.010275 );
124170        $ transactionContext ->setTags ([
@@ -141,6 +187,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
141187
142188        $ transactionContext  = new  TransactionContext ();
143189        $ transactionContext ->setName ('GET http://127.0.0.1/ ' );
190+         $ transactionContext ->setSource (TransactionSource::url ());
144191        $ transactionContext ->setOp ('http.server ' );
145192        $ transactionContext ->setStartTimestamp (1613493597.010275 );
146193        $ transactionContext ->setTags ([
@@ -171,6 +218,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
171218
172219        $ transactionContext  = new  TransactionContext ();
173220        $ transactionContext ->setName ('GET http://www.example.com/path ' );
221+         $ transactionContext ->setSource (TransactionSource::url ());
174222        $ transactionContext ->setOp ('http.server ' );
175223        $ transactionContext ->setStartTimestamp (1613493597.010275 );
176224        $ transactionContext ->setTags ([
@@ -194,6 +242,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
194242
195243        $ transactionContext  = new  TransactionContext ();
196244        $ transactionContext ->setName ('GET http://www.example.com/path ' );
245+         $ transactionContext ->setSource (TransactionSource::url ());
197246        $ transactionContext ->setOp ('http.server ' );
198247        $ transactionContext ->setStartTimestamp (1613493597.010275 );
199248        $ transactionContext ->setTags ([
@@ -217,6 +266,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
217266
218267        $ transactionContext  = new  TransactionContext ();
219268        $ transactionContext ->setName ('GET http://www.example.com/ ' );
269+         $ transactionContext ->setSource (TransactionSource::url ());
220270        $ transactionContext ->setOp ('http.server ' );
221271        $ transactionContext ->setStartTimestamp (1613493597.010275 );
222272        $ transactionContext ->setTags ([
@@ -240,6 +290,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
240290
241291        $ transactionContext  = new  TransactionContext ();
242292        $ transactionContext ->setName ('GET http://www.example.com/ ' );
293+         $ transactionContext ->setSource (TransactionSource::url ());
243294        $ transactionContext ->setOp ('http.server ' );
244295        $ transactionContext ->setStartTimestamp (1613493597.010275 );
245296        $ transactionContext ->setTags ([
@@ -263,6 +314,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
263314
264315        $ transactionContext  = new  TransactionContext ();
265316        $ transactionContext ->setName ('GET http://www.example.com/ ' );
317+         $ transactionContext ->setSource (TransactionSource::url ());
266318        $ transactionContext ->setOp ('http.server ' );
267319        $ transactionContext ->setStartTimestamp (1613493597.010275 );
268320        $ transactionContext ->setTags ([
@@ -286,6 +338,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
286338
287339        $ transactionContext  = new  TransactionContext ();
288340        $ transactionContext ->setName ('GET http://www.example.com/ ' );
341+         $ transactionContext ->setSource (TransactionSource::url ());
289342        $ transactionContext ->setOp ('http.server ' );
290343        $ transactionContext ->setStartTimestamp (1613493597.010275 );
291344        $ transactionContext ->setTags ([
@@ -309,6 +362,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
309362
310363        $ transactionContext  = new  TransactionContext ();
311364        $ transactionContext ->setName ('GET http://www.example.com/ ' );
365+         $ transactionContext ->setSource (TransactionSource::url ());
312366        $ transactionContext ->setOp ('http.server ' );
313367        $ transactionContext ->setStartTimestamp (1613493597.010275 );
314368        $ transactionContext ->setTags ([
@@ -332,6 +386,7 @@ public function handleKernelRequestEventDataProvider(): \Generator
332386
333387        $ transactionContext  = new  TransactionContext ();
334388        $ transactionContext ->setName ('GET http://:/ ' );
389+         $ transactionContext ->setSource (TransactionSource::url ());
335390        $ transactionContext ->setOp ('http.server ' );
336391        $ transactionContext ->setStartTimestamp (1613493597.010275 );
337392        $ transactionContext ->setTags ([
0 commit comments