diff options
Diffstat (limited to 'chrome/test/ui/npapi_test_helper.cc')
-rw-r--r-- | chrome/test/ui/npapi_test_helper.cc | 76 |
1 files changed, 53 insertions, 23 deletions
diff --git a/chrome/test/ui/npapi_test_helper.cc b/chrome/test/ui/npapi_test_helper.cc index 04c109f..1c8e7f1 100644 --- a/chrome/test/ui/npapi_test_helper.cc +++ b/chrome/test/ui/npapi_test_helper.cc @@ -16,20 +16,45 @@ #include "chrome/common/chrome_switches.h" #if defined(OS_WIN) -#define TEST_PLUGIN_NAME "npapi_test_plugin.dll" +static const char kNpapiTestPluginName[] = "npapi_test_plugin.dll"; +static const char kPepperTestPluginName[] = "pepper_test_plugin.dll"; #elif defined(OS_MACOSX) -#define TEST_PLUGIN_NAME "npapi_test_plugin.plugin" -#define LAYOUT_PLUGIN_NAME "TestNetscapePlugIn.plugin" +static const char kNpapiTestPluginName[] = "npapi_test_plugin.plugin"; +static const char kPepperTestPluginName[] = "PepperTestPlugin.plugin"; +static const char kLayoutPluginName[] = "TestNetscapePlugIn.plugin"; #elif defined(OS_LINUX) -#define TEST_PLUGIN_NAME "libnpapi_test_plugin.so" +static const char kNpapiTestPluginName[] = "libnpapi_test_plugin.so"; +static const char kPepperTestPluginName[] = "libpepper_test_plugin.so"; #endif -NPAPITester::NPAPITester() { +NPAPITesterBase::NPAPITesterBase(const std::string& test_plugin_name) + : test_plugin_name_(test_plugin_name) { } -void NPAPITester::SetUp() { +void NPAPITesterBase::SetUp() { // We need to copy our test-plugin into the plugins directory so that // the browser can load it. + FilePath plugins_directory = GetPluginsDirectory(); + FilePath plugin_src = browser_directory_.AppendASCII(test_plugin_name_); + ASSERT_TRUE(file_util::PathExists(plugin_src)); + test_plugin_path_ = plugins_directory.AppendASCII(test_plugin_name_); + + file_util::CreateDirectory(plugins_directory); + ASSERT_TRUE(file_util::CopyDirectory(plugin_src, test_plugin_path_, true)) + << "Copy failed from " << plugin_src.value() + << " to " << test_plugin_path_.value(); + + UITest::SetUp(); +} + +void NPAPITesterBase::TearDown() { + // Tear down the UI test first so that the browser stops using the plugin + // files. + UITest::TearDown(); + EXPECT_TRUE(file_util::DieFileDie(test_plugin_path_, true)); +} + +FilePath NPAPITesterBase::GetPluginsDirectory() { #if defined(OS_MACOSX) std::wstring plugin_subpath(chrome::kBrowserProcessExecutableName); plugin_subpath.append(L".app/Contents/PlugIns"); @@ -38,41 +63,37 @@ void NPAPITester::SetUp() { #else FilePath plugins_directory = browser_directory_.AppendASCII("plugins"); #endif + return plugins_directory; +} - FilePath plugin_src = browser_directory_.AppendASCII(TEST_PLUGIN_NAME); - ASSERT_TRUE(file_util::PathExists(plugin_src)); - test_plugin_path_ = plugins_directory.AppendASCII(TEST_PLUGIN_NAME); - - file_util::CreateDirectory(plugins_directory); - ASSERT_TRUE(file_util::CopyDirectory(plugin_src, test_plugin_path_, true)) - << "Copy failed from " << plugin_src.value() - << " to " << test_plugin_path_.value(); +NPAPITester::NPAPITester() : NPAPITesterBase(kNpapiTestPluginName) { +} +void NPAPITester::SetUp() { #if defined(OS_MACOSX) // On Windows and Linux, the layout plugin is copied into plugins/ as part of // its build process; we can't do the equivalent on the Mac since Chromium // doesn't exist during the Test Shell build. - FilePath layout_src = browser_directory_.AppendASCII(LAYOUT_PLUGIN_NAME); + FilePath layout_src = browser_directory_.AppendASCII(kLayoutPluginName); ASSERT_TRUE(file_util::PathExists(layout_src)); - layout_plugin_path_ = plugins_directory.AppendASCII(LAYOUT_PLUGIN_NAME); + FilePath plugins_directory = GetPluginsDirectory(); + layout_plugin_path_ = plugins_directory.AppendASCII(kLayoutPluginName); + file_util::CreateDirectory(plugins_directory); ASSERT_TRUE(file_util::CopyDirectory(layout_src, layout_plugin_path_, true)); #endif - UITest::SetUp(); + NPAPITesterBase::SetUp(); } void NPAPITester::TearDown() { - // Tear down the UI test first so that the browser stops using the plugin + // Tear down the base class first so that the browser stops using the plugin // files. - UITest::TearDown(); - - EXPECT_TRUE(file_util::DieFileDie(test_plugin_path_, true)); + NPAPITesterBase::TearDown(); #if defined(OS_MACOSX) EXPECT_TRUE(file_util::DieFileDie(layout_plugin_path_, true)); -#endif +#endif // OS_MACOSX } - // NPAPIVisiblePluginTester members. void NPAPIVisiblePluginTester::SetUp() { show_window_ = true; @@ -84,3 +105,12 @@ void NPAPIIncognitoTester::SetUp() { launch_arguments_.AppendSwitch(switches::kIncognito); NPAPITester::SetUp(); } + +PepperTester::PepperTester() : NPAPITesterBase(kPepperTestPluginName) { +} + +void PepperTester::SetUp() { + // TODO(alokp): Add command-line arguments + // --no-sandbox --internal-pepper --enable-gpu-plugin + NPAPITesterBase::SetUp(); +} |