OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/certificate_transparency/log_dns_client.h" | 5 #include "components/certificate_transparency/log_dns_client.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 protected: | 116 protected: |
117 LogDnsClientTest() | 117 LogDnsClientTest() |
118 : network_change_notifier_(net::NetworkChangeNotifier::CreateMock()) { | 118 : network_change_notifier_(net::NetworkChangeNotifier::CreateMock()) { |
119 mock_dns_.SetSocketReadMode(GetParam()); | 119 mock_dns_.SetSocketReadMode(GetParam()); |
120 mock_dns_.InitializeDnsConfig(); | 120 mock_dns_.InitializeDnsConfig(); |
121 } | 121 } |
122 | 122 |
123 void QueryLeafIndex(base::StringPiece log_domain, | 123 void QueryLeafIndex(base::StringPiece log_domain, |
124 base::StringPiece leaf_hash, | 124 base::StringPiece leaf_hash, |
125 MockLeafIndexCallback* callback) { | 125 MockLeafIndexCallback* callback) { |
126 LogDnsClient log_client(mock_dns_.CreateDnsClient(), net::BoundNetLog()); | 126 LogDnsClient log_client(mock_dns_.CreateDnsClient(), |
| 127 net::NetLogWithSource()); |
127 log_client.QueryLeafIndex(log_domain, leaf_hash, callback->AsCallback()); | 128 log_client.QueryLeafIndex(log_domain, leaf_hash, callback->AsCallback()); |
128 callback->WaitUntilRun(); | 129 callback->WaitUntilRun(); |
129 } | 130 } |
130 | 131 |
131 void QueryAuditProof(base::StringPiece log_domain, | 132 void QueryAuditProof(base::StringPiece log_domain, |
132 uint64_t leaf_index, | 133 uint64_t leaf_index, |
133 uint64_t tree_size, | 134 uint64_t tree_size, |
134 MockAuditProofCallback* callback) { | 135 MockAuditProofCallback* callback) { |
135 LogDnsClient log_client(mock_dns_.CreateDnsClient(), net::BoundNetLog()); | 136 LogDnsClient log_client(mock_dns_.CreateDnsClient(), |
| 137 net::NetLogWithSource()); |
136 log_client.QueryAuditProof(log_domain, leaf_index, tree_size, | 138 log_client.QueryAuditProof(log_domain, leaf_index, tree_size, |
137 callback->AsCallback()); | 139 callback->AsCallback()); |
138 callback->WaitUntilRun(); | 140 callback->WaitUntilRun(); |
139 } | 141 } |
140 | 142 |
141 // This will be the NetworkChangeNotifier singleton for the duration of the | 143 // This will be the NetworkChangeNotifier singleton for the duration of the |
142 // test. It is accessed statically by LogDnsClient. | 144 // test. It is accessed statically by LogDnsClient. |
143 std::unique_ptr<net::NetworkChangeNotifier> network_change_notifier_; | 145 std::unique_ptr<net::NetworkChangeNotifier> network_change_notifier_; |
144 // Queues and handles asynchronous DNS tasks. Indirectly used by LogDnsClient, | 146 // Queues and handles asynchronous DNS tasks. Indirectly used by LogDnsClient, |
145 // the underlying net::DnsClient, and NetworkChangeNotifier. | 147 // the underlying net::DnsClient, and NetworkChangeNotifier. |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 MockAuditProofCallback callback; | 509 MockAuditProofCallback callback; |
508 QueryAuditProof("ct.test", 123456, 999999, &callback); | 510 QueryAuditProof("ct.test", 123456, 999999, &callback); |
509 ASSERT_TRUE(callback.called()); | 511 ASSERT_TRUE(callback.called()); |
510 EXPECT_THAT(callback.net_error(), IsError(net::ERR_DNS_TIMED_OUT)); | 512 EXPECT_THAT(callback.net_error(), IsError(net::ERR_DNS_TIMED_OUT)); |
511 EXPECT_THAT(callback.proof(), IsNull()); | 513 EXPECT_THAT(callback.proof(), IsNull()); |
512 } | 514 } |
513 | 515 |
514 TEST_P(LogDnsClientTest, AdoptsLatestDnsConfigIfValid) { | 516 TEST_P(LogDnsClientTest, AdoptsLatestDnsConfigIfValid) { |
515 std::unique_ptr<net::DnsClient> tmp = mock_dns_.CreateDnsClient(); | 517 std::unique_ptr<net::DnsClient> tmp = mock_dns_.CreateDnsClient(); |
516 net::DnsClient* dns_client = tmp.get(); | 518 net::DnsClient* dns_client = tmp.get(); |
517 LogDnsClient log_client(std::move(tmp), net::BoundNetLog()); | 519 LogDnsClient log_client(std::move(tmp), net::NetLogWithSource()); |
518 | 520 |
519 // Get the current DNS config, modify it and broadcast the update. | 521 // Get the current DNS config, modify it and broadcast the update. |
520 net::DnsConfig config(*dns_client->GetConfig()); | 522 net::DnsConfig config(*dns_client->GetConfig()); |
521 ASSERT_NE(123, config.attempts); | 523 ASSERT_NE(123, config.attempts); |
522 config.attempts = 123; | 524 config.attempts = 123; |
523 mock_dns_.SetDnsConfig(config); | 525 mock_dns_.SetDnsConfig(config); |
524 | 526 |
525 // Let the DNS config change propogate. | 527 // Let the DNS config change propogate. |
526 base::RunLoop().RunUntilIdle(); | 528 base::RunLoop().RunUntilIdle(); |
527 EXPECT_EQ(123, dns_client->GetConfig()->attempts); | 529 EXPECT_EQ(123, dns_client->GetConfig()->attempts); |
528 } | 530 } |
529 | 531 |
530 TEST_P(LogDnsClientTest, IgnoresLatestDnsConfigIfInvalid) { | 532 TEST_P(LogDnsClientTest, IgnoresLatestDnsConfigIfInvalid) { |
531 std::unique_ptr<net::DnsClient> tmp = mock_dns_.CreateDnsClient(); | 533 std::unique_ptr<net::DnsClient> tmp = mock_dns_.CreateDnsClient(); |
532 net::DnsClient* dns_client = tmp.get(); | 534 net::DnsClient* dns_client = tmp.get(); |
533 LogDnsClient log_client(std::move(tmp), net::BoundNetLog()); | 535 LogDnsClient log_client(std::move(tmp), net::NetLogWithSource()); |
534 | 536 |
535 // Get the current DNS config, modify it and broadcast the update. | 537 // Get the current DNS config, modify it and broadcast the update. |
536 net::DnsConfig config(*dns_client->GetConfig()); | 538 net::DnsConfig config(*dns_client->GetConfig()); |
537 ASSERT_THAT(config.nameservers, Not(IsEmpty())); | 539 ASSERT_THAT(config.nameservers, Not(IsEmpty())); |
538 config.nameservers.clear(); // Makes config invalid | 540 config.nameservers.clear(); // Makes config invalid |
539 mock_dns_.SetDnsConfig(config); | 541 mock_dns_.SetDnsConfig(config); |
540 | 542 |
541 // Let the DNS config change propogate. | 543 // Let the DNS config change propogate. |
542 base::RunLoop().RunUntilIdle(); | 544 base::RunLoop().RunUntilIdle(); |
543 EXPECT_THAT(dns_client->GetConfig()->nameservers, Not(IsEmpty())); | 545 EXPECT_THAT(dns_client->GetConfig()->nameservers, Not(IsEmpty())); |
544 } | 546 } |
545 | 547 |
546 INSTANTIATE_TEST_CASE_P(ReadMode, | 548 INSTANTIATE_TEST_CASE_P(ReadMode, |
547 LogDnsClientTest, | 549 LogDnsClientTest, |
548 ::testing::Values(net::IoMode::ASYNC, | 550 ::testing::Values(net::IoMode::ASYNC, |
549 net::IoMode::SYNCHRONOUS)); | 551 net::IoMode::SYNCHRONOUS)); |
550 | 552 |
551 } // namespace | 553 } // namespace |
552 } // namespace certificate_transparency | 554 } // namespace certificate_transparency |
OLD | NEW |