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

source_set("internal") {
  visibility = [
    ":*",
    "//components/download/content/factory",
  ]

  sources = [
    "download_driver_impl.cc",
    "download_driver_impl.h",
  ]

  public_deps = [
    "//components/download/content/public",
    "//components/download/internal/background_service:internal",
    "//components/download/public/background_service:public",
  ]

  deps = [
    "//base",
    "//content/public/browser",
    "//net",
    "//url",
  ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "download_driver_impl_unittest.cc",
  ]

  deps = [
    ":internal",
    "//base/test:test_support",
    "//components/download/content/public",
    "//components/download/internal/background_service/test:test_support",
    "//content/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}
