Index: net/quic/quic_protocol_test.cc |
diff --git a/net/quic/quic_protocol_test.cc b/net/quic/quic_protocol_test.cc |
index 271cca61e3f7580c961ba599dcbaa4d4716c022e..842241fe4c0e436f45d69a66885f7ae5e080e33f 100644 |
--- a/net/quic/quic_protocol_test.cc |
+++ b/net/quic/quic_protocol_test.cc |
@@ -43,6 +43,71 @@ TEST(QuicProtocolTest, InsertMissingPacketsBetween) { |
} |
} |
+TEST(QuicProtocolTest, QuicVersionToQuicTag) { |
+ // If you add a new version to the QuicVersion enum you will need to add a new |
+ // case to QuicVersionToQuicTag, otherwise this test will fail. |
+ |
+ // Explicitly test a specific version. |
+ EXPECT_EQ(MakeQuicTag('Q', '0', '0', '6'), |
+ QuicVersionToQuicTag(QUIC_VERSION_6)); |
+ |
+ // Loop over all supported versions and make sure that we never hit the |
+ // default case (i.e. all supported versions should be successfully converted |
+ // to valid QuicTags). |
+ for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { |
+ const QuicVersion& version = kSupportedQuicVersions[i]; |
+ EXPECT_LT(0u, QuicVersionToQuicTag(version)); |
+ } |
+} |
+ |
+TEST(QuicProtocolTest, QuicTagToQuicVersion) { |
+ // If you add a new version to the QuicVersion enum you will need to add a new |
+ // case to QuicTagToQuicVersion, otherwise this test will fail. |
+ |
+ // Explicitly test specific versions. |
+ EXPECT_EQ(QUIC_VERSION_6, |
+ QuicTagToQuicVersion(MakeQuicTag('Q', '0', '0', '6'))); |
+ EXPECT_EQ(QUIC_VERSION_UNSUPPORTED, |
+ QuicTagToQuicVersion(MakeQuicTag('F', 'A', 'K', 'E'))); |
+ |
+ // TODO(rtenneti): Enable checking of Log(ERROR) messages. |
+#if 0 |
+ // Loop over all supported versions, and make sure we never hit the default |
+ // case (which would result in a LOG(ERROR)). |
+ ScopedMockLog log(kDoNotCaptureLogsYet); |
+ EXPECT_CALL(log, Log(ERROR, _, _)).Times(0); |
+ log.StartCapturingLogs(); |
+#endif |
+ |
+ for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { |
+ const QuicVersion& version = kSupportedQuicVersions[i]; |
+ |
+ // Get the tag from the version (we can loop over QuicVersions easily). |
+ QuicTag tag = QuicVersionToQuicTag(version); |
+ EXPECT_LT(0u, tag); |
+ |
+ // Now try converting back. |
+ QuicVersion tag_to_quic_version = QuicTagToQuicVersion(tag); |
+ EXPECT_EQ(version, tag_to_quic_version); |
+ EXPECT_NE(QUIC_VERSION_UNSUPPORTED, tag_to_quic_version); |
+ } |
+} |
+ |
+TEST(QuicProtocolTest, QuicVersionToString) { |
+ EXPECT_EQ("QUIC_VERSION_6", |
+ QuicVersionToString(QUIC_VERSION_6)); |
+ EXPECT_EQ("QUIC_VERSION_UNSUPPORTED", |
+ QuicVersionToString(QUIC_VERSION_UNSUPPORTED)); |
+ |
+ QuicVersion single_version[] = {QUIC_VERSION_6}; |
+ EXPECT_EQ("QUIC_VERSION_6,", QuicVersionArrayToString(single_version, |
+ arraysize(single_version))); |
+ // QuicVersion multiple_versions[] = {QUIC_VERSION_7, QUIC_VERSION_6}; |
+ // EXPECT_EQ("QUIC_VERSION_7,QUIC_VERSION_6,", |
+ // QuicVersionArrayToString(multiple_versions, |
+ // arraysize(multiple_versions))); |
+} |
+ |
} // namespace |
} // namespace test |
} // namespace net |