? sites/all/modules/cck ? sites/all/modules/devel ? sites/default/settings.php ? sites/default/files/.htaccess ? sites/default/files/simpletest Index: modules/filter/filter.test =================================================================== RCS file: /cvs/drupal/drupal/modules/filter/filter.test,v retrieving revision 1.23 diff -u -p -r1.23 filter.test --- modules/filter/filter.test 12 Jun 2009 08:39:37 -0000 1.23 +++ modules/filter/filter.test 14 Jun 2009 19:20:59 -0000 @@ -192,8 +192,8 @@ class FilterTestCase extends DrupalWebTe function setUp() { parent::setUp(); - $admin_user = $this->drupalCreateUser(array('administer filters', 'create page content')); - $this->drupalLogin($admin_user); + $this->user = $this->drupalCreateUser(array('administer filters', 'create page content')); + $this->drupalLogin($this->user); } /** @@ -221,13 +221,26 @@ class FilterTestCase extends DrupalWebTe } - function createFormat($filter) { + /** + * Create filter. + * + * @param $filters array of filter ids. + * + **/ + function createFormat($roles,$filters) { $edit = array( - 'name' => $this->randomName(), - 'roles[2]' => TRUE, 'filters[filter/' . $filter . ']' => TRUE, ); + foreach ($filters as $id => $filter) { + $edit['filters[' . $id . ']'] = TRUE; + } + foreach ($roles as $rid => $label) { + $edit['roles[' . $rid . ']'] = TRUE; + } + $this->drupalPost('admin/settings/filter/add', $edit, t('Save configuration')); + $this->assertRaw(t('Added input format %format.', array('%format' => $edit['name'])), t('New filter created.')); + return db_query("SELECT * FROM {filter_format} WHERE name = :name", array(':name' => $edit['name']))->fetchObject(); } @@ -237,4 +250,53 @@ class FilterTestCase extends DrupalWebTe $this->drupalPost('admin/settings/formats/delete/' . $format->format, array(), t('Delete')); } } + + /** + * Test if there is a help tip provided by all filters. + * + **/ + function testFilterHelp() { + + // Enable all available filters. + $filters = filter_list_all(); + ksort($filters); + + // Create dummy format that is to make sure more than one format is + // available. + $format_dummy = $this->createFormat($this->user->roles, $filters); + + // Create format with all available filters. + $format = $this->createFormat($this->user->roles, $filters); + + $this->assertNotNull($format, t('Format found in database.')); + + $this->drupalGet('node/add/page'); + + // Check the more link button. + $this->assertText(t('More information about formatting options'),t('Found the More button')); + + // Check for the right help text. + $this->assertTrue($this->parse(),'Prepare for xpath'); + + // Make sure that more than one format is enabled (works only if more than + // one format available). + $fields = $this->xpath("//div[@id='edit-format-".$format->format."-wrapper']/div"); + + $missingHelpCount = 0; + + // Get the filters tip here. + foreach ($filters as $id => $filter) { + $orig_filter = filter_filter_tips($filter->delta,$format->name); + $tips[$filter->delta] = $orig_filter; + + // Check if a filter is available. + if (!$orig_filter) { + // If one fails to provide a tip - remove one delta for the li index. + $missingHelpCount++; + } + else { + $this->assertEqual(htmlentities((string)$fields[0]->ul->li[$filter->delta - $missingHelpCount]), $tips[$filter->delta], t('Filter help text match !filter', array('!filter' => $filter->name))); + } + } + } }