@@ -631,25 +631,74 @@ describe('integration', function () {
631
631
} ,
632
632
function ( ) {
633
633
var Raven = iframe . contentWindow . Raven ,
634
- breadcrumbs = Raven . _breadcrumbs ;
634
+ breadcrumbs = Raven . _breadcrumbs ,
635
+ breadcrumbUrl = '/test/integration/example.json' ;
636
+
637
+ if ( 'fetch' in window ) {
638
+ assert . equal ( breadcrumbs . length , 1 ) ;
639
+
640
+ assert . equal ( breadcrumbs [ 0 ] . type , 'http' ) ;
641
+ assert . equal ( breadcrumbs [ 0 ] . category , 'fetch' ) ;
642
+ assert . equal ( breadcrumbs [ 0 ] . data . method , 'GET' ) ;
643
+ assert . equal ( breadcrumbs [ 0 ] . data . url , breadcrumbUrl ) ;
644
+ } else {
645
+ // otherwise we use a fetch polyfill based on xhr
646
+ assert . equal ( breadcrumbs . length , 2 ) ;
647
+
648
+ assert . equal ( breadcrumbs [ 0 ] . type , 'http' ) ;
649
+ assert . equal ( breadcrumbs [ 0 ] . category , 'fetch' ) ;
650
+ assert . equal ( breadcrumbs [ 0 ] . data . method , 'GET' ) ;
651
+ assert . equal ( breadcrumbs [ 0 ] . data . url , breadcrumbUrl ) ;
652
+
653
+ assert . equal ( breadcrumbs [ 1 ] . type , 'http' ) ;
654
+ assert . equal ( breadcrumbs [ 1 ] . category , 'xhr' ) ;
655
+ assert . equal ( breadcrumbs [ 1 ] . data . method , 'GET' ) ;
656
+ assert . equal ( breadcrumbs [ 1 ] . data . url , breadcrumbUrl ) ;
657
+ }
658
+ }
659
+ ) ;
660
+ } ) ;
661
+
662
+ it ( 'should record a fetch request with Request obj instead of URL string' , function ( done ) {
663
+ var iframe = this . iframe ;
664
+
665
+ iframeExecute ( iframe , done ,
666
+ function ( ) {
667
+ // some browsers trigger onpopstate for load / reset breadcrumb state
668
+ Raven . _breadcrumbs = [ ] ;
669
+
670
+ fetch ( new Request ( '/test/integration/example.json' ) ) . then ( function ( ) {
671
+ setTimeout ( done ) ;
672
+ } , function ( ) {
673
+ setTimeout ( done ) ;
674
+ } ) ;
675
+ } ,
676
+ function ( ) {
677
+ var Raven = iframe . contentWindow . Raven ,
678
+ breadcrumbs = Raven . _breadcrumbs ,
679
+ breadcrumbUrl = '/test/integration/example.json' ;
635
680
636
681
if ( 'fetch' in window ) {
637
682
assert . equal ( breadcrumbs . length , 1 ) ;
638
683
639
684
assert . equal ( breadcrumbs [ 0 ] . type , 'http' ) ;
640
685
assert . equal ( breadcrumbs [ 0 ] . category , 'fetch' ) ;
641
686
assert . equal ( breadcrumbs [ 0 ] . data . method , 'GET' ) ;
687
+ // Request constructor normalizes the url
688
+ assert . ok ( breadcrumbs [ 0 ] . data . url . indexOf ( breadcrumbUrl ) !== - 1 ) ;
642
689
} else {
643
690
// otherwise we use a fetch polyfill based on xhr
644
691
assert . equal ( breadcrumbs . length , 2 ) ;
645
692
646
693
assert . equal ( breadcrumbs [ 0 ] . type , 'http' ) ;
647
694
assert . equal ( breadcrumbs [ 0 ] . category , 'fetch' ) ;
648
695
assert . equal ( breadcrumbs [ 0 ] . data . method , 'GET' ) ;
696
+ assert . ok ( breadcrumbs [ 0 ] . data . url . indexOf ( breadcrumbUrl ) !== - 1 ) ;
649
697
650
698
assert . equal ( breadcrumbs [ 1 ] . type , 'http' ) ;
651
699
assert . equal ( breadcrumbs [ 1 ] . category , 'xhr' ) ;
652
700
assert . equal ( breadcrumbs [ 1 ] . data . method , 'GET' ) ;
701
+ assert . ok ( breadcrumbs [ 1 ] . data . url . indexOf ( breadcrumbUrl ) !== - 1 ) ;
653
702
}
654
703
}
655
704
) ;
0 commit comments