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

Side by Side Diff: chrome/browser/ui/cocoa/tracking_area_unittest.mm

Issue 12763002: Move CrTrackingArea from chrome/browser/ui/cocoa to ui/base/cocoa. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: test in namespace Created 7 years, 9 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/cocoa/tracking_area.mm ('k') | chrome/chrome_browser_ui.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 #include "base/memory/scoped_nsobject.h"
6 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h"
7 #import "chrome/browser/ui/cocoa/tracking_area.h"
8
9 // A test object that counts the number of times a message is sent to it.
10 @interface TestTrackingAreaOwner : NSObject {
11 @private
12 NSUInteger messageCount_;
13 }
14 @property(nonatomic, assign) NSUInteger messageCount;
15 - (void)performMessage;
16 @end
17
18 @implementation TestTrackingAreaOwner
19 @synthesize messageCount = messageCount_;
20 - (void)performMessage {
21 ++messageCount_;
22 }
23 @end
24
25 class CrTrackingAreaTest : public CocoaTest {
26 public:
27 CrTrackingAreaTest()
28 : owner_([[TestTrackingAreaOwner alloc] init]),
29 trackingArea_([[CrTrackingArea alloc]
30 initWithRect:NSMakeRect(0, 0, 100, 100)
31 options:NSTrackingMouseMoved | NSTrackingActiveInKeyWindow
32 owner:owner_.get()
33 userInfo:nil]) {
34 }
35
36 scoped_nsobject<TestTrackingAreaOwner> owner_;
37 scoped_nsobject<CrTrackingArea> trackingArea_;
38 };
39
40 TEST_F(CrTrackingAreaTest, OwnerForwards) {
41 [[trackingArea_ owner] performMessage];
42 EXPECT_EQ(1U, [owner_ messageCount]);
43
44 [[trackingArea_ owner] performMessage];
45 EXPECT_EQ(2U, [owner_ messageCount]);
46 }
47
48 TEST_F(CrTrackingAreaTest, OwnerStopsForwarding) {
49 [[trackingArea_ owner] performMessage];
50 EXPECT_EQ(1U, [owner_ messageCount]);
51
52 [trackingArea_ clearOwner];
53
54 [[trackingArea_ owner] performMessage];
55 EXPECT_EQ(1U, [owner_ messageCount]);
56 }
57
58 TEST_F(CrTrackingAreaTest, OwnerAutomaticallyStopsForwardingOnClose) {
59 [test_window() orderFront:nil];
60 [trackingArea_ clearOwnerWhenWindowWillClose:test_window()];
61
62 [[trackingArea_ owner] performMessage];
63 EXPECT_EQ(1U, [owner_ messageCount]);
64
65 [test_window() close];
66
67 [[trackingArea_ owner] performMessage];
68 EXPECT_EQ(1U, [owner_ messageCount]);
69 }
70
71 TEST_F(CrTrackingAreaTest, ScoperInit) {
72 {
73 ScopedCrTrackingArea scoper([trackingArea_ retain]);
74 [[scoper.get() owner] performMessage];
75 EXPECT_EQ(1U, [owner_ messageCount]);
76 }
77
78 [[trackingArea_ owner] performMessage];
79 EXPECT_EQ(1U, [owner_ messageCount]);
80 }
81
82 TEST_F(CrTrackingAreaTest, ScoperReset) {
83 {
84 ScopedCrTrackingArea scoper;
85 EXPECT_FALSE(scoper.get());
86
87 scoper.reset([trackingArea_ retain]);
88 [[scoper.get() owner] performMessage];
89 EXPECT_EQ(1U, [owner_ messageCount]);
90
91 [[scoper.get() owner] performMessage];
92 EXPECT_EQ(2U, [owner_ messageCount]);
93 }
94
95 [[trackingArea_ owner] performMessage];
96 EXPECT_EQ(2U, [owner_ messageCount]);
97 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/tracking_area.mm ('k') | chrome/chrome_browser_ui.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698