# Media tests should be backend independent, i.e., not conditioned on ogg, # wave etc. (The only exception is the can_play_type tests, which # necessarily depend on the backend(s) configured.) As far as possible, each # test should work with any resource type. This makes it easy to add new # backends and reduces the amount of test duplication. # For each supported backend, resources that can be played by that backend # should be added to the lists in manifest.js. Media tests that aren't # testing for a bug in handling a specific resource type should pick one of # the lists in manifest.js and run the test for each resource in the list # that is supported in the current build (the canPlayType API is useful for # this). # To test whether a valid resource can simply be played through correctly, # and optionally that its metadata is read correctly, just add it to # gPlayTests in manifest.js. To test whether an invalid resource correctly # throws an error (and does not cause a crash or hang), just add it to # gErrorTests in manifest.js. # To test for a specific bug in handling a specific resource type, make the # test first check canPlayType for the type, and if it's not supported, just # do ok(true, "Type not supported") and stop the test. [DEFAULT] #bug 918299 skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) support-files = 320x240.ogv 320x240.ogv^headers^ 448636.ogv 448636.ogv^headers^ VID_0001.ogg VID_0001.ogg^headers^ allowed.sjs audio-gaps.ogg audio-gaps.ogg^headers^ audio-overhang.ogg audio-overhang.ogg^headers^ audio.wav audio.wav^headers^ badtags.ogg badtags.ogg^headers^ basic.vtt beta-phrasebook.ogg beta-phrasebook.ogg^headers^ big-buck-bunny-unseekable.mp4 big-buck-bunny-unseekable.mp4^headers^ big.wav big.wav^headers^ bogus.duh bogus.ogv bogus.ogv^headers^ bogus.wav bogus.wav^headers^ bug461281.ogg bug461281.ogg^headers^ bug482461-theora.ogv bug482461-theora.ogv^headers^ bug482461.ogv bug482461.ogv^headers^ bug495129.ogv bug495129.ogv^headers^ bug495794.ogg bug495794.ogg^headers^ bug498380.ogv bug498380.ogv^headers^ bug498855-1.ogv bug498855-1.ogv^headers^ bug498855-2.ogv bug498855-2.ogv^headers^ bug498855-3.ogv bug498855-3.ogv^headers^ bug499519.ogv bug499519.ogv^headers^ bug500311.ogv bug500311.ogv^headers^ bug501279.ogg bug501279.ogg^headers^ bug504613.ogv bug504613.ogv^headers^ bug504644.ogv bug504644.ogv^headers^ bug504843.ogv bug504843.ogv^headers^ bug506094.ogv bug506094.ogv^headers^ bug516323.indexed.ogv bug516323.indexed.ogv^headers^ bug516323.ogv bug516323.ogv^headers^ bug520493.ogg bug520493.ogg^headers^ bug520500.ogg bug520500.ogg^headers^ bug520908.ogv bug520908.ogv^headers^ bug523816.ogv bug523816.ogv^headers^ bug533822.ogg bug533822.ogg^headers^ bug556821.ogv bug556821.ogv^headers^ bug557094.ogv bug557094.ogv^headers^ bug580982.webm bug580982.webm^headers^ bug603918.webm bug603918.webm^headers^ bug604067.webm bug604067.webm^headers^ bug883173.vtt can_play_type_dash.js can_play_type_mpeg.js can_play_type_ogg.js can_play_type_wave.js can_play_type_webm.js cancellable_request.sjs chain.ogg chain.ogg^headers^ chain.ogv chain.ogv^headers^ chain.opus chain.opus^headers^ chained-audio-video.ogg chained-audio-video.ogg^headers^ chained-video.ogv chained-video.ogv^headers^ contentDuration1.sjs contentDuration2.sjs contentDuration3.sjs contentDuration4.sjs contentDuration5.sjs contentDuration6.sjs contentDuration7.sjs contentType.sjs detodos.opus detodos.opus^headers^ detodos.webm detodos.webm^headers^ dirac.ogg dirac.ogg^headers^ dynamic_redirect.sjs dynamic_resource.sjs file_a4_tone.ogg file_a4_tone.ogg^headers^ file_access_controls.html file_audio_event_adopt_iframe.html fragment_noplay.js fragment_play.js gizmo.mp4 gizmo.mp4^headers^ huge-id3.mp3 huge-id3.mp3^headers^ id3tags.mp3 id3tags.mp3^headers^ invalid-cmap-s0c0.opus invalid-cmap-s0c0.opus^headers^ invalid-cmap-s0c2.opus invalid-cmap-s0c2.opus^headers^ invalid-cmap-s1c2.opus invalid-cmap-s1c2.opus^headers^ invalid-cmap-short.opus invalid-cmap-short.opus^headers^ invalid-m0c0.opus invalid-m0c0.opus^headers^ invalid-m0c3.opus invalid-m0c3.opus^headers^ invalid-m1c0.opus invalid-m1c0.opus^headers^ invalid-m1c9.opus invalid-m1c9.opus^headers^ invalid-m2c0.opus invalid-m2c0.opus^headers^ invalid-m2c1.opus invalid-m2c1.opus^headers^ invalid-preskip.webm invalid-preskip.webm^headers^ long.vtt manifest.js multiple-bos.ogg multiple-bos.ogg^headers^ no-cues.webm no-cues.webm^headers^ noContentLength.sjs notags.mp3 notags.mp3^headers^ owl-funnier-id3.mp3 owl-funnier-id3.mp3^headers^ owl-funny-id3.mp3 owl-funny-id3.mp3^headers^ owl.mp3 owl.mp3^headers^ r11025_msadpcm_c1.wav r11025_msadpcm_c1.wav^headers^ r11025_s16_c1.wav r11025_s16_c1.wav^headers^ r11025_s16_c1_trailing.wav r11025_s16_c1_trailing.wav^headers^ r11025_u8_c1.wav r11025_u8_c1.wav^headers^ r11025_u8_c1_trunc.wav r11025_u8_c1_trunc.wav^headers^ r16000_u8_c1_list.wav r16000_u8_c1_list.wav^headers^ reactivate_helper.html redirect.sjs referer.sjs region.vtt seek.ogv seek.ogv^headers^ seek.webm seek.webm^headers^ seek.yuv seek1.js seek10.js seek11.js seek12.js seek13.js seek2.js seek3.js seek4.js seek5.js seek6.js seek7.js seek8.js seek9.js seekLies.sjs seek_with_sound.ogg^headers^ short-video.ogv short-video.ogv^headers^ small-shot.m4a small-shot.mp3 small-shot.mp3^headers^ small-shot.ogg small-shot.ogg^headers^ sound.ogg sound.ogg^headers^ spacestorm-1000Hz-100ms.ogg spacestorm-1000Hz-100ms.ogg^headers^ split.webm split.webm^headers^ street.mp4 street.mp4^headers^ test-1-mono.opus test-1-mono.opus^headers^ test-2-stereo.opus test-2-stereo.opus^headers^ test-3-LCR.opus test-3-LCR.opus^headers^ test-4-quad.opus test-4-quad.opus^headers^ test-5-5.0.opus test-5-5.0.opus^headers^ test-6-5.1.opus test-6-5.1.opus^headers^ test-7-6.1.opus test-7-6.1.opus^headers^ test-8-7.1.opus test-8-7.1.opus^headers^ variable-channel.ogg variable-channel.ogg^headers^ variable-channel.opus variable-channel.opus^headers^ variable-preskip.opus variable-preskip.opus^headers^ variable-samplerate.ogg variable-samplerate.ogg^headers^ variable-samplerate.opus variable-samplerate.opus^headers^ vbr-head.mp3 vbr-head.mp3^headers^ vbr.mp3 vbr.mp3^headers^ video-overhang.ogg video-overhang.ogg^headers^ vp9.webm vp9.webm^headers^ vp9cake.webm vp9cake.webm^headers^ wave_metadata.wav wave_metadata.wav^headers^ wave_metadata_bad_len.wav wave_metadata_bad_len.wav^headers^ wave_metadata_bad_no_null.wav wave_metadata_bad_no_null.wav^headers^ wave_metadata_bad_utf8.wav wave_metadata_bad_utf8.wav^headers^ wave_metadata_unknown_tag.wav wave_metadata_unknown_tag.wav^headers^ wave_metadata_utf8.wav wave_metadata_utf8.wav^headers^ wavedata_s16.wav wavedata_s16.wav^headers^ wavedata_u8.wav wavedata_u8.wav^headers^ [test_a4_tone.html] [test_access_control.html] [test_audio1.html] [test_audio2.html] [test_audio_event_adopt.html] [test_autoplay.html] [test_bug448534.html] skip-if = buildapp == 'b2g' # b2g(Timed out, bug 894922? Bug 902677 is for the timing out of a lot of media tests) b2g-debug(Timed out, bug 894922? Bug 902677 is for the timing out of a lot of media tests) b2g-desktop(Timed out, bug 894922? Bug 902677 is for the timing out of a lot of media tests) [test_bug463162.xhtml] [test_bug495145.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out) [test_bug495300.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) [test_bug654550.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out) [test_bug686137.html] [test_bug686942.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out) # [test_bug726904.html] # disabled - See bug 754860 [test_bug874897.html] [test_bug883173.html] [test_bug895305.html] [test_bug895091.html] [test_bug919265.html] [test_bug957847.html] [test_chaining.html] skip-if = buildapp == 'b2g' # b2g(timed out) b2g-debug(timed out) b2g-desktop(timed out) [test_contentDuration1.html] [test_contentDuration2.html] [test_contentDuration3.html] [test_contentDuration4.html] [test_contentDuration5.html] [test_contentDuration6.html] [test_contentDuration7.html] [test_can_play_type.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out) [test_can_play_type_mpeg.html] skip-if = buildapp == 'b2g' # b2g(7 failures out of 27) b2g-debug(7 failures out of 27) b2g-desktop(7 failures out of 27) [test_can_play_type_ogg.html] skip-if = buildapp == 'b2g' [test_can_play_type_no_ogg.html] [test_closing_connections.html] [test_constants.html] [test_controls.html] [test_currentTime.html] [test_decode_error.html] [test_defaultMuted.html] [test_delay_load.html] skip-if = buildapp == 'b2g' # b2g(6 failures) b2g-debug(6 failures) b2g-desktop(6 failures) [test_error_on_404.html] skip-if = buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out) [test_framebuffer.html] skip-if = buildapp == 'b2g' # b2g(timed out) b2g-debug(timed out) b2g-desktop(timed out) [test_info_leak.html] skip-if = buildapp == 'b2g' # b2g(2 failures) b2g-debug(2 failures) b2g-desktop(2 failures) [test_invalid_reject.html] [test_load.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Timed out after gizmo.mp4) b2g-desktop(Timed out after gizmo.mp4) [test_load_candidates.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out) [test_load_same_resource.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) [test_load_source.html] [test_loop.html] [test_metadata.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) [test_no_load_event.html] [test_networkState.html] [test_new_audio.html] [test_paused.html] [test_paused_after_ended.html] [test_play_events.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough) b2g-desktop(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough) [test_play_events_2.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough) b2g-desktop(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough) [test_playback_errors.html] [test_seekable1.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) [test_preload_actions.html] [test_preload_attribute.html] [test_progress.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(bug 901716 - timeouts) b2g-desktop(bug 901716 - timeouts) [test_reactivate.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out in small-shot.mp3) b2g-desktop(timed out in small-shot.mp3) [test_readyState.html] [test_referer.html] skip-if = buildapp == 'b2g' [test_reset_events_async.html] [test_replay_metadata.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) [test_seek2.html] [test_seek_out_of_range.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) [test_seekable2.html] [test_seekable3.html] skip-if = buildapp == 'b2g' # b2g(timed out) b2g-debug(timed out) b2g-desktop(timed out) [test_source.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) [test_source_write.html] [test_source_null.html] [test_standalone.html] [test_volume.html] [test_video_to_canvas.html] [test_audiowrite.html] [test_mediarecorder_creation.html] [test_mediarecorder_creation_fail.html] [test_mediarecorder_avoid_recursion.html] [test_mediarecorder_record_timeslice.html] [test_mediarecorder_record_audiocontext.html] [test_mediarecorder_record_4ch_audiocontext.html] skip-if = (toolkit == 'gonk' && !debug) [test_mediarecorder_record_stopms.html] [test_mediarecorder_record_nosrc.html] [test_mozHasAudio.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) [test_source_media.html] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) [test_autoplay_contentEditable.html] skip-if = buildapp == 'b2g' # b2g(bug 899074 - timeouts) b2g-debug(bug 899074 - timeouts) b2g-desktop(bug 899074 - timeouts) [test_decoder_disable.html] [test_mediarecorder_record_no_timeslice.html] [test_mediarecorder_reload_crash.html] [test_mediarecorder_record_immediate_stop.html] [test_mediarecorder_record_session.html] [test_mediarecorder_record_startstopstart.html] [test_mediarecorder_getencodeddata.html] [test_mediarecorder_unsupported_src.html] [test_mediarecorder_record_gum_video_timeslice.html] skip-if = buildapp == 'b2g' || (toolkit == 'android') # mimetype check, bug 969289 [test_playback.html] skip-if = buildapp == 'b2g' # b2g(Test timed out, bug 668973?) b2g-debug(Test timed out, bug 668973?) b2g-desktop(Test timed out, bug 668973?) [test_seekLies.html] [test_media_sniffer.html] [test_streams_srcObject.html] [test_reset_src.html] [test_streams_autoplay.html] [test_streams_element_capture.html] skip-if = buildapp == 'b2g' # b2g(bug 900172 - timeouts) b2g-debug(bug 900172 - timeouts) b2g-desktop(bug 900172 - timeouts) [test_streams_element_capture_reset.html] skip-if = buildapp == 'b2g' # b2g(bug 901102) b2g-debug(bug 901102) b2g-desktop(bug 901102) [test_streams_element_capture_createObjectURL.html] [test_streams_element_capture_playback.html] [test_streams_gc.html] skip-if = buildapp == 'b2g' # b2g(Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value) b2g-debug(Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value) b2g-desktop(Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value) [test_streams_tracks.html] [test_texttrack.html] [test_texttrackcue.html] [test_trackevent.html] [test_texttrackregion.html] [test_texttracklist.html] [test_timeupdate_small_files.html] skip-if = os == "linux" # Intermittent failures, bug 760770 [test_unseekable.html] skip-if = buildapp == 'b2g' [test_VideoPlaybackQuality.html] [test_VideoPlaybackQuality_disabled.html] [test_webvtt_disabled.html] # [test_audioDocumentTitle.html] # disabled - See bug 475110 # [test_error_in_video_document.html] # disabled - See bug 608634 # [test_mixed_principals.html] # disabled - See bug 567954 and 574586 # [test_playback_rate_playpause.html] # disabled - See bug 897108 # [test_played.html] # disabled - See bug 751539 # [test_preload_suspend.html] # disabled - See bug 493692 # [test_resume.html] # disabled - No bug :-( # [test_videoDocumentTitle.html] # disabled - See bug 492821 # [test_playback_rate.html] # disabled - See bug 921622 # Disabled since it causes random memory corruption, bug 921622, so # the best-case scenario is that it results in random crashes while it # runs, like bug 918417, bug 920827, bug 923996, bug 928225, bug 929521 # bug 930982, bug 932193. Worst-case but quite likely, it causes random # crashes and failures in other tests which run after it. Don't even think # about reenabling it on any platform unless you *know* that you have fixed # that. Then don't think about reenabling it on Windows until you know that # you have fixed the timeouts of bug 832768, bug 814533, bug 840742 [test_play_twice.html] skip-if = appname == "seamonkey" # See bug 598252 [test_buffered.html] skip-if = os == "win" # See bug 832768 and 864682 [test_bug465498.html] skip-if = os == "win" # See bug 832768 and 864682 [test_bug493187.html] skip-if = os == "win" || (buildapp=='b2g'&&debug) # See bug 707777, #b2g-emulator-debug - process crash [test_media_selection.html] skip-if = os == "win" # See bug 897843 [test_seek.html] skip-if = os == "win" # See bug 832678, 795271, and 857424 # The tests below contain backend-specific tests. Write backend independent # tests rather than adding to this list. [test_can_play_type_webm.html] run-if = webm [test_can_play_type_no_webm.html] skip-if = webm [test_can_play_type_wave.html] run-if = wave [test_can_play_type_no_wave.html] skip-if = wave [test_fragment_noplay.html] run-if = wave [test_fragment_play.html] run-if = wave [test_wave_data_s16.html] run-if = wave [test_wave_data_u8.html] run-if = wave