OLD | NEW |
---|---|
(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.
| |
OLD | NEW |