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

Unified Diff: chrome/renderer/net/net_error_helper_unittest.cc

Issue 13270005: Display DNS probe results. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: ...actually add the unittests Created 7 years, 6 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/renderer/net/net_error_helper_unittest.cc
diff --git a/chrome/renderer/net/net_error_helper_unittest.cc b/chrome/renderer/net/net_error_helper_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..8c9043ad9663d3dc99ae6645844be8ff18ef8eb4
--- /dev/null
+++ b/chrome/renderer/net/net_error_helper_unittest.cc
@@ -0,0 +1,231 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/renderer/net/net_error_helper.h"
+
+#include "chrome/common/net/net_error_info.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using chrome_common_net::DnsProbeStatus;
+
+class TestNetErrorHelper : public NetErrorHelper {
+ public:
+ TestNetErrorHelper()
+ : NetErrorHelper(NULL),
+ mock_update_count_(0),
+ mock_update_status_(chrome_common_net::DNS_PROBE_MAX) {}
+
+ void StartLoad(bool is_main_frame, bool is_error_page) {
+ OnStartLoad(is_main_frame, is_error_page);
+ }
+
+ void FailLoad(bool is_main_frame, bool is_dns_error) {
+ OnFailLoad(is_main_frame, is_dns_error);
+ }
+
+ void CommitLoad(bool is_main_frame) {
+ OnCommitLoad(is_main_frame);
+ }
+
+ void FinishLoad(bool is_main_frame) {
+ OnFinishLoad(is_main_frame);
+ }
+
+ void ReceiveStatus(DnsProbeStatus status) {
+ OnNetErrorInfo(static_cast<int>(status));
+ }
+
+ int mock_update_count() const { return mock_update_count_; }
+ DnsProbeStatus mock_update_status() const { return mock_update_status_; }
+
+ protected:
+ virtual void UpdateErrorPage() OVERRIDE {
+ mock_update_count_++;
+ mock_update_status_ = last_status_;
+ }
+
+ private:
+ int mock_update_count_;
+ DnsProbeStatus mock_update_status_;
+};
+
+class NetErrorHelperTest : public testing::Test {
+ protected:
+ enum MainFrame { SUB_FRAME, MAIN_FRAME };
+ enum ErrorPage { NORMAL_PAGE, ERROR_PAGE };
+ enum ErrorType { OTHER_ERROR, DNS_ERROR };
+
+ void StartLoad(MainFrame main_frame, ErrorPage error_page) {
+ helper_.StartLoad(main_frame == MAIN_FRAME, error_page == ERROR_PAGE);
+ }
+
+ void FailLoad(MainFrame main_frame, ErrorType error_type) {
+ helper_.FailLoad(main_frame == MAIN_FRAME, error_type == DNS_ERROR);
+ }
+
+ void CommitLoad(MainFrame main_frame) {
+ helper_.CommitLoad(main_frame == MAIN_FRAME);
+ }
+
+ void FinishLoad(MainFrame main_frame) {
+ helper_.FinishLoad(main_frame == MAIN_FRAME);
+ }
+
+ void ReceiveStatus(DnsProbeStatus status) {
+ helper_.ReceiveStatus(status);
+ }
+
+ int update_count() const { return helper_.mock_update_count(); }
+ DnsProbeStatus update_status() const { return helper_.mock_update_status(); }
+
+ private:
+ TestNetErrorHelper helper_;
+};
+
+TEST_F(NetErrorHelperTest, Null) {
+
+}
+
+TEST_F(NetErrorHelperTest, SuccessfulPageLoad) {
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ CommitLoad(MAIN_FRAME);
+ FinishLoad(MAIN_FRAME);
+
+ EXPECT_EQ(0, update_count());
+}
+
+TEST_F(NetErrorHelperTest, MainFrameNonDnsError) {
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ FailLoad(MAIN_FRAME, OTHER_ERROR);
+ StartLoad(MAIN_FRAME, ERROR_PAGE);
+ CommitLoad(MAIN_FRAME);
+ FinishLoad(MAIN_FRAME);
+
+ ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
+ EXPECT_EQ(0, update_count());
+}
+
+TEST_F(NetErrorHelperTest, SubFrameDnsError) {
+ StartLoad(SUB_FRAME, NORMAL_PAGE);
+ FailLoad(SUB_FRAME, DNS_ERROR);
+ StartLoad(SUB_FRAME, ERROR_PAGE);
+ CommitLoad(SUB_FRAME);
+ FinishLoad(SUB_FRAME);
+
+ ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
+ EXPECT_EQ(0, update_count());
+}
+
+TEST_F(NetErrorHelperTest, ProbeResultBeforeStart) {
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ FailLoad(MAIN_FRAME, DNS_ERROR);
+
+ ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
+ StartLoad(MAIN_FRAME, ERROR_PAGE);
+ CommitLoad(MAIN_FRAME);
+ EXPECT_EQ(0, update_count());
+
+ FinishLoad(MAIN_FRAME);
+ EXPECT_EQ(1, update_count());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, update_status());
+}
+
+TEST_F(NetErrorHelperTest, ProbeResultBetweenStartAndCommit) {
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ FailLoad(MAIN_FRAME, DNS_ERROR);
+
+ StartLoad(MAIN_FRAME, ERROR_PAGE);
+ ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
+ CommitLoad(MAIN_FRAME);
+ EXPECT_EQ(0, update_count());
+
+ FinishLoad(MAIN_FRAME);
+ EXPECT_EQ(1, update_count());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, update_status());
+}
+
+TEST_F(NetErrorHelperTest, ProbeResultBetweenCommitAndFinish) {
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ FailLoad(MAIN_FRAME, DNS_ERROR);
+
+ StartLoad(MAIN_FRAME, ERROR_PAGE);
+ CommitLoad(MAIN_FRAME);
+ ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
+ EXPECT_EQ(0, update_count());
+
+ FinishLoad(MAIN_FRAME);
+ EXPECT_EQ(1, update_count());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, update_status());
+}
+
+TEST_F(NetErrorHelperTest, ProbeResultAfterFinish) {
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ FailLoad(MAIN_FRAME, DNS_ERROR);
+ StartLoad(MAIN_FRAME, ERROR_PAGE);
+ CommitLoad(MAIN_FRAME);
+ EXPECT_EQ(0, update_count());
+
+ FinishLoad(MAIN_FRAME);
+ EXPECT_EQ(1, update_count());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_POSSIBLE, update_status());
+
+ ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
+ EXPECT_EQ(2, update_count());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, update_status());
+}
+
+TEST_F(NetErrorHelperTest, ProbeResultBetweenNewStartAndCommit) {
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ FailLoad(MAIN_FRAME, DNS_ERROR);
+ StartLoad(MAIN_FRAME, ERROR_PAGE);
+ CommitLoad(MAIN_FRAME);
+ EXPECT_EQ(0, update_count());
+
+ FinishLoad(MAIN_FRAME);
+ EXPECT_EQ(1, update_count());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_POSSIBLE, update_status());
+
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
+ EXPECT_EQ(2, update_count());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, update_status());
+
+ CommitLoad(MAIN_FRAME);
+ FinishLoad(MAIN_FRAME);
+}
+
+TEST_F(NetErrorHelperTest, ProbeResultBetweenNewCommitAndFinish) {
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ FailLoad(MAIN_FRAME, DNS_ERROR);
+ StartLoad(MAIN_FRAME, ERROR_PAGE);
+ CommitLoad(MAIN_FRAME);
+ EXPECT_EQ(0, update_count());
+
+ FinishLoad(MAIN_FRAME);
+ EXPECT_EQ(1, update_count());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_POSSIBLE, update_status());
+
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ CommitLoad(MAIN_FRAME);
+ ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
+ FinishLoad(MAIN_FRAME);
+ EXPECT_EQ(1, update_count());
+}
+TEST_F(NetErrorHelperTest, ProbeResultAfterNewFinish) {
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ FailLoad(MAIN_FRAME, DNS_ERROR);
+ StartLoad(MAIN_FRAME, ERROR_PAGE);
+ CommitLoad(MAIN_FRAME);
+ EXPECT_EQ(0, update_count());
+
+ FinishLoad(MAIN_FRAME);
+ EXPECT_EQ(1, update_count());
+ EXPECT_EQ(chrome_common_net::DNS_PROBE_POSSIBLE, update_status());
+
+ StartLoad(MAIN_FRAME, NORMAL_PAGE);
+ CommitLoad(MAIN_FRAME);
+ FinishLoad(MAIN_FRAME);
+ ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
+ EXPECT_EQ(1, update_count());
+}

Powered by Google App Engine
This is Rietveld 408576698