Home | History | Annotate | Download | only in cocoa
      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