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

Unified Diff: trunk/src/chrome/browser/ui/cocoa/infobars/translate_infobar_unittest.mm

Issue 102163002: Revert 238283 "Infobar system refactor." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: trunk/src/chrome/browser/ui/cocoa/infobars/translate_infobar_unittest.mm
===================================================================
--- trunk/src/chrome/browser/ui/cocoa/infobars/translate_infobar_unittest.mm (revision 238401)
+++ trunk/src/chrome/browser/ui/cocoa/infobars/translate_infobar_unittest.mm (working copy)
@@ -36,11 +36,13 @@
class MockTranslateInfoBarDelegate : public TranslateInfoBarDelegate {
public:
- MockTranslateInfoBarDelegate(TranslateInfoBarDelegate::Type type,
+ MockTranslateInfoBarDelegate(InfoBarService* infobar_service,
+ TranslateInfoBarDelegate::Type type,
TranslateErrors::Type error,
PrefService* prefs,
ShortcutConfiguration config)
- : TranslateInfoBarDelegate(type, NULL, "en", "es", error, prefs, config) {
+ : TranslateInfoBarDelegate(infobar_service, type, NULL, "en", "es", error,
+ prefs, config) {
}
MOCK_METHOD0(Translate, void());
@@ -56,13 +58,8 @@
MOCK_METHOD0(ToggleAlwaysTranslate, void());
};
-} // namespace
-
class TranslationInfoBarTest : public CocoaProfileTest {
public:
- TranslationInfoBarTest() : CocoaProfileTest(), infobar_(NULL) {
- }
-
// Each test gets a single Mock translate delegate for the lifetime of
// the test.
virtual void SetUp() OVERRIDE {
@@ -71,37 +68,32 @@
web_contents_.reset(
WebContents::Create(WebContents::CreateParams(profile())));
InfoBarService::CreateForWebContents(web_contents_.get());
+ CreateInfoBar();
}
- virtual void TearDown() OVERRIDE {
- if (infobar_) {
- infobar_->CloseSoon();
- infobar_ = NULL;
- }
- CocoaProfileTest::TearDown();
+ void CreateInfoBar() {
+ CreateInfoBar(TranslateInfoBarDelegate::BEFORE_TRANSLATE);
}
void CreateInfoBar(TranslateInfoBarDelegate::Type type) {
TranslateErrors::Type error = TranslateErrors::NONE;
if (type == TranslateInfoBarDelegate::TRANSLATION_ERROR)
error = TranslateErrors::NETWORK;
+ InfoBarService* infobar_service =
+ InfoBarService::FromWebContents(web_contents_.get());
Profile* profile =
Profile::FromBrowserContext(web_contents_->GetBrowserContext());
ShortcutConfiguration config;
config.never_translate_min_count = 3;
config.always_translate_min_count = 3;
+ infobar_delegate_.reset(new MockTranslateInfoBarDelegate(
+ infobar_service, type, error, profile->GetPrefs(), config));
[[infobar_controller_ view] removeFromSuperview];
- scoped_ptr<TranslateInfoBarDelegate> delegate(
- new MockTranslateInfoBarDelegate(type, error, profile->GetPrefs(),
- config));
- scoped_ptr<InfoBar> infobar(
- TranslateInfoBarDelegate::CreateInfoBar(delegate.Pass()));
- if (infobar_)
- infobar_->CloseSoon();
- infobar_ = static_cast<InfoBarCocoa*>(infobar.release());
- infobar_->SetOwner(InfoBarService::FromWebContents(web_contents_.get()));
-
+ InfoBarDelegate* base =
+ static_cast<InfoBarDelegate*>(infobar_delegate_.get());
+ infobar_.reset(
+ static_cast<InfoBarCocoa*>(base->CreateInfoBar(infobar_service)));
infobar_controller_.reset([static_cast<TranslateInfoBarControllerBase*>(
infobar_->controller()) retain]);
@@ -112,26 +104,23 @@
[[test_window() contentView] addSubview:[infobar_controller_ view]];
}
- MockTranslateInfoBarDelegate* infobar_delegate() const {
- return static_cast<MockTranslateInfoBarDelegate*>(infobar_->delegate());
- }
-
scoped_ptr<WebContents> web_contents_;
- InfoBarCocoa* infobar_; // weak, deletes itself
+ scoped_ptr<MockTranslateInfoBarDelegate> infobar_delegate_;
+ scoped_ptr<InfoBarCocoa> infobar_;
base::scoped_nsobject<TranslateInfoBarControllerBase> infobar_controller_;
};
// Check that we can instantiate a Translate Infobar correctly.
TEST_F(TranslationInfoBarTest, Instantiate) {
- CreateInfoBar(TranslateInfoBarDelegate::BEFORE_TRANSLATE);
+ CreateInfoBar();
ASSERT_TRUE(infobar_controller_.get());
}
// Check that clicking the Translate button calls Translate().
TEST_F(TranslationInfoBarTest, TranslateCalledOnButtonPress) {
- CreateInfoBar(TranslateInfoBarDelegate::BEFORE_TRANSLATE);
+ CreateInfoBar();
- EXPECT_CALL(*infobar_delegate(), Translate()).Times(1);
+ EXPECT_CALL(*infobar_delegate_, Translate()).Times(1);
[infobar_controller_ ok:nil];
}
@@ -140,23 +129,22 @@
TEST_F(TranslationInfoBarTest, TranslateCalledInErrorMode) {
CreateInfoBar(TranslateInfoBarDelegate::TRANSLATION_ERROR);
- EXPECT_CALL(*infobar_delegate(), Translate()).Times(1);
+ EXPECT_CALL(*infobar_delegate_, Translate()).Times(1);
[infobar_controller_ ok:nil];
}
// Check that clicking the "Show Original button calls RevertTranslation().
TEST_F(TranslationInfoBarTest, RevertCalledOnButtonPress) {
- CreateInfoBar(TranslateInfoBarDelegate::BEFORE_TRANSLATE);
+ CreateInfoBar();
- EXPECT_CALL(*infobar_delegate(), RevertTranslation()).Times(1);
+ EXPECT_CALL(*infobar_delegate_, RevertTranslation()).Times(1);
[infobar_controller_ showOriginal:nil];
}
// Check that items in the options menu are hooked up correctly.
TEST_F(TranslationInfoBarTest, OptionsMenuItemsHookedUp) {
- CreateInfoBar(TranslateInfoBarDelegate::BEFORE_TRANSLATE);
- EXPECT_CALL(*infobar_delegate(), Translate())
+ EXPECT_CALL(*infobar_delegate_, Translate())
.Times(0);
[infobar_controller_ rebuildOptionsMenu:NO];
@@ -180,19 +168,19 @@
NSMenuItem* aboutTranslateItem = [optionsMenuItems objectAtIndex:6];
{
- EXPECT_CALL(*infobar_delegate(), ToggleAlwaysTranslate())
+ EXPECT_CALL(*infobar_delegate_, ToggleAlwaysTranslate())
.Times(1);
[infobar_controller_ optionsMenuChanged:alwaysTranslateLanguateItem];
}
{
- EXPECT_CALL(*infobar_delegate(), ToggleTranslatableLanguageByPrefs())
+ EXPECT_CALL(*infobar_delegate_, ToggleTranslatableLanguageByPrefs())
.Times(1);
[infobar_controller_ optionsMenuChanged:neverTranslateLanguateItem];
}
{
- EXPECT_CALL(*infobar_delegate(), ToggleSiteBlacklist())
+ EXPECT_CALL(*infobar_delegate_, ToggleSiteBlacklist())
.Times(1);
[infobar_controller_ optionsMenuChanged:neverTranslateSiteItem];
}
@@ -210,13 +198,13 @@
// translate" mode doesn't trigger a translation or change state.
// http://crbug.com/36666
TEST_F(TranslationInfoBarTest, Bug36666) {
- CreateInfoBar(TranslateInfoBarDelegate::BEFORE_TRANSLATE);
- EXPECT_CALL(*infobar_delegate(), Translate())
+ EXPECT_CALL(*infobar_delegate_, Translate())
.Times(0);
+ CreateInfoBar();
int arbitrary_index = 2;
[infobar_controller_ sourceLanguageModified:arbitrary_index];
- EXPECT_CALL(*infobar_delegate(), Translate())
+ EXPECT_CALL(*infobar_delegate_, Translate())
.Times(0);
}
@@ -224,10 +212,11 @@
// each of the states.
// http://crbug.com/36895
TEST_F(TranslationInfoBarTest, Bug36895) {
+ EXPECT_CALL(*infobar_delegate_, Translate())
+ .Times(0);
+
for (size_t i = 0; i < arraysize(kTranslateToolbarStates); ++i) {
CreateInfoBar(kTranslateToolbarStates[i]);
- EXPECT_CALL(*infobar_delegate(), Translate())
- .Times(0);
EXPECT_TRUE(
[infobar_controller_ verifyLayout]) << "Layout wrong, for state #" << i;
}
@@ -262,3 +251,5 @@
EXPECT_TRUE([[controller alwaysTranslateButton] superview] == nil);
EXPECT_TRUE([[controller neverTranslateButton] superview] != nil);
}
+
+} // namespace

Powered by Google App Engine
This is Rietveld 408576698