Open Journal Systems  3.3.0
MetadataPluginTestCase.inc.php
1 <?php
2 
21 import('lib.pkp.tests.plugins.PluginTestCase');
22 import('lib.pkp.classes.plugins.MetadataPlugin');
23 
28  protected function getAffectedTables() {
29  $affectedTables = parent::getAffectedTables();
30  return array_merge(
31  $affectedTables,
32  array('controlled_vocabs', 'controlled_vocab_entries', 'controlled_vocab_entry_settings')
33  );
34  }
35 
43  protected function executeMetadataPluginTest($pluginDir, $pluginName, $filterGroups, $controlledVocabs) {
44  // Make sure that the vocab xml configuration is valid.
45  $controlledVocabFile = 'plugins/metadata/'.$pluginDir.'/schema/'.METADATA_PLUGIN_VOCAB_DATAFILE;
46  $this->validateXmlConfig(array('./'.$controlledVocabFile, './lib/pkp/'.$controlledVocabFile));
47 
48  // Delete vocab data so that we can re-install it.
49  $controlledVocabDao = DAORegistry::getDAO('ControlledVocabDAO'); /* @var $controlledVocabDao ControlledVocabDAO */
50  foreach($controlledVocabs as $controlledVocabSymbolic) {
51  $controlledVocab = $controlledVocabDao->getBySymbolic($controlledVocabSymbolic, 0, 0);
52  if ($controlledVocab) $controlledVocabDao->deleteObject($controlledVocab);
53  }
54 
55  // Unregister the plug-in so that we're sure it will be registered again.
56  $plugins =& PluginRegistry::getPlugins();
57  unset($plugins['metadata'][$pluginName]);
58 
59  $this->executePluginTest('metadata', $pluginDir, $pluginName, $filterGroups);
60 
61  // Test whether the controlled vocabs have been installed.
62  foreach($controlledVocabs as $controlledVocab) {
63  self::assertInstanceOf('ControlledVocab', $controlledVocabDao->getBySymbolic($controlledVocab, 0, 0));
64  }
65  }
66 }
67 
PluginRegistry\getPlugins
static & getPlugins($category=null)
Definition: PluginRegistry.inc.php:30
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PluginTestCase
Abstract base class for Plugin tests.
Definition: PluginTestCase.inc.php:26
MetadataPluginTestCase\executeMetadataPluginTest
executeMetadataPluginTest($pluginDir, $pluginName, $filterGroups, $controlledVocabs)
Definition: MetadataPluginTestCase.inc.php:43
MetadataPluginTestCase\getAffectedTables
getAffectedTables()
Definition: MetadataPluginTestCase.inc.php:28
MetadataPluginTestCase
Abstract base class for MetadataPlugin tests.
Definition: MetadataPluginTestCase.inc.php:24
PluginTestCase\executePluginTest
executePluginTest($pluginCategory, $pluginDir, $pluginName, $filterGroups)
Definition: PluginTestCase.inc.php:51
PluginTestCase\validateXmlConfig
validateXmlConfig($configFiles)
Definition: PluginTestCase.inc.php:107