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