# Copyright 2015 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//testing/libfuzzer/fuzzer_test.gni")
if (is_android) {
import("//build/config/android/rules.gni")
}
static_library("skeleton_generator") {
sources = [
"spoof_checks/skeleton_generator.cc",
"spoof_checks/skeleton_generator.h",
]
deps = [
"//base",
"//base:i18n",
]
}
static_library("url_formatter") {
sources = [
"elide_url.cc",
"elide_url.h",
"spoof_checks/idn_spoof_checker.cc",
"spoof_checks/idn_spoof_checker.h",
"spoof_checks/idna_metrics.h",
"url_fixer.cc",
"url_fixer.h",
"url_formatter.cc",
"url_formatter.h",
]
deps = [
"//base",
"//base:i18n",
"//build:robolectric_buildflags",
"//components/url_formatter:skeleton_generator",
"//components/url_formatter/spoof_checks/common_words:common",
"//components/url_formatter/spoof_checks/common_words:common_words_dafsa",
"//components/url_formatter/spoof_checks/top_domains:common",
"//components/url_formatter/spoof_checks/top_domains:generate_top_domains_trie",
"//net",
"//net:preload_decoder",
"//url",
]
public_deps = [ "//third_party/icu" ]
if (is_robolectric) {
# Make jni.h available.
configs += [ "//third_party/jdk" ]
}
if (is_android || is_robolectric) {
sources += [ "url_formatter_android.cc" ]
deps += [ "android:jni_headers" ]
} else {
# Used in elide_url.cc
deps += [ "//ui/gfx" ]
}
}
if (is_android) {
java_cpp_enum("url_formatter_java_enums_srcjar") {
sources = [ "elide_url.h" ]
}
}
source_set("unit_tests") {
testonly = true
sources = [
"elide_url_unittest.cc",
"spoof_checks/idn_spoof_checker_unittest.cc",
"url_fixer_unittest.cc",
"url_formatter_unittest.cc",
]
deps = [
":skeleton_generator",
":url_formatter",
"//base",
"//base/test:test_support",
"//components/url_formatter/spoof_checks/top_domains:generate_idn_top_domains_test_trie",
"//net",
"//net:preload_decoder",
"//testing/gtest",
"//ui/gfx",
"//url",
]
}
fuzzer_test("url_formatter_fixer_fuzzer") {
sources = [ "url_fixer_fuzzer.cc" ]
deps = [
":url_formatter",
"//base",
"//base:i18n",
"//url",
]
}