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

Unified Diff: chrome/renderer/renderer_main_unittest.cc

Issue 6873014: Clear RenderThread of any Chrome specific code, and move a bunch of stuff out of RenderView. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/extensions/user_script_slave.cc ('k') | chrome/renderer/spellchecker/spellcheck.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/renderer_main_unittest.cc
===================================================================
--- chrome/renderer/renderer_main_unittest.cc (revision 81801)
+++ chrome/renderer/renderer_main_unittest.cc (working copy)
@@ -1,126 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/compiler_specific.h"
-#include "base/message_loop.h"
-#include "base/process_util.h"
-#include "base/test/multiprocess_test.h"
-#include "base/test/test_timeouts.h"
-#include "chrome/common/chrome_switches.h"
-#include "content/common/main_function_params.h"
-#include "ipc/ipc_channel.h"
-#include "ipc/ipc_switches.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/multiprocess_func_list.h"
-
-// TODO(port): Bring up this test this on other platforms.
-#if defined(OS_POSIX)
-
-using base::ProcessHandle;
-
-const char kRendererTestChannelName[] = "test";
-
-extern int RendererMain(const MainFunctionParams& parameters);
-
-// TODO(port): The IPC Channel tests have a class with extremely similar
-// functionality, we should combine them.
-class RendererMainTest : public base::MultiProcessTest {
- protected:
- RendererMainTest() {}
-
- // Create a new MessageLoopForIO For each test.
- virtual void SetUp();
- virtual void TearDown();
-
- // Spawns a child process of the specified type
- base::ProcessHandle SpawnChild(const std::string& procname,
- IPC::Channel* channel);
-
- virtual CommandLine MakeCmdLine(const std::string& procname,
- bool debug_on_start) OVERRIDE;
-
- // Created around each test instantiation.
- MessageLoopForIO *message_loop_;
-};
-
-void RendererMainTest::SetUp() {
- MultiProcessTest::SetUp();
-
- // Construct a fresh IO Message loop for the duration of each test.
- message_loop_ = new MessageLoopForIO();
-}
-
-void RendererMainTest::TearDown() {
- delete message_loop_;
- message_loop_ = NULL;
-
- MultiProcessTest::TearDown();
-}
-
-ProcessHandle RendererMainTest::SpawnChild(const std::string& procname,
- IPC::Channel* channel) {
- base::file_handle_mapping_vector fds_to_map;
- const int ipcfd = channel->GetClientFileDescriptor();
- if (ipcfd > -1) {
- fds_to_map.push_back(std::pair<int,int>(ipcfd, 3));
- }
-
- return MultiProcessTest::SpawnChild(procname, fds_to_map, false);
-}
-
-CommandLine RendererMainTest::MakeCmdLine(const std::string& procname,
- bool debug_on_start) {
- CommandLine command_line =
- MultiProcessTest::MakeCmdLine(procname, debug_on_start);
-
- // Force seccomp off for this test. It's just a problem of refactoring,
- // not a bug.
- // http://code.google.com/p/chromium/issues/detail?id=59376
- command_line.AppendSwitch(switches::kDisableSeccompSandbox);
-
- return command_line;
-}
-
-// Listener class that kills the message loop when it connects.
-class SuicidalListener : public IPC::Channel::Listener {
- public:
- void OnChannelConnected(int32 peer_pid) {
- MessageLoop::current()->Quit();
- }
-
- bool OnMessageReceived(const IPC::Message& message) {
- // We shouldn't receive any messages
- NOTREACHED();
- return false;
- }
-};
-
-MULTIPROCESS_TEST_MAIN(SimpleRenderer) {
- SandboxInitWrapper dummy_sandbox_init;
- CommandLine cl(*CommandLine::ForCurrentProcess());
- cl.AppendSwitchASCII(switches::kProcessChannelID, kRendererTestChannelName);
-
- MainFunctionParams dummy_params(cl, dummy_sandbox_init, NULL);
- return RendererMain(dummy_params);
-}
-
-TEST_F(RendererMainTest, CreateDestroy) {
- SuicidalListener listener;
- IPC::Channel control_channel(kRendererTestChannelName,
- IPC::Channel::MODE_SERVER,
- &listener);
- base::ProcessHandle renderer_pid = SpawnChild("SimpleRenderer",
- &control_channel);
-
- ASSERT_TRUE(control_channel.Connect());
-
- MessageLoop::current()->Run();
-
- // The renderer should exit when we close the channel.
- control_channel.Close();
-
- EXPECT_TRUE(base::WaitForSingleProcess(renderer_pid,
- TestTimeouts::action_timeout_ms()));
-}
-#endif // defined(OS_POSIX)
« no previous file with comments | « chrome/renderer/extensions/user_script_slave.cc ('k') | chrome/renderer/spellchecker/spellcheck.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698