| 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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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_METHOD3(OnReceivedData, void(const char* data, | 69 MOCK_METHOD3(OnReceivedData, void(const char* data, |
| 70 int data_length, | 70 int data_length, |
| 71 int encoded_data_length)); | 71 int encoded_data_length)); |
| 72 MOCK_METHOD3(OnCompletedRequest, void( | 72 MOCK_METHOD3(OnCompletedRequest, void( |
| 73 const net::URLRequestStatus& status, | 73 int error_code, |
| 74 const std::string& security_info, | 74 const std::string& security_info, |
| 75 const base::TimeTicks& completion_time)); | 75 const base::TimeTicks& completion_time)); |
| 76 | 76 |
| 77 private: | 77 private: |
| 78 DISALLOW_COPY_AND_ASSIGN(MockResourceLoaderBridgePeer); | 78 DISALLOW_COPY_AND_ASSIGN(MockResourceLoaderBridgePeer); |
| 79 }; | 79 }; |
| 80 | 80 |
| 81 class ExtensionLocalizationPeerTest : public testing::Test { | 81 class ExtensionLocalizationPeerTest : public testing::Test { |
| 82 protected: | 82 protected: |
| 83 virtual void SetUp() { | 83 virtual void SetUp() { |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 } | 135 } |
| 136 | 136 |
| 137 MATCHER_P(IsURLRequestEqual, status, "") { return arg.status() == status; } | 137 MATCHER_P(IsURLRequestEqual, status, "") { return arg.status() == status; } |
| 138 | 138 |
| 139 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestBadURLRequestStatus) { | 139 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestBadURLRequestStatus) { |
| 140 // It will self-delete once it exits OnCompletedRequest. | 140 // It will self-delete once it exits OnCompletedRequest. |
| 141 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); | 141 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); |
| 142 | 142 |
| 143 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); | 143 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); |
| 144 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 144 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
| 145 IsURLRequestEqual(net::URLRequestStatus::CANCELED), "", base::TimeTicks())); | 145 net::ERR_ABORTED, "", base::TimeTicks())); |
| 146 | 146 |
| 147 net::URLRequestStatus status; | 147 filter_peer->OnCompletedRequest(net::ERR_FAILED, "", base::TimeTicks()); |
| 148 status.set_status(net::URLRequestStatus::FAILED); | |
| 149 filter_peer->OnCompletedRequest(status, "", base::TimeTicks()); | |
| 150 } | 148 } |
| 151 | 149 |
| 152 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestEmptyData) { | 150 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestEmptyData) { |
| 153 // It will self-delete once it exits OnCompletedRequest. | 151 // It will self-delete once it exits OnCompletedRequest. |
| 154 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); | 152 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); |
| 155 | 153 |
| 156 EXPECT_CALL(*original_peer_, OnReceivedData(_, _, _)).Times(0); | 154 EXPECT_CALL(*original_peer_, OnReceivedData(_, _, _)).Times(0); |
| 157 EXPECT_CALL(*sender_, Send(_)).Times(0); | 155 EXPECT_CALL(*sender_, Send(_)).Times(0); |
| 158 | 156 |
| 159 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); | 157 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); |
| 160 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 158 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
| 161 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", | 159 net::OK, "", base::TimeTicks())); |
| 162 base::TimeTicks())); | |
| 163 | 160 |
| 164 net::URLRequestStatus status; | 161 filter_peer->OnCompletedRequest(net::OK, "", base::TimeTicks()); |
| 165 status.set_status(net::URLRequestStatus::SUCCESS); | |
| 166 filter_peer->OnCompletedRequest(status, "", base::TimeTicks()); | |
| 167 } | 162 } |
| 168 | 163 |
| 169 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestNoCatalogs) { | 164 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestNoCatalogs) { |
| 170 // It will self-delete once it exits OnCompletedRequest. | 165 // It will self-delete once it exits OnCompletedRequest. |
| 171 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); | 166 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); |
| 172 | 167 |
| 173 SetData(filter_peer, "some text"); | 168 SetData(filter_peer, "some text"); |
| 174 | 169 |
| 175 EXPECT_CALL(*sender_, Send(_)); | 170 EXPECT_CALL(*sender_, Send(_)); |
| 176 | 171 |
| 177 std::string data = GetData(filter_peer); | 172 std::string data = GetData(filter_peer); |
| 178 EXPECT_CALL(*original_peer_, | 173 EXPECT_CALL(*original_peer_, |
| 179 OnReceivedData(StrEq(data.data()), data.length(), -1)).Times(2); | 174 OnReceivedData(StrEq(data.data()), data.length(), -1)).Times(2); |
| 180 | 175 |
| 181 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)).Times(2); | 176 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)).Times(2); |
| 182 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 177 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
| 183 IsURLRequestEqual( | 178 net::OK, "", base::TimeTicks())).Times(2); |
| 184 net::URLRequestStatus::SUCCESS), "", base::TimeTicks())).Times(2); | |
| 185 | 179 |
| 186 net::URLRequestStatus status; | 180 filter_peer->OnCompletedRequest(net::OK, "", base::TimeTicks()); |
| 187 status.set_status(net::URLRequestStatus::SUCCESS); | |
| 188 filter_peer->OnCompletedRequest(status, "", base::TimeTicks()); | |
| 189 | 181 |
| 190 // Test if Send gets called again (it shouldn't be) when first call returned | 182 // Test if Send gets called again (it shouldn't be) when first call returned |
| 191 // an empty dictionary. | 183 // an empty dictionary. |
| 192 filter_peer = | 184 filter_peer = |
| 193 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_1)); | 185 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_1)); |
| 194 SetData(filter_peer, "some text"); | 186 SetData(filter_peer, "some text"); |
| 195 filter_peer->OnCompletedRequest(status, "", base::TimeTicks()); | 187 filter_peer->OnCompletedRequest(net::OK, "", base::TimeTicks()); |
| 196 } | 188 } |
| 197 | 189 |
| 198 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestWithCatalogs) { | 190 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestWithCatalogs) { |
| 199 // It will self-delete once it exits OnCompletedRequest. | 191 // It will self-delete once it exits OnCompletedRequest. |
| 200 ExtensionLocalizationPeer* filter_peer = | 192 ExtensionLocalizationPeer* filter_peer = |
| 201 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_2)); | 193 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_2)); |
| 202 | 194 |
| 203 L10nMessagesMap messages; | 195 L10nMessagesMap messages; |
| 204 messages.insert(std::make_pair("text", "new text")); | 196 messages.insert(std::make_pair("text", "new text")); |
| 205 ExtensionToL10nMessagesMap& l10n_messages_map = | 197 ExtensionToL10nMessagesMap& l10n_messages_map = |
| 206 *GetExtensionToL10nMessagesMap(); | 198 *GetExtensionToL10nMessagesMap(); |
| 207 l10n_messages_map["some_id2"] = messages; | 199 l10n_messages_map["some_id2"] = messages; |
| 208 | 200 |
| 209 SetData(filter_peer, "some __MSG_text__"); | 201 SetData(filter_peer, "some __MSG_text__"); |
| 210 | 202 |
| 211 // We already have messages in memory, Send will be skipped. | 203 // We already have messages in memory, Send will be skipped. |
| 212 EXPECT_CALL(*sender_, Send(_)).Times(0); | 204 EXPECT_CALL(*sender_, Send(_)).Times(0); |
| 213 | 205 |
| 214 // __MSG_text__ gets replaced with "new text". | 206 // __MSG_text__ gets replaced with "new text". |
| 215 std::string data("some new text"); | 207 std::string data("some new text"); |
| 216 EXPECT_CALL(*original_peer_, | 208 EXPECT_CALL(*original_peer_, |
| 217 OnReceivedData(StrEq(data.data()), data.length(), -1)); | 209 OnReceivedData(StrEq(data.data()), data.length(), -1)); |
| 218 | 210 |
| 219 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); | 211 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); |
| 220 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 212 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
| 221 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", | 213 net::OK, "", base::TimeTicks())); |
| 222 base::TimeTicks())); | |
| 223 | 214 |
| 224 net::URLRequestStatus status; | 215 filter_peer->OnCompletedRequest(net::OK, "", base::TimeTicks()); |
| 225 status.set_status(net::URLRequestStatus::SUCCESS); | |
| 226 filter_peer->OnCompletedRequest(status, "", base::TimeTicks()); | |
| 227 } | 216 } |
| 228 | 217 |
| 229 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestReplaceMessagesFails) { | 218 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestReplaceMessagesFails) { |
| 230 // It will self-delete once it exits OnCompletedRequest. | 219 // It will self-delete once it exits OnCompletedRequest. |
| 231 ExtensionLocalizationPeer* filter_peer = | 220 ExtensionLocalizationPeer* filter_peer = |
| 232 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_3)); | 221 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_3)); |
| 233 | 222 |
| 234 L10nMessagesMap messages; | 223 L10nMessagesMap messages; |
| 235 messages.insert(std::make_pair("text", "new text")); | 224 messages.insert(std::make_pair("text", "new text")); |
| 236 ExtensionToL10nMessagesMap& l10n_messages_map = | 225 ExtensionToL10nMessagesMap& l10n_messages_map = |
| 237 *GetExtensionToL10nMessagesMap(); | 226 *GetExtensionToL10nMessagesMap(); |
| 238 l10n_messages_map["some_id3"] = messages; | 227 l10n_messages_map["some_id3"] = messages; |
| 239 | 228 |
| 240 std::string message("some __MSG_missing_message__"); | 229 std::string message("some __MSG_missing_message__"); |
| 241 SetData(filter_peer, message); | 230 SetData(filter_peer, message); |
| 242 | 231 |
| 243 // We already have messages in memory, Send will be skipped. | 232 // We already have messages in memory, Send will be skipped. |
| 244 EXPECT_CALL(*sender_, Send(_)).Times(0); | 233 EXPECT_CALL(*sender_, Send(_)).Times(0); |
| 245 | 234 |
| 246 // __MSG_missing_message__ is missing, so message stays the same. | 235 // __MSG_missing_message__ is missing, so message stays the same. |
| 247 EXPECT_CALL(*original_peer_, | 236 EXPECT_CALL(*original_peer_, |
| 248 OnReceivedData(StrEq(message.data()), message.length(), -1)); | 237 OnReceivedData(StrEq(message.data()), message.length(), -1)); |
| 249 | 238 |
| 250 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); | 239 EXPECT_CALL(*original_peer_, OnReceivedResponse(_)); |
| 251 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 240 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
| 252 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", | 241 net::OK, "", base::TimeTicks())); |
| 253 base::TimeTicks())); | |
| 254 | 242 |
| 255 net::URLRequestStatus status; | 243 filter_peer->OnCompletedRequest(net::OK, "", base::TimeTicks()); |
| 256 status.set_status(net::URLRequestStatus::SUCCESS); | |
| 257 filter_peer->OnCompletedRequest(status, "", base::TimeTicks()); | |
| 258 } | 244 } |
| OLD | NEW |