|
|
@@ -7242,8 +7242,21 @@ TEST_F(ServerTest, GetStreamedWithRangeSuffix1) {
|
|
|
}
|
|
|
|
|
|
TEST_F(ServerTest, GetStreamedWithRangeSuffix2) {
|
|
|
+ // RFC 9110 14.1.2: a suffix-length longer than the representation selects
|
|
|
+ // the entire representation.
|
|
|
+ for (auto range : {"bytes=-8", "bytes=-9999"}) {
|
|
|
+ auto res = cli_.Get("/streamed-with-range", Headers{{"Range", range}});
|
|
|
+ ASSERT_TRUE(res) << "Error: " << to_string(res.error());
|
|
|
+ EXPECT_EQ(StatusCode::PartialContent_206, res->status) << range;
|
|
|
+ EXPECT_EQ("7", res->get_header_value("Content-Length")) << range;
|
|
|
+ EXPECT_EQ("bytes 0-6/7", res->get_header_value("Content-Range")) << range;
|
|
|
+ EXPECT_EQ(std::string("abcdefg"), res->body) << range;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(ServerTest, GetStreamedWithRangeSuffixZero) {
|
|
|
auto res =
|
|
|
- cli_.Get("/streamed-with-range?error", Headers{{"Range", "bytes=-9999"}});
|
|
|
+ cli_.Get("/streamed-with-range?error", Headers{{"Range", "bytes=-0"}});
|
|
|
ASSERT_TRUE(res) << "Error: " << to_string(res.error());
|
|
|
EXPECT_EQ(StatusCode::RangeNotSatisfiable_416, res->status);
|
|
|
EXPECT_EQ("0", res->get_header_value("Content-Length"));
|
|
|
@@ -14176,9 +14189,8 @@ TEST(SSLClientTest, WindowsCertificateVerification_ServerIntermediates_Online) {
|
|
|
<< " ssl_backend_error=" << res.ssl_backend_error();
|
|
|
}
|
|
|
|
|
|
-// Windows, not the backend, decides on the chain: the error carries a
|
|
|
-// CryptoAPI trust status, which no backend error for a self-signed
|
|
|
-// certificate has.
|
|
|
+// Windows, not the backend, decides on the chain: the error is a CryptoAPI
|
|
|
+// policy status, which no backend reports for a self-signed certificate.
|
|
|
TEST(SSLClientTest, WindowsCertificateVerification_RejectsUntrustedRoot) {
|
|
|
SSLServer svr(SERVER_CERT2_FILE, SERVER_PRIVATE_KEY_FILE);
|
|
|
ASSERT_TRUE(svr.is_valid());
|
|
|
@@ -14198,8 +14210,7 @@ TEST(SSLClientTest, WindowsCertificateVerification_RejectsUntrustedRoot) {
|
|
|
auto res = cli.Get("/");
|
|
|
ASSERT_FALSE(res);
|
|
|
EXPECT_EQ(Error::SSLServerVerification, res.error());
|
|
|
- EXPECT_NE(0u, res.ssl_backend_error() & CERT_TRUST_IS_UNTRUSTED_ROOT)
|
|
|
- << "ssl_backend_error=" << res.ssl_backend_error();
|
|
|
+ EXPECT_EQ(static_cast<DWORD>(CERT_E_UNTRUSTEDROOT), res.ssl_backend_error());
|
|
|
}
|
|
|
#endif
|
|
|
|