public function FeedsMapperFormatConfig::testWithLimitedPrivileges in Feeds 7.2
Tests the filter formats a user has access to.
File
- tests/
feeds_mapper_format_config.test, line 123 - Contains FeedsMapperFormatConfig.
Class
- FeedsMapperFormatConfig
- Class for testing "Text format" mapping configuration on text fields.
Code
public function testWithLimitedPrivileges() {
// Create content type with a field that uses a text format.
$typename = $this
->createContentType(array(), array(
'alpha' => array(
'type' => 'text',
'instance_settings' => array(
'instance[settings][text_processing]' => 1,
),
),
));
// Create a new user with limited privileges.
$account = $this
->drupalCreateUser(array(
'administer feeds',
));
// Create filter format the user may use.
$format1 = drupal_strtolower($this
->randomName());
$edit1 = array(
'format' => $format1,
'name' => $this
->randomName(),
// Authenticated users.
'roles[2]' => TRUE,
);
$this
->drupalPost('admin/config/content/formats/add', $edit1, t('Save configuration'));
// Create filter format the user may NOT use.
$rid = $this
->drupalCreateRole(array());
$format2 = drupal_strtolower($this
->randomName());
$edit2 = array(
'format' => $format2,
'name' => $this
->randomName(),
'roles[' . $rid . ']' => TRUE,
);
$this
->drupalPost('admin/config/content/formats/add', $edit2, t('Save configuration'));
// Login as the user that may only use certain formats.
$this
->drupalLogin($account);
// Create importer and ensure the user can use the first format.
$this
->createImporterConfiguration();
$this
->setSettings('syndication', NULL, array(
'content_type' => '',
'import_period' => FEEDS_SCHEDULE_NEVER,
));
$this
->setPlugin('syndication', 'FeedsFileFetcher');
$this
->setPlugin('syndication', 'FeedsCSVParser');
$this
->setSettings('syndication', 'FeedsNodeProcessor', array(
'bundle' => $typename,
));
$this
->addMappings('syndication', array(
0 => array(
'source' => 'alpha',
'target' => 'field_alpha',
'format' => $format1,
),
));
// Check user can choose first, but not second format as an option.
$this
->drupalPostAJAX(NULL, array(), 'mapping_settings_edit_0');
$xpath = $this
->constructFieldXpath('name', 'config[0][settings][format]');
$fields = $this
->xpath($xpath);
$field = reset($fields);
$format_options = $this
->getAllOptions($field);
$format1_found = FALSE;
$format2_found = FALSE;
foreach ($format_options as $option) {
if ($option['value'] == $format1) {
$format1_found = TRUE;
}
if ($option['value'] == $format2) {
$format2_found = TRUE;
}
}
// Assert first format can be chosen.
$this
->assertTrue($format1_found, format_string('Text format %format can be chosen.', array(
'%format' => $format1,
)));
// Assert second format can NOT be chosen.
$this
->assertFalse($format2_found, format_string('Text format %format can NOT be chosen.', array(
'%format' => $format2,
)));
}