Home | History | Annotate | Download | only in test
      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 BASE_TEST_SCOPED_PATH_OVERRIDE_H_
      6 #define BASE_TEST_SCOPED_PATH_OVERRIDE_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/files/scoped_temp_dir.h"
     10 
     11 namespace base {
     12 
     13 class FilePath;
     14 
     15 // Sets a path override on construction, and removes it when the object goes out
     16 // of scope. This class is intended to be used by tests that need to override
     17 // paths to ensure their overrides are properly handled and reverted when the
     18 // scope of the test is left.
     19 class ScopedPathOverride {
     20  public:
     21   // Contructor that intializes the override to a scoped temp directory.
     22   explicit ScopedPathOverride(int key);
     23   // Constructor that would use a path provided by the user.
     24   ScopedPathOverride(int key, const FilePath& dir);
     25   ~ScopedPathOverride();
     26 
     27  private:
     28   int key_;
     29   ScopedTempDir temp_dir_;
     30 
     31   DISALLOW_COPY_AND_ASSIGN(ScopedPathOverride);
     32 };
     33 
     34 }  // namespace base
     35 
     36 #endif  // BASE_TEST_SCOPED_PATH_OVERRIDE_H_
     37