blob: 20b42ee72bcfcd3ebe4965d949071e785b7f446d [file] [log] [blame]
// Copyright 2024 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.
#include "quiche/quic/moqt/test_tools/moqt_simulator_harness.h"
#include <string>
#include <utility>
#include "quiche/quic/core/crypto/quic_compressed_certs_cache.h"
#include "quiche/quic/core/crypto/quic_crypto_server_config.h"
#include "quiche/quic/core/crypto/quic_random.h"
#include "quiche/quic/core/quic_generic_session.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/moqt/moqt_messages.h"
#include "quiche/quic/moqt/moqt_session.h"
#include "quiche/quic/test_tools/crypto_test_utils.h"
#include "quiche/quic/test_tools/simulator/simulator.h"
#include "quiche/quic/test_tools/simulator/test_harness.h"
namespace moqt::test {
MoqtClientEndpoint::MoqtClientEndpoint(quic::simulator::Simulator* simulator,
const std::string& name,
const std::string& peer_name,
MoqtVersion version)
: QuicEndpointWithConnection(simulator, name, peer_name,
quic::Perspective::IS_CLIENT,
quic::GetQuicVersionsForGenericSession()),
crypto_config_(quic::test::crypto_test_utils::ProofVerifierForTesting()),
quic_session_(connection_.get(), false, nullptr, quic::QuicConfig(),
"test.example.com", 443, "moqt", &session_,
/*visitor_owned=*/false, nullptr, &crypto_config_),
session_(
&quic_session_,
MoqtSessionParameters{.version = version,
.perspective = quic::Perspective::IS_CLIENT,
.using_webtrans = false,
.path = "",
.deliver_partial_objects = false},
MoqtSessionCallbacks()) {
quic_session_.Initialize();
}
MoqtServerEndpoint::MoqtServerEndpoint(quic::simulator::Simulator* simulator,
const std::string& name,
const std::string& peer_name,
MoqtVersion version)
: QuicEndpointWithConnection(simulator, name, peer_name,
quic::Perspective::IS_SERVER,
quic::GetQuicVersionsForGenericSession()),
compressed_certs_cache_(
quic::QuicCompressedCertsCache::kQuicCompressedCertsCacheSize),
crypto_config_(quic::QuicCryptoServerConfig::TESTING,
quic::QuicRandom::GetInstance(),
quic::test::crypto_test_utils::ProofSourceForTesting(),
quic::KeyExchangeSource::Default()),
quic_session_(connection_.get(), false, nullptr, quic::QuicConfig(),
"moqt", &session_,
/*visitor_owned=*/false, nullptr, &crypto_config_,
&compressed_certs_cache_),
session_(
&quic_session_,
MoqtSessionParameters{.version = version,
.perspective = quic::Perspective::IS_SERVER,
.using_webtrans = false,
.path = "",
.deliver_partial_objects = false},
MoqtSessionCallbacks()) {
quic_session_.Initialize();
}
} // namespace moqt::test