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

component("file_access") {
  output_name = "file_access_lib"

  sources = [
    "file_access_copy_or_move_delegate_factory.cc",
    "file_access_copy_or_move_delegate_factory.h",
    "scoped_file_access.cc",
    "scoped_file_access.h",
    "scoped_file_access_copy.cc",
    "scoped_file_access_copy.h",
    "scoped_file_access_delegate.cc",
    "scoped_file_access_delegate.h",
  ]

  defines = [ "IS_FILE_ACCESS_IMPL" ]

  deps = [
    "//base",
    "//url:url",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "file_access_copy_or_move_delegate_factory_unittest.cc",
    "scoped_file_access_copy_unittest.cc",
    "scoped_file_access_delegate_unittest.cc",
  ]

  deps = [
    ":file_access",
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}

source_set("test_support") {
  testonly = true
  sources = [
    "test/mock_scoped_file_access_delegate.cc",
    "test/mock_scoped_file_access_delegate.h",
  ]

  deps = [
    ":file_access",
    "//base",
    "//testing/gmock",
  ]
}
