fake_free_disk_space_getter.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1// Copyright (c) 2012 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_CHROMEOS_DRIVE_FAKE_FREE_DISK_SPACE_GETTER_H_
6#define CHROME_BROWSER_CHROMEOS_DRIVE_FAKE_FREE_DISK_SPACE_GETTER_H_
7
8#include <vector>
9
10#include "base/basictypes.h"
11#include "chrome/browser/chromeos/drive/file_cache.h"
12
13namespace drive {
14
15// This class is used to report fake free disk space. In particular, this
16// class can be used to simulate a case where disk is full, or nearly full.
17class FakeFreeDiskSpaceGetter : public FreeDiskSpaceGetterInterface {
18 public:
19  FakeFreeDiskSpaceGetter();
20  virtual ~FakeFreeDiskSpaceGetter();
21
22  // If this function is not called, AmountOfFreeDiskSpace() will return 0
23  // repeatedly.
24  //
25  // If this function is only called once, AmountOfFreeDiskSpace() will
26  // return the fake value repeatedly.
27  //
28  // If this function is called multiple times, AmountOfFreeDiskSpace() will
29  // return the fake values in the same order these values were recorded. The
30  // last value will be returned repeatedly.
31  void set_fake_free_disk_space(int64 fake_free_disk_space) {
32    fake_values_.push_back(fake_free_disk_space);
33  }
34
35  // FreeDiskSpaceGetterInterface overrides.
36  virtual int64 AmountOfFreeDiskSpace() OVERRIDE;
37
38 private:
39  std::vector<int64> fake_values_;
40
41  DISALLOW_COPY_AND_ASSIGN(FakeFreeDiskSpaceGetter);
42};
43
44}  // namespace drive
45
46#endif  // CHROME_BROWSER_CHROMEOS_DRIVE_FAKE_FREE_DISK_SPACE_GETTER_H_
47