You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2013/07/31 08:39:43 UTC

svn commit: r1508740 - in /webservices/axiom/trunk/modules/axiom-api/src: main/java/org/apache/axiom/mime/ContentTypeTokenizer.java test/java/org/apache/axiom/mime/ContentTypeTest.java test/java/org/apache/axiom/mime/MediaTypeTest.java

Author: veithen
Date: Wed Jul 31 06:39:43 2013
New Revision: 1508740

URL: http://svn.apache.org/r1508740
Log:
Increased test coverage and removed some unused code.

Modified:
    webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/mime/ContentTypeTokenizer.java
    webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/mime/ContentTypeTest.java
    webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/mime/MediaTypeTest.java

Modified: webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/mime/ContentTypeTokenizer.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/mime/ContentTypeTokenizer.java?rev=1508740&r1=1508739&r2=1508740&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/mime/ContentTypeTokenizer.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/mime/ContentTypeTokenizer.java Wed Jul 31 06:39:43 2013
@@ -46,7 +46,6 @@ final class ContentTypeTokenizer {
             // Just loop
         }
         int end = index;
-        skipWhiteSpace();
         for (; end > begin && whitespace.indexOf(s.charAt(end-1)) != -1; end--) {
             // Just loop
         }
@@ -100,12 +99,9 @@ final class ContentTypeTokenizer {
             } else {
                 return requireToken();
             }
+        } else {
+            throw new ParseException("Unexpected end of string; expected token or quoted string", index);
         }
-        return null;
-    }
-
-    int getChar() {
-        return index == s.length() ? -1 : s.charAt(index++);
     }
 
     boolean expect(char c) throws ParseException {
@@ -127,8 +123,4 @@ final class ContentTypeTokenizer {
             throw new ParseException("Unexpected end of string; expected '" + c + "'", index);
         }
     }
-    
-    boolean hasMoreTokens() {
-        return index < s.length();
-    }
 }

Modified: webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/mime/ContentTypeTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/mime/ContentTypeTest.java?rev=1508740&r1=1508739&r2=1508740&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/mime/ContentTypeTest.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/mime/ContentTypeTest.java Wed Jul 31 06:39:43 2013
@@ -18,6 +18,8 @@
  */
 package org.apache.axiom.mime;
 
+import java.text.ParseException;
+
 import junit.framework.TestCase;
 
 public class ContentTypeTest extends TestCase {
@@ -55,4 +57,78 @@ public class ContentTypeTest extends Tes
         assertEquals(new MediaType("text", "xml"), ct.getMediaType());
         assertEquals("utf-8", ct.getParameter("charset"));
     }
+    
+    public void testParseWithExtraSpaces() throws Exception {
+        ContentType ct = new ContentType("text/xml ; charset = utf-8 ");
+        assertEquals(new MediaType("text", "xml"), ct.getMediaType());
+        assertEquals("utf-8", ct.getParameter("charset"));
+    }
+    
+    public void testParseWithQuotedPair() throws Exception {
+        ContentType ct = new ContentType("application/x-some-format; comment=\"this is not a \\\"quote\\\"\"");
+        assertEquals("this is not a \"quote\"", ct.getParameter("comment"));
+    }
+    
+    public void testParseInvalid1() {
+        try {
+            new ContentType("text/xml; ?");
+            fail("Expected ParseException");
+        } catch (ParseException ex) {
+            // Expected
+        }
+    }
+
+    public void testParseInvalid2() {
+        try {
+            new ContentType("text/");
+            fail("Expected ParseException");
+        } catch (ParseException ex) {
+            // Expected
+        }
+    }
+
+    public void testParseInvalid3() {
+        try {
+            new ContentType("text/xml; charset=");
+            fail("Expected ParseException");
+        } catch (ParseException ex) {
+            // Expected
+        }
+    }
+
+    public void testParseInvalid4() {
+        try {
+            new ContentType("text/xml; charset=\"asc");
+            fail("Expected ParseException");
+        } catch (ParseException ex) {
+            // Expected
+        }
+    }
+
+    public void testParseInvalid5() {
+        try {
+            new ContentType("text/xml; param=\"test\\");
+            fail("Expected ParseException");
+        } catch (ParseException ex) {
+            // Expected
+        }
+    }
+
+    public void testParseInvalid6() {
+        try {
+            new ContentType("text/xml; param;");
+            fail("Expected ParseException");
+        } catch (ParseException ex) {
+            // Expected
+        }
+    }
+
+    public void testParseInvalid7() {
+        try {
+            new ContentType("text/xml; param");
+            fail("Expected ParseException");
+        } catch (ParseException ex) {
+            // Expected
+        }
+    }
 }

Modified: webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/mime/MediaTypeTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/mime/MediaTypeTest.java?rev=1508740&r1=1508739&r2=1508740&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/mime/MediaTypeTest.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/mime/MediaTypeTest.java Wed Jul 31 06:39:43 2013
@@ -36,6 +36,7 @@ public class MediaTypeTest extends TestC
         assertFalse(mt1.equals(mt3));
         assertFalse(mt1.equals(mt4));
         assertFalse(mt3.equals(mt4));
+        assertFalse(mt1.equals("test"));
     }
     
     public void testEqualsIgnoresCase() {