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

Side by Side Diff: chrome/browser/cocoa/notifications/balloon_controller_unittest.mm

Issue 2825073: Fix memory leaks in the balloon controller unit test by loading the NIB in th... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/cocoa/notifications/balloon_controller.mm ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/scoped_nsobject.h" 5 #include "base/scoped_nsobject.h"
6 #include "chrome/browser/cocoa/browser_test_helper.h" 6 #include "chrome/browser/cocoa/browser_test_helper.h"
7 #include "chrome/browser/cocoa/cocoa_test_helper.h" 7 #include "chrome/browser/cocoa/cocoa_test_helper.h"
8 #include "chrome/browser/cocoa/notifications/balloon_controller.h" 8 #include "chrome/browser/cocoa/notifications/balloon_controller.h"
9 #include "chrome/browser/notifications/balloon.h" 9 #include "chrome/browser/notifications/balloon.h"
10 #include "chrome/browser/notifications/balloon_collection.h" 10 #include "chrome/browser/notifications/balloon_collection.h"
11 #include "chrome/browser/notifications/notification.h" 11 #include "chrome/browser/notifications/notification.h"
12 #include "chrome/browser/renderer_host/test/test_render_view_host.h" 12 #include "chrome/browser/renderer_host/test/test_render_view_host.h"
13 #include "chrome/test/testing_profile.h" 13 #include "chrome/test/testing_profile.h"
14 #import "third_party/ocmock/OCMock/OCMock.h" 14 #import "third_party/ocmock/OCMock/OCMock.h"
15 15
16 // Subclass balloon controller and mock out the initialization of the RVH.
17 @interface TestBalloonController : BalloonController {
18 }
19 - (void)initializeHost;
20 @end
21
22 @implementation TestBalloonController
23 - (void)initializeHost {}
24 @end
25
16 namespace { 26 namespace {
17 27
18 // Use a dummy balloon collection for testing. 28 // Use a dummy balloon collection for testing.
19 class MockBalloonCollection : public BalloonCollection { 29 class MockBalloonCollection : public BalloonCollection {
20 virtual void Add(const Notification& notification, 30 virtual void Add(const Notification& notification,
21 Profile* profile) {} 31 Profile* profile) {}
22 virtual bool Remove(const Notification& notification) { return false; } 32 virtual bool Remove(const Notification& notification) { return false; }
23 virtual bool HasSpace() const { return true; } 33 virtual bool HasSpace() const { return true; }
24 virtual void ResizeBalloon(Balloon* balloon, const gfx::Size& size) {}; 34 virtual void ResizeBalloon(Balloon* balloon, const gfx::Size& size) {};
25 virtual void DisplayChanged() {} 35 virtual void DisplayChanged() {}
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 scoped_ptr<Browser> browser_; 70 scoped_ptr<Browser> browser_;
61 scoped_ptr<BalloonCollection> collection_; 71 scoped_ptr<BalloonCollection> collection_;
62 }; 72 };
63 73
64 TEST_F(BalloonControllerTest, ShowAndCloseTest) { 74 TEST_F(BalloonControllerTest, ShowAndCloseTest) {
65 Notification n(GURL("http://www.google.com"), GURL("http://www.google.com"), 75 Notification n(GURL("http://www.google.com"), GURL("http://www.google.com"),
66 L"http://www.google.com", ASCIIToUTF16(""), 76 L"http://www.google.com", ASCIIToUTF16(""),
67 new NotificationObjectProxy(-1, -1, -1, false)); 77 new NotificationObjectProxy(-1, -1, -1, false));
68 scoped_ptr<Balloon> balloon( 78 scoped_ptr<Balloon> balloon(
69 new Balloon(n, profile_.get(), collection_.get())); 79 new Balloon(n, profile_.get(), collection_.get()));
80 balloon->SetPosition(gfx::Point(1, 1), false);
81 balloon->set_content_size(gfx::Size(100, 100));
70 82
71 BalloonController* controller = [BalloonController alloc]; 83 BalloonController* controller =
84 [[TestBalloonController alloc] initWithBalloon:balloon.get()];
72 85
73 id mock = [OCMockObject partialMockForObject:controller];
74 [[mock expect] initializeHost];
75
76 [controller initWithBalloon:balloon.get()];
77 [controller showWindow:nil]; 86 [controller showWindow:nil];
78 [controller closeBalloon:YES]; 87 [controller closeBalloon:YES];
79
80 [mock verify];
81 [controller release];
82 } 88 }
83 89
84 TEST_F(BalloonControllerTest, SizesTest) { 90 TEST_F(BalloonControllerTest, SizesTest) {
85 Notification n(GURL("http://www.google.com"), GURL("http://www.google.com"), 91 Notification n(GURL("http://www.google.com"), GURL("http://www.google.com"),
86 L"http://www.google.com", ASCIIToUTF16(""), 92 L"http://www.google.com", ASCIIToUTF16(""),
87 new NotificationObjectProxy(-1, -1, -1, false)); 93 new NotificationObjectProxy(-1, -1, -1, false));
88 scoped_ptr<Balloon> balloon( 94 scoped_ptr<Balloon> balloon(
89 new Balloon(n, profile_.get(), collection_.get())); 95 new Balloon(n, profile_.get(), collection_.get()));
96 balloon->SetPosition(gfx::Point(1, 1), false);
90 balloon->set_content_size(gfx::Size(100, 100)); 97 balloon->set_content_size(gfx::Size(100, 100));
91 98
92 BalloonController* controller = [BalloonController alloc]; 99 BalloonController* controller =
93 100 [[TestBalloonController alloc] initWithBalloon:balloon.get()];
94 id mock = [OCMockObject partialMockForObject:controller];
95 [[mock expect] initializeHost];
96 101
97 [controller initWithBalloon:balloon.get()]; 102 [controller initWithBalloon:balloon.get()];
103 [controller showWindow:nil];
98 104
99 EXPECT_TRUE([controller desiredTotalWidth] > 100); 105 EXPECT_TRUE([controller desiredTotalWidth] > 100);
100 EXPECT_TRUE([controller desiredTotalHeight] > 100); 106 EXPECT_TRUE([controller desiredTotalHeight] > 100);
101 [mock verify]; 107
102 [controller release]; 108 [controller closeBalloon:YES];
103 } 109 }
104 110
105 } 111 }
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/notifications/balloon_controller.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698