@@ -731,6 +731,62 @@ describe('Player', () => {
731
731
} ) ;
732
732
} ) ;
733
733
734
+ describe ( 'when config.streaming.preferNativeDash is set to true' , ( ) => {
735
+ beforeAll ( ( ) => {
736
+ shaka . media . ManifestParser . registerParserByMime (
737
+ 'application/dash+xml' ,
738
+ ( ) => new shaka . test . FakeManifestParser ( manifest ) ) ;
739
+ } ) ;
740
+
741
+ afterAll ( ( ) => {
742
+ // IMPORTANT: restore the ORIGINAL parser. DO NOT just unregister the
743
+ // fake!
744
+ shaka . media . ManifestParser . registerParserByMime (
745
+ 'application/dash+xml' ,
746
+ ( ) => new shaka . dash . DashParser ( ) ) ;
747
+ } ) ;
748
+
749
+ afterEach ( ( ) => {
750
+ video . canPlayType . calls . reset ( ) ;
751
+ } ) ;
752
+
753
+ it ( 'only applies to DASH streams' , async ( ) => {
754
+ video . canPlayType . and . returnValue ( 'maybe' ) ;
755
+ spyOn ( shaka . util . Platform , 'anyMediaElement' ) . and . returnValue ( video ) ;
756
+ spyOn ( shaka . util . Platform , 'supportsMediaSource' ) . and . returnValue ( true ) ;
757
+ // Make sure player.load() resolves for src=
758
+ spyOn ( shaka . util . MediaReadyState , 'waitForReadyState' ) . and . callFake (
759
+ ( mediaElement , readyState , eventManager , callback ) => {
760
+ callback ( ) ;
761
+ } ) ;
762
+
763
+ player . configure ( {
764
+ streaming : {
765
+ preferNativeDash : true ,
766
+ } ,
767
+ } ) ;
768
+
769
+ await player . load ( fakeManifestUri , undefined , 'application/dash+xml' ) ;
770
+
771
+ expect ( player . getLoadMode ( ) ) . toBe ( shaka . Player . LoadMode . SRC_EQUALS ) ;
772
+ } ) ;
773
+
774
+ it ( 'does not apply to non-DASH streams' , async ( ) => {
775
+ video . canPlayType . and . returnValue ( 'maybe' ) ;
776
+ spyOn ( shaka . util . Platform , 'supportsMediaSource' ) . and . returnValue ( true ) ;
777
+
778
+ player . configure ( {
779
+ streaming : {
780
+ preferNativeDash : true ,
781
+ } ,
782
+ } ) ;
783
+
784
+ await player . load ( fakeManifestUri , 0 , fakeMimeType ) ;
785
+
786
+ expect ( player . getLoadMode ( ) ) . toBe ( shaka . Player . LoadMode . MEDIA_SOURCE ) ;
787
+ } ) ;
788
+ } ) ;
789
+
734
790
describe ( 'when config.streaming.preferNativeHls is set to true' , ( ) => {
735
791
beforeAll ( ( ) => {
736
792
shaka . media . ManifestParser . registerParserByMime (
0 commit comments