# 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] skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug,b2g-desktop(bug 918299) 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 bad-signature.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_access_controls.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^ parser.vtt 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 sample.3gp sample.3g2 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-mp3.mp4 small-shot-mp3.mp4^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_access_control.html] [test_aspectratio_mp4.html] [test_audio1.html] [test_audio2.html] [test_audioDocumentTitle.html] skip-if = true # bug 475110 - disabled since we don't play Wave files standalone [test_autoplay.html] [test_autoplay_contentEditable.html] [test_buffered.html] [test_bug448534.html] skip-if = os == 'win' # bug 894922 [test_bug463162.xhtml] [test_bug465498.html] [test_bug493187.html] [test_bug495145.html] [test_bug495300.html] [test_bug654550.html] [test_bug686942.html] [test_bug726904.html] [test_bug874897.html] [test_bug883173.html] [test_bug895091.html] [test_bug895305.html] [test_bug919265.html] [test_bug957847.html] [test_can_play_type.html] [test_can_play_type_mpeg.html] skip-if = buildapp == 'b2g' # bug 1021675 [test_can_play_type_no_ogg.html] [test_can_play_type_ogg.html] skip-if = buildapp == 'b2g' || e10s # b2g(bug 1021675) [test_chaining.html] [test_clone_media_element.html] [test_closing_connections.html] [test_constants.html] [test_contentDuration1.html] [test_contentDuration2.html] [test_contentDuration3.html] [test_contentDuration4.html] [test_contentDuration5.html] [test_contentDuration6.html] [test_contentDuration7.html] [test_controls.html] [test_currentTime.html] [test_decode_error.html] [test_decoder_disable.html] [test_defaultMuted.html] [test_delay_load.html] skip-if = buildapp == 'b2g' # bug 1021676 [test_error_in_video_document.html] skip-if = toolkit == 'android' # bug 608634 [test_error_on_404.html] [test_fastSeek.html] [test_fastSeek-forwards.html] [test_info_leak.html] [test_invalid_reject.html] [test_load.html] [test_load_candidates.html] [test_load_same_resource.html] [test_load_source.html] [test_loop.html] [test_media_selection.html] skip-if = toolkit == 'gonk' && !debug # bug 1021677 [test_media_sniffer.html] [test_mediarecorder_avoid_recursion.html] [test_mediarecorder_creation.html] [test_mediarecorder_creation_fail.html] [test_mediarecorder_getencodeddata.html] [test_mediarecorder_record_4ch_audiocontext.html] [test_mediarecorder_record_audiocontext.html] [test_mediarecorder_record_audiocontext_mlk.html] [test_mediarecorder_record_gum_video_timeslice.html] skip-if = buildapp == 'b2g' || toolkit == 'android' # mimetype check, bug 969289 [test_mediarecorder_record_immediate_stop.html] [test_mediarecorder_record_no_timeslice.html] [test_mediarecorder_record_nosrc.html] [test_mediarecorder_record_session.html] [test_mediarecorder_record_startstopstart.html] [test_mediarecorder_record_stopms.html] [test_mediarecorder_record_timeslice.html] [test_mediarecorder_reload_crash.html] [test_mediarecorder_unsupported_src.html] [test_mediarecorder_record_getdata_afterstart.html] [test_metadata.html] [test_mixed_principals.html] skip-if = true # bug 567954 and intermittent leaks [test_mozHasAudio.html] [test_networkState.html] [test_new_audio.html] [test_no_load_event.html] [test_paused.html] [test_paused_after_ended.html] [test_play_events.html] [test_play_events_2.html] [test_play_twice.html] # Seamonkey: Bug 598252, B2G: Bug 982100, Android: Bug 758476, bug 981086 skip-if = appname == "seamonkey" || toolkit == 'gonk' || toolkit == 'android' [test_playback.html] skip-if = buildapp == 'b2g' || toolkit == 'android' # Disabled on Android & B2G due to bug 668973 [test_playback_errors.html] [test_playback_rate.html] [test_playback_rate_playpause.html] [test_played.html] skip-if = true # bug 1021794 [test_preload_actions.html] skip-if = toolkit == 'android' # bug 886188 [test_preload_attribute.html] [test_preload_suspend.html] skip-if = true # bug 493692 [test_progress.html] [test_reactivate.html] [test_readyState.html] [test_referer.html] [test_replay_metadata.html] [test_reset_events_async.html] [test_reset_src.html] [test_resume.html] skip-if = true # bug 1021673 [test_seek_out_of_range.html] [test_seek.html] [test_seek2.html] [test_seekable1.html] [test_seekable2.html] [test_seekable3.html] [test_seekLies.html] [test_source.html] [test_source_media.html] [test_source_null.html] [test_source_write.html] [test_standalone.html] [test_streams_autoplay.html] [test_streams_element_capture.html] [test_streams_element_capture_createObjectURL.html] [test_streams_element_capture_playback.html] [test_streams_element_capture_reset.html] skip-if = buildapp == 'b2g' # bug 901102 [test_streams_gc.html] skip-if = buildapp == 'b2g' # bug 1021682 [test_streams_srcObject.html] [test_streams_tracks.html] [test_texttrack.html] [test_texttrackcue.html] [test_texttracklist.html] [test_texttrackregion.html] [test_timeupdate_small_files.html] [test_trackelementevent.html] [test_trackevent.html] [test_unseekable.html] [test_video_to_canvas.html] [test_videoDocumentTitle.html] [test_VideoPlaybackQuality.html] [test_VideoPlaybackQuality_disabled.html] [test_volume.html] [test_vttparser.html] [test_webvtt_disabled.html] # 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