Index: base/command_line_unittest.cc |
=================================================================== |
--- base/command_line_unittest.cc (revision 3369) |
+++ base/command_line_unittest.cc (working copy) |
@@ -8,6 +8,7 @@ |
#include "base/command_line.h" |
#include "base/basictypes.h" |
#include "base/logging.h" |
+#include "base/string_util.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace { |
@@ -74,6 +75,13 @@ |
EXPECT_EQ(L"in the time of submarines...", *iter); |
++iter; |
EXPECT_TRUE(iter == cl.GetLooseValuesEnd()); |
+#if defined(OS_POSIX) |
+ std::vector<std::string> argvec = cl.argv(); |
+ |
+ for (size_t i = 0; i < argvec.size(); i++) { |
+ EXPECT_EQ(0, argvec[i].compare(argv[i])); |
+ } |
+#endif |
} |
// These test the command line used to invoke the unit test. |
@@ -89,6 +97,7 @@ |
CommandLine cl(L""); |
#elif defined(OS_POSIX) |
CommandLine cl(0, NULL); |
+ EXPECT_TRUE(cl.argv().size() == 0); |
#endif |
EXPECT_TRUE(cl.command_line_string().empty()); |
EXPECT_TRUE(cl.program().empty()); |
@@ -96,11 +105,7 @@ |
} |
// Test static functions for appending switches to a command line. |
-// TODO(pinkerton): non-windows platforms don't have the requisite ctor here, so |
-// we need something that tests AppendSwitches in another way (if even desired). |
-#if defined(OS_WIN) |
TEST(CommandLineTest, AppendSwitches) { |
- std::wstring cl_string = L"Program"; |
std::wstring switch1 = L"switch1"; |
std::wstring switch2 = L"switch2"; |
std::wstring value = L"value"; |
@@ -109,11 +114,25 @@ |
std::wstring switch4 = L"switch4"; |
std::wstring value4 = L"\"a value with quotes\""; |
+#if defined(OS_WIN) |
+ std::wstring cl_string = L"Program"; |
CommandLine::AppendSwitch(&cl_string, switch1); |
CommandLine::AppendSwitchWithValue(&cl_string, switch2, value); |
CommandLine::AppendSwitchWithValue(&cl_string, switch3, value3); |
CommandLine::AppendSwitchWithValue(&cl_string, switch4, value4); |
CommandLine cl(cl_string); |
+#elif defined(OS_POSIX) |
+ std::vector<std::string> argv; |
+ argv.push_back(std::string("Program")); |
+ argv.push_back(WideToUTF8(CommandLine::PrefixedSwitchString(switch1))); |
+ argv.push_back(WideToUTF8(CommandLine::PrefixedSwitchStringWithValue( |
+ switch2, value))); |
+ argv.push_back(WideToUTF8(CommandLine::PrefixedSwitchStringWithValue( |
+ switch3, value3))); |
+ argv.push_back(WideToUTF8(CommandLine::PrefixedSwitchStringWithValue( |
+ switch4, value4.substr(1, value4.length() - 2)))); |
+ CommandLine cl(argv); |
+#endif |
EXPECT_TRUE(cl.HasSwitch(switch1)); |
EXPECT_TRUE(cl.HasSwitch(switch2)); |
@@ -123,4 +142,4 @@ |
EXPECT_TRUE(cl.HasSwitch(switch4)); |
EXPECT_EQ(value4.substr(1, value4.length() - 2), cl.GetSwitchValue(switch4)); |
} |
-#endif |
+ |