1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #import <Cocoa/Cocoa.h>
7 #import "base/mac/scoped_nsobject.h"
8 #include "base/message_loop/message_loop.h"
9 #import "chrome/browser/ui/cocoa/about_ipc_controller.h"
10 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h"
11 #include "content/public/test/test_browser_thread.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13 #include "testing/platform_test.h"
15 #if defined(IPC_MESSAGE_LOG_ENABLED)
19 class AboutIPCControllerTest : public CocoaTest {
21 virtual void SetUp() {
23 ui_message_loop_.reset(new base::MessageLoopForUI());
24 ui_thread_.reset(new content::TestBrowserThread(
25 content::BrowserThread::UI, base::MessageLoop::current()));
28 virtual void TearDown() {
29 CocoaTest::TearDown();
30 ui_thread_.reset(NULL);
34 scoped_ptr<base::MessageLoopForUI> ui_message_loop_;
35 scoped_ptr<content::TestBrowserThread> ui_thread_;
38 TEST_F(AboutIPCControllerTest, TestFilter) {
39 AboutIPCController* controller = [[AboutIPCController alloc] init];
40 EXPECT_TRUE([controller window]); // force nib load.
43 // Make sure generic names do NOT get filtered.
44 std::string names[] = { "PluginProcessingIsMyLife",
47 for (size_t i = 0; i < arraysize(names); i++) {
48 data.message_name = names[i];
49 base::scoped_nsobject<CocoaLogData> cdata(
50 [[CocoaLogData alloc] initWithLogData:data]);
51 EXPECT_FALSE([controller filterOut:cdata.get()]);
54 // Flip a checkbox, see it filtered, flip back, all is fine.
55 data.message_name = "ViewMsgFoo";
56 base::scoped_nsobject<CocoaLogData> cdata(
57 [[CocoaLogData alloc] initWithLogData:data]);
58 [controller setDisplayViewMessages:NO];
59 EXPECT_TRUE([controller filterOut:cdata.get()]);
60 [controller setDisplayViewMessages:YES];
61 EXPECT_FALSE([controller filterOut:cdata.get()]);
67 #endif // IPC_MESSAGE_LOG_ENABLED