Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(382)

Side by Side Diff: chrome/browser/printing/cloud_print/test/cloud_print_proxy_process_browsertest.cc

Issue 816403003: Make callers of CommandLine use it via the base:: namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Create a service process that uses a Mock to respond to the browser in order 5 // Create a service process that uses a Mock to respond to the browser in order
6 // to test launching the browser using the cloud print policy check command 6 // to test launching the browser using the cloud print policy check command
7 // line switch. 7 // line switch.
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 205
206 typedef base::Callback<void(MockServiceIPCServer* server)> 206 typedef base::Callback<void(MockServiceIPCServer* server)>
207 SetExpectationsCallback; 207 SetExpectationsCallback;
208 208
209 // The return value from this routine is used as the exit code for the mock 209 // The return value from this routine is used as the exit code for the mock
210 // service process. Any non-zero return value will be printed out and can help 210 // service process. Any non-zero return value will be printed out and can help
211 // determine the failure. 211 // determine the failure.
212 int CloudPrintMockService_Main(SetExpectationsCallback set_expectations) { 212 int CloudPrintMockService_Main(SetExpectationsCallback set_expectations) {
213 base::MessageLoopForUI main_message_loop; 213 base::MessageLoopForUI main_message_loop;
214 main_message_loop.set_thread_name("Main Thread"); 214 main_message_loop.set_thread_name("Main Thread");
215 CommandLine* command_line = CommandLine::ForCurrentProcess(); 215 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
216 content::RegisterPathProvider(); 216 content::RegisterPathProvider();
217 217
218 #if defined(OS_MACOSX) 218 #if defined(OS_MACOSX)
219 if (!command_line->HasSwitch(kTestExecutablePath)) 219 if (!command_line->HasSwitch(kTestExecutablePath))
220 return kMissingSwitch; 220 return kMissingSwitch;
221 base::FilePath executable_path = 221 base::FilePath executable_path =
222 command_line->GetSwitchValuePath(kTestExecutablePath); 222 command_line->GetSwitchValuePath(kTestExecutablePath);
223 EXPECT_FALSE(executable_path.empty()); 223 EXPECT_FALSE(executable_path.empty());
224 MockLaunchd mock_launchd(executable_path, &main_message_loop, true, true); 224 MockLaunchd mock_launchd(executable_path, &main_message_loop, true, true);
225 Launchd::ScopedInstance use_mock(&mock_launchd); 225 Launchd::ScopedInstance use_mock(&mock_launchd);
(...skipping 25 matching lines...) Expand all
251 EXPECT_TRUE(server.Init()); 251 EXPECT_TRUE(server.Init());
252 EXPECT_TRUE(state->SignalReady(service_process.IOMessageLoopProxy(), 252 EXPECT_TRUE(state->SignalReady(service_process.IOMessageLoopProxy(),
253 base::Bind(&ShutdownTask))); 253 base::Bind(&ShutdownTask)));
254 #if defined(OS_MACOSX) 254 #if defined(OS_MACOSX)
255 mock_launchd.SignalReady(); 255 mock_launchd.SignalReady();
256 #endif 256 #endif
257 257
258 // Connect up the parent/child IPC channel to signal that the test can 258 // Connect up the parent/child IPC channel to signal that the test can
259 // continue. 259 // continue.
260 TestStartupClientChannelListener listener; 260 TestStartupClientChannelListener listener;
261 EXPECT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( 261 EXPECT_TRUE(base::CommandLine::ForCurrentProcess()->HasSwitch(
262 switches::kProcessChannelID)); 262 switches::kProcessChannelID));
263 std::string startup_channel_name = 263 std::string startup_channel_name =
264 CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 264 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
265 switches::kProcessChannelID); 265 switches::kProcessChannelID);
266 scoped_ptr<IPC::ChannelProxy> startup_channel; 266 scoped_ptr<IPC::ChannelProxy> startup_channel;
267 startup_channel = 267 startup_channel =
268 IPC::ChannelProxy::Create(startup_channel_name, 268 IPC::ChannelProxy::Create(startup_channel_name,
269 IPC::Channel::MODE_CLIENT, 269 IPC::Channel::MODE_CLIENT,
270 &listener, 270 &listener,
271 service_process.IOMessageLoopProxy()); 271 service_process.IOMessageLoopProxy());
272 272
273 main_message_loop.Run(); 273 main_message_loop.Run();
274 if (!Mock::VerifyAndClearExpectations(&server)) 274 if (!Mock::VerifyAndClearExpectations(&server))
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 base::ProcessHandle Launch(const std::string& name); 311 base::ProcessHandle Launch(const std::string& name);
312 void WaitForConnect(); 312 void WaitForConnect();
313 bool Send(IPC::Message* message); 313 bool Send(IPC::Message* message);
314 void ShutdownAndWaitForExitWithTimeout(base::ProcessHandle handle); 314 void ShutdownAndWaitForExitWithTimeout(base::ProcessHandle handle);
315 315
316 // IPC::Listener implementation 316 // IPC::Listener implementation
317 bool OnMessageReceived(const IPC::Message& message) override { return false; } 317 bool OnMessageReceived(const IPC::Message& message) override { return false; }
318 void OnChannelConnected(int32 peer_pid) override; 318 void OnChannelConnected(int32 peer_pid) override;
319 319
320 // MultiProcessTest implementation. 320 // MultiProcessTest implementation.
321 CommandLine MakeCmdLine(const std::string& procname) override; 321 base::CommandLine MakeCmdLine(const std::string& procname) override;
322 322
323 bool LaunchBrowser(const CommandLine& command_line, Profile* profile) { 323 bool LaunchBrowser(const base::CommandLine& command_line, Profile* profile) {
324 int return_code = 0; 324 int return_code = 0;
325 StartupBrowserCreator browser_creator; 325 StartupBrowserCreator browser_creator;
326 return StartupBrowserCreator::ProcessCmdLineImpl( 326 return StartupBrowserCreator::ProcessCmdLineImpl(
327 command_line, base::FilePath(), false, profile, 327 command_line, base::FilePath(), false, profile,
328 StartupBrowserCreator::Profiles(), &return_code, &browser_creator); 328 StartupBrowserCreator::Profiles(), &return_code, &browser_creator);
329 } 329 }
330 330
331 protected: 331 protected:
332 content::TestBrowserThreadBundle thread_bundle_; 332 content::TestBrowserThreadBundle thread_bundle_;
333 base::ScopedTempDir temp_user_data_dir_; 333 base::ScopedTempDir temp_user_data_dir_;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 base::MessageLoopForUI::current(), 400 base::MessageLoopForUI::current(),
401 true, false)); 401 true, false));
402 scoped_launchd_instance_.reset( 402 scoped_launchd_instance_.reset(
403 new Launchd::ScopedInstance(mock_launchd_.get())); 403 new Launchd::ScopedInstance(mock_launchd_.get()));
404 #endif 404 #endif
405 405
406 // Ensure test does not use the standard profile directory. This is copied 406 // Ensure test does not use the standard profile directory. This is copied
407 // from InProcessBrowserTest::SetUp(). These tests require a more complex 407 // from InProcessBrowserTest::SetUp(). These tests require a more complex
408 // process startup so they are unable to just inherit from 408 // process startup so they are unable to just inherit from
409 // InProcessBrowserTest. 409 // InProcessBrowserTest.
410 CommandLine* command_line = CommandLine::ForCurrentProcess(); 410 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
411 base::FilePath user_data_dir = 411 base::FilePath user_data_dir =
412 command_line->GetSwitchValuePath(switches::kUserDataDir); 412 command_line->GetSwitchValuePath(switches::kUserDataDir);
413 if (user_data_dir.empty()) { 413 if (user_data_dir.empty()) {
414 ASSERT_TRUE(temp_user_data_dir_.CreateUniqueTempDir() && 414 ASSERT_TRUE(temp_user_data_dir_.CreateUniqueTempDir() &&
415 temp_user_data_dir_.IsValid()) 415 temp_user_data_dir_.IsValid())
416 << "Could not create temporary user data directory \"" 416 << "Could not create temporary user data directory \""
417 << temp_user_data_dir_.path().value() << "\"."; 417 << temp_user_data_dir_.path().value() << "\".";
418 418
419 user_data_dir = temp_user_data_dir_.path(); 419 user_data_dir = temp_user_data_dir_.path();
420 command_line->AppendSwitchPath(switches::kUserDataDir, user_data_dir); 420 command_line->AppendSwitchPath(switches::kUserDataDir, user_data_dir);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 TestTimeouts::action_timeout()); 483 TestTimeouts::action_timeout());
484 EXPECT_TRUE(exited); 484 EXPECT_TRUE(exited);
485 EXPECT_EQ(exit_code, 0); 485 EXPECT_EQ(exit_code, 0);
486 base::CloseProcessHandle(handle); 486 base::CloseProcessHandle(handle);
487 } 487 }
488 488
489 void CloudPrintProxyPolicyStartupTest::OnChannelConnected(int32 peer_pid) { 489 void CloudPrintProxyPolicyStartupTest::OnChannelConnected(int32 peer_pid) {
490 observer_.Notify(); 490 observer_.Notify();
491 } 491 }
492 492
493 CommandLine CloudPrintProxyPolicyStartupTest::MakeCmdLine( 493 base::CommandLine CloudPrintProxyPolicyStartupTest::MakeCmdLine(
494 const std::string& procname) { 494 const std::string& procname) {
495 CommandLine cl = MultiProcessTest::MakeCmdLine(procname); 495 base::CommandLine cl = MultiProcessTest::MakeCmdLine(procname);
496 cl.AppendSwitchASCII(switches::kProcessChannelID, startup_channel_id_); 496 cl.AppendSwitchASCII(switches::kProcessChannelID, startup_channel_id_);
497 #if defined(OS_MACOSX) 497 #if defined(OS_MACOSX)
498 cl.AppendSwitchASCII(kTestExecutablePath, executable_path_.value()); 498 cl.AppendSwitchASCII(kTestExecutablePath, executable_path_.value());
499 #endif 499 #endif
500 return cl; 500 return cl;
501 } 501 }
502 502
503 TEST_F(CloudPrintProxyPolicyStartupTest, StartAndShutdown) { 503 TEST_F(CloudPrintProxyPolicyStartupTest, StartAndShutdown) {
504 TestingBrowserProcess* browser_process = 504 TestingBrowserProcess* browser_process =
505 TestingBrowserProcess::GetGlobal(); 505 TestingBrowserProcess::GetGlobal();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 TestingProfile* profile = 545 TestingProfile* profile =
546 profile_manager.CreateTestingProfile("StartBrowserWithoutPolicy"); 546 profile_manager.CreateTestingProfile("StartBrowserWithoutPolicy");
547 CloudPrintProxyServiceFactory::GetInstance()-> 547 CloudPrintProxyServiceFactory::GetInstance()->
548 SetTestingFactory(profile, CloudPrintProxyServiceFactoryForPolicyTest); 548 SetTestingFactory(profile, CloudPrintProxyServiceFactoryForPolicyTest);
549 549
550 TestingPrefServiceSyncable* prefs = profile->GetTestingPrefService(); 550 TestingPrefServiceSyncable* prefs = profile->GetTestingPrefService();
551 prefs->SetUserPref( 551 prefs->SetUserPref(
552 prefs::kCloudPrintEmail, 552 prefs::kCloudPrintEmail,
553 new base::StringValue(MockServiceIPCServer::EnabledUserId())); 553 new base::StringValue(MockServiceIPCServer::EnabledUserId()));
554 554
555 CommandLine command_line(CommandLine::NO_PROGRAM); 555 base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
556 command_line.AppendSwitch(switches::kCheckCloudPrintConnectorPolicy); 556 command_line.AppendSwitch(switches::kCheckCloudPrintConnectorPolicy);
557 test_launcher_utils::PrepareBrowserCommandLineForTests(&command_line); 557 test_launcher_utils::PrepareBrowserCommandLineForTests(&command_line);
558 558
559 WaitForConnect(); 559 WaitForConnect();
560 base::RunLoop run_loop; 560 base::RunLoop run_loop;
561 base::MessageLoop::current()->PostDelayedTask( 561 base::MessageLoop::current()->PostDelayedTask(
562 FROM_HERE, 562 FROM_HERE,
563 run_loop.QuitClosure(), 563 run_loop.QuitClosure(),
564 TestTimeouts::action_timeout()); 564 TestTimeouts::action_timeout());
565 565
(...skipping 29 matching lines...) Expand all
595 CloudPrintProxyServiceFactory::GetInstance()-> 595 CloudPrintProxyServiceFactory::GetInstance()->
596 SetTestingFactory(profile, CloudPrintProxyServiceFactoryForPolicyTest); 596 SetTestingFactory(profile, CloudPrintProxyServiceFactoryForPolicyTest);
597 597
598 TestingPrefServiceSyncable* prefs = profile->GetTestingPrefService(); 598 TestingPrefServiceSyncable* prefs = profile->GetTestingPrefService();
599 prefs->SetUserPref( 599 prefs->SetUserPref(
600 prefs::kCloudPrintEmail, 600 prefs::kCloudPrintEmail,
601 new base::StringValue(MockServiceIPCServer::EnabledUserId())); 601 new base::StringValue(MockServiceIPCServer::EnabledUserId()));
602 prefs->SetManagedPref(prefs::kCloudPrintProxyEnabled, 602 prefs->SetManagedPref(prefs::kCloudPrintProxyEnabled,
603 new base::FundamentalValue(false)); 603 new base::FundamentalValue(false));
604 604
605 CommandLine command_line(CommandLine::NO_PROGRAM); 605 base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
606 command_line.AppendSwitch(switches::kCheckCloudPrintConnectorPolicy); 606 command_line.AppendSwitch(switches::kCheckCloudPrintConnectorPolicy);
607 test_launcher_utils::PrepareBrowserCommandLineForTests(&command_line); 607 test_launcher_utils::PrepareBrowserCommandLineForTests(&command_line);
608 608
609 WaitForConnect(); 609 WaitForConnect();
610 base::RunLoop run_loop; 610 base::RunLoop run_loop;
611 base::MessageLoop::current()->PostDelayedTask( 611 base::MessageLoop::current()->PostDelayedTask(
612 FROM_HERE, 612 FROM_HERE,
613 run_loop.QuitClosure(), 613 run_loop.QuitClosure(),
614 TestTimeouts::action_timeout()); 614 TestTimeouts::action_timeout());
615 615
616 bool should_run_loop = LaunchBrowser(command_line, profile); 616 bool should_run_loop = LaunchBrowser(command_line, profile);
617 617
618 // No expectations on run_loop being true here; that would be a race 618 // No expectations on run_loop being true here; that would be a race
619 // condition. 619 // condition.
620 if (should_run_loop) 620 if (should_run_loop)
621 run_loop.Run(); 621 run_loop.Run();
622 622
623 EXPECT_EQ("", prefs->GetString(prefs::kCloudPrintEmail)); 623 EXPECT_EQ("", prefs->GetString(prefs::kCloudPrintEmail));
624 624
625 ShutdownAndWaitForExitWithTimeout(handle); 625 ShutdownAndWaitForExitWithTimeout(handle);
626 content::RunAllPendingInMessageLoop(); 626 content::RunAllPendingInMessageLoop();
627 profile_manager.DeleteTestingProfile("StartBrowserWithPolicy"); 627 profile_manager.DeleteTestingProfile("StartBrowserWithPolicy");
628 } 628 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698