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 <list> 9 10 #include "base/basictypes.h" 11 #include "chrome/browser/chromeos/drive/file_cache.h" 12 13 namespace 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. 17 class FakeFreeDiskSpaceGetter : public internal::FreeDiskSpaceGetterInterface { 18 public: 19 FakeFreeDiskSpaceGetter(); 20 virtual ~FakeFreeDiskSpaceGetter(); 21 22 void set_default_value(int64 value) { default_value_ = value; } 23 24 // Pushes the given value to the back of the fake value list. 25 // 26 // If the fake value list is empty, AmountOfFreeDiskSpace() will return 27 // |default_value_| repeatedly. 28 // Otherwise, AmountOfFreeDiskSpace() will return the value at the front of 29 // the list and removes it from the list. 30 void PushFakeValue(int64 value); 31 32 // FreeDiskSpaceGetterInterface overrides. 33 virtual int64 AmountOfFreeDiskSpace() OVERRIDE; 34 35 private: 36 std::list<int64> fake_values_; 37 int64 default_value_; 38 39 DISALLOW_COPY_AND_ASSIGN(FakeFreeDiskSpaceGetter); 40 }; 41 42 } // namespace drive 43 44 #endif // CHROME_BROWSER_CHROMEOS_DRIVE_FAKE_FREE_DISK_SPACE_GETTER_H_ 45