@@ -7,7 +7,13 @@ import type { Transaction } from '../../../tracing/src';
7
7
import { addExtensionMethods , Span , spanStatusfromHttpCode } from '../../../tracing/src' ;
8
8
import { getDefaultBrowserClientOptions } from '../../../tracing/test/testutils' ;
9
9
import type { FetchData , XHRData } from '../../src/browser/request' ;
10
- import { fetchCallback , instrumentOutgoingRequests , shouldAttachHeaders , xhrCallback } from '../../src/browser/request' ;
10
+ import {
11
+ extractNetworkProtocol ,
12
+ fetchCallback ,
13
+ instrumentOutgoingRequests ,
14
+ shouldAttachHeaders ,
15
+ xhrCallback ,
16
+ } from '../../src/browser/request' ;
11
17
import { TestClient } from '../utils/TestClient' ;
12
18
13
19
beforeAll ( ( ) => {
@@ -388,6 +394,57 @@ describe('callbacks', () => {
388
394
} ) ;
389
395
} ) ;
390
396
397
+ interface ProtocolInfo {
398
+ name : string ;
399
+ version : string ;
400
+ }
401
+
402
+ describe ( 'HTTPTimings' , ( ) => {
403
+ describe ( 'Extracting version from ALPN protocol' , ( ) => {
404
+ const nextHopToNetworkVersion : Record < string , ProtocolInfo > = {
405
+ 'http/0.9' : { name : 'http' , version : '0.9' } ,
406
+ 'http/1.0' : { name : 'http' , version : '1.0' } ,
407
+ 'http/1.1' : { name : 'http' , version : '1.1' } ,
408
+ 'spdy/1' : { name : 'spdy' , version : '1' } ,
409
+ 'spdy/2' : { name : 'spdy' , version : '2' } ,
410
+ 'spdy/3' : { name : 'spdy' , version : '3' } ,
411
+ 'stun.turn' : { name : 'stun.turn' , version : 'unknown' } ,
412
+ 'stun.nat-discovery' : { name : 'stun.nat-discovery' , version : 'unknown' } ,
413
+ h2 : { name : 'http' , version : '2' } ,
414
+ h2c : { name : 'http' , version : '2c' } ,
415
+ webrtc : { name : 'webrtc' , version : 'unknown' } ,
416
+ 'c-webrtc' : { name : 'c-webrtc' , version : 'unknown' } ,
417
+ ftp : { name : 'ftp' , version : 'unknown' } ,
418
+ imap : { name : 'imap' , version : 'unknown' } ,
419
+ pop3 : { name : 'pop' , version : '3' } ,
420
+ managesieve : { name : 'managesieve' , version : 'unknown' } ,
421
+ coap : { name : 'coap' , version : 'unknown' } ,
422
+ 'xmpp-client' : { name : 'xmpp-client' , version : 'unknown' } ,
423
+ 'xmpp-server' : { name : 'xmpp-server' , version : 'unknown' } ,
424
+ 'acme-tls/1' : { name : 'acme-tls' , version : '1' } ,
425
+ mqtt : { name : 'mqtt' , version : 'unknown' } ,
426
+ dot : { name : 'dot' , version : 'unknown' } ,
427
+ 'ntske/1' : { name : 'ntske' , version : '1' } ,
428
+ sunrpc : { name : 'sunrpc' , version : 'unknown' } ,
429
+ h3 : { name : 'http' , version : '3' } ,
430
+ smb : { name : 'smb' , version : 'unknown' } ,
431
+ irc : { name : 'irc' , version : 'unknown' } ,
432
+ nntp : { name : 'nntp' , version : 'unknown' } ,
433
+ nnsp : { name : 'nnsp' , version : 'unknown' } ,
434
+ doq : { name : 'doq' , version : 'unknown' } ,
435
+ 'sip/2' : { name : 'sip' , version : '2' } ,
436
+ 'tds/8.0' : { name : 'tds' , version : '8.0' } ,
437
+ dicom : { name : 'dicom' , version : 'unknown' } ,
438
+ } ;
439
+
440
+ const protocols = Object . keys ( nextHopToNetworkVersion ) ;
441
+ for ( const protocol of protocols ) {
442
+ const expected : ProtocolInfo = nextHopToNetworkVersion [ protocol ] ;
443
+ expect ( extractNetworkProtocol ( protocol ) ) . toMatchObject ( expected ) ;
444
+ }
445
+ } ) ;
446
+ } ) ;
447
+
391
448
describe ( 'shouldAttachHeaders' , ( ) => {
392
449
describe ( 'should prefer `tracePropagationTargets` over defaults' , ( ) => {
393
450
it ( 'should return `true` if the url matches the new tracePropagationTargets' , ( ) => {
0 commit comments