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