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

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

Issue 6486002: [Mac] Create CrTrackingArea and use it in TabStripController. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 10 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 | Annotate | Revision Log
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 #import "chrome/browser/ui/cocoa/chrome_tracking_area.h"
6
7 #include "base/scoped_nsobject.h"
8 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h"
9
10 // A test object that counts the number of times a message is sent to it.
11 @interface TestTrackingAreaOwner : NSObject {
12 @private
13 NSUInteger messageCount_;
14 }
15 @property(nonatomic, assign) NSUInteger messageCount;
16 - (void)performMessage;
17 @end
18
19 @implementation TestTrackingAreaOwner
20 @synthesize messageCount = messageCount_;
21 - (void)performMessage {
22 ++messageCount_;
23 }
24 @end
25
26 class CrTrackingAreaTest : public CocoaTest {
27 public:
28 CrTrackingAreaTest()
29 : owner_([[TestTrackingAreaOwner alloc] init]),
30 trackingArea_([[CrTrackingArea alloc]
31 initWithRect:NSMakeRect(0, 0, 100, 100)
32 options:NSTrackingMouseMoved | NSTrackingActiveInKeyWindow
33 owner:owner_.get()
34 userInfo:nil]) {
35 }
36
37 scoped_nsobject<TestTrackingAreaOwner> owner_;
38 scoped_nsobject<CrTrackingArea> trackingArea_;
39 };
40
41 TEST_F(CrTrackingAreaTest, OwnerForwards) {
42 [[trackingArea_ owner] performMessage];
43 EXPECT_EQ(1U, [owner_ messageCount]);
44
45 [[trackingArea_ owner] performMessage];
46 EXPECT_EQ(2U, [owner_ messageCount]);
47 }
48
49 TEST_F(CrTrackingAreaTest, OwnerStopsForwarding) {
50 [[trackingArea_ owner] performMessage];
51 EXPECT_EQ(1U, [owner_ messageCount]);
52
53 [trackingArea_ clearOwner];
54
55 [[trackingArea_ owner] performMessage];
56 EXPECT_EQ(1U, [owner_ messageCount]);
57 }
58
59 TEST_F(CrTrackingAreaTest, OwnerAutomaticallyStopsForwardingOnClose) {
60 [test_window() orderFront:nil];
61 [trackingArea_ clearOwnerWhenWindowWillClose:test_window()];
62
63 [[trackingArea_ owner] performMessage];
64 EXPECT_EQ(1U, [owner_ messageCount]);
65
66 [test_window() close];
67
68 [[trackingArea_ owner] performMessage];
69 EXPECT_EQ(1U, [owner_ messageCount]);
70 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698