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

Side by Side 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: Tweak things, clean up unit tests 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/renderer/net/net_error_helper.h"
6
7 #include "chrome/common/net/net_error_info.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 using chrome_common_net::DnsProbeStatus;
11
12 class TestNetErrorHelper : public NetErrorHelper {
13 public:
14 TestNetErrorHelper()
15 : NetErrorHelper(NULL),
16 mock_update_count_(0),
17 mock_update_status_(chrome_common_net::DNS_PROBE_MAX) {}
mmenke 2013/06/13 20:04:55 Per Google style guide, should have virtual destru
Deprecated (see juliatuttle) 2013/06/18 19:36:37 Done.
18
19 void StartLoad(bool is_main_frame, bool is_error_page) {
20 OnStartLoad(is_main_frame, is_error_page);
21 }
22
23 void FailLoad(bool is_main_frame, bool is_dns_error) {
24 OnFailLoad(is_main_frame, is_dns_error);
25 }
26
27 void CommitLoad(bool is_main_frame) {
28 OnCommitLoad(is_main_frame);
29 }
30
31 void FinishLoad(bool is_main_frame) {
32 OnFinishLoad(is_main_frame);
33 }
34
35 void ReceiveStatus(DnsProbeStatus status) {
mmenke 2013/06/13 20:04:55 Suggest "ReceiveProbeStatus"
Deprecated (see juliatuttle) 2013/06/18 19:36:37 Done.
36 OnNetErrorInfo(static_cast<int>(status));
37 }
38
39 int mock_update_count() const { return mock_update_count_; }
40 DnsProbeStatus mock_update_status() const { return mock_update_status_; }
41
42 protected:
43 virtual void UpdateErrorPage() OVERRIDE {
44 mock_update_count_++;
45 mock_update_status_ = last_status_;
46 }
47
48 private:
49 int mock_update_count_;
50 DnsProbeStatus mock_update_status_;
mmenke 2013/06/13 20:04:55 I think this variable name is rather unclear. I t
Deprecated (see juliatuttle) 2013/06/18 19:36:37 Done.
51 };
52
53 class NetErrorHelperTest : public testing::Test {
54 protected:
55 enum MainFrame { SUB_FRAME, MAIN_FRAME };
56 enum ErrorPage { NORMAL_PAGE, ERROR_PAGE };
57 enum ErrorType { OTHER_ERROR, DNS_ERROR };
58
59 void StartLoad(MainFrame main_frame, ErrorPage error_page) {
60 helper_.StartLoad(main_frame == MAIN_FRAME, error_page == ERROR_PAGE);
61 }
62
63 void FailLoad(MainFrame main_frame, ErrorType error_type) {
64 helper_.FailLoad(main_frame == MAIN_FRAME, error_type == DNS_ERROR);
65 }
66
67 void CommitLoad(MainFrame main_frame) {
68 helper_.CommitLoad(main_frame == MAIN_FRAME);
69 }
70
71 void FinishLoad(MainFrame main_frame) {
72 helper_.FinishLoad(main_frame == MAIN_FRAME);
73 }
74
75 void ReceiveStatus(DnsProbeStatus status) {
76 helper_.ReceiveStatus(status);
77 }
78
79 int update_count() const { return helper_.mock_update_count(); }
80 DnsProbeStatus update_status() const { return helper_.mock_update_status(); }
81
82 private:
83 TestNetErrorHelper helper_;
84 };
85
86 TEST_F(NetErrorHelperTest, Null) {
87
mmenke 2013/06/13 20:04:55 nit: Remove blank line.
Deprecated (see juliatuttle) 2013/06/18 19:36:37 Done.
88 }
89
90 TEST_F(NetErrorHelperTest, SuccessfulPageLoad) {
91 StartLoad(MAIN_FRAME, NORMAL_PAGE);
92 CommitLoad(MAIN_FRAME);
93 FinishLoad(MAIN_FRAME);
94
mmenke 2013/06/13 20:04:55 Suggest throwing in a probe result.
Deprecated (see juliatuttle) 2013/06/18 19:36:37 Done.
95 EXPECT_EQ(0, update_count());
96 }
97
98 TEST_F(NetErrorHelperTest, MainFrameNonDnsError) {
99 StartLoad(MAIN_FRAME, NORMAL_PAGE);
100 FailLoad(MAIN_FRAME, OTHER_ERROR);
101 StartLoad(MAIN_FRAME, ERROR_PAGE);
102 CommitLoad(MAIN_FRAME);
103 FinishLoad(MAIN_FRAME);
104
105 ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
106 EXPECT_EQ(0, update_count());
107 }
108
109 TEST_F(NetErrorHelperTest, SubFrameDnsError) {
110 StartLoad(SUB_FRAME, NORMAL_PAGE);
111 FailLoad(SUB_FRAME, DNS_ERROR);
112 StartLoad(SUB_FRAME, ERROR_PAGE);
113 CommitLoad(SUB_FRAME);
114 FinishLoad(SUB_FRAME);
115
116 ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
117 EXPECT_EQ(0, update_count());
118 }
119
120 TEST_F(NetErrorHelperTest, ProbeResultBeforeStart) {
121 StartLoad(MAIN_FRAME, NORMAL_PAGE);
122 FailLoad(MAIN_FRAME, DNS_ERROR);
123
124 ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
125 StartLoad(MAIN_FRAME, ERROR_PAGE);
126 CommitLoad(MAIN_FRAME);
127 EXPECT_EQ(0, update_count());
128
129 FinishLoad(MAIN_FRAME);
130 EXPECT_EQ(1, update_count());
131 EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, update_status());
132 }
133
134 TEST_F(NetErrorHelperTest, ProbeResultBetweenStartAndCommit) {
135 StartLoad(MAIN_FRAME, NORMAL_PAGE);
136 FailLoad(MAIN_FRAME, DNS_ERROR);
137
138 StartLoad(MAIN_FRAME, ERROR_PAGE);
139 ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
140 CommitLoad(MAIN_FRAME);
141 EXPECT_EQ(0, update_count());
142
143 FinishLoad(MAIN_FRAME);
144 EXPECT_EQ(1, update_count());
145 EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, update_status());
146 }
147
148 TEST_F(NetErrorHelperTest, ProbeResultBetweenCommitAndFinish) {
149 StartLoad(MAIN_FRAME, NORMAL_PAGE);
150 FailLoad(MAIN_FRAME, DNS_ERROR);
151
152 StartLoad(MAIN_FRAME, ERROR_PAGE);
153 CommitLoad(MAIN_FRAME);
154 ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
155 EXPECT_EQ(0, update_count());
156
157 FinishLoad(MAIN_FRAME);
158 EXPECT_EQ(1, update_count());
159 EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, update_status());
160 }
161
162 TEST_F(NetErrorHelperTest, ProbeResultAfterFinish) {
163 StartLoad(MAIN_FRAME, NORMAL_PAGE);
164 FailLoad(MAIN_FRAME, DNS_ERROR);
165 StartLoad(MAIN_FRAME, ERROR_PAGE);
166 CommitLoad(MAIN_FRAME);
167 EXPECT_EQ(0, update_count());
168
169 FinishLoad(MAIN_FRAME);
170 EXPECT_EQ(1, update_count());
mmenke 2013/06/13 20:04:55 Should we update in this case?
Deprecated (see juliatuttle) 2013/06/18 19:36:37 Yes; the initial strings provided to the error pag
171 EXPECT_EQ(chrome_common_net::DNS_PROBE_POSSIBLE, update_status());
172
173 ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
174 EXPECT_EQ(2, update_count());
175 EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, update_status());
176 }
177
178 TEST_F(NetErrorHelperTest, ProbeResultBetweenNewStartAndCommit) {
179 StartLoad(MAIN_FRAME, NORMAL_PAGE);
180 FailLoad(MAIN_FRAME, DNS_ERROR);
181 StartLoad(MAIN_FRAME, ERROR_PAGE);
182 CommitLoad(MAIN_FRAME);
183 EXPECT_EQ(0, update_count());
184
185 FinishLoad(MAIN_FRAME);
186 EXPECT_EQ(1, update_count());
187 EXPECT_EQ(chrome_common_net::DNS_PROBE_POSSIBLE, update_status());
188
189 StartLoad(MAIN_FRAME, NORMAL_PAGE);
190 ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
191 EXPECT_EQ(2, update_count());
192 EXPECT_EQ(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN, update_status());
193
194 CommitLoad(MAIN_FRAME);
195 FinishLoad(MAIN_FRAME);
mmenke 2013/06/13 20:04:55 Make sure no other updates here?
Deprecated (see juliatuttle) 2013/06/18 19:36:37 Done.
196 }
197
198 TEST_F(NetErrorHelperTest, ProbeResultBetweenNewCommitAndFinish) {
199 StartLoad(MAIN_FRAME, NORMAL_PAGE);
200 FailLoad(MAIN_FRAME, DNS_ERROR);
201 StartLoad(MAIN_FRAME, ERROR_PAGE);
202 CommitLoad(MAIN_FRAME);
203 EXPECT_EQ(0, update_count());
204
205 FinishLoad(MAIN_FRAME);
206 EXPECT_EQ(1, update_count());
207 EXPECT_EQ(chrome_common_net::DNS_PROBE_POSSIBLE, update_status());
208
209 StartLoad(MAIN_FRAME, NORMAL_PAGE);
210 CommitLoad(MAIN_FRAME);
211 ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
212 FinishLoad(MAIN_FRAME);
213 EXPECT_EQ(1, update_count());
214 }
mmenke 2013/06/13 20:04:55 nit: Line break.
Deprecated (see juliatuttle) 2013/06/18 19:36:37 Done.
215 TEST_F(NetErrorHelperTest, ProbeResultAfterNewFinish) {
216 StartLoad(MAIN_FRAME, NORMAL_PAGE);
217 FailLoad(MAIN_FRAME, DNS_ERROR);
218 StartLoad(MAIN_FRAME, ERROR_PAGE);
219 CommitLoad(MAIN_FRAME);
220 EXPECT_EQ(0, update_count());
221
222 FinishLoad(MAIN_FRAME);
223 EXPECT_EQ(1, update_count());
224 EXPECT_EQ(chrome_common_net::DNS_PROBE_POSSIBLE, update_status());
225
226 StartLoad(MAIN_FRAME, NORMAL_PAGE);
227 CommitLoad(MAIN_FRAME);
228 FinishLoad(MAIN_FRAME);
229 ReceiveStatus(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
230 EXPECT_EQ(1, update_count());
231 }
mmenke 2013/06/13 20:04:55 Maybe a test with two updated DNS error pages, wit
Deprecated (see juliatuttle) 2013/06/18 19:36:37 Done.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698