# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//testing/test.gni")

source_set("unit_tests") {
  testonly = true
  sources = [
    "clients/mojo_audio_decoder_unittest.cc",
    "clients/mojo_cdm_unittest.cc",
    "clients/mojo_renderer_unittest.cc",
    "common/media_type_converters_unittest.cc",
    "common/mojo_decoder_buffer_converter_unittest.cc",
    "common/mojo_shared_buffer_video_frame_unittest.cc",
    "services/mojo_cdm_allocator_unittest.cc",
    "services/strong_binding_set_unittest.cc",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//media",
    "//media:cdm_api",
    "//media/base:test_support",
    "//media/mojo/clients",
    "//media/mojo/common",
    "//media/mojo/interfaces",
    "//media/mojo/services:lib",
    "//services/service_manager/tests:interfaces",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/gfx:test_support",
  ]
}

test("media_mojo_unittests") {
  # crbug.com/676418: Suppress symbol import warnings.
  if (is_win && is_component_build) {
    ldflags = [
      "/ignore:4217",
      "/ignore:4049",
    ]
  }

  deps = [
    ":unit_tests",
    "//mojo/edk/test:run_all_unittests",
  ]
}
