Index: branches/features/purchaseOrders/test/functional/GebReportingSpecBase.groovy
===================================================================
--- branches/features/purchaseOrders/test/functional/GebReportingSpecBase.groovy	(revision 948)
+++ branches/features/purchaseOrders/test/functional/GebReportingSpecBase.groovy	(revision 949)
@@ -20,5 +20,5 @@
      * authentication or by directly requesting the login page.
      */
-    def login(username, password, targetPage = null, params = [:]) {
+    void login(username, password, targetPage = null, params = [:]) {
         if (targetPage) {
             to([*:params], targetPage)
Index: branches/features/purchaseOrders/test/functional/LoginSpec.groovy
===================================================================
--- branches/features/purchaseOrders/test/functional/LoginSpec.groovy	(revision 948)
+++ branches/features/purchaseOrders/test/functional/LoginSpec.groovy	(revision 949)
@@ -32,11 +32,38 @@
     }
 
-    def "If we type in the wrong password"() {
-        when:
-        login('admin', 'bogus')
-
-        then:
+    def "If we type in the wrong password or username"() {
+        expect:
+        login(username, password)
         at LoginPage
         verifyLoginFailureMessage()
+
+        where:
+        username  | password
+        'admin'   | 'bogus' /* Bogus Password. */
+        'admin'   | ''      // Blank.
+        'admin'   | 'PASS'  // Capitals
+        'admin'   | 'Pass'  // First Capital.
+        'admin'   | 'pasS'  // Last Capital.
+        'admin'   | 'pas'   // One letter short.
+        'admin'   | 'passs' // One letter longer.
+        'admin'   | 'pass ' // Trailing space.
+        'admin'   | '*'     // Star Wildcard.
+        'admin'   | '%'     // Percentage Wildcard.
+        'admin'   | '.'     // Dot Wildcard.
+        'admin'   | 'pas*'  // Star Wildcard in pattern.
+        'admin'   | 'pas%'  // Percentage Wildcard in pattern.
+        'bogus'   | 'pass'  /* Bogus Username. */
+        ''        | 'pass'  // Blank
+        'ADMIN'   | 'pass'  // Capitals
+        'Admin'   | 'pass'  // First Capital.
+        'admiN'   | 'pass'  // Last Capital.
+        'admi'    | 'pass'  // One letter short.
+        'adminn'  | 'pass'  // One letter longer.
+        //'admin '  | 'pass' // Trailing space.
+        '*'       | 'pass'  // Star Wildcard.
+        '%'       | 'pass'  // Percentage Wildcard.
+        '.'       | 'pass'     // Dot Wildcard.
+        'admi*'   | 'pass'  // Star Wildcard in pattern.
+        'admi%'   | 'pass'  // Percentage Wildcard in pattern.
     }
 
