summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/renderer/render_process_unittest.cc13
-rw-r--r--chrome/renderer/render_thread_unittest.cc32
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