Chromium Code Reviews| Index: chrome/utility/chrome_content_utility_client_unittest.cc |
| diff --git a/chrome/utility/chrome_content_utility_client_unittest.cc b/chrome/utility/chrome_content_utility_client_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5f4ae3ede1e3a65e1aed5cd4749d9b81097f991b |
| --- /dev/null |
| +++ b/chrome/utility/chrome_content_utility_client_unittest.cc |
| @@ -0,0 +1,91 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
|
mef
2014/01/10 18:22:55
nit: 2014
Drew Haven
2014/01/16 02:52:05
Done.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/utility/chrome_content_utility_client.h" |
| + |
| +#include "base/command_line.h" |
| +#include "chrome/utility/utility_message_handler.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| +#include "ipc/ipc_message_macros.h" |
| +#include "chrome/common/chrome_utility_messages.h" |
| +#include "content/public/common/content_switches.h" |
| + |
| +#define IPC_MESSAGE_START ChromeUtilityMsgStart |
| + |
| +// TODO(haven): Debugging only. |
| +IPC_MESSAGE_CONTROL0(ChromeUtilityMsg_DummyRequest) |
| +IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_DummyResponse) |
| + |
| +namespace chrome { |
| + |
| +namespace { |
| + |
| +class MockHandler : public UtilityMessageHandler { |
| + public: |
| + MockHandler() : request_received(false) {} |
| + |
| + virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE { |
| + bool handled = true; |
| + |
| + IPC_BEGIN_MESSAGE_MAP(MockHandler, message) |
| + IPC_MESSAGE_HANDLER(ChromeUtilityMsg_DummyRequest, OnDummyRequest) |
| + IPC_MESSAGE_UNHANDLED(handled = false); |
| + IPC_END_MESSAGE_MAP() |
| + |
| + return handled; |
| + } |
| + |
| + void OnDummyRequest() { |
| + request_received = true; |
| + } |
| + |
| + bool request_received; |
| +}; |
| + |
| +class ChromeContentUtilityClientTest : public testing::Test { |
| +}; |
| + |
| +} // namespace |
| + |
| +TEST_F(ChromeContentUtilityClientTest, MessageWhitelistAccept) { |
| + MockHandler* handler = new MockHandler; |
| + |
| + ChromeContentUtilityClient client; |
| + |
| + CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| + command_line->AppendSwitch(switches::kUtilityProcessRunningElevated); |
| + |
| + // Ownership given to client. |
| + client.AddHandler(handler); |
| + client.AddWhitelistMessageType(ChromeUtilityMsg_DummyRequest::ID); |
| + client.UtilityThreadStarted(); |
| + |
| + ChromeUtilityMsg_DummyRequest message; |
| + |
| + EXPECT_TRUE(client.OnMessageReceived(message)); |
| + |
| + EXPECT_TRUE(handler->request_received); |
| +} |
| + |
| +TEST_F(ChromeContentUtilityClientTest, MessageWhitelistReject) { |
| + MockHandler* handler = new MockHandler; |
| + |
| + ChromeContentUtilityClient client; |
| + |
| + CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| + command_line->AppendSwitch(switches::kUtilityProcessRunningElevated); |
| + |
| + // Ownership given to client. |
| + client.AddHandler(handler); |
| + client.UtilityThreadStarted(); |
| + |
| + ChromeUtilityMsg_DummyRequest message; |
| + |
| + EXPECT_FALSE(client.OnMessageReceived(message)); |
| + |
| + EXPECT_FALSE(handler->request_received); |
| +} |
| + |
| + |
| +} // namespace chrome |