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

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

Powered by Google App Engine
This is Rietveld 408576698