### 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 09:26:48 -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,59 @@
       $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 ('pass' == $this->assertNotNull($orig_filter, 
+                            t('Filter help tip available for filter !filter', 
+                               array('!filter' => $filter->name)))) {
+//        dvm(array('bla', $filter, $tips, $missingHelpCount));                       
+        $this->assertEqual(htmlentities((string)$fields[0]->ul->li[$filter->delta - $missingHelpCount]), 
+                           $tips[$filter->delta],
+                           t('Filter help text match !filter', array('!filter' => $filter->name)));
+      }
+      else {
+        // if one fails to provide a tip - remove one delta for the li index
+        $missingHelpCount++;
+      }
+    }
+  }
 }
