diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-18 21:57:57 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-18 21:57:57 +0000 |
commit | c0d33cd059a742b2daf283965392700328b80a81 (patch) | |
tree | e28615904b0e6496c55802016f8c7c2e27d9ff52 /chrome/browser/cocoa/download_shelf_mac_unittest.mm | |
parent | fad9ef5cb3f55eba164ff4e63db803c5a7fa17a5 (diff) | |
download | chromium_src-c0d33cd059a742b2daf283965392700328b80a81.zip chromium_src-c0d33cd059a742b2daf283965392700328b80a81.tar.gz chromium_src-c0d33cd059a742b2daf283965392700328b80a81.tar.bz2 |
Initial download shelf on OS X.
This has lots of missing stuff (e.g. a custom download item view that shows
download progress, the popup is the same for in-progress and completed
downloads, no animation, everything looks ugly, the info bubble overlaps the
shelf when it's visible, no "open download manager page" link, etc), but the
basic functionality is hooked up: The shelf appears when files are downloaded,
and something ugly is added to the shelf for each download. The popup's "Reveral
in Finder" even works. The shelf is per-window as it should be.
BUG=12500
TEST=Download something and check the shelf appears. Click the close button and
make sure it disappears again.
Review URL: http://codereview.chromium.org/93129
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18757 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/download_shelf_mac_unittest.mm')
-rw-r--r-- | chrome/browser/cocoa/download_shelf_mac_unittest.mm | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/download_shelf_mac_unittest.mm b/chrome/browser/cocoa/download_shelf_mac_unittest.mm new file mode 100644 index 0000000..78ff52d --- /dev/null +++ b/chrome/browser/cocoa/download_shelf_mac_unittest.mm @@ -0,0 +1,91 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/cocoa/browser_test_helper.h" +#include "chrome/browser/cocoa/cocoa_test_helper.h" +#include "chrome/browser/cocoa/download_shelf_mac.h" +#include "testing/gtest/include/gtest/gtest.h" + + +// A fake implementation of DownloadShelfController. It implements only the +// methods that DownloadShelfMac call during the tests in this file. We get this +// class into the DownloadShelfMac constructor by some questionable casting -- +// Objective C is a dynamic language, so we pretend that's ok. + +@interface FakeDownloadShelfController : NSObject { + @public + int callCountIsVisible; + int callCountShow; + int callCountHide; +} + +- (BOOL)isVisible; +- (IBAction)show:(id)sender; +- (IBAction)hide:(id)sender; +@end + +@implementation FakeDownloadShelfController + +- (BOOL)isVisible { + ++callCountIsVisible; + return YES; +} + +- (IBAction)show:(id)sender { + ++callCountShow; +} + +- (IBAction)hide:(id)sender { + ++callCountHide; +} + +@end + + +namespace { + +class DownloadShelfMacTest : public testing::Test { + + virtual void SetUp() { + shelf_controller_.reset([[FakeDownloadShelfController alloc] init]); + } + + protected: + scoped_nsobject<FakeDownloadShelfController> shelf_controller_; + CocoaTestHelper helper_; + BrowserTestHelper browser_helper_; +}; + +TEST_F(DownloadShelfMacTest, CreationCallsShow) { + // Also make sure the DownloadShelfMacTest constructor doesn't crash. + DownloadShelfMac shelf(browser_helper_.browser(), + (DownloadShelfController*)shelf_controller_.get()); + EXPECT_EQ(1, shelf_controller_.get()->callCountShow); +} + +TEST_F(DownloadShelfMacTest, ForwardsShow) { + DownloadShelfMac shelf(browser_helper_.browser(), + (DownloadShelfController*)shelf_controller_.get()); + EXPECT_EQ(1, shelf_controller_.get()->callCountShow); + shelf.Show(); + EXPECT_EQ(2, shelf_controller_.get()->callCountShow); +} + +TEST_F(DownloadShelfMacTest, ForwardsHide) { + DownloadShelfMac shelf(browser_helper_.browser(), + (DownloadShelfController*)shelf_controller_.get()); + EXPECT_EQ(0, shelf_controller_.get()->callCountHide); + shelf.Close(); + EXPECT_EQ(1, shelf_controller_.get()->callCountHide); +} + +TEST_F(DownloadShelfMacTest, ForwardsIsShowing) { + DownloadShelfMac shelf(browser_helper_.browser(), + (DownloadShelfController*)shelf_controller_.get()); + EXPECT_EQ(0, shelf_controller_.get()->callCountIsVisible); + shelf.IsShowing(); + EXPECT_EQ(1, shelf_controller_.get()->callCountIsVisible); +} + +} // namespace |