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

Side by Side Diff: ios/chrome/browser/ui/no_tabs/no_tabs_controller_unittest.mm

Issue 2590473002: Upstream Chrome on iOS source code [5/11]. (Closed)
Patch Set: Created 4 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #import <Foundation/Foundation.h>
6
7 #include "base/mac/scoped_nsobject.h"
8 #import "ios/chrome/browser/ui/no_tabs/no_tabs_controller.h"
9 #import "ios/chrome/browser/ui/no_tabs/no_tabs_controller_testing.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "testing/platform_test.h"
12
13 namespace {
14
15 class NoTabsControllerTest : public PlatformTest {
16 protected:
17 void SetUp() override {
18 view_.reset([[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 240)]);
19 controller_.reset([[NoTabsController alloc] initWithView:view_]);
20 };
21
22 base::scoped_nsobject<UIView> view_;
23 base::scoped_nsobject<NoTabsController> controller_;
24 };
25
26 // Verifies that the mode toggle switch is properly shown and hidden.
27 TEST_F(NoTabsControllerTest, ModeToggleSwitch) {
28 // The mode toggle button starts out hidden.
29 UIButton* button = [controller_ modeToggleButton];
30 ASSERT_TRUE([button isHidden]);
31
32 [controller_ setHasModeToggleSwitch:YES];
33 ASSERT_FALSE([button isHidden]);
34
35 [controller_ setHasModeToggleSwitch:NO];
36 ASSERT_TRUE([button isHidden]);
37 }
38
39 // Tests that creating a NoTabsController properly installs the No-Tabs UI into
40 // the provided view.
41 TEST_F(NoTabsControllerTest, Installation) {
42 // The toolbar view should be installed in |view_|, and it should take up the
43 // full width of |view_|.
44 UIView* toolbarView = [controller_ toolbarView];
45 EXPECT_EQ(view_, [toolbarView superview]);
46 EXPECT_EQ(CGRectGetWidth([view_ bounds]),
47 CGRectGetWidth([toolbarView frame]));
48
49 // The background view should fill |view_| completely. Note that its
50 // height/width might be larger than those of |view_|, as it has some padding
51 // to avoid visual flickering around the edges on device rotation.
52 UIView* backgroundView = [controller_ backgroundView];
53 EXPECT_EQ(view_, [backgroundView superview]);
54 EXPECT_LE([view_ bounds].size.width, [backgroundView frame].size.width);
55 EXPECT_LE([view_ bounds].size.height, [backgroundView frame].size.height);
56 EXPECT_TRUE(CGPointEqualToPoint([view_ center], [backgroundView center]));
57 }
58
59 // Tests that running through the show and hide methods does not crash.
60 // TODO(rohitrao): This is a somewhat silly test. Test something more
61 // interesting.
62 TEST_F(NoTabsControllerTest, ShowAndHideNoTabsUI) {
63 // Show the UI.
64 [controller_ prepareForShowAnimation];
65 [controller_ showNoTabsUI];
66 [controller_ showAnimationDidFinish];
67
68 // Hide the UI.
69 [controller_ prepareForDismissAnimation];
70 [controller_ dismissNoTabsUI];
71 [controller_ dismissAnimationDidFinish];
72 }
73
74 } // namespace
OLDNEW
« no previous file with comments | « ios/chrome/browser/ui/no_tabs/no_tabs_controller_testing.h ('k') | ios/chrome/browser/ui/no_tabs/no_tabs_toolbar_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698