# Copyright (c) 2013 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("//build/package.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

static_library("url") {
  # We limit the visibility of this library because we will eventually need to
  # remove or replace this library.
  #
  # Please do not add any more entries to this list.
  visibility = [
    "//src/lib",
    ":*",
    "//garnet/bin/http:*",
    "//src/media/playback/examples/audio_player:*",
    "//src/media/playback/mediaplayer:*",
    "//topaz/examples/mediaplayer/mediaplayer_skia:*",
  ]

  sources = [
    "gurl.cc",
    "gurl.h",
    "third_party/mozilla/url_parse.cc",
    "third_party/mozilla/url_parse.h",
    "url_canon.h",
    "url_canon_etc.cc",
    "url_canon_fileurl.cc",
    "url_canon_host.cc",
    "url_canon_icu.cc",
    "url_canon_icu.h",
    "url_canon_internal.cc",
    "url_canon_internal.h",
    "url_canon_internal_file.h",
    "url_canon_ip.cc",
    "url_canon_ip.h",
    "url_canon_mailtourl.cc",
    "url_canon_path.cc",
    "url_canon_pathurl.cc",
    "url_canon_query.cc",
    "url_canon_relative.cc",
    "url_canon_stdstring.cc",
    "url_canon_stdstring.h",
    "url_canon_stdurl.cc",
    "url_constants.cc",
    "url_constants.h",
    "url_export.h",
    "url_file.h",
    "url_parse_file.cc",
    "url_parse_internal.h",
    "url_util.cc",
    "url_util.h",
  ]

  defines = [ "URL_IMPLEMENTATION" ]

  deps = [ "//third_party/icu" ]

  public_deps = [ "//src/lib/fxl" ]
}

source_set("url_unittests_main") {
  testonly = true
  sources = [ "url_unittests_main.cc" ]

  deps = [
    "//src/lib/fxl",
    "//src/lib/fxl/test:test_settings",
    "//src/lib/icu_data/cpp",
    "//third_party/googletest:gtest",
    "//third_party/icu",
  ]
}

executable("url_unittests") {
  testonly = true
  sources = [
    "gurl_unittest.cc",
    "url_canon_icu_unittest.cc",
    "url_canon_unittest.cc",
    "url_parse_unittest.cc",
    "url_test_utils.h",
    "url_util_unittest.cc",
  ]

  deps = [
    ":url",
    ":url_unittests_main",
    "//third_party/googletest:gtest",
    "//third_party/icu",
  ]
}

test_package("url_tests") {
  deps = [ ":url_unittests" ]

  resources = [
    {
      path = rebase_path("//third_party/icu/common/icudtl.dat")
      dest = "icudtl.dat"
    },
  ]

  tests = [
    {
      name = "url_unittests"
      environments = basic_envs
    },
  ]
}
