### Eclipse Workspace Patch 1.0 #P drupal Index: modules/filter/filter.test =================================================================== RCS file: /cvs/drupal/drupal/modules/filter/filter.test,v retrieving revision 1.6 diff -u -r1.6 filter.test --- modules/filter/filter.test 15 Aug 2008 07:49:42 -0000 1.6 +++ modules/filter/filter.test 31 Aug 2008 10:50:17 -0000 @@ -201,8 +201,8 @@ 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); } /** @@ -219,13 +219,26 @@ } - 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/filters/add', $edit, t('Save configuration')); + $this->assertRaw(t('Added input format %format.', array('%format' => $edit['name'])), t('New filter created.')); + return db_fetch_object(db_query("SELECT * FROM {filter_formats} WHERE name = '%s'", $edit['name'])); } @@ -235,4 +248,56 @@ $this->drupalPost('admin/settings/filters/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); +// dvm($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'); + + // works if more than one format available! + // -> so make sure that more than one format is enabled! + $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))); + } + } + } }