# Copyright 2017 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.
#
visibility = [ "//garnet/bin/auth/*" ]

import("//build/package.gni")

package("token_manager_integration_tests") {
  testonly = true

  deps = [
    ":e2e_dev",
    "//garnet/bin/auth/testing/dev_auth_provider:dev_auth_provider",
    "//garnet/bin/auth/testing/dev_auth_provider_iotid:dev_auth_provider_iotid",
  ]

  binaries = [
    {
      name = "dev_auth_provider"
    },
    {
      name = "dev_auth_provider_iotid"
    },
  ]

  tests = [
    {
      name = "dev_token_mgr_e2e_test"
    },
  ]

  meta = [
    {
      path = rebase_path("//garnet/bin/auth/testing/meta/dev_auth_provider.cmx")
      dest = "dev_auth_provider.cmx"
    },
    {
      path = rebase_path(
              "//garnet/bin/auth/testing/meta/dev_auth_provider_iotid.cmx")
      dest = "dev_auth_provider_iotid.cmx"
    },
  ]
}

executable("e2e_dev") {
  output_name = "dev_token_mgr_e2e_test"

  testonly = true

  sources = [
    "dev_token_mgr_test.cc",
  ]

  public_deps = [
    "//garnet/public/lib/component/cpp",
  ]

  deps = [
    "//garnet/public/fidl/fuchsia.auth",
    "//garnet/public/lib/callback",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/gtest",
    "//garnet/public/lib/test_runner/cpp/reporting",
    "//third_party/googletest:gtest",
  ]
}
