# Copyright 2019 The Fuchsia 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("//build/test/test_package.gni")
import("//build/testing/environments.gni")

group("tests") {
  testonly = true
  deps = [
    ":pkg",
    "..:pkg",
  ]
}

executable("intl_services_test") {
  testonly = true
  sources = [ "intl_services_test.cc" ]
  deps = [
    "//garnet/public/lib/fostr/fidl/fuchsia.intl",
    "//garnet/public/lib/fostr/fidl/fuchsia.settings",
    "//sdk/fidl/fuchsia.intl",
    "//sdk/fidl/fuchsia.settings",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
  ]
}

test_package("pkg") {
  package_name = "intl_services_tests"
  tests = [
    {
      name = "intl_services_test"
      environment = basic_envs
    },
  ]
  public_deps = [
    ":intl_services_test",
    "..:pkg",
    "//garnet/bin/setui",
    "//garnet/bin/timezone",
    "//src/sys/device_settings:device_settings_manager",
    "//src/sys/stash",
  ]
}
