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. 4 5 #import <Cocoa/Cocoa.h> 6 7 #import "base/memory/scoped_nsobject.h" 8 #import "chrome/browser/ui/cocoa/about_ipc_controller.h" 9 #include "chrome/browser/ui/cocoa/browser_test_helper.h" 10 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" 11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/platform_test.h" 13 14 #if defined(IPC_MESSAGE_LOG_ENABLED) 15 16 namespace { 17 18 class AboutIPCControllerTest : public CocoaTest { 19 }; 20 21 TEST_F(AboutIPCControllerTest, TestFilter) { 22 AboutIPCController* controller = [[AboutIPCController alloc] init]; 23 EXPECT_TRUE([controller window]); // force nib load. 24 IPC::LogData data; 25 26 // Make sure generic names do NOT get filtered. 27 std::string names[] = { "PluginProcessingIsMyLife", 28 "ViewMsgFoo", 29 "NPObjectHell" }; 30 for (size_t i = 0; i < arraysize(names); i++) { 31 data.message_name = names[i]; 32 scoped_nsobject<CocoaLogData> cdata([[CocoaLogData alloc] 33 initWithLogData:data]); 34 EXPECT_FALSE([controller filterOut:cdata.get()]); 35 } 36 37 // Flip a checkbox, see it filtered, flip back, all is fine. 38 data.message_name = "ViewMsgFoo"; 39 scoped_nsobject<CocoaLogData> cdata([[CocoaLogData alloc] 40 initWithLogData:data]); 41 [controller setDisplayViewMessages:NO]; 42 EXPECT_TRUE([controller filterOut:cdata.get()]); 43 [controller setDisplayViewMessages:YES]; 44 EXPECT_FALSE([controller filterOut:cdata.get()]); 45 [controller close]; 46 } 47 48 } // namespace 49 50 #endif // IPC_MESSAGE_LOG_ENABLED 51