diff options
-rw-r--r-- | chrome/renderer/render_process_unittest.cc | 13 | ||||
-rw-r--r-- | chrome/renderer/render_thread_unittest.cc | 32 |
2 files changed, 28 insertions, 17 deletions
diff --git a/chrome/renderer/render_process_unittest.cc b/chrome/renderer/render_process_unittest.cc index d1a3255..0303d40 100644 --- a/chrome/renderer/render_process_unittest.cc +++ b/chrome/renderer/render_process_unittest.cc @@ -7,29 +7,28 @@ #include "chrome/renderer/render_process.h" #include "testing/gtest/include/gtest/gtest.h" +namespace { class RenderProcessTest : public testing::Test { public: virtual void SetUp() { - // Must have a message loop to create a RenderThread() - message_loop_ = new MessageLoop(MessageLoop::TYPE_DEFAULT); + RenderProcess::GlobalInit(L"render_process_unittest"); } virtual void TearDown() { - delete message_loop_; + RenderProcess::GlobalCleanup(); } - private: - MessageLoop *message_loop_; + private: + MessageLoopForIO message_loop_; }; TEST_F(RenderProcessTest, TestSharedMemoryAllocOne) { - RenderProcess::GlobalInit(ASCIIToWide("hi mom")); size_t size = base::SysInfo::VMAllocationGranularity(); base::SharedMemory* mem = RenderProcess::AllocSharedMemory(size); ASSERT_TRUE(mem); RenderProcess::FreeSharedMemory(mem); - RenderProcess::GlobalCleanup(); } +} // namespace diff --git a/chrome/renderer/render_thread_unittest.cc b/chrome/renderer/render_thread_unittest.cc index 0aadda6..4fb7a24 100644 --- a/chrome/renderer/render_thread_unittest.cc +++ b/chrome/renderer/render_thread_unittest.cc @@ -4,44 +4,56 @@ #include "base/string_util.h" #include "base/waitable_event.h" +#include "chrome/common/ipc_sync_channel.h" #include "chrome/common/render_messages.h" +#include "chrome/renderer/mock_render_process.h" #include "chrome/renderer/render_thread.h" #include "testing/gtest/include/gtest/gtest.h" +namespace { + +const char kThreadName[] = "render_thread_unittest"; class RenderThreadTest : public testing::Test { public: virtual void SetUp() { - // Must have a message loop to create a RenderThread() - message_loop_ = new MessageLoop(MessageLoop::TYPE_DEFAULT); + MockProcess::GlobalInit(); + // Need a MODE_SERVER to make MODE_CLIENTs (like a RenderThread) happy. + channel_ = new IPC::Channel(ASCIIToWide(kThreadName), + IPC::Channel::MODE_SERVER, NULL); } - + virtual void TearDown() { - delete message_loop_; + message_loop_.RunAllPending(); + delete channel_; + MockProcess::GlobalCleanup(); } private: - MessageLoop *message_loop_; - + MessageLoopForIO message_loop_; + IPC::Channel *channel_; }; - TEST_F(RenderThreadTest, TestGlobal) { ASSERT_FALSE(g_render_thread); { - RenderThread thread(EmptyWString()); + RenderThread thread(ASCIIToWide(kThreadName)); ASSERT_TRUE(g_render_thread); } ASSERT_FALSE(g_render_thread); } TEST_F(RenderThreadTest, TestVisitedMsg) { - RenderThread thread(EmptyWString()); + RenderThread thread(ASCIIToWide(kThreadName)); IPC::Message* msg = new ViewMsg_VisitedLink_NewTable(NULL); ASSERT_TRUE(msg); // Message goes nowhere, but this confirms Init() has happened. // Unusually (?), RenderThread() Start()s itself in it's constructor. thread.Send(msg); - delete msg; + + // No need to delete msg; per Message::Send() documentation, "The + // implementor takes ownership of the given Message regardless of + // whether or not this method succeeds." } +} // namespace |