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

Side by Side Diff: components/translate/ios/browser/language_detection_controller_unittest.mm

Issue 2813703002: [ObjC ARC] Converts components/translate/ios/browser:unit_tests to ARC. (Closed)
Patch Set: make_unique Created 3 years, 8 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/language_detection_controller.h" 5 #import "components/translate/ios/browser/language_detection_controller.h"
6 6
7 #include "base/mac/bind_objc_block.h" 7 #include "base/mac/bind_objc_block.h"
8 #include "base/memory/ptr_util.h"
8 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
9 #include "components/prefs/pref_registry_simple.h" 10 #include "components/prefs/pref_registry_simple.h"
10 #include "components/prefs/testing_pref_service.h" 11 #include "components/prefs/testing_pref_service.h"
11 #include "components/translate/core/common/translate_pref_names.h" 12 #include "components/translate/core/common/translate_pref_names.h"
12 #import "components/translate/ios/browser/js_language_detection_manager.h" 13 #import "components/translate/ios/browser/js_language_detection_manager.h"
13 #import "ios/web/public/test/fakes/test_web_state.h" 14 #import "ios/web/public/test/fakes/test_web_state.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 #include "testing/platform_test.h" 16 #include "testing/platform_test.h"
16 17
18 #if !defined(__has_feature) || !__has_feature(objc_arc)
19 #error "This file requires ARC support."
20 #endif
21
17 @interface MockJsLanguageDetectionManager : JsLanguageDetectionManager 22 @interface MockJsLanguageDetectionManager : JsLanguageDetectionManager
18 @end 23 @end
19 24
20 @implementation MockJsLanguageDetectionManager 25 @implementation MockJsLanguageDetectionManager
21 - (void)retrieveBufferedTextContent: 26 - (void)retrieveBufferedTextContent:
22 (const language_detection::BufferedTextCallback&)callback { 27 (const language_detection::BufferedTextCallback&)callback {
23 callback.Run(base::UTF8ToUTF16("Some content")); 28 callback.Run(base::UTF8ToUTF16("Some content"));
24 } 29 }
25 @end 30 @end
26 31
27 namespace translate { 32 namespace translate {
28 33
29 namespace { 34 namespace {
30 35
31 class LanguageDetectionControllerTest : public PlatformTest { 36 class LanguageDetectionControllerTest : public PlatformTest {
32 protected: 37 protected:
33 LanguageDetectionControllerTest() { 38 LanguageDetectionControllerTest() {
34 prefs_.registry()->RegisterBooleanPref(prefs::kEnableTranslate, true); 39 prefs_.registry()->RegisterBooleanPref(prefs::kEnableTranslate, true);
35 40
36 base::scoped_nsobject<MockJsLanguageDetectionManager> js_manager( 41 MockJsLanguageDetectionManager* js_manager =
37 [[MockJsLanguageDetectionManager alloc] init]); 42 [[MockJsLanguageDetectionManager alloc] init];
38 controller_.reset(new LanguageDetectionController( 43 controller_ = base::MakeUnique<LanguageDetectionController>(
39 &web_state_, js_manager.get(), &prefs_)); 44 &web_state_, js_manager, &prefs_);
40 } 45 }
41 46
42 LanguageDetectionController* controller() { return controller_.get(); } 47 LanguageDetectionController* controller() { return controller_.get(); }
43 48
44 private: 49 private:
45 TestingPrefServiceSimple prefs_; 50 TestingPrefServiceSimple prefs_;
46 web::TestWebState web_state_; 51 web::TestWebState web_state_;
47 std::unique_ptr<LanguageDetectionController> controller_; 52 std::unique_ptr<LanguageDetectionController> controller_;
48 }; 53 };
49 54
50 } // namespace 55 } // namespace
51 56
52 // Tests that OnTextCaptured() correctly handles messages from the JS side and 57 // Tests that OnTextCaptured() correctly handles messages from the JS side and
53 // informs the driver. 58 // informs the driver.
54 TEST_F(LanguageDetectionControllerTest, OnTextCaptured) { 59 TEST_F(LanguageDetectionControllerTest, OnTextCaptured) {
55 const std::string kRootLanguage("en"); 60 const std::string kRootLanguage("en");
56 const std::string kContentLanguage("fr"); 61 const std::string kContentLanguage("fr");
57 62
58 __block bool block_was_called = false; 63 __block bool block_was_called = false;
59 auto subscription = 64 auto subscription =
60 controller()->RegisterLanguageDetectionCallback(base::BindBlock( 65 controller()->RegisterLanguageDetectionCallback(base::BindBlockArc(
61 ^(const LanguageDetectionController::DetectionDetails& details) { 66 ^(const LanguageDetectionController::DetectionDetails& details) {
62 block_was_called = true; 67 block_was_called = true;
63 EXPECT_EQ(kRootLanguage, details.html_root_language); 68 EXPECT_EQ(kRootLanguage, details.html_root_language);
64 EXPECT_EQ(kContentLanguage, details.content_language); 69 EXPECT_EQ(kContentLanguage, details.content_language);
65 })); 70 }));
66 71
67 base::DictionaryValue command; 72 base::DictionaryValue command;
68 command.SetString("command", "languageDetection.textCaptured"); 73 command.SetString("command", "languageDetection.textCaptured");
69 command.SetBoolean("translationAllowed", true); 74 command.SetBoolean("translationAllowed", true);
70 command.SetInteger("captureTextTime", 10); 75 command.SetInteger("captureTextTime", 10);
71 command.SetString("htmlLang", kRootLanguage); 76 command.SetString("htmlLang", kRootLanguage);
72 command.SetString("httpContentLanguage", kContentLanguage); 77 command.SetString("httpContentLanguage", kContentLanguage);
73 controller()->OnTextCaptured(command, GURL("http://google.com"), false); 78 controller()->OnTextCaptured(command, GURL("http://google.com"), false);
74 79
75 EXPECT_TRUE(block_was_called); 80 EXPECT_TRUE(block_was_called);
76 } 81 }
77 82
78 } // namespace translate 83 } // namespace translate
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698