12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_INSTALLER_UTIL_FAKE_PRODUCT_STATE_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_INSTALLER_UTIL_FAKE_PRODUCT_STATE_H_ 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <string> 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/installer/util/installation_state.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace installer { 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// A ProductState helper for use by unit tests. 147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass FakeProductState : public ProductState { 155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public: 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Takes ownership of |version|. 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void set_version(Version* version) { version_.reset(version); } 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void set_multi_install(bool multi) { multi_install_ = multi; } 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void set_brand(const std::wstring& brand) { brand_ = brand; } 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void set_usagestats(DWORD usagestats) { 21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch has_usagestats_ = true; 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) usagestats_ = usagestats; 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) void clear_usagestats() { has_usagestats_ = false; } 25868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) void SetUninstallProgram(const base::FilePath& setup_exe) { 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uninstall_command_ = base::CommandLine(setup_exe); 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void AddUninstallSwitch(const std::string& option) { 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) uninstall_command_.AppendSwitch(option); 3003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) } 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace installer 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CHROME_INSTALLER_UTIL_FAKE_PRODUCT_STATE_H_ 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)