Repository: olingo-odata2
Updated Branches:
  refs/heads/master f892d2465 -> 9435ccd4d


[OLINGO-1165] Throwing exception with some valid accept-language headers


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/9435ccd4
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/9435ccd4
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/9435ccd4

Branch: refs/heads/master
Commit: 9435ccd4ddaa4ad32975cd350849b140c9062144
Parents: f892d24
Author: Archana Rai <[email protected]>
Authored: Wed Aug 16 13:37:59 2017 +0530
Committer: Archana Rai <[email protected]>
Committed: Wed Aug 16 13:37:59 2017 +0530

----------------------------------------------------------------------
 .../olingo/odata2/core/batch/AcceptParser.java  |  2 +-
 .../odata2/core/batch/AcceptParserTest.java     | 41 +++++++++++++++++++-
 2 files changed, 40 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/9435ccd4/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/AcceptParser.java
----------------------------------------------------------------------
diff --git 
a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/AcceptParser.java
 
b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/AcceptParser.java
index f1c2e73..ddd250f 100644
--- 
a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/AcceptParser.java
+++ 
b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/AcceptParser.java
@@ -40,7 +40,7 @@ public class AcceptParser {
   private static final Pattern REG_EX_ACCEPT_WITH_Q_FACTOR = 
Pattern.compile(REG_EX_ACCEPT + "(?:;"
       + REG_EX_OPTIONAL_WHITESPACE + REG_EX_QUALITY_FACTOR + ")?");
   private static final Pattern REG_EX_ACCEPT_LANGUAGES = Pattern
-      .compile("((?:(?:[a-z]{1,8})|(?:\\*))(?:-[a-zA-Z0-9]{1,8}){0,3})");
+      .compile("((?:(?:[a-zA-Z]{1,8})(?:-[a-zA-Z0-9]{1,8}){0,})|(?:\\*))");
   private static final Pattern REG_EX_ACCEPT_LANGUAGES_WITH_Q_FACTOR = 
Pattern.compile(REG_EX_ACCEPT_LANGUAGES + "(?:;"
       + REG_EX_OPTIONAL_WHITESPACE + REG_EX_QUALITY_FACTOR + ")?");
 

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/9435ccd4/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/batch/AcceptParserTest.java
----------------------------------------------------------------------
diff --git 
a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/batch/AcceptParserTest.java
 
b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/batch/AcceptParserTest.java
index 23e9858..f3b4005 100644
--- 
a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/batch/AcceptParserTest.java
+++ 
b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/batch/AcceptParserTest.java
@@ -104,13 +104,50 @@ public class AcceptParserTest {
   }
   
   @Test(expected = BatchException.class)
-  public void testInvalidAcceptLanguage3() throws BatchException {
+  public void testAllAcceptLanguageInvalid() throws BatchException {
     AcceptParser parser = new AcceptParser();
-    parser.addAcceptLanguageHeaderValue("en-US-x-XXX-XXXX");
+    parser.addAcceptLanguageHeaderValue("*-DE");
     parser.parseAcceptableLanguages();
   }
   
   @Test(expected = BatchException.class)
+  public void testAcceptLanguage16Char() throws BatchException {
+    AcceptParser parser = new AcceptParser();
+    parser.addAcceptLanguageHeaderValue("abcdefghijklmnop");
+    parser.parseAcceptableLanguages();
+  }
+  
+  @Test
+  public void testAcceptLanguageUpper() throws BatchException {
+    AcceptParser parser = new AcceptParser();
+    parser.addAcceptLanguageHeaderValue("EN-DE");
+    List<String> acceptLanguageHeaders = parser.parseAcceptableLanguages();
+    
+    assertNotNull(acceptLanguageHeaders);
+    assertEquals(1, acceptLanguageHeaders.size());
+  }
+  
+  @Test
+  public void testAcceptLanguageManyParts() throws BatchException {
+    AcceptParser parser = new AcceptParser();
+    parser.addAcceptLanguageHeaderValue("en-DE-FR-IN-AD");
+    List<String> acceptLanguageHeaders = parser.parseAcceptableLanguages();
+    
+    assertNotNull(acceptLanguageHeaders);
+    assertEquals(1, acceptLanguageHeaders.size());
+  }
+  
+  @Test
+  public void testAcceptLanguageCiphers() throws BatchException {
+    AcceptParser parser = new AcceptParser();
+    parser.addAcceptLanguageHeaderValue("en-150");
+    List<String> acceptLanguageHeaders = parser.parseAcceptableLanguages();
+    
+    assertNotNull(acceptLanguageHeaders);
+    assertEquals(1, acceptLanguageHeaders.size());
+  }
+  
+  @Test(expected = BatchException.class)
   public void testInvalidAcceptLanguage4() throws BatchException {
     AcceptParser parser = new AcceptParser();
     parser.addAcceptLanguageHeaderValue("en-US-x-$%");

Reply via email to