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

Side by Side Diff: ios/chrome/browser/translate/js_language_detection_manager_unittest.mm

Issue 2617243002: Remove ScopedVector from ios/. (Closed)
Patch Set: rebase Created 3 years, 11 months 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
« no previous file with comments | « no previous file | ios/chrome/browser/ui/bookmarks/bookmark_all_collection_view.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #import "components/translate/ios/browser/js_language_detection_manager.h" 5 #import "components/translate/ios/browser/js_language_detection_manager.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include <memory>
10 #include <vector>
11
9 #include "base/bind.h" 12 #include "base/bind.h"
10 #include "base/mac/scoped_nsobject.h" 13 #include "base/mac/scoped_nsobject.h"
11 #include "base/memory/scoped_vector.h"
12 #import "base/test/ios/wait_util.h" 14 #import "base/test/ios/wait_util.h"
13 #include "base/values.h" 15 #include "base/values.h"
14 #import "ios/chrome/browser/web/chrome_web_test.h" 16 #import "ios/chrome/browser/web/chrome_web_test.h"
15 #include "ios/chrome/common/string_util.h" 17 #include "ios/chrome/common/string_util.h"
16 #import "ios/web/public/test/js_test_util.h" 18 #import "ios/web/public/test/js_test_util.h"
17 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h" 19 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h"
18 #import "ios/web/public/web_state/web_state.h" 20 #import "ios/web/public/web_state/web_state.h"
19 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
20 #include "testing/gtest_mac.h" 22 #include "testing/gtest_mac.h"
21 23
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 web_state()->AddScriptCommandCallback(callback, "languageDetection"); 267 web_state()->AddScriptCommandCallback(callback, "languageDetection");
266 } 268 }
267 void TearDown() override { 269 void TearDown() override {
268 web_state()->RemoveScriptCommandCallback("languageDetection"); 270 web_state()->RemoveScriptCommandCallback("languageDetection");
269 JsLanguageDetectionManagerTest::TearDown(); 271 JsLanguageDetectionManagerTest::TearDown();
270 } 272 }
271 // Called when "languageDetection" command is received. 273 // Called when "languageDetection" command is received.
272 bool CommandReceived(const base::DictionaryValue& command, 274 bool CommandReceived(const base::DictionaryValue& command,
273 const GURL&, 275 const GURL&,
274 bool) { 276 bool) {
275 commands_received_.push_back(command.DeepCopy()); 277 commands_received_.push_back(command.CreateDeepCopy());
276 return true; 278 return true;
277 } 279 }
278 280
279 protected: 281 protected:
280 // Received "languageDetection" commands. 282 // Received "languageDetection" commands.
281 ScopedVector<base::DictionaryValue> commands_received_; 283 std::vector<std::unique_ptr<base::DictionaryValue>> commands_received_;
282 }; 284 };
283 285
284 // Tests if |__gCrWeb.languageDetection.detectLanguage| correctly informs the 286 // Tests if |__gCrWeb.languageDetection.detectLanguage| correctly informs the
285 // native side when translation is not allowed. 287 // native side when translation is not allowed.
286 TEST_F(JsLanguageDetectionManagerDetectLanguageTest, 288 TEST_F(JsLanguageDetectionManagerDetectLanguageTest,
287 DetectLanguageTranslationNotAllowed) { 289 DetectLanguageTranslationNotAllowed) {
288 LoadHtmlAndInject(@"<html></html>"); 290 LoadHtmlAndInject(@"<html></html>");
289 [manager_ startLanguageDetection]; 291 [manager_ startLanguageDetection];
290 // Wait until the original injection has recived a command. 292 // Wait until the original injection has recived a command.
291 base::test::ios::WaitUntilCondition(^bool() { 293 base::test::ios::WaitUntilCondition(^bool() {
292 return !commands_received_.empty(); 294 return !commands_received_.empty();
293 }); 295 });
294 ASSERT_EQ(1U, commands_received_.size()); 296 ASSERT_EQ(1U, commands_received_.size());
295 297
296 commands_received_.clear(); 298 commands_received_.clear();
297 299
298 // Stub out translationAllowed. 300 // Stub out translationAllowed.
299 NSString* const kTranslationAllowedJS = 301 NSString* const kTranslationAllowedJS =
300 @"__gCrWeb.languageDetection.translationAllowed = function() {" 302 @"__gCrWeb.languageDetection.translationAllowed = function() {"
301 @" return false;" 303 @" return false;"
302 @"}"; 304 @"}";
303 [manager_ executeJavaScript:kTranslationAllowedJS completionHandler:nil]; 305 [manager_ executeJavaScript:kTranslationAllowedJS completionHandler:nil];
304 ConditionBlock commands_recieved_block = ^bool { 306 ConditionBlock commands_recieved_block = ^bool {
305 return commands_received_.size(); 307 return commands_received_.size();
306 }; 308 };
307 InjectJSAndWaitUntilCondition(@"__gCrWeb.languageDetection.detectLanguage()", 309 InjectJSAndWaitUntilCondition(@"__gCrWeb.languageDetection.detectLanguage()",
308 commands_recieved_block); 310 commands_recieved_block);
309 ASSERT_EQ(1U, commands_received_.size()); 311 ASSERT_EQ(1U, commands_received_.size());
310 base::DictionaryValue* value = commands_received_[0]; 312 base::DictionaryValue* value = commands_received_[0].get();
311 EXPECT_TRUE(value->HasKey("translationAllowed")); 313 EXPECT_TRUE(value->HasKey("translationAllowed"));
312 bool translation_allowed = true; 314 bool translation_allowed = true;
313 value->GetBoolean("translationAllowed", &translation_allowed); 315 value->GetBoolean("translationAllowed", &translation_allowed);
314 EXPECT_FALSE(translation_allowed); 316 EXPECT_FALSE(translation_allowed);
315 } 317 }
316 318
317 // Tests if |__gCrWeb.languageDetection.detectLanguage| correctly informs the 319 // Tests if |__gCrWeb.languageDetection.detectLanguage| correctly informs the
318 // native side when translation is allowed with the right parameters. 320 // native side when translation is allowed with the right parameters.
319 TEST_F(JsLanguageDetectionManagerDetectLanguageTest, 321 TEST_F(JsLanguageDetectionManagerDetectLanguageTest,
320 DetectLanguageTranslationAllowed) { 322 DetectLanguageTranslationAllowed) {
(...skipping 10 matching lines...) Expand all
331 ASSERT_EQ(1U, commands_received_.size()); 333 ASSERT_EQ(1U, commands_received_.size());
332 334
333 commands_received_.clear(); 335 commands_received_.clear();
334 336
335 [manager_ executeJavaScript:@"__gCrWeb.languageDetection.detectLanguage()" 337 [manager_ executeJavaScript:@"__gCrWeb.languageDetection.detectLanguage()"
336 completionHandler:nil]; 338 completionHandler:nil];
337 base::test::ios::WaitUntilCondition(^bool() { 339 base::test::ios::WaitUntilCondition(^bool() {
338 return !commands_received_.empty(); 340 return !commands_received_.empty();
339 }); 341 });
340 ASSERT_EQ(1U, commands_received_.size()); 342 ASSERT_EQ(1U, commands_received_.size());
341 base::DictionaryValue* value = commands_received_[0]; 343 base::DictionaryValue* value = commands_received_[0].get();
342 344
343 EXPECT_TRUE(value->HasKey("translationAllowed")); 345 EXPECT_TRUE(value->HasKey("translationAllowed"));
344 EXPECT_TRUE(value->HasKey("captureTextTime")); 346 EXPECT_TRUE(value->HasKey("captureTextTime"));
345 EXPECT_TRUE(value->HasKey("htmlLang")); 347 EXPECT_TRUE(value->HasKey("htmlLang"));
346 EXPECT_TRUE(value->HasKey("httpContentLanguage")); 348 EXPECT_TRUE(value->HasKey("httpContentLanguage"));
347 349
348 bool translation_allowed = false; 350 bool translation_allowed = false;
349 value->GetBoolean("translationAllowed", &translation_allowed); 351 value->GetBoolean("translationAllowed", &translation_allowed);
350 EXPECT_TRUE(translation_allowed); 352 EXPECT_TRUE(translation_allowed);
351 } 353 }
OLDNEW
« no previous file with comments | « no previous file | ios/chrome/browser/ui/bookmarks/bookmark_all_collection_view.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698