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

Side by Side Diff: chrome/common/extensions/extension_localization_peer_unittest.cc

Issue 7602023: Use a monotonic clock (TimeTicks) to report network times to WebCore. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use strong typing Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <map> 5 #include <map>
6 #include <string> 6 #include <string>
7 7
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "chrome/common/extensions/extension_message_bundle.h" 9 #include "chrome/common/extensions/extension_message_bundle.h"
10 #include "chrome/common/extensions/extension_localization_peer.h" 10 #include "chrome/common/extensions/extension_localization_peer.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 DISALLOW_COPY_AND_ASSIGN(MockIpcMessageSender); 51 DISALLOW_COPY_AND_ASSIGN(MockIpcMessageSender);
52 }; 52 };
53 53
54 class MockResourceLoaderBridgePeer 54 class MockResourceLoaderBridgePeer
55 : public webkit_glue::ResourceLoaderBridge::Peer { 55 : public webkit_glue::ResourceLoaderBridge::Peer {
56 public: 56 public:
57 MockResourceLoaderBridgePeer() {} 57 MockResourceLoaderBridgePeer() {}
58 virtual ~MockResourceLoaderBridgePeer() {} 58 virtual ~MockResourceLoaderBridgePeer() {}
59 59
60 MOCK_METHOD2(OnUploadProgress, void(uint64 position, uint64 size)); 60 MOCK_METHOD2(OnUploadProgress, void(uint64 position, uint64 size));
61 MOCK_METHOD4(OnReceivedRedirect, bool( 61 MOCK_METHOD6(OnReceivedRedirect, bool(
62 const GURL& new_url, 62 const GURL& new_url,
63 const webkit_glue::ResourceResponseInfo& info, 63 const webkit_glue::ResourceResponseInfo& info,
64 const base::TimeTicks& start_time,
65 const base::TimeTicks& end_time,
64 bool* has_new_first_party_for_cookies, 66 bool* has_new_first_party_for_cookies,
65 GURL* new_first_party_for_cookies)); 67 GURL* new_first_party_for_cookies));
66 MOCK_METHOD1(OnReceivedResponse, void( 68 MOCK_METHOD3(OnReceivedResponse, void(
67 const webkit_glue::ResourceResponseInfo& info)); 69 const webkit_glue::ResourceResponseInfo& info,
70 const base::TimeTicks& start_time,
71 const base::TimeTicks& end_time));
68 MOCK_METHOD1(OnDownloadedData, void(int len)); 72 MOCK_METHOD1(OnDownloadedData, void(int len));
69 MOCK_METHOD3(OnReceivedData, void(const char* data, 73 MOCK_METHOD3(OnReceivedData, void(const char* data,
70 int data_length, 74 int data_length,
71 int encoded_data_length)); 75 int encoded_data_length));
72 MOCK_METHOD3(OnCompletedRequest, void( 76 MOCK_METHOD3(OnCompletedRequest, void(
73 const net::URLRequestStatus& status, 77 const net::URLRequestStatus& status,
74 const std::string& security_info, 78 const std::string& security_info,
75 const base::Time& completion_time)); 79 const base::TimeTicks& completion_time));
76 80
77 private: 81 private:
78 DISALLOW_COPY_AND_ASSIGN(MockResourceLoaderBridgePeer); 82 DISALLOW_COPY_AND_ASSIGN(MockResourceLoaderBridgePeer);
79 }; 83 };
80 84
81 class ExtensionLocalizationPeerTest : public testing::Test { 85 class ExtensionLocalizationPeerTest : public testing::Test {
82 protected: 86 protected:
83 virtual void SetUp() { 87 virtual void SetUp() {
84 sender_.reset(new MockIpcMessageSender()); 88 sender_.reset(new MockIpcMessageSender());
85 original_peer_.reset(new MockResourceLoaderBridgePeer()); 89 original_peer_.reset(new MockResourceLoaderBridgePeer());
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 filter_peer_->OnReceivedData(data_chunk.c_str(), data_chunk.length(), -1); 137 filter_peer_->OnReceivedData(data_chunk.c_str(), data_chunk.length(), -1);
134 EXPECT_EQ(data_chunk + data_chunk, GetData(filter_peer_.get())); 138 EXPECT_EQ(data_chunk + data_chunk, GetData(filter_peer_.get()));
135 } 139 }
136 140
137 MATCHER_P(IsURLRequestEqual, status, "") { return arg.status() == status; } 141 MATCHER_P(IsURLRequestEqual, status, "") { return arg.status() == status; }
138 142
139 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestBadURLRequestStatus) { 143 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestBadURLRequestStatus) {
140 // It will self-delete once it exits OnCompletedRequest. 144 // It will self-delete once it exits OnCompletedRequest.
141 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); 145 ExtensionLocalizationPeer* filter_peer = filter_peer_.release();
142 146
143 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); 147 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, _, _));
144 EXPECT_CALL(*original_peer_, OnCompletedRequest( 148 EXPECT_CALL(*original_peer_, OnCompletedRequest(
145 IsURLRequestEqual(net::URLRequestStatus::CANCELED), "", base::Time())); 149 IsURLRequestEqual(net::URLRequestStatus::CANCELED), "", base::TimeTicks()));
146 150
147 net::URLRequestStatus status; 151 net::URLRequestStatus status;
148 status.set_status(net::URLRequestStatus::FAILED); 152 status.set_status(net::URLRequestStatus::FAILED);
149 filter_peer->OnCompletedRequest(status, "", base::Time()); 153 filter_peer->OnCompletedRequest(status, "", base::TimeTicks());
150 } 154 }
151 155
152 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestEmptyData) { 156 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestEmptyData) {
153 // It will self-delete once it exits OnCompletedRequest. 157 // It will self-delete once it exits OnCompletedRequest.
154 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); 158 ExtensionLocalizationPeer* filter_peer = filter_peer_.release();
155 159
156 EXPECT_CALL(*original_peer_, OnReceivedData(_, _, _)).Times(0); 160 EXPECT_CALL(*original_peer_, OnReceivedData(_, _, _)).Times(0);
157 EXPECT_CALL(*sender_, Send(_)).Times(0); 161 EXPECT_CALL(*sender_, Send(_)).Times(0);
158 162
159 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); 163 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, _, _));
160 EXPECT_CALL(*original_peer_, OnCompletedRequest( 164 EXPECT_CALL(*original_peer_, OnCompletedRequest(IsURLRequestEqual(
161 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); 165 net::URLRequestStatus::SUCCESS), "", base::TimeTicks()));
162 166
163 net::URLRequestStatus status; 167 net::URLRequestStatus status;
164 status.set_status(net::URLRequestStatus::SUCCESS); 168 status.set_status(net::URLRequestStatus::SUCCESS);
165 filter_peer->OnCompletedRequest(status, "", base::Time()); 169 filter_peer->OnCompletedRequest(status, "", base::TimeTicks());
166 } 170 }
167 171
168 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestNoCatalogs) { 172 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestNoCatalogs) {
169 // It will self-delete once it exits OnCompletedRequest. 173 // It will self-delete once it exits OnCompletedRequest.
170 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); 174 ExtensionLocalizationPeer* filter_peer = filter_peer_.release();
171 175
172 SetData(filter_peer, "some text"); 176 SetData(filter_peer, "some text");
173 177
174 EXPECT_CALL(*sender_, Send(_)); 178 EXPECT_CALL(*sender_, Send(_));
175 179
176 std::string data = GetData(filter_peer); 180 std::string data = GetData(filter_peer);
177 EXPECT_CALL(*original_peer_, 181 EXPECT_CALL(*original_peer_,
178 OnReceivedData(StrEq(data.data()), data.length(), -1)).Times(2); 182 OnReceivedData(StrEq(data.data()), data.length(), -1)).Times(2);
179 183
180 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)).Times(2); 184 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, _, _)).Times(2);
181 EXPECT_CALL(*original_peer_, OnCompletedRequest( 185 EXPECT_CALL(*original_peer_, OnCompletedRequest(
182 IsURLRequestEqual( 186 IsURLRequestEqual(
183 net::URLRequestStatus::SUCCESS), "", base::Time())).Times(2); 187 net::URLRequestStatus::SUCCESS), "", base::TimeTicks())).Times(2);
184 188
185 net::URLRequestStatus status; 189 net::URLRequestStatus status;
186 status.set_status(net::URLRequestStatus::SUCCESS); 190 status.set_status(net::URLRequestStatus::SUCCESS);
187 filter_peer->OnCompletedRequest(status, "", base::Time()); 191 filter_peer->OnCompletedRequest(status, "", base::TimeTicks());
188 192
189 // Test if Send gets called again (it shouldn't be) when first call returned 193 // Test if Send gets called again (it shouldn't be) when first call returned
190 // an empty dictionary. 194 // an empty dictionary.
191 filter_peer = 195 filter_peer =
192 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_1)); 196 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_1));
193 SetData(filter_peer, "some text"); 197 SetData(filter_peer, "some text");
194 filter_peer->OnCompletedRequest(status, "", base::Time()); 198 filter_peer->OnCompletedRequest(status, "", base::TimeTicks());
195 } 199 }
196 200
197 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestWithCatalogs) { 201 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestWithCatalogs) {
198 // It will self-delete once it exits OnCompletedRequest. 202 // It will self-delete once it exits OnCompletedRequest.
199 ExtensionLocalizationPeer* filter_peer = 203 ExtensionLocalizationPeer* filter_peer =
200 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_2)); 204 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_2));
201 205
202 L10nMessagesMap messages; 206 L10nMessagesMap messages;
203 messages.insert(std::make_pair("text", "new text")); 207 messages.insert(std::make_pair("text", "new text"));
204 ExtensionToL10nMessagesMap& l10n_messages_map = 208 ExtensionToL10nMessagesMap& l10n_messages_map =
205 *GetExtensionToL10nMessagesMap(); 209 *GetExtensionToL10nMessagesMap();
206 l10n_messages_map["some_id2"] = messages; 210 l10n_messages_map["some_id2"] = messages;
207 211
208 SetData(filter_peer, "some __MSG_text__"); 212 SetData(filter_peer, "some __MSG_text__");
209 213
210 // We already have messages in memory, Send will be skipped. 214 // We already have messages in memory, Send will be skipped.
211 EXPECT_CALL(*sender_, Send(_)).Times(0); 215 EXPECT_CALL(*sender_, Send(_)).Times(0);
212 216
213 // __MSG_text__ gets replaced with "new text". 217 // __MSG_text__ gets replaced with "new text".
214 std::string data("some new text"); 218 std::string data("some new text");
215 EXPECT_CALL(*original_peer_, 219 EXPECT_CALL(*original_peer_,
216 OnReceivedData(StrEq(data.data()), data.length(), -1)); 220 OnReceivedData(StrEq(data.data()), data.length(), -1));
217 221
218 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); 222 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, _, _));
219 EXPECT_CALL(*original_peer_, OnCompletedRequest( 223 EXPECT_CALL(*original_peer_, OnCompletedRequest(IsURLRequestEqual(
220 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); 224 net::URLRequestStatus::SUCCESS), "", base::TimeTicks()));
221 225
222 net::URLRequestStatus status; 226 net::URLRequestStatus status;
223 status.set_status(net::URLRequestStatus::SUCCESS); 227 status.set_status(net::URLRequestStatus::SUCCESS);
224 filter_peer->OnCompletedRequest(status, "", base::Time()); 228 filter_peer->OnCompletedRequest(status, "", base::TimeTicks());
225 } 229 }
226 230
227 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestReplaceMessagesFails) { 231 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestReplaceMessagesFails) {
228 // It will self-delete once it exits OnCompletedRequest. 232 // It will self-delete once it exits OnCompletedRequest.
229 ExtensionLocalizationPeer* filter_peer = 233 ExtensionLocalizationPeer* filter_peer =
230 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_3)); 234 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_3));
231 235
232 L10nMessagesMap messages; 236 L10nMessagesMap messages;
233 messages.insert(std::make_pair("text", "new text")); 237 messages.insert(std::make_pair("text", "new text"));
234 ExtensionToL10nMessagesMap& l10n_messages_map = 238 ExtensionToL10nMessagesMap& l10n_messages_map =
235 *GetExtensionToL10nMessagesMap(); 239 *GetExtensionToL10nMessagesMap();
236 l10n_messages_map["some_id3"] = messages; 240 l10n_messages_map["some_id3"] = messages;
237 241
238 std::string message("some __MSG_missing_message__"); 242 std::string message("some __MSG_missing_message__");
239 SetData(filter_peer, message); 243 SetData(filter_peer, message);
240 244
241 // We already have messages in memory, Send will be skipped. 245 // We already have messages in memory, Send will be skipped.
242 EXPECT_CALL(*sender_, Send(_)).Times(0); 246 EXPECT_CALL(*sender_, Send(_)).Times(0);
243 247
244 // __MSG_missing_message__ is missing, so message stays the same. 248 // __MSG_missing_message__ is missing, so message stays the same.
245 EXPECT_CALL(*original_peer_, 249 EXPECT_CALL(*original_peer_,
246 OnReceivedData(StrEq(message.data()), message.length(), -1)); 250 OnReceivedData(StrEq(message.data()), message.length(), -1));
247 251
248 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); 252 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, _, _));
249 EXPECT_CALL(*original_peer_, OnCompletedRequest( 253 EXPECT_CALL(*original_peer_, OnCompletedRequest(IsURLRequestEqual(
250 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); 254 net::URLRequestStatus::SUCCESS), "", base::TimeTicks()));
251 255
252 net::URLRequestStatus status; 256 net::URLRequestStatus status;
253 status.set_status(net::URLRequestStatus::SUCCESS); 257 status.set_status(net::URLRequestStatus::SUCCESS);
254 filter_peer->OnCompletedRequest(status, "", base::Time()); 258 filter_peer->OnCompletedRequest(status, "", base::TimeTicks());
255 } 259 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698