| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/memory/scoped_nsobject.h" | 5 #include "base/memory/scoped_nsobject.h" |
| 6 #include "base/utf_string_conversions.h" | 6 #include "base/utf_string_conversions.h" |
| 7 #include "chrome/browser/notifications/balloon.h" | 7 #include "chrome/browser/notifications/balloon.h" |
| 8 #include "chrome/browser/notifications/balloon_collection.h" | 8 #include "chrome/browser/notifications/balloon_collection.h" |
| 9 #include "chrome/browser/notifications/notification.h" | 9 #include "chrome/browser/notifications/notification.h" |
| 10 #include "chrome/browser/notifications/notification_object_proxy.h" | 10 #include "chrome/browser/notifications/notification_object_proxy.h" |
| 11 #include "chrome/browser/ui/browser.h" | 11 #include "chrome/browser/ui/browser.h" |
| 12 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" | 12 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
| 13 #include "chrome/browser/ui/cocoa/notifications/balloon_controller.h" | 13 #include "chrome/browser/ui/cocoa/notifications/balloon_controller.h" |
| 14 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 14 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| 15 #include "chrome/test/base/test_browser_window.h" | 15 #include "chrome/test/base/test_browser_window.h" |
| 16 #include "chrome/test/base/testing_profile.h" | 16 #include "chrome/test/base/testing_profile.h" |
| 17 #include "content/public/test/test_browser_thread.h" | |
| 18 | |
| 19 using content::BrowserThread; | |
| 20 | 17 |
| 21 // Subclass balloon controller and mock out the initialization of the RVH. | 18 // Subclass balloon controller and mock out the initialization of the RVH. |
| 22 @interface TestBalloonController : BalloonController { | 19 @interface TestBalloonController : BalloonController { |
| 23 } | 20 } |
| 24 - (void)initializeHost; | 21 - (void)initializeHost; |
| 25 @end | 22 @end |
| 26 | 23 |
| 27 @implementation TestBalloonController | 24 @implementation TestBalloonController |
| 28 - (void)initializeHost {} | 25 - (void)initializeHost {} |
| 29 @end | 26 @end |
| (...skipping 21 matching lines...) Expand all Loading... |
| 51 virtual void OnBalloonClosed(Balloon* source) OVERRIDE {}; | 48 virtual void OnBalloonClosed(Balloon* source) OVERRIDE {}; |
| 52 virtual const Balloons& GetActiveBalloons() OVERRIDE { | 49 virtual const Balloons& GetActiveBalloons() OVERRIDE { |
| 53 NOTREACHED(); | 50 NOTREACHED(); |
| 54 return balloons_; | 51 return balloons_; |
| 55 } | 52 } |
| 56 private: | 53 private: |
| 57 Balloons balloons_; | 54 Balloons balloons_; |
| 58 }; | 55 }; |
| 59 | 56 |
| 60 class BalloonControllerTest : public ChromeRenderViewHostTestHarness { | 57 class BalloonControllerTest : public ChromeRenderViewHostTestHarness { |
| 61 public: | 58 virtual void SetUp() OVERRIDE { |
| 62 BalloonControllerTest() : | |
| 63 ui_thread_(BrowserThread::UI, base::MessageLoop::current()), | |
| 64 file_user_blocking_thread_( | |
| 65 BrowserThread::FILE_USER_BLOCKING, base::MessageLoop::current()), | |
| 66 io_thread_(BrowserThread::IO, base::MessageLoop::current()) { | |
| 67 } | |
| 68 | |
| 69 virtual void SetUp() { | |
| 70 ChromeRenderViewHostTestHarness::SetUp(); | 59 ChromeRenderViewHostTestHarness::SetUp(); |
| 71 CocoaTest::BootstrapCocoa(); | 60 CocoaTest::BootstrapCocoa(); |
| 72 profile()->CreateRequestContext(); | 61 profile()->CreateRequestContext(); |
| 73 Browser::CreateParams native_params(profile(), | 62 Browser::CreateParams native_params(profile(), |
| 74 chrome::HOST_DESKTOP_TYPE_NATIVE); | 63 chrome::HOST_DESKTOP_TYPE_NATIVE); |
| 75 browser_.reset( | 64 browser_.reset( |
| 76 chrome::CreateBrowserWithTestWindowForParams(&native_params)); | 65 chrome::CreateBrowserWithTestWindowForParams(&native_params)); |
| 77 collection_.reset(new MockBalloonCollection()); | 66 collection_.reset(new MockBalloonCollection()); |
| 78 } | 67 } |
| 79 | 68 |
| 80 virtual void TearDown() { | 69 virtual void TearDown() OVERRIDE { |
| 81 collection_.reset(); | 70 collection_.reset(); |
| 82 browser_.reset(); | 71 browser_.reset(); |
| 83 base::MessageLoop::current()->RunUntilIdle(); | |
| 84 ChromeRenderViewHostTestHarness::TearDown(); | 72 ChromeRenderViewHostTestHarness::TearDown(); |
| 85 } | 73 } |
| 86 | 74 |
| 87 protected: | 75 protected: |
| 88 content::TestBrowserThread ui_thread_; | |
| 89 content::TestBrowserThread file_user_blocking_thread_; | |
| 90 content::TestBrowserThread io_thread_; | |
| 91 scoped_ptr<Browser> browser_; | 76 scoped_ptr<Browser> browser_; |
| 92 scoped_ptr<BalloonCollection> collection_; | 77 scoped_ptr<BalloonCollection> collection_; |
| 93 }; | 78 }; |
| 94 | 79 |
| 95 TEST_F(BalloonControllerTest, ShowAndCloseTest) { | 80 TEST_F(BalloonControllerTest, ShowAndCloseTest) { |
| 96 Notification n(GURL("http://www.google.com"), GURL("http://www.google.com"), | 81 Notification n(GURL("http://www.google.com"), GURL("http://www.google.com"), |
| 97 ASCIIToUTF16("http://www.google.com"), string16(), | 82 ASCIIToUTF16("http://www.google.com"), string16(), |
| 98 new NotificationObjectProxy(-1, -1, -1, false)); | 83 new NotificationObjectProxy(-1, -1, -1, false)); |
| 99 scoped_ptr<Balloon> balloon( | 84 scoped_ptr<Balloon> balloon( |
| 100 new Balloon(n, profile(), collection_.get())); | 85 new Balloon(n, profile(), collection_.get())); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 122 | 107 |
| 123 [controller showWindow:nil]; | 108 [controller showWindow:nil]; |
| 124 | 109 |
| 125 EXPECT_TRUE([controller desiredTotalWidth] > 100); | 110 EXPECT_TRUE([controller desiredTotalWidth] > 100); |
| 126 EXPECT_TRUE([controller desiredTotalHeight] > 100); | 111 EXPECT_TRUE([controller desiredTotalHeight] > 100); |
| 127 | 112 |
| 128 [controller closeBalloon:YES]; | 113 [controller closeBalloon:YES]; |
| 129 } | 114 } |
| 130 | 115 |
| 131 } | 116 } |
| OLD | NEW |