| Index: chrome_frame/chrome_frame_npapi_unittest.cc
|
| ===================================================================
|
| --- chrome_frame/chrome_frame_npapi_unittest.cc (revision 90713)
|
| +++ chrome_frame/chrome_frame_npapi_unittest.cc (working copy)
|
| @@ -1,176 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "gtest/gtest.h"
|
| -#include "gmock/gmock.h"
|
| -#include "chrome_frame/chrome_frame_automation.h"
|
| -#include "chrome_frame/chrome_frame_npapi.h"
|
| -
|
| -TEST(ChromeFrameNPAPI, DoesNotCrashOnConstruction) {
|
| - ChromeFrameNPAPI* api = new ChromeFrameNPAPI();
|
| - delete api;
|
| -}
|
| -
|
| -// All mocks in the anonymous namespace.
|
| -namespace {
|
| -
|
| -using ::testing::_;
|
| -using ::testing::Eq;
|
| -using ::testing::Field;
|
| -using ::testing::Invoke;
|
| -using ::testing::Return;
|
| -using ::testing::StrEq;
|
| -
|
| -const char* kMimeType = "application/chromeframe";
|
| -// The default profile name is by default derived from the currently
|
| -// running executable's name.
|
| -const wchar_t* kDefaultProfileName = L"chrome_frame_unittests";
|
| -
|
| -
|
| -class MockNPAPI: public ChromeFrameNPAPI {
|
| - public:
|
| - MockNPAPI() : mock_automation_client_(NULL) {}
|
| - MOCK_METHOD0(GetLocation, std::string());
|
| - MOCK_METHOD0(GetBrowserIncognitoMode, bool());
|
| -
|
| - MOCK_METHOD1(JavascriptToNPObject, virtual NPObject*(const std::string&));
|
| -
|
| - // Make public for test purposes
|
| - void OnAutomationServerReady() {
|
| - ChromeFrameNPAPI::OnAutomationServerReady();
|
| - }
|
| -
|
| - ChromeFrameAutomationClient* CreateAutomationClient() {
|
| - return mock_automation_client_;
|
| - }
|
| -
|
| - ChromeFrameAutomationClient* mock_automation_client_;
|
| -};
|
| -
|
| -class MockAutomationClient: public ChromeFrameAutomationClient {
|
| - public:
|
| - MOCK_METHOD2(Initialize, bool(ChromeFrameDelegate*,
|
| - ChromeFrameLaunchParams*));
|
| -};
|
| -
|
| -namespace {
|
| -
|
| -MATCHER_P4(LaunchParamEq, version_check, extra, incognito, widget,
|
| - "Basic check for ChromeFrameLaunchParams") {
|
| - return arg->version_check() == version_check &&
|
| - arg->extra_arguments().compare(extra) == 0 &&
|
| - arg->incognito() == incognito,
|
| - arg->widget_mode() == widget;
|
| -}
|
| -
|
| -
|
| -static const NPIdentifier kOnPrivateMessageId =
|
| - reinterpret_cast<NPIdentifier>(0x100);
|
| -static const NPIdentifier kPostPrivateMessageId =
|
| - reinterpret_cast<NPIdentifier>(0x100);
|
| -}
|
| -
|
| -class MockNetscapeFuncs {
|
| - public:
|
| - MockNetscapeFuncs() {
|
| - CHECK(NULL == current_);
|
| - current_ = this;
|
| - }
|
| -
|
| - ~MockNetscapeFuncs() {
|
| - CHECK(this == current_);
|
| - current_ = NULL;
|
| - }
|
| -
|
| - MOCK_METHOD3(GetValue, NPError(NPP, NPNVariable, void *));
|
| - MOCK_METHOD3(GetStringIdentifiers, void(const NPUTF8 **,
|
| - int32_t,
|
| - NPIdentifier *)); // NOLINT
|
| - MOCK_METHOD1(RetainObject, NPObject*(NPObject*)); // NOLINT
|
| - MOCK_METHOD1(ReleaseObject, void(NPObject*)); // NOLINT
|
| -
|
| - static const NPNetscapeFuncs* netscape_funcs() {
|
| - return &netscape_funcs_;
|
| - }
|
| -
|
| - private:
|
| - static NPError MockGetValue(NPP instance,
|
| - NPNVariable variable,
|
| - void *ret_value) {
|
| - DCHECK(current_);
|
| - return current_->GetValue(instance, variable, ret_value);
|
| - }
|
| -
|
| - static void MockGetStringIdentifiers(const NPUTF8 **names,
|
| - int32_t name_count,
|
| - NPIdentifier *identifiers) {
|
| - DCHECK(current_);
|
| - return current_->GetStringIdentifiers(names, name_count, identifiers);
|
| - }
|
| -
|
| - static NPObject* MockRetainObject(NPObject* obj) {
|
| - DCHECK(current_);
|
| - return current_->RetainObject(obj);
|
| - }
|
| -
|
| - static void MockReleaseObject(NPObject* obj) {
|
| - DCHECK(current_);
|
| - current_->ReleaseObject(obj);
|
| - }
|
| -
|
| - static MockNetscapeFuncs* current_;
|
| - static NPNetscapeFuncs netscape_funcs_;
|
| -};
|
| -
|
| -// Test fixture to allow testing the privileged NPAPI APIs
|
| -class TestNPAPIPrivilegedApi: public ::testing::Test {
|
| - public:
|
| - virtual void SetUp() {
|
| - memset(&instance, 0, sizeof(instance));
|
| - npapi::InitializeBrowserFunctions(
|
| - const_cast<NPNetscapeFuncs*>(mock_funcs.netscape_funcs()));
|
| -
|
| - // Gets owned & destroyed by mock_api (in the
|
| - // ChromeFramePlugin<T>::Uninitialize() function).
|
| - mock_automation = new MockAutomationClient;
|
| -
|
| - mock_api.mock_automation_client_ = mock_automation;
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - // Make sure to uninitialize the mock NPAPI before we uninitialize the
|
| - // browser function, otherwise we will get a DCHECK in the NPAPI dtor
|
| - // when it tries to perform the uninitialize there.
|
| - mock_api.Uninitialize();
|
| - npapi::UninitializeBrowserFunctions();
|
| - }
|
| -
|
| - void SetupPrivilegeTest(bool is_incognito,
|
| - bool expect_privilege_check,
|
| - bool is_privileged,
|
| - const std::wstring& profile_name,
|
| - const std::wstring& language,
|
| - const std::wstring& extra_args) {
|
| - EXPECT_CALL(mock_api, GetLocation())
|
| - .WillOnce(Return(std::string("http://www.google.com")));
|
| - EXPECT_CALL(mock_api, GetBrowserIncognitoMode())
|
| - .WillOnce(Return(is_incognito));
|
| -
|
| - scoped_refptr<ChromeFrameLaunchParams> launch_params(
|
| - new ChromeFrameLaunchParams(GURL(), GURL(), FilePath(), profile_name,
|
| - language, extra_args, is_incognito, true, false));
|
| -
|
| - EXPECT_CALL(*mock_automation,
|
| - Initialize(_, LaunchParamEq(true, extra_args, is_incognito, true)))
|
| - .WillOnce(Return(true));
|
| - }
|
| -
|
| - public:
|
| - MockNetscapeFuncs mock_funcs;
|
| - MockNPAPI mock_api;
|
| - MockAutomationClient* mock_automation;
|
| - NPP_t instance;
|
| -};
|
| -
|
| -} // namespace
|
|
|