Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1444)

Unified Diff: chrome/browser/net/dns_probe_service_unittest.cc

Issue 13270005: Display DNS probe results. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix FilePath initalization on Windows Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/net/dns_probe_service_unittest.cc
diff --git a/chrome/browser/net/dns_probe_service_unittest.cc b/chrome/browser/net/dns_probe_service_unittest.cc
index cee54752f4b5d9f90729756f5b311903cbe542cb..8e51be6d06132d4f47f34c7dc66a02d53c9057a3 100644
--- a/chrome/browser/net/dns_probe_service_unittest.cc
+++ b/chrome/browser/net/dns_probe_service_unittest.cc
@@ -13,7 +13,7 @@
#include "chrome/common/net/net_error_info.h"
#include "testing/gtest/include/gtest/gtest.h"
-using chrome_common_net::DnsProbeResult;
+using chrome_common_net::DnsProbeStatus;
namespace chrome_browser_net {
@@ -42,83 +42,85 @@ class MockDnsProbeJob : public DnsProbeJob {
base::WeakPtrFactory<MockDnsProbeJob> weak_factory_;
};
-class TestDnsProbeService : public DnsProbeService {
+class MockDnsProbeJobFactory : public DnsProbeService::JobFactory {
public:
- TestDnsProbeService()
- : DnsProbeService(),
- system_job_created_(false),
- public_job_created_(false),
- mock_system_result_(DnsProbeJob::SERVERS_UNKNOWN),
- mock_public_result_(DnsProbeJob::SERVERS_UNKNOWN),
- mock_system_fail_(false) {
- }
+ MockDnsProbeJobFactory()
+ : system_result_(DnsProbeJob::MAX_RESULT),
+ public_result_(DnsProbeJob::MAX_RESULT),
+ system_fail_(false),
+ results_set_(false),
+ system_created_(false),
+ public_created_(false) { }
+
+ virtual scoped_ptr<DnsProbeJob> CreateSystemJob(
+ const DnsProbeJob::CallbackType& job_callback) OVERRIDE {
+ DCHECK(results_set_);
- virtual ~TestDnsProbeService() { }
+ system_created_ = true;
- void set_mock_results(
- DnsProbeJob::Result mock_system_result,
- DnsProbeJob::Result mock_public_result) {
- mock_system_result_ = mock_system_result;
- mock_public_result_ = mock_public_result;
- }
+ if (system_fail_)
+ return scoped_ptr<DnsProbeJob>(NULL);
- void set_mock_system_fail(bool mock_system_fail) {
- mock_system_fail_ = mock_system_fail;
+ return scoped_ptr<DnsProbeJob>(
+ new MockDnsProbeJob(job_callback, system_result_));
}
- bool jobs_created(void) {
- return system_job_created_ && public_job_created_;
- }
+ virtual scoped_ptr<DnsProbeJob> CreatePublicJob(
+ const DnsProbeJob::CallbackType& job_callback) OVERRIDE {
+ DCHECK(results_set_);
- void ResetJobsCreated() {
- system_job_created_ = false;
- public_job_created_ = false;
- }
+ public_created_ = true;
- void MockExpireResults() {
- ExpireResults();
+ return scoped_ptr<DnsProbeJob>(
+ new MockDnsProbeJob(job_callback, public_result_));
}
- bool system_job_created_;
- bool public_job_created_;
-
- private:
- // Override methods in DnsProbeService to return mock jobs:
-
- virtual scoped_ptr<DnsProbeJob> CreateSystemProbeJob(
- const DnsProbeJob::CallbackType& job_callback) OVERRIDE {
- if (mock_system_fail_)
- return scoped_ptr<DnsProbeJob>(NULL);
-
- system_job_created_ = true;
- return scoped_ptr<DnsProbeJob>(
- new MockDnsProbeJob(job_callback,
- mock_system_result_));
+ void Reset() {
+ system_created_ = false;
+ public_created_ = false;
}
- virtual scoped_ptr<DnsProbeJob> CreatePublicProbeJob(
- const DnsProbeJob::CallbackType& job_callback) OVERRIDE {
- public_job_created_ = true;
- return scoped_ptr<DnsProbeJob>(
- new MockDnsProbeJob(job_callback,
- mock_public_result_));
+ void SetResults(
+ DnsProbeJob::Result system_result,
+ DnsProbeJob::Result public_result,
+ bool system_fail) {
+ system_result_ = system_result;
+ public_result_ = public_result;
+ system_fail_ = system_fail;
+ results_set_ = true;
+ system_created_ = false;
+ public_created_ = false;
}
- DnsProbeJob::Result mock_system_result_;
- DnsProbeJob::Result mock_public_result_;
- bool mock_system_fail_;
+ bool jobs_created() { return system_created_ && public_created_; }
+
+ private:
+ DnsProbeJob::Result system_result_;
+ DnsProbeJob::Result public_result_;
+ bool system_fail_;
+ bool results_set_;
+ bool system_created_;
+ bool public_created_;
};
class DnsProbeServiceTest : public testing::Test {
public:
DnsProbeServiceTest()
: callback_called_(false),
- callback_result_(chrome_common_net::DNS_PROBE_UNKNOWN) {
+ callback_result_(chrome_common_net::DNS_PROBE_MAX) {
+ job_factory_ = new MockDnsProbeJobFactory();
+ service_ = DnsProbeService::CreateDefaultWithJobFactory(
+ scoped_ptr<DnsProbeService::JobFactory>(job_factory_));
+ }
+
+ virtual ~DnsProbeServiceTest() {
+ // job_factory_ is owned by service_, which will delete it for us.
+ delete service_;
}
void Probe() {
- service_.ProbeDns(base::Bind(&DnsProbeServiceTest::ProbeCallback,
- base::Unretained(this)));
+ service_->ProbeDns(base::Bind(&DnsProbeServiceTest::ProbeCallback,
+ base::Unretained(this)));
}
void RunUntilIdle() {
@@ -127,92 +129,113 @@ class DnsProbeServiceTest : public testing::Test {
}
void Reset() {
- service_.ResetJobsCreated();
callback_called_ = false;
+ job_factory_->Reset();
}
- MessageLoopForIO message_loop_;
- TestDnsProbeService service_;
- bool callback_called_;
- DnsProbeResult callback_result_;
+ void SetJobResults(
+ DnsProbeJob::Result system_result,
+ DnsProbeJob::Result public_result,
+ bool system_fail) {
+ job_factory_->SetResults(system_result, public_result, system_fail);
+ }
+
+ void ExpireServiceResult() {
+ service_->ExpireResultForTesting();
+ }
+
+ bool jobs_created() { return job_factory_->jobs_created(); }
+
+ bool callback_called() { return callback_called_; }
+ DnsProbeStatus callback_result() { return callback_result_; }
private:
- void ProbeCallback(DnsProbeResult result) {
+ void ProbeCallback(DnsProbeStatus result) {
callback_called_ = true;
callback_result_ = result;
}
+
+ // Owned by service_.
+ MockDnsProbeJobFactory* job_factory_;
+ DnsProbeService* service_;
+ bool callback_called_;
+ DnsProbeStatus callback_result_;
+ MessageLoopForIO message_loop_;
};
TEST_F(DnsProbeServiceTest, Null) {
}
TEST_F(DnsProbeServiceTest, Probe) {
- service_.set_mock_results(DnsProbeJob::SERVERS_CORRECT,
- DnsProbeJob::SERVERS_CORRECT);
+ SetJobResults(DnsProbeJob::SERVERS_CORRECT,
+ DnsProbeJob::SERVERS_CORRECT,
+ false);
Probe();
- EXPECT_TRUE(service_.jobs_created());
- EXPECT_FALSE(callback_called_);
+ EXPECT_TRUE(jobs_created());
+ EXPECT_FALSE(callback_called());
RunUntilIdle();
- EXPECT_TRUE(callback_called_);
- EXPECT_EQ(chrome_common_net::DNS_PROBE_NXDOMAIN, callback_result_);
+ EXPECT_TRUE(callback_called());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, callback_result());
}
TEST_F(DnsProbeServiceTest, Cache) {
- service_.set_mock_results(DnsProbeJob::SERVERS_CORRECT,
- DnsProbeJob::SERVERS_CORRECT);
+ SetJobResults(DnsProbeJob::SERVERS_CORRECT,
+ DnsProbeJob::SERVERS_CORRECT,
+ false);
Probe();
RunUntilIdle();
- Reset();
// Cached NXDOMAIN result should persist.
+ Reset();
+
Probe();
- EXPECT_FALSE(service_.jobs_created());
+ EXPECT_FALSE(jobs_created());
RunUntilIdle();
- EXPECT_TRUE(callback_called_);
- EXPECT_EQ(chrome_common_net::DNS_PROBE_NXDOMAIN, callback_result_);
+ EXPECT_TRUE(callback_called());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, callback_result());
}
TEST_F(DnsProbeServiceTest, Expired) {
- service_.set_mock_results(DnsProbeJob::SERVERS_CORRECT,
- DnsProbeJob::SERVERS_CORRECT);
+ SetJobResults(DnsProbeJob::SERVERS_CORRECT,
+ DnsProbeJob::SERVERS_CORRECT,
+ false);
Probe();
- EXPECT_TRUE(service_.jobs_created());
+ EXPECT_TRUE(jobs_created());
RunUntilIdle();
- EXPECT_TRUE(callback_called_);
- EXPECT_EQ(chrome_common_net::DNS_PROBE_NXDOMAIN, callback_result_);
+ EXPECT_TRUE(callback_called());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, callback_result());
+ ExpireServiceResult();
Reset();
- service_.MockExpireResults();
-
Probe();
- EXPECT_TRUE(service_.jobs_created());
+ EXPECT_TRUE(jobs_created());
RunUntilIdle();
- EXPECT_TRUE(callback_called_);
- EXPECT_EQ(chrome_common_net::DNS_PROBE_NXDOMAIN, callback_result_);
+ EXPECT_TRUE(callback_called());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, callback_result());
}
TEST_F(DnsProbeServiceTest, SystemFail) {
- service_.set_mock_results(DnsProbeJob::SERVERS_CORRECT,
- DnsProbeJob::SERVERS_CORRECT);
- service_.set_mock_system_fail(true);
+ SetJobResults(DnsProbeJob::SERVERS_CORRECT,
+ DnsProbeJob::SERVERS_CORRECT,
+ true);
Probe();
- EXPECT_TRUE(callback_called_);
- EXPECT_EQ(chrome_common_net::DNS_PROBE_UNKNOWN, callback_result_);
+ EXPECT_TRUE(callback_called());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_UNKNOWN, callback_result());
Reset();
RunUntilIdle();
- EXPECT_FALSE(callback_called_);
+ EXPECT_FALSE(callback_called());
}
} // namespace

Powered by Google App Engine
This is Rietveld 408576698