1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
23345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// Use of this source code is governed by a BSD-style license that can be
33345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// found in the LICENSE file.
43345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
53345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "chrome/common/switch_utils.h"
63345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/basictypes.h"
83345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "base/command_line.h"
93345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "testing/gtest/include/gtest/gtest.h"
103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
113345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST(SwitchUtilsTest, RemoveSwitches) {
123345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#if defined(OS_WIN)
133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // All these command line args (except foo and bar) will
143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // be removed after RemoveSwitchesForAutostart:
153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  CommandLine cmd_line = CommandLine::FromString(
163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      L"program"
173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      L" --app=http://www.google.com/"
183345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      L" --first-run"
193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      L" --import"
203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      L" --import-from-file=c:\\test.html"
213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      L" --make-default-browser"
223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      L" --foo"
233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      L" --bar");
243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  EXPECT_FALSE(cmd_line.command_line_string().empty());
253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#elif defined(OS_POSIX)
263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  const char* argv[] = {
273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    "program",
283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    "--app=http://www.google.com/",
293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    "--first-run",
303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    "--import",
313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    "--import-from-file=c:\\test.html",
323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    "--make-default-browser",
333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    "--foo",
343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    "--bar"};
353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  CommandLine cmd_line(arraysize(argv), argv);
363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#endif
373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  std::map<std::string, CommandLine::StringType> switches =
393345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      cmd_line.GetSwitches();
403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  EXPECT_EQ(7U, switches.size());
413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
423345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  switches::RemoveSwitchesForAutostart(&switches);
433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  EXPECT_EQ(2U, switches.size());
443345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  EXPECT_TRUE(cmd_line.HasSwitch("foo"));
453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  EXPECT_TRUE(cmd_line.HasSwitch("bar"));
463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
47