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)