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

Unified Diff: chrome/browser/ui/cocoa/tab_contents/sad_tab_mac_unittest.mm

Issue 2261793002: Bring the feedback button to the Mac sad tab (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Ditch a pointless |explicit|, add a comment on SadTabView ownership. Created 4 years, 4 months 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: chrome/browser/ui/cocoa/tab_contents/sad_tab_mac_unittest.mm
diff --git a/chrome/browser/ui/cocoa/tab_contents/sad_tab_mac_unittest.mm b/chrome/browser/ui/cocoa/tab_contents/sad_tab_mac_unittest.mm
new file mode 100644
index 0000000000000000000000000000000000000000..33c0bdc5a15684bf6a616f04f1d3d242ff4450bf
--- /dev/null
+++ b/chrome/browser/ui/cocoa/tab_contents/sad_tab_mac_unittest.mm
@@ -0,0 +1,66 @@
+// Copyright (c) 2012 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/tab_contents/sad_tab_view_cocoa.h"
+
+#import "base/mac/foundation_util.h"
+#include "base/mac/scoped_nsobject.h"
+#import "chrome/browser/ui/cocoa/cocoa_test_helper.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#import "ui/base/cocoa/controls/hyperlink_text_view.h"
+
+namespace {
+
+template <typename T>
+T* FindSadTabSubview(NSView* sadTabView) {
+ NSView* containerView = sadTabView.subviews.firstObject;
+ for (NSView* view in [containerView subviews]) {
+ if (auto subview = base::mac::ObjCCast<T>(view))
+ return subview;
+ }
+ return nil;
+}
+
+class SadTabViewTest : public CocoaTest {
+ public:
+ SadTabViewTest() {
+ base::scoped_nsobject<SadTabView> view([SadTabView new]);
+ view_ = view;
+ [[test_window() contentView] addSubview:view_];
+ }
+
+ SadTabView* view_; // Weak. Owned by the view hierarchy.
+};
+
+TEST_VIEW(SadTabViewTest, view_);
+
+TEST(SadTabViewBehaviorTest, ClickOnLinks) {
+ using chrome::SadTab;
+ using Action = SadTab::Action;
+
+ class MockSadTab : public chrome::SadTab {
+ public:
+ MockSadTab() : SadTab(nullptr, chrome::SAD_TAB_KIND_CRASHED) {}
+ MOCK_METHOD0(RecordFirstPaint, void());
+ MOCK_METHOD1(PerformAction, void(Action));
+ };
+
+ MockSadTab sadTab;
+
+ base::scoped_nsobject<SadTabView> view(
+ [[SadTabView alloc] initWithFrame:NSZeroRect sadTab:&sadTab]);
+
+ EXPECT_CALL(sadTab, RecordFirstPaint());
+ EXPECT_CALL(sadTab, PerformAction(testing::TypedEq<Action>(Action::BUTTON)));
+ EXPECT_CALL(sadTab,
+ PerformAction(testing::TypedEq<Action>(Action::HELP_LINK)));
+
+ [view displayIfNeeded];
+ [FindSadTabSubview<NSButton>(view) performClick:nil];
+ [FindSadTabSubview<HyperlinkTextView>(view) clickedOnLink:[NSNull null]
+ atIndex:0];
+}
+
+} // namespace

Powered by Google App Engine
This is Rietveld 408576698