OLD | NEW |
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/scoped_ptr.h" | 8 #include "base/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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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_METHOD4(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 bool* has_new_first_party_for_cookies, | 64 bool* has_new_first_party_for_cookies, |
65 GURL* new_first_party_for_cookies)); | 65 GURL* new_first_party_for_cookies)); |
66 MOCK_METHOD2(OnReceivedResponse, void( | 66 MOCK_METHOD1(OnReceivedResponse, void( |
67 const webkit_glue::ResourceResponseInfo& info, | 67 const webkit_glue::ResourceResponseInfo& info)); |
68 bool content_filtered)); | |
69 MOCK_METHOD1(OnDownloadedData, void(int len)); | 68 MOCK_METHOD1(OnDownloadedData, void(int len)); |
70 MOCK_METHOD2(OnReceivedData, void(const char* data, int len)); | 69 MOCK_METHOD2(OnReceivedData, void(const char* data, int len)); |
71 MOCK_METHOD3(OnCompletedRequest, void( | 70 MOCK_METHOD3(OnCompletedRequest, void( |
72 const net::URLRequestStatus& status, | 71 const net::URLRequestStatus& status, |
73 const std::string& security_info, | 72 const std::string& security_info, |
74 const base::Time& completion_time)); | 73 const base::Time& completion_time)); |
75 | 74 |
76 private: | 75 private: |
77 DISALLOW_COPY_AND_ASSIGN(MockResourceLoaderBridgePeer); | 76 DISALLOW_COPY_AND_ASSIGN(MockResourceLoaderBridgePeer); |
78 }; | 77 }; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 filter_peer_->OnReceivedData(data_chunk.c_str(), data_chunk.length()); | 131 filter_peer_->OnReceivedData(data_chunk.c_str(), data_chunk.length()); |
133 EXPECT_EQ(data_chunk + data_chunk, GetData(filter_peer_.get())); | 132 EXPECT_EQ(data_chunk + data_chunk, GetData(filter_peer_.get())); |
134 } | 133 } |
135 | 134 |
136 MATCHER_P(IsURLRequestEqual, status, "") { return arg.status() == status; } | 135 MATCHER_P(IsURLRequestEqual, status, "") { return arg.status() == status; } |
137 | 136 |
138 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestBadURLRequestStatus) { | 137 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestBadURLRequestStatus) { |
139 // It will self-delete once it exits OnCompletedRequest. | 138 // It will self-delete once it exits OnCompletedRequest. |
140 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); | 139 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); |
141 | 140 |
142 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); | 141 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); |
143 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 142 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
144 IsURLRequestEqual(net::URLRequestStatus::CANCELED), "", base::Time())); | 143 IsURLRequestEqual(net::URLRequestStatus::CANCELED), "", base::Time())); |
145 | 144 |
146 net::URLRequestStatus status; | 145 net::URLRequestStatus status; |
147 status.set_status(net::URLRequestStatus::FAILED); | 146 status.set_status(net::URLRequestStatus::FAILED); |
148 filter_peer->OnCompletedRequest(status, "", base::Time()); | 147 filter_peer->OnCompletedRequest(status, "", base::Time()); |
149 } | 148 } |
150 | 149 |
151 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestEmptyData) { | 150 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestEmptyData) { |
152 // It will self-delete once it exits OnCompletedRequest. | 151 // It will self-delete once it exits OnCompletedRequest. |
153 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); | 152 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); |
154 | 153 |
155 EXPECT_CALL(*original_peer_, OnReceivedData(_, _)).Times(0); | 154 EXPECT_CALL(*original_peer_, OnReceivedData(_, _)).Times(0); |
156 EXPECT_CALL(*sender_, Send(_)).Times(0); | 155 EXPECT_CALL(*sender_, Send(_)).Times(0); |
157 | 156 |
158 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); | 157 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); |
159 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 158 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
160 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); | 159 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); |
161 | 160 |
162 net::URLRequestStatus status; | 161 net::URLRequestStatus status; |
163 status.set_status(net::URLRequestStatus::SUCCESS); | 162 status.set_status(net::URLRequestStatus::SUCCESS); |
164 filter_peer->OnCompletedRequest(status, "", base::Time()); | 163 filter_peer->OnCompletedRequest(status, "", base::Time()); |
165 } | 164 } |
166 | 165 |
167 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestNoCatalogs) { | 166 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestNoCatalogs) { |
168 // It will self-delete once it exits OnCompletedRequest. | 167 // It will self-delete once it exits OnCompletedRequest. |
169 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); | 168 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); |
170 | 169 |
171 SetData(filter_peer, "some text"); | 170 SetData(filter_peer, "some text"); |
172 | 171 |
173 EXPECT_CALL(*sender_, Send(_)); | 172 EXPECT_CALL(*sender_, Send(_)); |
174 | 173 |
175 std::string data = GetData(filter_peer); | 174 std::string data = GetData(filter_peer); |
176 EXPECT_CALL(*original_peer_, | 175 EXPECT_CALL(*original_peer_, |
177 OnReceivedData(StrEq(data.data()), data.length())).Times(2); | 176 OnReceivedData(StrEq(data.data()), data.length())).Times(2); |
178 | 177 |
179 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)).Times(2); | 178 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)).Times(2); |
180 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 179 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
181 IsURLRequestEqual( | 180 IsURLRequestEqual( |
182 net::URLRequestStatus::SUCCESS), "", base::Time())).Times(2); | 181 net::URLRequestStatus::SUCCESS), "", base::Time())).Times(2); |
183 | 182 |
184 net::URLRequestStatus status; | 183 net::URLRequestStatus status; |
185 status.set_status(net::URLRequestStatus::SUCCESS); | 184 status.set_status(net::URLRequestStatus::SUCCESS); |
186 filter_peer->OnCompletedRequest(status, "", base::Time()); | 185 filter_peer->OnCompletedRequest(status, "", base::Time()); |
187 | 186 |
188 // Test if Send gets called again (it shouldn't be) when first call returned | 187 // Test if Send gets called again (it shouldn't be) when first call returned |
189 // an empty dictionary. | 188 // an empty dictionary. |
(...skipping 17 matching lines...) Expand all Loading... |
207 SetData(filter_peer, "some __MSG_text__"); | 206 SetData(filter_peer, "some __MSG_text__"); |
208 | 207 |
209 // We already have messages in memory, Send will be skipped. | 208 // We already have messages in memory, Send will be skipped. |
210 EXPECT_CALL(*sender_, Send(_)).Times(0); | 209 EXPECT_CALL(*sender_, Send(_)).Times(0); |
211 | 210 |
212 // __MSG_text__ gets replaced with "new text". | 211 // __MSG_text__ gets replaced with "new text". |
213 std::string data("some new text"); | 212 std::string data("some new text"); |
214 EXPECT_CALL(*original_peer_, | 213 EXPECT_CALL(*original_peer_, |
215 OnReceivedData(StrEq(data.data()), data.length())); | 214 OnReceivedData(StrEq(data.data()), data.length())); |
216 | 215 |
217 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); | 216 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); |
218 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 217 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
219 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); | 218 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); |
220 | 219 |
221 net::URLRequestStatus status; | 220 net::URLRequestStatus status; |
222 status.set_status(net::URLRequestStatus::SUCCESS); | 221 status.set_status(net::URLRequestStatus::SUCCESS); |
223 filter_peer->OnCompletedRequest(status, "", base::Time()); | 222 filter_peer->OnCompletedRequest(status, "", base::Time()); |
224 } | 223 } |
225 | 224 |
226 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestReplaceMessagesFails) { | 225 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestReplaceMessagesFails) { |
227 // It will self-delete once it exits OnCompletedRequest. | 226 // It will self-delete once it exits OnCompletedRequest. |
228 ExtensionLocalizationPeer* filter_peer = | 227 ExtensionLocalizationPeer* filter_peer = |
229 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_3)); | 228 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_3)); |
230 | 229 |
231 L10nMessagesMap messages; | 230 L10nMessagesMap messages; |
232 messages.insert(std::make_pair("text", "new text")); | 231 messages.insert(std::make_pair("text", "new text")); |
233 ExtensionToL10nMessagesMap& l10n_messages_map = | 232 ExtensionToL10nMessagesMap& l10n_messages_map = |
234 *GetExtensionToL10nMessagesMap(); | 233 *GetExtensionToL10nMessagesMap(); |
235 l10n_messages_map["some_id3"] = messages; | 234 l10n_messages_map["some_id3"] = messages; |
236 | 235 |
237 std::string message("some __MSG_missing_message__"); | 236 std::string message("some __MSG_missing_message__"); |
238 SetData(filter_peer, message); | 237 SetData(filter_peer, message); |
239 | 238 |
240 // We already have messages in memory, Send will be skipped. | 239 // We already have messages in memory, Send will be skipped. |
241 EXPECT_CALL(*sender_, Send(_)).Times(0); | 240 EXPECT_CALL(*sender_, Send(_)).Times(0); |
242 | 241 |
243 // __MSG_missing_message__ is missing, so message stays the same. | 242 // __MSG_missing_message__ is missing, so message stays the same. |
244 EXPECT_CALL(*original_peer_, | 243 EXPECT_CALL(*original_peer_, |
245 OnReceivedData(StrEq(message.data()), message.length())); | 244 OnReceivedData(StrEq(message.data()), message.length())); |
246 | 245 |
247 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); | 246 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); |
248 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 247 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
249 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); | 248 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); |
250 | 249 |
251 net::URLRequestStatus status; | 250 net::URLRequestStatus status; |
252 status.set_status(net::URLRequestStatus::SUCCESS); | 251 status.set_status(net::URLRequestStatus::SUCCESS); |
253 filter_peer->OnCompletedRequest(status, "", base::Time()); | 252 filter_peer->OnCompletedRequest(status, "", base::Time()); |
254 } | 253 } |
OLD | NEW |