drupalCreateContentType(['type' => 'page', 'name' => 'Basic page']);
$this->drupalLogin($this->drupalCreateUser(['administer filters', 'create page content']));
}
/**
* Tests for the Pathologic UI.
*/
public function testPathologicUi() {
$this->doTestSettingsForm();
$this->doTestFormatsOptions();
$this->doTestFixUrl();
}
/**
* Test settings form.
*/
public function doTestSettingsForm() {
$this->drupalGet('admin/config/content/pathologic');
$this->assertText('Pathologic configuration');
// Test submit form.
$this->assertNoFieldChecked('edit-protocol-style-proto-rel');
$edit = [
'protocol_style' => 'proto-rel',
'local_paths' => 'http://example.com/',
];
$this->drupalPostForm(NULL, $edit, t('Save configuration'));
$this->assertText('The configuration options have been saved.');
$this->assertFieldChecked('edit-protocol-style-proto-rel');
$this->assertText('http://example.com/');
$this->clickLink('Pathologic’s documentation');
$this->assertResponse(200);
}
/**
* Test text formats and editors options with pathologic.
*/
public function doTestFormatsOptions() {
// Test plain text with pathologic configuration.
$this->drupalGet('/admin/config/content/formats/manage/plain_text');
// Select pathologic option.
$this->assertText('Correct URLs with Pathologic');
$this->assertNoFieldChecked('edit-filters-filter-pathologic-status');
$this->drupalPostForm(NULL, [
'filters[filter_html_escape][status]' => FALSE,
'filters[filter_pathologic][status]' => '1',
], t('Save configuration'));
$this->drupalGet('/admin/config/content/formats/manage/plain_text');
$this->assertRaw('In most cases, Pathologic should be the last filter in the “Filter processing order” list.');
$this->assertText('Select whether Pathologic should use the global Pathologic settings');
$this->assertFieldChecked('edit-filters-filter-pathologic-status');
$this->drupalPostForm(NULL, [
'filters[filter_pathologic][settings][settings_source]' => 'local',
'filters[filter_pathologic][settings][local_settings][protocol_style]' => 'full',
], t('Save configuration'));
$this->drupalGet('/admin/config/content/formats/manage/plain_text');
$this->assertFieldChecked('edit-filters-filter-pathologic-settings-settings-source-local');
$this->assertFieldChecked('edit-filters-filter-pathologic-settings-local-settings-protocol-style-full');
$this->assertText('Custom settings for this text format');
}
/**
* Test that a url is fixed with pathologic.
*/
public function doTestFixUrl() {
$this->drupalGet('node/add/page');
$edit = [
'title[0][value]' => 'Test pathologic',
'body[0][value]' => 'Test link',
];
$this->drupalPostForm('node/add/page', $edit, t('Save'));
// Assert that the link is processed with Pathologic.
$this->clickLink('Test link');
$this->assertTitle('Test pathologic | Drupal');
}
}