OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/common/switch_utils.h" | 5 #include "chrome/common/switch_utils.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/file_path.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
10 | 11 |
11 TEST(SwitchUtilsTest, RemoveSwitches) { | 12 TEST(SwitchUtilsTest, RemoveSwitches) { |
13 const CommandLine::CharType* argv[] = { | |
14 FILE_PATH_LITERAL("program"), | |
15 FILE_PATH_LITERAL("--app=http://www.google.com/"), | |
16 FILE_PATH_LITERAL("--first-run"), | |
17 FILE_PATH_LITERAL("--import"), | |
18 FILE_PATH_LITERAL("--import-from-file=c:\\test.html"), | |
19 FILE_PATH_LITERAL("--make-default-browser"), | |
20 FILE_PATH_LITERAL("--foo"), | |
21 FILE_PATH_LITERAL("--bar")}; | |
22 CommandLine cmd_line(arraysize(argv), argv); | |
23 EXPECT_FALSE(cmd_line.command_line_string().empty()); | |
24 | |
25 std::map<std::string, CommandLine::StringType> switches = | |
26 cmd_line.GetSwitches(); | |
27 EXPECT_EQ(7U, switches.size()); | |
28 | |
29 switches::RemoveSwitchesForAutostart(&switches); | |
30 EXPECT_EQ(2U, switches.size()); | |
31 EXPECT_TRUE(cmd_line.HasSwitch("foo")); | |
32 EXPECT_TRUE(cmd_line.HasSwitch("bar")); | |
33 } | |
34 | |
12 #if defined(OS_WIN) | 35 #if defined(OS_WIN) |
Evan Martin
2011/05/10 23:48:32
Maybe we should test this on all platforms?
msw
2011/05/11 02:28:12
I exposed the argv-constructed CommandLine case to
| |
36 TEST(SwitchUtilsTest, RemoveSwitchesFromString) { | |
13 // All these command line args (except foo and bar) will | 37 // All these command line args (except foo and bar) will |
14 // be removed after RemoveSwitchesForAutostart: | 38 // be removed after RemoveSwitchesForAutostart: |
15 CommandLine cmd_line = CommandLine::FromString( | 39 CommandLine cmd_line = CommandLine::FromString( |
16 L"program" | 40 L"program" |
17 L" --app=http://www.google.com/" | 41 L" --app=http://www.google.com/" |
18 L" --first-run" | 42 L" --first-run" |
19 L" --import" | 43 L" --import" |
20 L" --import-from-file=c:\\test.html" | 44 L" --import-from-file=c:\\test.html" |
21 L" --make-default-browser" | 45 L" --make-default-browser" |
22 L" --foo" | 46 L" --foo" |
23 L" --bar"); | 47 L" --bar"); |
24 EXPECT_FALSE(cmd_line.command_line_string().empty()); | 48 EXPECT_FALSE(cmd_line.command_line_string().empty()); |
25 #elif defined(OS_POSIX) | |
26 const char* argv[] = { | |
27 "program", | |
28 "--app=http://www.google.com/", | |
29 "--first-run", | |
30 "--import", | |
31 "--import-from-file=c:\\test.html", | |
32 "--make-default-browser", | |
33 "--foo", | |
34 "--bar"}; | |
35 CommandLine cmd_line(arraysize(argv), argv); | |
36 #endif | |
37 | 49 |
38 std::map<std::string, CommandLine::StringType> switches = | 50 std::map<std::string, CommandLine::StringType> switches = |
39 cmd_line.GetSwitches(); | 51 cmd_line.GetSwitches(); |
40 EXPECT_EQ(7U, switches.size()); | 52 EXPECT_EQ(7U, switches.size()); |
41 | 53 |
42 switches::RemoveSwitchesForAutostart(&switches); | 54 switches::RemoveSwitchesForAutostart(&switches); |
43 EXPECT_EQ(2U, switches.size()); | 55 EXPECT_EQ(2U, switches.size()); |
44 EXPECT_TRUE(cmd_line.HasSwitch("foo")); | 56 EXPECT_TRUE(cmd_line.HasSwitch("foo")); |
45 EXPECT_TRUE(cmd_line.HasSwitch("bar")); | 57 EXPECT_TRUE(cmd_line.HasSwitch("bar")); |
46 } | 58 } |
59 #endif | |
OLD | NEW |