OLD | NEW |
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/translate_controller.h" | 5 #import "components/translate/ios/browser/translate_controller.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
| 9 #include "base/memory/ptr_util.h" |
9 #include "base/values.h" | 10 #include "base/values.h" |
10 #import "components/translate/ios/browser/js_translate_manager.h" | 11 #import "components/translate/ios/browser/js_translate_manager.h" |
11 #import "ios/web/public/test/fakes/test_web_state.h" | 12 #import "ios/web/public/test/fakes/test_web_state.h" |
12 #include "testing/platform_test.h" | 13 #include "testing/platform_test.h" |
13 #import "third_party/ocmock/OCMock/OCMock.h" | 14 #import "third_party/ocmock/OCMock/OCMock.h" |
14 #include "url/gurl.h" | 15 #include "url/gurl.h" |
15 | 16 |
| 17 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 18 #error "This file requires ARC support." |
| 19 #endif |
| 20 |
16 namespace translate { | 21 namespace translate { |
17 | 22 |
18 class TranslateControllerTest : public PlatformTest, | 23 class TranslateControllerTest : public PlatformTest, |
19 public TranslateController::Observer { | 24 public TranslateController::Observer { |
20 protected: | 25 protected: |
21 TranslateControllerTest() | 26 TranslateControllerTest() |
22 : test_web_state_(new web::TestWebState), | 27 : test_web_state_(new web::TestWebState), |
23 success_(false), | 28 success_(false), |
24 ready_time_(0), | 29 ready_time_(0), |
25 load_time_(0), | 30 load_time_(0), |
26 translation_time_(0), | 31 translation_time_(0), |
27 on_script_ready_called_(false), | 32 on_script_ready_called_(false), |
28 on_translate_complete_called_(false) { | 33 on_translate_complete_called_(false) { |
29 mock_js_translate_manager_.reset( | 34 mock_js_translate_manager_ = |
30 [[OCMockObject niceMockForClass:[JsTranslateManager class]] retain]); | 35 [OCMockObject niceMockForClass:[JsTranslateManager class]]; |
31 translate_controller_.reset(new TranslateController( | 36 translate_controller_ = base::MakeUnique<TranslateController>( |
32 test_web_state_.get(), mock_js_translate_manager_)); | 37 test_web_state_.get(), mock_js_translate_manager_); |
33 translate_controller_->set_observer(this); | 38 translate_controller_->set_observer(this); |
34 } | 39 } |
35 | 40 |
36 // TranslateController::Observer methods. | 41 // TranslateController::Observer methods. |
37 void OnTranslateScriptReady(bool success, | 42 void OnTranslateScriptReady(bool success, |
38 double load_time, | 43 double load_time, |
39 double ready_time) override { | 44 double ready_time) override { |
40 on_script_ready_called_ = true; | 45 on_script_ready_called_ = true; |
41 success_ = success; | 46 success_ = success; |
42 load_time_ = load_time; | 47 load_time_ = load_time; |
43 ready_time_ = ready_time; | 48 ready_time_ = ready_time; |
44 } | 49 } |
45 | 50 |
46 void OnTranslateComplete(bool success, | 51 void OnTranslateComplete(bool success, |
47 const std::string& original_language, | 52 const std::string& original_language, |
48 double translation_time) override { | 53 double translation_time) override { |
49 on_translate_complete_called_ = true; | 54 on_translate_complete_called_ = true; |
50 success_ = success; | 55 success_ = success; |
51 original_language_ = original_language; | 56 original_language_ = original_language; |
52 translation_time_ = translation_time; | 57 translation_time_ = translation_time; |
53 } | 58 } |
54 | 59 |
55 std::unique_ptr<web::TestWebState> test_web_state_; | 60 std::unique_ptr<web::TestWebState> test_web_state_; |
56 base::scoped_nsobject<id> mock_js_translate_manager_; | 61 id mock_js_translate_manager_; |
57 std::unique_ptr<TranslateController> translate_controller_; | 62 std::unique_ptr<TranslateController> translate_controller_; |
58 bool success_; | 63 bool success_; |
59 double ready_time_; | 64 double ready_time_; |
60 double load_time_; | 65 double load_time_; |
61 std::string original_language_; | 66 std::string original_language_; |
62 double translation_time_; | 67 double translation_time_; |
63 bool on_script_ready_called_; | 68 bool on_script_ready_called_; |
64 bool on_translate_complete_called_; | 69 bool on_translate_complete_called_; |
65 }; | 70 }; |
66 | 71 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 command.SetString("command", "translate.status"); | 140 command.SetString("command", "translate.status"); |
136 command.SetBoolean("success", false); | 141 command.SetBoolean("success", false); |
137 EXPECT_TRUE(translate_controller_->OnJavascriptCommandReceived( | 142 EXPECT_TRUE(translate_controller_->OnJavascriptCommandReceived( |
138 command, GURL("http://google.com"), false)); | 143 command, GURL("http://google.com"), false)); |
139 EXPECT_FALSE(on_script_ready_called_); | 144 EXPECT_FALSE(on_script_ready_called_); |
140 EXPECT_TRUE(on_translate_complete_called_); | 145 EXPECT_TRUE(on_translate_complete_called_); |
141 EXPECT_FALSE(success_); | 146 EXPECT_FALSE(success_); |
142 } | 147 } |
143 | 148 |
144 } // namespace translate | 149 } // namespace translate |
OLD | NEW |