15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_DOWNLOAD_TEST_DOWNLOAD_SHELF_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_DOWNLOAD_TEST_DOWNLOAD_SHELF_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/ref_counted.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/download/download_shelf.h" 1290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "content/public/browser/download_manager.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// An implementation of DownloadShelf for testing. 1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class TestDownloadShelf : public DownloadShelf, 1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) public content::DownloadManager::Observer { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestDownloadShelf(); 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~TestDownloadShelf(); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // DownloadShelf: 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsShowing() const OVERRIDE; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsClosing() const OVERRIDE; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual Browser* browser() const OVERRIDE; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Return |true| if a download was added to this shelf. 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool did_add_download() const { return did_add_download_; } 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Set download_manager_ (and the result of calling GetDownloadManager()) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void set_download_manager(content::DownloadManager* download_manager); 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // DownloadManager::Observer implementation. 3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void ManagerGoingDown(content::DownloadManager* manager) OVERRIDE; 3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void DoAddDownload(content::DownloadItem* download) OVERRIDE; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DoShow() OVERRIDE; 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void DoClose(CloseReason reason) OVERRIDE; 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual base::TimeDelta GetTransientDownloadShowDelay() OVERRIDE; 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual content::DownloadManager* GetDownloadManager() OVERRIDE; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_showing_; 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool did_add_download_; 4590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) content::DownloadManager* download_manager_; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TestDownloadShelf); 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_DOWNLOAD_TEST_DOWNLOAD_SHELF_H_ 51