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