1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-25 15:43:13 +03:00
Files
mvfst/quic/handshake/test/TransportParametersTest.cpp
Amaury Séchet c567c867f5 Move fizz specific ciphers in their own file (#51)
Summary:
Technically, there are not fizz specific but ssl specific. The goal being to package all of the ssl machinery together so it can be swapped in/out for something else.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/51

Test Plan:
Imported from GitHub, without a `Test Plan:` line.

 ---
## Proxygen Canary
Traffic Canary: https://our.intern.facebook.com/intern/traffic/canary?fbid=138091837536628
* elb.prod.lax3c01 - binary - 2019-10-10 15:19 - https://fburl.com/dyndash/htdojejn
* olb.prod.rprn0c01 - binary - 2019-10-10 15:19 - https://fburl.com/dyndash/u15l8f8q
* slb.prod_regional.rftw0c00 - binary - 2019-10-10 15:19 - https://fburl.com/dyndash/bxdm1w7r
* slb.regional.rpnb0c01 - binary - 2019-10-10 15:19 - https://fburl.com/dyndash/1nnpuznl
 ---

Reviewed By: mjoras

Differential Revision: D17831892

Pulled By: mjoras

fbshipit-source-id: 16402be805ba0b3cb4d2944317d7e19f85e531bc
2019-10-16 12:11:58 -07:00

103 lines
3.3 KiB
C++

/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
#include <folly/portability/GMock.h>
#include <folly/portability/GTest.h>
#include <quic/common/test/TestUtils.h>
#include <quic/handshake/TransportParameters.h>
#include <fizz/record/test/ExtensionTestsBase.h>
using namespace folly;
using namespace fizz;
using namespace fizz::test;
namespace quic {
namespace test {
StringPiece clientParams{"ffa5000a0008000400049d7f3e7d"};
StringPiece d18ClientParams{"ffa5000efaceb0000008000400049d7f3e7d"};
StringPiece serverParams{"ffa5000a0008000400049d7f3e7d"};
StringPiece ticketParams{"ffa5000a0008000400049d7f3e7d"};
StringPiece d18TicketParams{"ffa5000efaceb0000008000400049d7f3e7d"};
TEST_F(ExtensionsTest, TestClientParams) {
auto exts = getExtensions(clientParams);
auto ext = getExtension<ClientTransportParameters>(exts);
EXPECT_EQ(ext->initial_version, folly::none);
EXPECT_EQ(ext->parameters.size(), 1);
EXPECT_EQ(
ext->parameters[0].parameter, TransportParameterId::initial_max_data);
EXPECT_EQ(
*getIntegerParameter(
TransportParameterId::initial_max_data, ext->parameters),
494878333ULL);
checkEncode(std::move(*ext), clientParams);
}
// We still need to be able to parse draft-18 client parameters.
TEST_F(ExtensionsTest, TestD18ClientParams) {
auto exts = getExtensions(d18ClientParams);
auto ext = getExtension<ClientTransportParameters>(exts);
EXPECT_EQ(ext->initial_version.value(), QuicVersion::MVFST_OLD);
EXPECT_EQ(ext->parameters.size(), 1);
EXPECT_EQ(
ext->parameters[0].parameter, TransportParameterId::initial_max_data);
EXPECT_EQ(
*getIntegerParameter(
TransportParameterId::initial_max_data, ext->parameters),
494878333ULL);
}
TEST_F(ExtensionsTest, TestServerParams) {
auto exts = getExtensions(serverParams);
auto ext = getExtension<ServerTransportParameters>(exts);
EXPECT_EQ(ext->negotiated_version, folly::none);
EXPECT_EQ(
ext->parameters[0].parameter, TransportParameterId::initial_max_data);
EXPECT_EQ(
*getIntegerParameter(
TransportParameterId::initial_max_data, ext->parameters),
494878333ULL);
checkEncode(std::move(*ext), serverParams);
}
TEST_F(ExtensionsTest, TestTicketParams) {
auto exts = getExtensions(ticketParams);
auto ext = getExtension<TicketTransportParameters>(exts);
EXPECT_EQ(ext->negotiated_version, folly::none);
EXPECT_EQ(ext->parameters.size(), 1);
EXPECT_EQ(
ext->parameters[0].parameter, TransportParameterId::initial_max_data);
EXPECT_EQ(
*getIntegerParameter(
TransportParameterId::initial_max_data, ext->parameters),
494878333ULL);
checkEncode(std::move(*ext), ticketParams);
}
// We still need to be able to parse draft-18 ticket parameters.
TEST_F(ExtensionsTest, TestD18TicketParams) {
auto exts = getExtensions(d18TicketParams);
auto ext = getExtension<TicketTransportParameters>(exts);
EXPECT_EQ(ext->negotiated_version.value(), QuicVersion::MVFST_OLD);
EXPECT_EQ(ext->parameters.size(), 1);
EXPECT_EQ(
ext->parameters[0].parameter, TransportParameterId::initial_max_data);
EXPECT_EQ(
*getIntegerParameter(
TransportParameterId::initial_max_data, ext->parameters),
494878333ULL);
}
}
}