[Metrics] Make MetricsStateManager take a callback param to check if UMA is enabled.
[chromium-blink-merge.git] / chrome / browser / ui / cocoa / about_ipc_controller_unittest.mm
bloba40a0e81de700d800a27d9f8d016b49e4470834e
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)
17 namespace {
19 class AboutIPCControllerTest : public CocoaTest {
20  public:
21   virtual void SetUp() {
22     CocoaTest::SetUp();
23     ui_message_loop_.reset(new base::MessageLoopForUI());
24     ui_thread_.reset(new content::TestBrowserThread(
25         content::BrowserThread::UI, base::MessageLoop::current()));
26   }
28   virtual void TearDown() {
29     CocoaTest::TearDown();
30     ui_thread_.reset(NULL);
31   }
33  private:
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.
41   IPC::LogData data;
43   // Make sure generic names do NOT get filtered.
44   std::string names[] = { "PluginProcessingIsMyLife",
45                           "ViewMsgFoo",
46                           "NPObjectHell" };
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()]);
52   }
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()]);
62   [controller close];
65 }  // namespace
67 #endif  // IPC_MESSAGE_LOG_ENABLED