diff options
author | Mike Yu <yumike@google.com> | 2023-08-01 09:47:55 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-08-01 09:47:55 +0000 |
commit | bb08988f4a6cbdd8b634bf2d7f6a87bec8a2b64c (patch) | |
tree | 87bf0bd93ee5b3ab28670898d69b0fbcf4811cff | |
parent | df994000cb5028da6b902c4624e3612cb574bcc1 (diff) | |
parent | 56d66769c78e3181fa5475116f8036956b8b78ce (diff) | |
download | DnsResolver-bb08988f4a6cbdd8b634bf2d7f6a87bec8a2b64c.tar.gz |
Test: add test UseDohAsLongAsHostnameMatch am: 56d66769c7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/DnsResolver/+/2678697
Change-Id: I0806202b66487f58542c444fe7215dc4cef4e1cf
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | tests/resolv_private_dns_test.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/resolv_private_dns_test.cpp b/tests/resolv_private_dns_test.cpp index 569b74af..ecd68dd1 100644 --- a/tests/resolv_private_dns_test.cpp +++ b/tests/resolv_private_dns_test.cpp @@ -1175,3 +1175,32 @@ TEST_F(PrivateDnsDohTest, ReceiveResetStream) { expectAnswersValid(fd, AF_INET6, kQueryAnswerAAAA); EXPECT_NO_FAILURE(expectQueries(0 /* dns */, 1 /* dot */, 2 /* doh */)); } + +// Tests that, given an IP address with an allowed DoH provider name, PrivateDnsConfiguration +// attempts to probe the server for DoH. +TEST_F(PrivateDnsDohTest, UseDohAsLongAsHostnameMatch) { + // "example.com" is an allowed DoH provider name defined in + // PrivateDnsConfiguration::mAvailableDoHProviders. + constexpr char allowedDohName[] = "example.com"; + constexpr char someOtherIp[] = "127.99.99.99"; + + // The test currently doesn't support testing DoH in private DNS strict mode, so DnsResolver + // can't connect to the testing DoH servers. We use onPrivateDnsValidationEvent() to check + // whether DoT/DoH probes are performed. + // Without an allowed private DNS provider hostname, expect PrivateDnsConfiguration to probe + // the server for DoT only. + ASSERT_TRUE(mDnsClient.SetResolversFromParcel( + ResolverParams::Builder().setDotServers({someOtherIp}).build())); + EXPECT_TRUE(WaitForDotValidation(someOtherIp, false)); + EXPECT_FALSE(hasUncaughtPrivateDnsValidation(someOtherIp)); + + // With an allowed private DNS provider hostname, expect PrivateDnsConfiguration to probe the + // server for both DoT and DoH. + ASSERT_TRUE(mDnsClient.SetResolversFromParcel(ResolverParams::Builder() + .setDotServers({someOtherIp}) + .setPrivateDnsProvider(allowedDohName) + .build())); + EXPECT_TRUE(WaitForDotValidation(someOtherIp, false)); + EXPECT_TRUE(WaitForDohValidation(someOtherIp, false)); + EXPECT_FALSE(hasUncaughtPrivateDnsValidation(someOtherIp)); +} |