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

Side by Side Diff: chrome/browser/translate/translate_manager_unittest.cc

Issue 601069: Fix the TranslateManager and unit-tests.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/translate/translate_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/renderer_host/test/test_render_view_host.h" 5 #include "chrome/browser/renderer_host/test/test_render_view_host.h"
6 6
7 #include "chrome/browser/renderer_host/mock_render_process_host.h" 7 #include "chrome/browser/renderer_host/mock_render_process_host.h"
8 #include "chrome/browser/translate/translate_infobars_delegates.h" 8 #include "chrome/browser/translate/translate_infobars_delegates.h"
9 #include "chrome/browser/translate/translate_manager.h" 9 #include "chrome/browser/translate/translate_manager.h"
10 #include "chrome/common/ipc_test_sink.h" 10 #include "chrome/common/ipc_test_sink.h"
11 #include "chrome/common/render_messages.h" 11 #include "chrome/common/render_messages.h"
12 12
13 class TestTranslateManager : public TranslateManager { 13 class TestTranslateManager : public TranslateManager {
14 public: 14 public:
15 TestTranslateManager() {} 15 TestTranslateManager() {}
16
17 protected:
18 virtual bool TestEnabled() { return true; }
19 }; 16 };
20 17
21 class TranslateManagerTest : public RenderViewHostTestHarness { 18 class TranslateManagerTest : public RenderViewHostTestHarness {
22 public: 19 public:
23 // Simluates navigating to a page and getting teh page contents and language 20 // Simluates navigating to a page and getting teh page contents and language
24 // for that navigation. 21 // for that navigation.
25 void SimulateNavigation(const GURL& url, int page_id, 22 void SimulateNavigation(const GURL& url, int page_id,
26 const std::wstring& contents, 23 const std::wstring& contents,
27 const std::string& lang) { 24 const std::string& lang) {
28 NavigateAndCommit(url); 25 NavigateAndCommit(url);
29 rvh()->TestOnMessageReceived(ViewHostMsg_PageContents(0, url, page_id, 26 rvh()->TestOnMessageReceived(ViewHostMsg_PageContents(0, url, page_id,
30 contents, lang)); 27 contents, lang));
31 } 28 }
32 29
33 bool GetTranslateMessage(int* page_id, 30 bool GetTranslateMessage(int* page_id,
34 std::string* original_lang, 31 std::string* original_lang,
35 std::string* target_lang) { 32 std::string* target_lang) {
36 const IPC::Message* message = 33 const IPC::Message* message =
37 process()->sink().GetFirstMessageMatching(ViewMsg_TranslatePage::ID); 34 process()->sink().GetFirstMessageMatching(ViewMsg_TranslatePage::ID);
38 if (!message) 35 if (!message)
39 return false; 36 return false;
40 Tuple3<int, std::string, std::string> translate_param; 37 Tuple3<int, std::string, std::string> translate_param;
41 ViewMsg_TranslatePage::Read(message, &translate_param); 38 ViewMsg_TranslatePage::Read(message, &translate_param);
42 *page_id = translate_param.a; 39 *page_id = translate_param.a;
43 *original_lang = translate_param.b; 40 *original_lang = translate_param.b;
44 *target_lang = translate_param.c; 41 *target_lang = translate_param.c;
45 return true; 42 return true;
46 } 43 }
47 44
45 protected:
46 virtual void SetUp() {
47 RenderViewHostTestHarness::SetUp();
48
49 TranslateManager::set_test_enabled(true);
50 // This must be created after set_test_enabled() has been called to register
51 // notifications properly.
52 translate_manager_.reset(new TestTranslateManager());
53 }
54
55 virtual void TearDown() {
56 RenderViewHostTestHarness::TearDown();
57
58 TranslateManager::set_test_enabled(false);
59 }
60
48 private: 61 private:
49 TestTranslateManager translate_manager_; 62 scoped_ptr<TestTranslateManager> translate_manager_;
50 }; 63 };
51 64
52 TEST_F(TranslateManagerTest, NormalTranslate) { 65 TEST_F(TranslateManagerTest, NormalTranslate) {
53 // Simulate navigating to a page. 66 // Simulate navigating to a page.
54 SimulateNavigation(GURL("http://www.google.fr"), 0, L"Le Google", "fr"); 67 SimulateNavigation(GURL("http://www.google.fr"), 0, L"Le Google", "fr");
55 68
56 // We should have an info-bar. 69 // We should have an info-bar.
57 ASSERT_EQ(1, contents()->infobar_delegate_count()); 70 ASSERT_EQ(1, contents()->infobar_delegate_count());
58 TranslateInfoBarDelegate* infobar = 71 TranslateInfoBarDelegate* infobar =
59 contents()->GetInfoBarDelegateAt(0)->AsTranslateInfoBarDelegate(); 72 contents()->GetInfoBarDelegateAt(0)->AsTranslateInfoBarDelegate();
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 EXPECT_EQ("fr", original_lang); 146 EXPECT_EQ("fr", original_lang);
134 EXPECT_EQ("en", target_lang); 147 EXPECT_EQ("en", target_lang);
135 148
136 // Now navigate to a page in a different language. 149 // Now navigate to a page in a different language.
137 process()->sink().ClearMessages(); 150 process()->sink().ClearMessages();
138 SimulateNavigation(GURL("http://news.google.es"), 1, L"Las news", "es"); 151 SimulateNavigation(GURL("http://news.google.es"), 1, L"Las news", "es");
139 152
140 // This should not have triggered a translate. 153 // This should not have triggered a translate.
141 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 154 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
142 } 155 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698