# 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/dart/rules.gni")

dartzip_packaged_application("dart_apptests") {
  sources = [
    "connect_to_loader_apptests.dart",
    "echo_apptests.dart",
    "io_http_apptests.dart",
    "io_internet_address_apptests.dart",
    "main.dart",
    "pingpong_apptests.dart",
    "pubspec.yaml",
    "versioning_apptests.dart",
  ]
  deps = [
    "//mojo/dart/apptest",
    "//mojo/public/interfaces/bindings/tests:versioning_test_client_interfaces",
    "//mojo/public/interfaces/bindings/tests:versioning_test_service_interfaces",
    "//mojo/services/url_response_disk_cache/public/interfaces",
    "//services/dart/test:echo_service_interface",
    "//services/dart/test:pingpong_service_interface",
  ]
  datadeps = [
    "//services/dart/test/echo",
    "//services/dart/test/pingpong",
    "//services/dart/test/pingpong_target",
  ]
}
