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

import("//mojo/public/mojo_application.gni")

# file_utils is a helper library for utility functions relating to the Mojo
# files service.
source_set("file_utils") {
  sources = [
    "file_util.h",
    "lib/file_util.cc",
  ]

  public_deps = [
    "//mojo/services/files/interfaces:interfaces",
  ]
}

mojo_native_application("file_utils_apptests") {
  output_name = "file_utils_apptests"

  testonly = true

  sources = [
    "tests/file_util_test_base.cc",
    "tests/file_util_test_base.h",
    "tests/file_util_unittest.cc",
  ]

  deps = [
    ":file_utils",
    "//mojo/public/cpp/application:standalone",
    "//mojo/public/cpp/application:test_support_standalone",
    "//mojo/public/cpp/utility",
    "//testing/gtest",
  ]
}
