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(); |
+} |