# Copyright 2015 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.

static_library("mime_util") {
  sources = [
    "mime_util.cc",
    "mime_util.h",
  ]

  deps = [
    "//base",
    "//net",
  ]

  # iOS doesn't use and must not depend on //media
  if (!is_ios) {
    deps += [ "//media" ]
  }
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "mime_util_unittest.cc",
  ]

  deps = [
    ":mime_util",
    "//base",
    "//net",
    "//testing/gtest",
  ]
}
