Index: modules/simpletest/tests/theme.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/theme.test,v
retrieving revision 1.1
diff -u -r1.1 theme.test
--- modules/simpletest/tests/theme.test	15 Apr 2009 20:45:46 -0000	1.1
+++ modules/simpletest/tests/theme.test	2 May 2009 19:04:07 -0000
@@ -3,11 +3,11 @@
 
 /**
  * @file
- * Tests for the theme API.
+ * SimpleTests for the Theme API and other theme-related tasks.
  */
 
 /**
- * Unit tests for the theme API.
+ * Unit tests for the Theme API.
  */
 class TemplateUnitTest extends DrupalWebTestCase {
   function getInfo() {
@@ -50,5 +50,46 @@
     $suggestions = array("page\0");
     $this->assertEqual(drupal_discover_template(array('themes/garland'), $suggestions), 'themes/garland/page.tpl.php', t('Unsafe template suggestion fixed'));
   }
+}
 
+/**
+ * Unit tests for theme_table().
+ */
+class ThemeTableUnitTest extends DrupalWebTestCase {
+  function getInfo() {
+    return array(
+      'name' => t('Theme Table'),
+      'description' => t('Tests built-in theme functions.'),
+      'group' => t('Theme'),
+    );
+  }
+  
+  /**
+   * Tableheader.js provides 'sticky' table headers, and is included by default.
+   */
+  function testThemeTableStickyHeaders() {
+    $header = array('one', 'two', 'three');
+    $rows = array(array(1,2,3), array(4,5,6), array(7,8,9));
+    $output = theme('table', $header, $rows);
+    $js = drupal_add_js();
+    $this->assertTrue(isset($js['misc/tableheader.js']), t('tableheader.js was included when $sticky = TRUE.'));
+    $this->assertTrue(strpos($output, 'sticky-enabled'), t('Table has a class of sticky-enabled when $sticky = TRUE.'));
+    drupal_add_js(NULL, array('type' => 'reset');
+  }
+
+  /**
+   * If $sticky is FALSE, no tableheader.js should be included.
+   */
+  function testThemeTableNoStickyHeaders() {
+    $header = array('one', 'two', 'three');
+    $rows = array(array(1,2,3), array(4,5,6), array(7,8,9));
+    $attributes = array();
+    $caption = NULL;
+    $colgroups = array();
+    $output = theme('table', $header, $rows, $attributes, $caption, $colgroups, FALSE);
+    $js = drupal_add_js();
+    $this->assertFalse(isset($js['misc/tableheader.js']), t('tableheader.js was not included because $sticky = FALSE.'));
+    $this->assertFalse(strpos($output, 'sticky-enabled'), t('Table does not have a class of sticky-enabled because $sticky = FALSE.'));
+    drupal_add_js(NULL, array('type' => 'reset');
+  }
 }
