1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef CHROME_BROWSER_COMPONENT_UPDATER_TEST_TEST_INSTALLER_H_ 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define CHROME_BROWSER_COMPONENT_UPDATER_TEST_TEST_INSTALLER_H_ 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/compiler_specific.h" 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/files/file_path.h" 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "chrome/browser/component_updater/component_updater_service.h" 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace base { 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass DictionaryValue; 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// A TestInstaller is an installer that does nothing for installation except 17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// increment a counter. 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass TestInstaller : public ComponentInstaller { 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public: 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch explicit TestInstaller(); 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void OnUpdateError(int error) OVERRIDE; 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual bool Install(const base::DictionaryValue& manifest, 25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const base::FilePath& unpack_path) OVERRIDE; 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual bool GetInstalledFile(const std::string& file, 28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::FilePath* installed_file) OVERRIDE; 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch int error() const; 31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch int install_count() const; 33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch protected: 35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch int error_; 36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch int install_count_; 37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}; 38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// A ReadOnlyTestInstaller is an installer that knows about files in an existing 40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// directory. It will not write to the directory. 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass ReadOnlyTestInstaller : public TestInstaller { 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public: 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch explicit ReadOnlyTestInstaller(const base::FilePath& installed_path); 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual ~ReadOnlyTestInstaller(); 46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual bool GetInstalledFile(const std::string& file, 48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::FilePath* installed_file) OVERRIDE; 49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch private: 51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::FilePath install_directory_; 52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}; 53eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 54eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// A VersionedTestInstaller is an installer that installs files into versioned 55eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// directories (e.g. somedir/25.23.89.141/<files>). 56eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass VersionedTestInstaller : public TestInstaller { 57eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public : 58eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch explicit VersionedTestInstaller(); 59eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 60eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual ~VersionedTestInstaller(); 61eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 62eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual bool Install(const base::DictionaryValue& manifest, 63eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const base::FilePath& unpack_path) OVERRIDE; 64eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 65eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual bool GetInstalledFile(const std::string& file, 66eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::FilePath* installed_file) OVERRIDE; 67eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 68eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch private: 69eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::FilePath install_directory_; 70eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch Version current_version_; 71eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}; 72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 73eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif // CHROME_BROWSER_COMPONENT_UPDATER_TEST_TEST_INSTALLER_H_ 74