Home | History | Annotate | Download | only in common
      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
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/common/switch_utils.h"
      6 
      7 #include "base/basictypes.h"
      8 #include "base/command_line.h"
      9 #include "testing/gtest/include/gtest/gtest.h"
     10 
     11 TEST(SwitchUtilsTest, RemoveSwitches) {
     12 #if defined(OS_WIN)
     13   // All these command line args (except foo and bar) will
     14   // be removed after RemoveSwitchesForAutostart:
     15   CommandLine cmd_line = CommandLine::FromString(
     16       L"program"
     17       L" --app=http://www.google.com/"
     18       L" --first-run"
     19       L" --import"
     20       L" --import-from-file=c:\\test.html"
     21       L" --make-default-browser"
     22       L" --foo"
     23       L" --bar");
     24   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 
     38   std::map<std::string, CommandLine::StringType> switches =
     39       cmd_line.GetSwitches();
     40   EXPECT_EQ(7U, switches.size());
     41 
     42   switches::RemoveSwitchesForAutostart(&switches);
     43   EXPECT_EQ(2U, switches.size());
     44   EXPECT_TRUE(cmd_line.HasSwitch("foo"));
     45   EXPECT_TRUE(cmd_line.HasSwitch("bar"));
     46 }
     47