1 // Copyright 2016 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_COMMAND_LINE_H_
6 #define BASE_TEST_SCOPED_COMMAND_LINE_H_
7 
8 #include "base/command_line.h"
9 
10 namespace base {
11 namespace test {
12 
13 // Helper class to restore the original command line at the end of the scope.
14 // NOTE: In most unit tests, the command line is automatically restored per
15 //       test, so this class is not necessary if the command line applies to
16 //       the entire single test.
17 class ScopedCommandLine final {
18  public:
19   ScopedCommandLine();
20   ~ScopedCommandLine();
21 
22   // Gets the command line for the current process.
23   // NOTE: Do not name this GetCommandLine as this will conflict with Windows's
24   //       GetCommandLine and get renamed to GetCommandLineW.
25   CommandLine* GetProcessCommandLine();
26 
27  private:
28   const CommandLine original_command_line_;
29 };
30 
31 }  // namespace test
32 }  // namespace base
33 
34 #endif  // BASE_TEST_SCOPED_COMMAND_LINE_H_
35