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 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_DOWNLOAD_TEST_DOWNLOAD_SHELF_H_ 6#define CHROME_BROWSER_DOWNLOAD_TEST_DOWNLOAD_SHELF_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "base/memory/ref_counted.h" 11#include "chrome/browser/download/download_shelf.h" 12#include "content/public/browser/download_manager.h" 13 14// An implementation of DownloadShelf for testing. 15class TestDownloadShelf : public DownloadShelf, 16 public content::DownloadManager::Observer { 17 public: 18 TestDownloadShelf(); 19 virtual ~TestDownloadShelf(); 20 21 // DownloadShelf: 22 virtual bool IsShowing() const OVERRIDE; 23 virtual bool IsClosing() const OVERRIDE; 24 virtual Browser* browser() const OVERRIDE; 25 26 // Return |true| if a download was added to this shelf. 27 bool did_add_download() const { return did_add_download_; } 28 29 // Set download_manager_ (and the result of calling GetDownloadManager()) 30 void set_download_manager(content::DownloadManager* download_manager); 31 32 // DownloadManager::Observer implementation. 33 virtual void ManagerGoingDown(content::DownloadManager* manager) OVERRIDE; 34 35 protected: 36 virtual void DoAddDownload(content::DownloadItem* download) OVERRIDE; 37 virtual void DoShow() OVERRIDE; 38 virtual void DoClose(CloseReason reason) OVERRIDE; 39 virtual base::TimeDelta GetTransientDownloadShowDelay() OVERRIDE; 40 virtual content::DownloadManager* GetDownloadManager() OVERRIDE; 41 42 private: 43 bool is_showing_; 44 bool did_add_download_; 45 content::DownloadManager* download_manager_; 46 47 DISALLOW_COPY_AND_ASSIGN(TestDownloadShelf); 48}; 49 50#endif // CHROME_BROWSER_DOWNLOAD_TEST_DOWNLOAD_SHELF_H_ 51