Index: tests/date.test
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/date/tests/date.test,v
retrieving revision 1.5
diff -u -p -r1.5 date.test
--- tests/date.test	7 Nov 2010 08:43:57 -0000	1.5
+++ tests/date.test	2 Jan 2011 04:06:25 -0000
@@ -92,6 +92,16 @@ class DateTestCase extends DrupalWebTest
     $this->dateForm($options = 'popup');
     $this->assertText('Thu, 10/07/2010 - 10:30', 'Found the correct date for a datetime field using the date_popup widget.');
     $this->deleteDateField();
+    
+    // Attempts to create text date field stored as a date with default settings (from input which is not valid).
+    $this->createDateField($type = 'date', $widget = 'date_text');
+    $edit = array();
+    $this->drupalPost(NULL, $edit, t('Save field settings'));
+    $this->malFormedDate($options = 'text');
+    $this->assertText('Date does not match expected format.', 'Correctly failed to create invalid date.');
+    $this->deleteDateField();
+    
+    
   }
 
   function createDateField($type, $widget) {
@@ -126,6 +136,31 @@ class DateTestCase extends DrupalWebTest
     $this->drupalPost('node/add/story', $edit, t('Save'));
     $this->assertText($edit['body[und][0][value]'], 'Test node has been created');
   }
+  
+  function malFormedDate($options, $date_format = 'mm/dd/yyyy') {
+    // Tests that date field filters improper dates.
+    $edit = array();
+    $edit['title'] = $this->randomName(8);
+    $edit['body[und][0][value]'] = $this->randomName(16);
+    if ($options == 'select') {
+      $edit['field_test[und][0][value][year]'] = '2011';
+      $edit['field_test[und][0][value][month]'] = '15';
+      $edit['field_test[und][0][value][day]'] = '49';
+      $edit['field_test[und][0][value][hour]'] = '10';
+      $edit['field_test[und][0][value][minute]'] = '30';
+    }
+    elseif ($options == 'text') {
+      $edit['field_test[und][0][value][date]'] = '15/49/2011 - 10:30';
+    }
+    elseif ($options == 'popup') {
+      $edit['field_test[und][0][value][date]'] = '15/49/2011';
+      $edit['field_test[und][0][value][time]'] = '10:30';
+    }
+    $this->drupalPost('node/add/story', $edit, t('Save'));
+    // This will currently fail since the type says "Test node has been created" 
+    // But we should really reject such dates, right?
+    $this->assertText($edit['body[und][0][value]'], 'Improperly formatted date. Please enter as ' . $date_format);
+  }
 
   function deleteDateField() {
     $this->drupalGet('admin/structure/types/manage/story/fields');
