| Index: components/search_engines/desktop_search_infobar_delegate_win_unittest.cc
|
| diff --git a/components/search_engines/desktop_search_infobar_delegate_win_unittest.cc b/components/search_engines/desktop_search_infobar_delegate_win_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e8c58a711f0fa37dcb6330f62831c9a00976851f
|
| --- /dev/null
|
| +++ b/components/search_engines/desktop_search_infobar_delegate_win_unittest.cc
|
| @@ -0,0 +1,52 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "components/search_engines/desktop_search_infobar_delegate_win.h"
|
| +
|
| +#include "base/logging.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/strings/string16.h"
|
| +#include "components/infobars/core/infobar.h"
|
| +#include "components/infobars/core/infobar_manager.h"
|
| +#include "components/search_engines/desktop_search_utils_win.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace {
|
| +
|
| +class MockInfoBarManager : public infobars::InfoBarManager {
|
| + public:
|
| + // infobars::InfoBarManager:
|
| + int GetActiveEntryID() override { return 0; }
|
| +
|
| + scoped_ptr<infobars::InfoBar> CreateConfirmInfoBar(
|
| + scoped_ptr<ConfirmInfoBarDelegate> delegate) override {
|
| + NOTREACHED();
|
| + return scoped_ptr<infobars::InfoBar>();
|
| + }
|
| +
|
| + MOCK_METHOD2(OpenURL,
|
| + void(const GURL& url, WindowOpenDisposition disposition));
|
| +};
|
| +
|
| +const base::char16 kSearchSettingsURL[] = L"chrome://settings/searchEngines";
|
| +
|
| +} // namespace
|
| +
|
| +TEST(WindowsDesktopSearchInfobarDelegateTest, ManageSearchSettings) {
|
| + // Create a Windows desktop search redirection infobar.
|
| + infobars::InfoBar* infobar =
|
| + new infobars::InfoBar(scoped_ptr<infobars::InfoBarDelegate>(
|
| + new WindowsDesktopSearchInfobarDelegate(L"Google",
|
| + GURL(kSearchSettingsURL))));
|
| + MockInfoBarManager infobar_manager;
|
| + infobar->SetOwner(&infobar_manager);
|
| +
|
| + EXPECT_CALL(infobar_manager,
|
| + OpenURL(GURL(kSearchSettingsURL), NEW_FOREGROUND_TAB));
|
| + EXPECT_FALSE(infobar->delegate()->AsConfirmInfoBarDelegate()->Accept());
|
| +
|
| + // This calls the destructor of |infobar|.
|
| + infobar->CloseSoon();
|
| +}
|
|
|