public function FeedsHooksTestCase::testHookPluginTypeConfigDefaults in Feeds 7.2
Tests the hook hook_PLUGIN_TYPE_config_defaults().
File
- tests/
feeds_hooks.test, line 122 - Contains FeedsHooksTestCase.
Class
- FeedsHooksTestCase
- Tests for hooks invoked by Feeds not related to mapping.
Code
public function testHookPluginTypeConfigDefaults() {
// Switch on hook implementations in the feeds_tests module.
variable_set('feeds_tests_hook_config_defaults', TRUE);
$this
->createImporterConfiguration('Config defaults test', 'config_defaults_test');
// Change parser plugin to CSV as the common syndication parser does not
// have a config form.
$this
->setPlugin('config_defaults_test', 'FeedsCSVParser');
// Load the importer and check default values for each plugin.
$importer = feeds_importer_load('config_defaults_test');
$fetcher_config = $importer->fetcher
->getConfig();
$parser_config = $importer->parser
->getConfig();
$processor_config = $importer->processor
->getConfig();
$this
->assertFalse($fetcher_config['feeds_tests_fetcher_extra_setting'], "Option 'Extra setting' is disabled for the fetcher.");
$this
->assertTrue($parser_config['feeds_tests_parser_extra_setting'], "Option 'Extra setting' is enabled for the parser.");
$this
->assertEqual('', $processor_config['feeds_tests_processor_extra_setting'], "Setting 'Extra setting' is empty.");
// Assert that the setting for a particular plugin does not exists for other
// configurables.
$importer_config = $importer
->getConfig();
$this
->assertFalse(isset($importer_config['feeds_tests_fetcher_extra_setting']));
$this
->assertFalse(isset($importer_config['feeds_tests_parser_extra_setting']));
$this
->assertFalse(isset($importer_config['feeds_tests_processor_extra_setting']));
$this
->assertFalse(isset($fetcher_config['feeds_tests_parser_extra_setting']));
$this
->assertFalse(isset($fetcher_config['feeds_tests_processor_extra_setting']));
$this
->assertFalse(isset($parser_config['feeds_tests_fetcher_extra_setting']));
$this
->assertFalse(isset($parser_config['feeds_tests_processor_extra_setting']));
$this
->assertFalse(isset($processor_config['feeds_tests_fetcher_extra_setting']));
$this
->assertFalse(isset($processor_config['feeds_tests_parser_extra_setting']));
// Now change the settings for each plugin.
$this
->setSettings('config_defaults_test', 'FeedsHTTPFetcher', array(
'feeds_tests_fetcher_extra_setting' => TRUE,
));
$this
->setSettings('config_defaults_test', 'FeedsCSVParser', array(
'feeds_tests_parser_extra_setting' => FALSE,
));
$this
->setSettings('config_defaults_test', 'FeedsNodeProcessor', array(
'feeds_tests_processor_extra_setting' => 'my setting',
));
// Reload the importer and assert that the configuration changed.
drupal_static_reset();
$importer = feeds_importer_load('config_defaults_test');
$fetcher_config = $importer->fetcher
->getConfig();
$parser_config = $importer->parser
->getConfig();
$processor_config = $importer->processor
->getConfig();
$this
->assertTrue($fetcher_config['feeds_tests_fetcher_extra_setting'], "Option 'Extra setting' is enabled for the fetcher.");
$this
->assertFalse($parser_config['feeds_tests_parser_extra_setting'], "Option 'Extra setting' is disabled for the parser.");
$this
->assertEqual('my setting', $processor_config['feeds_tests_processor_extra_setting'], "Setting 'Extra setting' is 'my setting'.");
}