| OLD | NEW |
| 1 // Copyright (c) 2010 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" |
| 11 #include "ipc/ipc_message.h" | 11 #include "ipc/ipc_message.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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_METHOD2(OnReceivedResponse, void( |
| 67 const webkit_glue::ResourceResponseInfo& info, | 67 const webkit_glue::ResourceResponseInfo& info, |
| 68 bool content_filtered)); | 68 bool content_filtered)); |
| 69 MOCK_METHOD1(OnDownloadedData, void(int len)); | 69 MOCK_METHOD1(OnDownloadedData, void(int len)); |
| 70 MOCK_METHOD2(OnReceivedData, void(const char* data, int len)); | 70 MOCK_METHOD2(OnReceivedData, void(const char* data, int len)); |
| 71 MOCK_METHOD3(OnCompletedRequest, void( | 71 MOCK_METHOD3(OnCompletedRequest, void( |
| 72 const URLRequestStatus& status, | 72 const net::URLRequestStatus& status, |
| 73 const std::string& security_info, | 73 const std::string& security_info, |
| 74 const base::Time& completion_time)); | 74 const base::Time& completion_time)); |
| 75 | 75 |
| 76 private: | 76 private: |
| 77 DISALLOW_COPY_AND_ASSIGN(MockResourceLoaderBridgePeer); | 77 DISALLOW_COPY_AND_ASSIGN(MockResourceLoaderBridgePeer); |
| 78 }; | 78 }; |
| 79 | 79 |
| 80 class ExtensionLocalizationPeerTest : public testing::Test { | 80 class ExtensionLocalizationPeerTest : public testing::Test { |
| 81 protected: | 81 protected: |
| 82 virtual void SetUp() { | 82 virtual void SetUp() { |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 } | 134 } |
| 135 | 135 |
| 136 MATCHER_P(IsURLRequestEqual, status, "") { return arg.status() == status; } | 136 MATCHER_P(IsURLRequestEqual, status, "") { return arg.status() == status; } |
| 137 | 137 |
| 138 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestBadURLRequestStatus) { | 138 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestBadURLRequestStatus) { |
| 139 // It will self-delete once it exits OnCompletedRequest. | 139 // It will self-delete once it exits OnCompletedRequest. |
| 140 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); | 140 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); |
| 141 | 141 |
| 142 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); | 142 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); |
| 143 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 143 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
| 144 IsURLRequestEqual(URLRequestStatus::CANCELED), "", base::Time())); | 144 IsURLRequestEqual(net::URLRequestStatus::CANCELED), "", base::Time())); |
| 145 | 145 |
| 146 URLRequestStatus status; | 146 net::URLRequestStatus status; |
| 147 status.set_status(URLRequestStatus::FAILED); | 147 status.set_status(net::URLRequestStatus::FAILED); |
| 148 filter_peer->OnCompletedRequest(status, "", base::Time()); | 148 filter_peer->OnCompletedRequest(status, "", base::Time()); |
| 149 } | 149 } |
| 150 | 150 |
| 151 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestEmptyData) { | 151 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestEmptyData) { |
| 152 // It will self-delete once it exits OnCompletedRequest. | 152 // It will self-delete once it exits OnCompletedRequest. |
| 153 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); | 153 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); |
| 154 | 154 |
| 155 EXPECT_CALL(*original_peer_, OnReceivedData(_, _)).Times(0); | 155 EXPECT_CALL(*original_peer_, OnReceivedData(_, _)).Times(0); |
| 156 EXPECT_CALL(*sender_, Send(_)).Times(0); | 156 EXPECT_CALL(*sender_, Send(_)).Times(0); |
| 157 | 157 |
| 158 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); | 158 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); |
| 159 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 159 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
| 160 IsURLRequestEqual(URLRequestStatus::SUCCESS), "", base::Time())); | 160 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); |
| 161 | 161 |
| 162 URLRequestStatus status; | 162 net::URLRequestStatus status; |
| 163 status.set_status(URLRequestStatus::SUCCESS); | 163 status.set_status(net::URLRequestStatus::SUCCESS); |
| 164 filter_peer->OnCompletedRequest(status, "", base::Time()); | 164 filter_peer->OnCompletedRequest(status, "", base::Time()); |
| 165 } | 165 } |
| 166 | 166 |
| 167 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestNoCatalogs) { | 167 TEST_F(ExtensionLocalizationPeerTest, OnCompletedRequestNoCatalogs) { |
| 168 // It will self-delete once it exits OnCompletedRequest. | 168 // It will self-delete once it exits OnCompletedRequest. |
| 169 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); | 169 ExtensionLocalizationPeer* filter_peer = filter_peer_.release(); |
| 170 | 170 |
| 171 SetData(filter_peer, "some text"); | 171 SetData(filter_peer, "some text"); |
| 172 | 172 |
| 173 EXPECT_CALL(*sender_, Send(_)); | 173 EXPECT_CALL(*sender_, Send(_)); |
| 174 | 174 |
| 175 std::string data = GetData(filter_peer); | 175 std::string data = GetData(filter_peer); |
| 176 EXPECT_CALL(*original_peer_, | 176 EXPECT_CALL(*original_peer_, |
| 177 OnReceivedData(StrEq(data.data()), data.length())).Times(2); | 177 OnReceivedData(StrEq(data.data()), data.length())).Times(2); |
| 178 | 178 |
| 179 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)).Times(2); | 179 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)).Times(2); |
| 180 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 180 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
| 181 IsURLRequestEqual(URLRequestStatus::SUCCESS), "", base::Time())).Times(2); | 181 IsURLRequestEqual( |
| 182 net::URLRequestStatus::SUCCESS), "", base::Time())).Times(2); |
| 182 | 183 |
| 183 URLRequestStatus status; | 184 net::URLRequestStatus status; |
| 184 status.set_status(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 |
| 187 // Test if Send gets called again (it shouldn't be) when first call returned | 188 // Test if Send gets called again (it shouldn't be) when first call returned |
| 188 // an empty dictionary. | 189 // an empty dictionary. |
| 189 filter_peer = | 190 filter_peer = |
| 190 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_1)); | 191 CreateExtensionLocalizationPeer("text/css", GURL(kExtensionUrl_1)); |
| 191 SetData(filter_peer, "some text"); | 192 SetData(filter_peer, "some text"); |
| 192 filter_peer->OnCompletedRequest(status, "", base::Time()); | 193 filter_peer->OnCompletedRequest(status, "", base::Time()); |
| 193 } | 194 } |
| 194 | 195 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 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())); |
| 215 | 216 |
| 216 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); | 217 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); |
| 217 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 218 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
| 218 IsURLRequestEqual(URLRequestStatus::SUCCESS), "", base::Time())); | 219 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); |
| 219 | 220 |
| 220 URLRequestStatus status; | 221 net::URLRequestStatus status; |
| 221 status.set_status(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())); |
| 245 | 246 |
| 246 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); | 247 EXPECT_CALL(*original_peer_, OnReceivedResponse(_, true)); |
| 247 EXPECT_CALL(*original_peer_, OnCompletedRequest( | 248 EXPECT_CALL(*original_peer_, OnCompletedRequest( |
| 248 IsURLRequestEqual(URLRequestStatus::SUCCESS), "", base::Time())); | 249 IsURLRequestEqual(net::URLRequestStatus::SUCCESS), "", base::Time())); |
| 249 | 250 |
| 250 URLRequestStatus status; | 251 net::URLRequestStatus status; |
| 251 status.set_status(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 |