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

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

Issue 2822032: TranslateInfoBarDelegate2 were leaked. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Fixed unit-test Created 10 years, 5 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 | « chrome/browser/translate/translate_infobar_delegate2.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 "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/app/chrome_dll_resource.h" 8 #include "chrome/app/chrome_dll_resource.h"
9 #include "chrome/browser/renderer_host/mock_render_process_host.h" 9 #include "chrome/browser/renderer_host/mock_render_process_host.h"
10 #include "chrome/browser/tab_contents/render_view_context_menu.h" 10 #include "chrome/browser/tab_contents/render_view_context_menu.h"
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 296
297 // Simulate the render notifying the translation has been done. 297 // Simulate the render notifying the translation has been done.
298 rvh()->TestOnMessageReceived(ViewHostMsg_PageTranslated(0, 0, "fr", "en", 298 rvh()->TestOnMessageReceived(ViewHostMsg_PageTranslated(0, 0, "fr", "en",
299 TranslateErrors::NONE)); 299 TranslateErrors::NONE));
300 300
301 // The after translate infobar should be showing. 301 // The after translate infobar should be showing.
302 infobar = GetTranslateInfoBar(); 302 infobar = GetTranslateInfoBar();
303 ASSERT_TRUE(infobar != NULL); 303 ASSERT_TRUE(infobar != NULL);
304 EXPECT_EQ(TranslateInfoBarDelegate2::AFTER_TRANSLATE, infobar->type()); 304 EXPECT_EQ(TranslateInfoBarDelegate2::AFTER_TRANSLATE, infobar->type());
305 305
306 // Simulate translating again from there but with 2 different languages. 306 // Simulate changing the original language, this should trigger a translation.
307 process()->sink().ClearMessages();
308 std::string new_original_lang = infobar->GetLanguageCodeAt(0);
307 infobar->SetOriginalLanguage(0); 309 infobar->SetOriginalLanguage(0);
310 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
311 EXPECT_EQ(0, page_id);
312 EXPECT_EQ(new_original_lang, original_lang);
313 EXPECT_EQ("en", target_lang);
314 // Simulate the render notifying the translation has been done.
315 rvh()->TestOnMessageReceived(ViewHostMsg_PageTranslated(0, 0,
316 new_original_lang, "en", TranslateErrors::NONE));
317 // infobar is now invalid.
318 TranslateInfoBarDelegate2* new_infobar = GetTranslateInfoBar();
319 ASSERT_TRUE(new_infobar != NULL);
320 EXPECT_NE(infobar, new_infobar);
321 infobar = new_infobar;
322
323 // Simulate changing the target language, this should trigger a translation.
324 process()->sink().ClearMessages();
325 std::string new_target_lang = infobar->GetLanguageCodeAt(1);
308 infobar->SetTargetLanguage(1); 326 infobar->SetTargetLanguage(1);
309 std::string new_original_lang = infobar->GetOriginalLanguageCode();
310 std::string new_target_lang = infobar->GetTargetLanguageCode();
311 process()->sink().ClearMessages();
312 infobar->Translate();
313
314 // Test that we sent the right message to the renderer.
315 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 327 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
316 EXPECT_EQ(0, page_id); 328 EXPECT_EQ(0, page_id);
317 EXPECT_EQ(new_original_lang, original_lang); 329 EXPECT_EQ(new_original_lang, original_lang);
318 EXPECT_EQ(new_target_lang, target_lang); 330 EXPECT_EQ(new_target_lang, target_lang);
331 // Simulate the render notifying the translation has been done.
332 rvh()->TestOnMessageReceived(ViewHostMsg_PageTranslated(0, 0,
333 new_original_lang, new_target_lang, TranslateErrors::NONE));
334 // infobar is now invalid.
335 new_infobar = GetTranslateInfoBar();
336 ASSERT_TRUE(new_infobar != NULL);
337 EXPECT_NE(infobar, new_infobar);
319 } 338 }
320 339
321 TEST_F(TranslateManager2Test, TranslateScriptNotAvailable) { 340 TEST_F(TranslateManager2Test, TranslateScriptNotAvailable) {
322 // Simulate navigating to a page. 341 // Simulate navigating to a page.
323 SimulateNavigation(GURL("http://www.google.fr"), 0, "Le Google", "fr"); 342 SimulateNavigation(GURL("http://www.google.fr"), 0, "Le Google", "fr");
324 343
325 // We should have an infobar. 344 // We should have an infobar.
326 TranslateInfoBarDelegate2* infobar = GetTranslateInfoBar(); 345 TranslateInfoBarDelegate2* infobar = GetTranslateInfoBar();
327 ASSERT_TRUE(infobar != NULL); 346 ASSERT_TRUE(infobar != NULL);
328 EXPECT_EQ(TranslateInfoBarDelegate2::BEFORE_TRANSLATE, infobar->type()); 347 EXPECT_EQ(TranslateInfoBarDelegate2::BEFORE_TRANSLATE, infobar->type());
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after
901 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 920 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
902 921
903 // Test that the translate context menu is disabled when the page is in the 922 // Test that the translate context menu is disabled when the page is in the
904 // same language as the UI. 923 // same language as the UI.
905 SimulateNavigation(url, 0, "Google", "en"); 924 SimulateNavigation(url, 0, "Google", "en");
906 menu.reset(TestRenderViewContextMenu::CreateContextMenu(contents())); 925 menu.reset(TestRenderViewContextMenu::CreateContextMenu(contents()));
907 menu->Init(); 926 menu->Init();
908 EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE)); 927 EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE));
909 EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE)); 928 EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE));
910 } 929 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_infobar_delegate2.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698