• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2009 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 #include "chrome/browser/automation/chrome_frame_automation_provider.h"
6 #include "chrome/test/testing_browser_process.h"
7 #include "chrome/test/testing_browser_process_test.h"
8 #include "content/browser/browser_thread.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 
12 class MockChromeFrameAutomationProvider
13     : public ChromeFrameAutomationProvider {
14  public:
MockChromeFrameAutomationProvider(Profile * profile)15   explicit MockChromeFrameAutomationProvider(Profile* profile)
16       : ChromeFrameAutomationProvider(profile) {}
17 
~MockChromeFrameAutomationProvider()18   virtual ~MockChromeFrameAutomationProvider() {}
19 
20   MOCK_METHOD1(OnUnhandledMessage,
21                void (const IPC::Message& message));  // NOLINT
22 };
23 
24 typedef TestingBrowserProcessTest AutomationProviderTest;
25 
TEST_F(AutomationProviderTest,TestInvalidChromeFrameMessage)26 TEST_F(AutomationProviderTest, TestInvalidChromeFrameMessage) {
27   MessageLoop message_loop;
28   BrowserThread ui_thread(BrowserThread::UI, &message_loop);
29 
30   IPC::Message bad_msg(1, -1, IPC::Message::PRIORITY_NORMAL);
31 
32   scoped_refptr<MockChromeFrameAutomationProvider>
33       mock(new MockChromeFrameAutomationProvider(NULL));
34 
35   EXPECT_CALL(*mock, OnUnhandledMessage(testing::Property(&IPC::Message::type,
36                                         -1))).Times(1);
37   mock->OnMessageReceived(bad_msg);
38 }
39 
40