# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is Mozilla code.
#
# The Initial Developer of the Original Code is the Mozilla Corporation.
# Portions created by the Initial Developer are Copyright (C) 2007
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#  Chris Double <chris.double@double.co.nz>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

DEPTH		= ../../..
topsrcdir	= @top_srcdir@
srcdir		= @srcdir@
VPATH		= @srcdir@
relativesrcdir  = content/media/test

include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

# Media tests should be backend independent, i.e., not conditioned on
# MOZ_OGG, MOZ_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.

_TEST_FILES = \
		can_play_type_ogg.js \
		can_play_type_wave.js \
		cancellable_request.sjs \
		manifest.js \
		reactivate_helper.html \
		seek1.js \
		seek2.js \
		seek3.js \
		seek4.js \
		seek5.js \
		seek6.js \
		seek7.js \
		seek8.js \
		seek9.js \
		seek10.js \
		test_audio1.html \
		test_audio2.html \
		test_autobuffer.html \
		test_autoplay.html \
		test_bug495300.html \
		test_can_play_type.html \
		test_constants.html \
		test_controls.html \
		test_currentTime.html \
		test_decode_error.html \
		test_decoder_disable.html \
		test_load.html \
		test_media_selection.html \
		test_mozLoadFrom.html \
		test_networkState.html \
		test_paused.html \
		test_play_twice.html \
		test_playback.html \
		test_playback_errors.html \
		test_reactivate.html \
		test_readyState.html \
		test_seek2.html \
		test_volume.html \
		use_large_cache.js \
		$(NULL)

# Disabled due to flakiness
#		test_resume.html \
#

ifneq ($(OS_ARCH),WINNT)
# These tests are disabled on windows until we
# figure out the random failures. See bug 475369.
_TEST_FILES += \
		test_seek.html \
		$(NULL)
endif

# Ogg sample files
_TEST_FILES += \
		320x240.ogv \
		320x240.allow-origin.ogv \
		320x240.allow-origin.ogv^headers^ \
		448636.ogv \
		beta-phrasebook.ogg \
		bogus.ogv \
		bug495129.ogv \
		bug461281.ogg \
		bug482461.ogv \
		bug498380.ogv \
		bug498855-1.ogv \
		bug498855-2.ogv \
		bug498855-3.ogv \
		bug499519.ogv \
		bug500311.ogv \
		bug500311.ogv^headers^ \
		bug501279.ogg \
		bug504613.ogv \
		bug504644.ogv \
		bug504843.ogv \
		bug506094.ogv \
		bug516323.ogv \
		bug520493.ogg \
		bug520500.ogg \
		bug520908.ogv \
		bug520908.ogv^headers^ \
		bug523816.ogv \
		bug533822.ogg \
		chain.ogv \
		dirac.ogg \
		seek.ogv \
		short-video.ogv \
		small-shot.ogg \
		sound.ogg \
		$(NULL)
		
# Wave sample files
_TEST_FILES += \
		big.wav \
		bogus.wav \
		r11025_msadpcm_c1.wav \
		r11025_s16_c1.wav \
		r11025_s16_c1_trailing.wav \
		r11025_u8_c1.wav \
		r11025_u8_c1_trunc.wav \
		r16000_u8_c1_list.wav \
		$(NULL)

# Other files
_TEST_FILES += \
		bogus.duh \
		$(NULL)

# These tests need to be converted to be backend-independent. This list
# is deprecated, do not add to it.
ifdef MOZ_OGG
_TEST_FILES += \
		dynamic_redirect.sjs \
		test_access_control.html \
		file_access_controls.html \
		test_bug448534.html \
		test_bug468190.html \
		test_bug493187.html \
		test_bug495145.html \
		test_bug495319.html \
		test_closing_connections.html \
		test_contentDuration1.html \
		test_contentDuration2.html \
		test_contentDuration3.html \
		test_contentDuration4.html \
		test_contentDuration5.html \
		test_contentDuration6.html \
		test_delay_load.html \
		test_duration1.html \
		test_ended1.html \
		test_ended2.html \
		test_error_on_404.html \
		test_info_leak.html \
		test_onloadedmetadata.html \
		test_load_candidates.html \
		test_mixed_principals.html \
		test_play.html \
		test_progress1.html \
		test_progress3.html \
		test_source.html \
		test_source_write.html \
		test_standalone.html \
		test_timeupdate1.html \
		test_timeupdate2.html \
		redirect.sjs \
		contentDuration1.sjs \
		contentDuration2.sjs \
		contentDuration3.sjs \
		contentDuration4.sjs \
		contentDuration5.sjs \
		contentDuration6.sjs \
		$(NULL)
# These tests disabled until we figure out random failures.
# Bug 492821:
# test_videoDocumentTitle.html
# Bug 493692:
# test_autobuffer2.html
ifneq ($(OS_ARCH),WINNT)
# These tests are disabled on windows until we
# figure out the random failures. See bug 475369.
_TEST_FILES += \
		test_timeupdate3.html \
		$(NULL)
endif
endif

ifdef MOZ_OGG
_TEST_FILES += \
		test_can_play_type_ogg.html \
		$(NULL)
else
_TEST_FILES += \
		test_can_play_type_no_ogg.html \
		$(NULL)
endif

# These tests need to be converted to be backend-independent. This list
# is deprecated, do not add to it.
ifdef MOZ_WAVE
_TEST_FILES += \
		test_bug463162.xhtml \
		test_bug465498.html \
		test_bug468190_wav.html \
		test_bug495145_wav.html \
		test_paused_after_ended.html \
		test_progress2.html \
		test_progress4.html \
		test_wav_ended1.html \
		test_wav_ended2.html \
		test_wav_onloadedmetadata.html \
		test_wav_timeupdate1.html \
		test_wav_timeupdate2.html \
		test_wav_trunc_seek.html \
		$(NULL)
# Disabled since we don't play Wave files standalone, for now
#		test_wav_standalone.html
#		test_audioDocumentTitle.html
endif

ifdef MOZ_WAVE
_TEST_FILES += \
		test_can_play_type_wave.html \
		$(NULL)
else
_TEST_FILES += \
		test_can_play_type_no_wave.html \
		$(NULL)
endif

libs:: $(_TEST_FILES)
	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
