test_installer.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1// Copyright 2013 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_COMPONENT_UPDATER_TEST_TEST_INSTALLER_H_ 6#define CHROME_BROWSER_COMPONENT_UPDATER_TEST_TEST_INSTALLER_H_ 7 8#include <string> 9 10#include "base/compiler_specific.h" 11#include "base/files/file_path.h" 12#include "components/component_updater/component_updater_service.h" 13 14namespace base { 15class DictionaryValue; 16} 17 18namespace component_updater { 19 20// A TestInstaller is an installer that does nothing for installation except 21// increment a counter. 22class TestInstaller : public ComponentInstaller { 23 public: 24 TestInstaller(); 25 26 virtual void OnUpdateError(int error) OVERRIDE; 27 28 virtual bool Install(const base::DictionaryValue& manifest, 29 const base::FilePath& unpack_path) OVERRIDE; 30 31 virtual bool GetInstalledFile(const std::string& file, 32 base::FilePath* installed_file) OVERRIDE; 33 34 int error() const; 35 36 int install_count() const; 37 38 protected: 39 int error_; 40 int install_count_; 41}; 42 43// A ReadOnlyTestInstaller is an installer that knows about files in an existing 44// directory. It will not write to the directory. 45class ReadOnlyTestInstaller : public TestInstaller { 46 public: 47 explicit ReadOnlyTestInstaller(const base::FilePath& installed_path); 48 49 virtual ~ReadOnlyTestInstaller(); 50 51 virtual bool GetInstalledFile(const std::string& file, 52 base::FilePath* installed_file) OVERRIDE; 53 54 private: 55 base::FilePath install_directory_; 56}; 57 58// A VersionedTestInstaller is an installer that installs files into versioned 59// directories (e.g. somedir/25.23.89.141/<files>). 60class VersionedTestInstaller : public TestInstaller { 61 public: 62 VersionedTestInstaller(); 63 64 virtual ~VersionedTestInstaller(); 65 66 virtual bool Install(const base::DictionaryValue& manifest, 67 const base::FilePath& unpack_path) OVERRIDE; 68 69 virtual bool GetInstalledFile(const std::string& file, 70 base::FilePath* installed_file) OVERRIDE; 71 72 private: 73 base::FilePath install_directory_; 74 Version current_version_; 75}; 76 77} // namespace component_updater 78 79#endif // CHROME_BROWSER_COMPONENT_UPDATER_TEST_TEST_INSTALLER_H_ 80