Index: chrome/browser/plugin_service_browsertest.cc |
=================================================================== |
--- chrome/browser/plugin_service_browsertest.cc (revision 75653) |
+++ chrome/browser/plugin_service_browsertest.cc (working copy) |
@@ -1,107 +0,0 @@ |
-// Copyright (c) 2010 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 "chrome/browser/plugin_service.h" |
- |
-#include "base/auto_reset.h" |
-#include "base/command_line.h" |
-#include "chrome/browser/browser_thread.h" |
-#include "chrome/test/in_process_browser_test.h" |
-#include "chrome/test/testing_profile.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "webkit/plugins/npapi/plugin_list.h" |
- |
-namespace { |
- |
-// We have to mock the Client class up in order to be able to test the |
-// OpenChannelToPlugin function. The only really needed function of this mockup |
-// is SetPluginInfo, which gets called in |
-// PluginService::FinishOpenChannelToPlugin. |
-class MockPluginProcessHostClient : public PluginProcessHost::Client { |
- public: |
- MockPluginProcessHostClient() {} |
- virtual ~MockPluginProcessHostClient() {} |
- |
- MOCK_METHOD0(ID, int()); |
- MOCK_METHOD0(OffTheRecord, bool()); |
- MOCK_METHOD1(SetPluginInfo, void(const webkit::npapi::WebPluginInfo& info)); |
- MOCK_METHOD1(OnChannelOpened, void(const IPC::ChannelHandle& handle)); |
- MOCK_METHOD0(OnError, void()); |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(MockPluginProcessHostClient); |
-}; |
- |
-class PluginServiceTest : public testing::Test { |
- public: |
- PluginServiceTest() |
- : message_loop_(MessageLoop::TYPE_IO), |
- ui_thread_(BrowserThread::UI, &message_loop_), |
- file_thread_(BrowserThread::FILE, &message_loop_), |
- io_thread_(BrowserThread::IO, &message_loop_) {} |
- |
- virtual ~PluginServiceTest() {} |
- |
- virtual void SetUp() { |
- profile_.reset(new TestingProfile()); |
- |
- PluginService::InitGlobalInstance(profile_.get()); |
- plugin_service_ = PluginService::GetInstance(); |
- ASSERT_TRUE(plugin_service_); |
- } |
- |
- protected: |
- MessageLoop message_loop_; |
- PluginService* plugin_service_; |
- |
- private: |
- BrowserThread ui_thread_; |
- BrowserThread file_thread_; |
- BrowserThread io_thread_; |
- scoped_ptr<TestingProfile> profile_; |
- |
- DISALLOW_COPY_AND_ASSIGN(PluginServiceTest); |
-}; |
- |
-// These tests need to be implemented as in process tests because on mac os the |
-// plugin loading mechanism checks whether plugin paths are in the bundle path |
-// and the test fails this check when run outside of the browser process. |
-IN_PROC_BROWSER_TEST_F(PluginServiceTest, StartAndFindPluginProcess) { |
- // Try to load the default plugin and if this is successful consecutive |
- // calls to FindPluginProcess should return non-zero values. |
- PluginProcessHost* default_plugin_process_host = |
- plugin_service_->FindOrStartNpapiPluginProcess( |
- FilePath(webkit::npapi::kDefaultPluginLibraryName)); |
- |
- EXPECT_EQ(default_plugin_process_host, |
- plugin_service_->FindNpapiPluginProcess( |
- FilePath(webkit::npapi::kDefaultPluginLibraryName))); |
-} |
- |
-IN_PROC_BROWSER_TEST_F(PluginServiceTest, OpenChannelToPlugin) { |
- MockPluginProcessHostClient mock_client; |
- EXPECT_CALL(mock_client, SetPluginInfo(testing::_)).Times(1); |
- plugin_service_->OpenChannelToNpapiPlugin(0, 0, GURL("http://google.com/"), |
- "audio/mp3", &mock_client); |
- message_loop_.RunAllPending(); |
-} |
- |
-IN_PROC_BROWSER_TEST_F(PluginServiceTest, GetFirstAllowedPluginInfo) { |
- // on ChromeOS the plugin policy gets loaded on the FILE thread and the |
- // GetFirstAllowedPluginInfo will fail if we don't allow it to finish. |
- message_loop_.RunAllPending(); |
- // We should always get a positive response no matter whether we really have |
- // a plugin to support that particular mime type because the Default plugin |
- // supports all mime types. |
- webkit::npapi::WebPluginInfo plugin_info; |
- std::string plugin_mime_type; |
- plugin_service_->GetFirstAllowedPluginInfo(0, 0, GURL("http://google.com/"), |
- "application/pdf", |
- &plugin_info, |
- &plugin_mime_type); |
- EXPECT_EQ("application/pdf", plugin_mime_type); |
-} |
- |
-} // namespace |