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 14 namespace base { 15 class DictionaryValue; 16 } 17 18 namespace component_updater { 19 20 // A TestInstaller is an installer that does nothing for installation except 21 // increment a counter. 22 class 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. 45 class 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>). 60 class 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