Chromium Code Reviews| Index: chrome/browser/ui/cocoa/share_menu_controller_unittest.mm |
| diff --git a/chrome/browser/ui/cocoa/share_menu_controller_unittest.mm b/chrome/browser/ui/cocoa/share_menu_controller_unittest.mm |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4224d91421596f24d976c39937603e812bd6d582 |
| --- /dev/null |
| +++ b/chrome/browser/ui/cocoa/share_menu_controller_unittest.mm |
| @@ -0,0 +1,78 @@ |
| +// Copyright 2015 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. |
| + |
| +#import "chrome/browser/ui/cocoa/renderer_context_menu/share_menu_controller.h" |
| + |
| +#include "base/mac/scoped_nsobject.h" |
| +#include "chrome/app/chrome_command_ids.h" |
| +#include "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
| +#include "base/threading/thread_restrictions.h" |
| +#include "chrome/browser/browser_process.h" |
| +#include "chrome/browser/prefs/pref_service_syncable.h" |
| +#include "chrome/browser/profiles/profile_manager.h" |
| +#include "chrome/browser/ui/browser_list.h" |
| +#include "chrome/browser/ui/cocoa/cocoa_profile_test.h" |
| +#include "chrome/browser/ui/cocoa/run_loop_testing.h" |
| +#include "chrome/common/pref_names.h" |
| +#include "chrome/grit/generated_resources.h" |
| +#include "chrome/test/base/test_browser_window.h" |
| +#include "chrome/test/base/testing_profile.h" |
| +#include "chrome/test/base/ui_test_utils.h" |
| +#include "chrome/browser/ui/tabs/tab_strip_model.h" |
| +#include "testing/gtest_mac.h" |
| +#include "ui/base/l10n/l10n_util_mac.h" |
| + |
| +class ShareMenuControllerTest : public CocoaProfileTest { |
| + public: |
| + ShareMenuControllerTest() { |
| + menu_.reset([NSApp mainMenu]); |
| + controller_.reset( |
| + [[ShareMenuController alloc] initWithMainMenu:menu_]); |
| + } |
| + |
| + void SetUp() override { |
| + CocoaProfileTest::SetUp(); |
| + |
| + // Spin the runloop so |-initializeMenu| gets called. |
| + chrome::testing::NSRunLoopRunAllPending(); |
| + } |
| + |
| + ShareMenuController* controller() { return controller_.get(); } |
| + |
| + NSMenu* mainmenu() { return menu_.get(); } |
| + |
| + private: |
| + base::scoped_nsobject<NSMenu> menu_; |
| + base::scoped_nsobject<ShareMenuController> controller_; |
| +}; |
| + |
| +TEST_F(ShareMenuControllerTest, InitializeMenu) { |
| + [controller() initShareMenuItem]; |
| + NSMenuItem* shareMenuItem = [controller() shareSubMenuItem]; |
| + EXPECT_NSEQ(@"Share", [shareMenuItem title]); |
| +} |
| + |
| +TEST_F(ShareMenuControllerTest, BuildShareMenuItems) { |
| + [controller() initShareMenuItem]; |
| + TestingProfileManager* manager = testing_profile_manager(); |
| + TestingProfile* profile = manager->CreateTestingProfile("TestProfile"); |
| + Browser::CreateParams profile_params(profile, chrome::GetActiveDesktop()); |
| + scoped_ptr<Browser> browser( |
| + chrome::CreateBrowserWithTestWindowForParams(&profile_params)); |
| + TabStripModel* tabStrip = browser.get()->tab_strip_model(); |
| + content::WebContents* wc = content::WebContents::Create( |
| + content::WebContents::CreateParams(profile)); |
| + tabStrip->AppendWebContents(wc, true); |
| + BrowserList::SetLastActive(browser.get()); |
| + NSMenu* shareMenu = [controller() shareSubMenu]; |
| + ASSERT_EQ(5, [shareMenu numberOfItems]); |
| + for (NSMenuItem* item in [shareMenu itemArray]) { |
| + EXPECT_TRUE([item action] == @selector(systemShareService:)); |
| + } |
| + |
| + // close the tab |
|
Avi (use Gerrit)
2015/05/15 16:13:09
Complete sentences here and below. Capital letter,
|
| + tabStrip->CloseWebContentsAt(tabStrip->active_index(), 0); |
| + // destroy the browser |
| + browser.reset(); |
| +} |