123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- // Copyright 2013 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef COMPONENTS_UPDATE_CLIENT_TEST_INSTALLER_H_
- #define COMPONENTS_UPDATE_CLIENT_TEST_INSTALLER_H_
- #include <memory>
- #include <string>
- #include <vector>
- #include "base/callback_forward.h"
- #include "base/files/file_path.h"
- #include "components/update_client/update_client.h"
- namespace base {
- class SequencedTaskRunner;
- }
- namespace update_client {
- // TODO(sorin): consider reducing the number of the installer mocks.
- // A TestInstaller is an installer that does nothing for installation except
- // increment a counter.
- class TestInstaller : public CrxInstaller {
- public:
- TestInstaller();
- void OnUpdateError(int error) override;
- void Install(const base::FilePath& unpack_path,
- const std::string& public_key,
- std::unique_ptr<InstallParams> install_params,
- ProgressCallback progress_callback,
- Callback callback) override;
- bool GetInstalledFile(const std::string& file,
- base::FilePath* installed_file) override;
- bool Uninstall() override;
- int error() const { return error_; }
- int install_count() const { return install_count_; }
- const InstallParams* install_params() const { return install_params_.get(); }
- void set_installer_progress_samples(
- std::vector<int> installer_progress_samples) {
- installer_progress_samples_.swap(installer_progress_samples);
- }
- protected:
- ~TestInstaller() override;
- void InstallComplete(Callback callback,
- ProgressCallback progress_callback,
- const Result& result);
- int error_;
- int install_count_;
- private:
- // Contains the |unpack_path| argument of the Install call.
- base::FilePath unpack_path_;
- // Contains the |install_params| argument of the Install call.
- std::unique_ptr<InstallParams> install_params_;
- // Constains values to be posted as install progress.
- std::vector<int> installer_progress_samples_;
- scoped_refptr<base::SequencedTaskRunner> task_runner_;
- };
- // A ReadOnlyTestInstaller is an installer that knows about files in an existing
- // directory. It will not write to the directory.
- class ReadOnlyTestInstaller : public TestInstaller {
- public:
- explicit ReadOnlyTestInstaller(const base::FilePath& installed_path);
- bool GetInstalledFile(const std::string& file,
- base::FilePath* installed_file) override;
- private:
- ~ReadOnlyTestInstaller() override;
- base::FilePath install_directory_;
- };
- // A VersionedTestInstaller is an installer that installs files into versioned
- // directories (e.g. somedir/25.23.89.141/<files>).
- class VersionedTestInstaller : public TestInstaller {
- public:
- VersionedTestInstaller();
- void Install(const base::FilePath& unpack_path,
- const std::string& public_key,
- std::unique_ptr<InstallParams> install_params,
- ProgressCallback progress_callback,
- Callback callback) override;
- bool GetInstalledFile(const std::string& file,
- base::FilePath* installed_file) override;
- private:
- ~VersionedTestInstaller() override;
- base::FilePath install_directory_;
- base::Version current_version_;
- };
- } // namespace update_client
- #endif // COMPONENTS_UPDATE_CLIENT_TEST_INSTALLER_H_
|