21 require_mock_env(
'env2');
23 import(
'lib.pkp.tests.DatabaseTestCase');
24 import(
'lib.pkp.classes.plugins.Plugin');
32 'filters',
'filter_settings',
'filter_groups',
33 'versions',
'plugin_settings'
41 return array(
'request',
'hooks');
51 protected function executePluginTest($pluginCategory, $pluginDir, $pluginName, $filterGroups) {
53 $filterConfigFile =
'plugins/'.$pluginCategory.
'/'.$pluginDir.
'/filter/'.PLUGIN_FILTER_DATAFILE;
54 $this->
validateXmlConfig(array(
'./'.$filterConfigFile,
'./lib/pkp/'.$filterConfigFile));
57 import(
'lib.pkp.classes.core.PKPRouter');
58 import(
'classes.core.Request');
59 $mockRequest = $this->getMockBuilder(Request::class)
60 ->setMethods(array(
'getRouter',
'getUser'))
63 $mockRequest->expects($this->any())
65 ->will($this->returnValue($router));
66 $mockRequest->expects($this->any())
68 ->will($this->returnValue(
null));
72 import(
'classes.install.Install');
73 $installFile =
'./lib/pkp/tests/plugins/testPluginInstall.xml';
74 $params = $this->getConnectionParams();
75 $installer =
new Install($params, $installFile,
true);
78 import(
'lib.pkp.classes.site.VersionCheck');
79 self::assertFileExists($versionFile =
'./plugins/'.$pluginCategory.
'/'.$pluginDir.
'/version.xml');
81 self::assertInstanceOf(
'Version', $pluginVersion = $versionInfo[
'version']);
82 $installer->setCurrentVersion($pluginVersion);
85 self::assertTrue($installer->execute());
92 $this->markTestIncomplete(
'Idempotence test disabled temporarily.');
97 foreach($filterGroups as $filterGroupSymbolic) {
99 self::assertInstanceOf(
'FilterGroup', $filterGroupDao->getObjectBySymbolic($filterGroupSymbolic), $filterGroupSymbolic);
108 foreach($configFiles as $configFile) {
109 if(file_exists($configFile)) {
110 $xmlDom =
new DOMDocument();
111 $xmlDom->load($configFile);
112 self::assertTrue($xmlDom->validate());
126 private function getConnectionParams() {
129 'connectionCharset' =>
Config::getVar(
'i18n',
'connection_charset'),