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-$%");
