diff options
author | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-12 20:15:34 +0000 |
---|---|---|
committer | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-12 20:15:34 +0000 |
commit | c025738684582542a2a5cd5ffa2fbdd5ab28f6ce (patch) | |
tree | a5e25311fab5628c430660786a77bb4b2b7456db /chrome/browser/translate | |
parent | 8c0eb70b0f944127475e420765286ac082645dd4 (diff) | |
download | chromium_src-c025738684582542a2a5cd5ffa2fbdd5ab28f6ce.zip chromium_src-c025738684582542a2a5cd5ffa2fbdd5ab28f6ce.tar.gz chromium_src-c025738684582542a2a5cd5ffa2fbdd5ab28f6ce.tar.bz2 |
Introduce abstractions to allow embedders to test RenderViewHost
without knowing about content's internals.
From the embedders' point of view, this is done by splitting the
"tester" interface away from the RenderViewHost interface, rather than
extending the parallel interface/implementation hierarchy; see
comments on TestRenderViewHost for the rationale.
TBR=ben@chromium.org
BUG=98716
Review URL: https://chromiumcodereview.appspot.com/9645003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126200 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/translate')
-rw-r--r-- | chrome/browser/translate/translate_manager_browsertest.cc | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/chrome/browser/translate/translate_manager_browsertest.cc b/chrome/browser/translate/translate_manager_browsertest.cc index 4ab7a43..2bb55cf 100644 --- a/chrome/browser/translate/translate_manager_browsertest.cc +++ b/chrome/browser/translate/translate_manager_browsertest.cc @@ -37,7 +37,9 @@ #include "content/test/notification_observer_mock.h" #include "content/test/render_view_test.h" #include "content/test/test_browser_thread.h" +#include "content/test/test_renderer_host.h" #include "content/test/test_url_fetcher_factory.h" +#include "content/test/test_renderer_host.h" #include "grit/generated_resources.h" #include "ipc/ipc_test_sink.h" #include "testing/gmock/include/gmock/gmock.h" @@ -47,6 +49,7 @@ using content::BrowserThread; using content::NavigationController; +using content::RenderViewHostTester; using content::WebContents; using testing::_; using testing::Pointee; @@ -71,8 +74,9 @@ class TranslateManagerTest : public TabContentsWrapperTestHarness, void SimulateOnTranslateLanguageDetermined(const std::string& lang, bool page_translatable) { - rvh()->TestOnMessageReceived(ChromeViewHostMsg_TranslateLanguageDetermined( - 0, lang, page_translatable)); + rvh_tester()->TestOnMessageReceived( + ChromeViewHostMsg_TranslateLanguageDetermined( + 0, lang, page_translatable)); } bool GetTranslateMessage(int* page_id, @@ -362,7 +366,7 @@ TEST_F(TranslateManagerTest, NormalTranslate) { EXPECT_EQ("en", target_lang); // Simulate the render notifying the translation has been done. - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 0, 0, "fr", "en", TranslateErrors::NONE)); // The after translate infobar should be showing. @@ -378,7 +382,7 @@ TEST_F(TranslateManagerTest, NormalTranslate) { EXPECT_EQ(new_original_lang, original_lang); EXPECT_EQ("en", target_lang); // Simulate the render notifying the translation has been done. - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 0, 0, new_original_lang, "en", TranslateErrors::NONE)); // infobar is now invalid. TranslateInfoBarDelegate* new_infobar = GetTranslateInfoBar(); @@ -393,8 +397,9 @@ TEST_F(TranslateManagerTest, NormalTranslate) { EXPECT_EQ(new_original_lang, original_lang); EXPECT_EQ(new_target_lang, target_lang); // Simulate the render notifying the translation has been done. - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated(0, 0, - new_original_lang, new_target_lang, TranslateErrors::NONE)); + rvh_tester()->TestOnMessageReceived( + ChromeViewHostMsg_PageTranslated( + 0, 0, new_original_lang, new_target_lang, TranslateErrors::NONE)); // infobar is now invalid. new_infobar = GetTranslateInfoBar(); ASSERT_TRUE(new_infobar != NULL); @@ -452,7 +457,7 @@ TEST_F(TranslateManagerTest, TranslateUnknownLanguage) { // Simulate the render notifying the translation has been done, the server // having detected the page was in a known and supported language. - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 0, 0, "fr", "en", TranslateErrors::NONE)); // The after translate infobar should be showing. @@ -468,7 +473,7 @@ TEST_F(TranslateManagerTest, TranslateUnknownLanguage) { menu.reset(TestRenderViewContextMenu::CreateContextMenu(contents())); menu->Init(); menu->ExecuteCommand(IDC_CONTENT_CONTEXT_TRANSLATE); - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 1, 0, "en", "en", TranslateErrors::IDENTICAL_LANGUAGES)); infobar = GetTranslateInfoBar(); ASSERT_TRUE(infobar != NULL); @@ -481,7 +486,7 @@ TEST_F(TranslateManagerTest, TranslateUnknownLanguage) { menu.reset(TestRenderViewContextMenu::CreateContextMenu(contents())); menu->Init(); menu->ExecuteCommand(IDC_CONTENT_CONTEXT_TRANSLATE); - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 2, 0, "", "en", TranslateErrors::UNKNOWN_LANGUAGE)); infobar = GetTranslateInfoBar(); ASSERT_TRUE(infobar != NULL); @@ -681,7 +686,7 @@ TEST_F(TranslateManagerTest, AutoTranslateOnNavigate) { // Simulate the translate script being retrieved. SimulateTranslateScriptURLFetch(true); - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 0, 0, "fr", "en", TranslateErrors::NONE)); // Now navigate to a new page in the same language. @@ -766,7 +771,7 @@ TEST_F(TranslateManagerTest, ReloadFromLocationBar) { contents()->GetController().LoadURL(url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); - rvh()->SendNavigate(0, url); + rvh_tester()->SendNavigate(0, url); // Test that we are really getting a same page navigation, the test would be // useless if it was not the case. @@ -810,13 +815,13 @@ TEST_F(TranslateManagerTest, CloseInfoBarInSubframeNavigation) { EXPECT_TRUE(CloseTranslateInfoBar()); // Simulate a sub-frame auto-navigating. - rvh()->SendNavigateWithTransition(1, GURL("http://pub.com"), - content::PAGE_TRANSITION_AUTO_SUBFRAME); + rvh_tester()->SendNavigateWithTransition( + 1, GURL("http://pub.com"), content::PAGE_TRANSITION_AUTO_SUBFRAME); EXPECT_TRUE(GetTranslateInfoBar() == NULL); // Simulate the user navigating in a sub-frame. - rvh()->SendNavigateWithTransition(2, GURL("http://pub.com"), - content::PAGE_TRANSITION_MANUAL_SUBFRAME); + rvh_tester()->SendNavigateWithTransition( + 2, GURL("http://pub.com"), content::PAGE_TRANSITION_MANUAL_SUBFRAME); EXPECT_TRUE(GetTranslateInfoBar() == NULL); // Navigate out of page, a new infobar should show. @@ -855,7 +860,7 @@ TEST_F(TranslateManagerTest, TranslateCloseInfoBarInPageNavigation) { infobar->Translate(); // Simulate the translate script being retrieved. SimulateTranslateScriptURLFetch(true); - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 0, 0, "fr", "en", TranslateErrors::NONE)); // Close the infobar. @@ -885,7 +890,7 @@ TEST_F(TranslateManagerTest, TranslateInPageNavigation) { infobar->Translate(); // Simulate the translate script being retrieved. SimulateTranslateScriptURLFetch(true); - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 0, 0, "fr", "en", TranslateErrors::NONE)); // The after translate infobar is showing. infobar = GetTranslateInfoBar(); @@ -924,7 +929,7 @@ TEST_F(TranslateManagerTest, ServerReportsUnsupportedLanguage) { SimulateTranslateScriptURLFetch(true); // Simulate the render notifying the translation has been done, but it // reports a language we don't support. - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 0, 0, "qbz", "en", TranslateErrors::NONE)); // An error infobar should be showing to report that we don't support this @@ -1242,7 +1247,7 @@ TEST_F(TranslateManagerTest, ContextMenu) { EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(url.host())); // Let's simulate the page being translated. - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 0, 0, "fr", "en", TranslateErrors::NONE)); // The translate menu should now be disabled. @@ -1278,7 +1283,7 @@ TEST_F(TranslateManagerTest, ContextMenu) { menu.reset(TestRenderViewContextMenu::CreateContextMenu(contents())); menu->Init(); EXPECT_TRUE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE)); - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 0, 0, "de", "en", TranslateErrors::NONE)); menu->ExecuteCommand(IDC_CONTENT_CONTEXT_TRANSLATE); // No message expected since the translation should have been ignored. @@ -1305,7 +1310,7 @@ TEST_F(TranslateManagerTest, ContextMenu) { // translate" infobar when the translation is accepted/declined 3 times, // only when not in incognito mode. TEST_F(TranslateManagerTest, BeforeTranslateExtraButtons) { - Profile* profile = + Profile* profile = Profile::FromBrowserContext(contents()->GetBrowserContext()); TranslatePrefs translate_prefs(profile->GetPrefs()); translate_prefs.ResetTranslationAcceptedCount("fr"); @@ -1405,7 +1410,7 @@ TEST_F(TranslateManagerTest, ScriptExpires) { process()->sink().ClearMessages(); infobar->Translate(); SimulateTranslateScriptURLFetch(true); - rvh()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( + rvh_tester()->TestOnMessageReceived(ChromeViewHostMsg_PageTranslated( 0, 0, "fr", "en", TranslateErrors::NONE)); // A task should have been posted to clear the script, run it. |