1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/files/file.h"
6#include "base/logging.h"
7#include "build/build_config.h"
8#include "media/base/media_file_checker.h"
9#include "media/base/test_data_util.h"
10#include "testing/gtest/include/gtest/gtest.h"
11
12namespace media {
13
14static void RunMediaFileChecker(const std::string& filename, bool expectation) {
15  base::File file(GetTestDataFilePath(filename),
16                  base::File::FLAG_OPEN | base::File::FLAG_READ);
17  ASSERT_TRUE(file.IsValid());
18
19  MediaFileChecker checker(file.Pass());
20  const base::TimeDelta check_time = base::TimeDelta::FromMilliseconds(100);
21  bool result = checker.Start(check_time);
22  EXPECT_EQ(expectation, result);
23}
24
25TEST(MediaFileCheckerTest, InvalidFile) {
26  RunMediaFileChecker("ten_byte_file", false);
27}
28
29TEST(MediaFileCheckerTest, Video) {
30  RunMediaFileChecker("bear.ogv", true);
31}
32
33TEST(MediaFileCheckerTest, Audio) {
34  RunMediaFileChecker("sfx.ogg", true);
35}
36
37#if defined(USE_PROPRIETARY_CODECS)
38TEST(MediaFileCheckerTest, MP3) {
39  RunMediaFileChecker("sfx.mp3", true);
40}
41#endif
42
43}  // namespace media
44