# Copyright (c) 2019 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

import("../../../webrtc.gni")

if (rtc_include_tests) {
  rtc_library("tests") {
    testonly = true
    sources = [
      "bwe_ramp_up_test.cc",
      "peer_scenario_quality_test.cc",
      "remote_estimate_test.cc",
      "unsignaled_stream_test.cc",
    ]
    deps = [
      "..:peer_scenario",
      "../../:field_trial",
      "../../:test_support",
      "../../../api:rtc_stats_api",
      "../../../api/units:data_rate",
      "../../../api/units:time_delta",
      "../../../media:stream_params",
      "../../../modules/rtp_rtcp:rtp_rtcp_format",
      "../../../pc:media_session",
      "../../../pc:pc_test_utils",
      "../../../pc:session_description",
    ]
  }
}
