Repository: olingo-odata2 Updated Branches: refs/heads/master e55daaa25 -> 10133c534
[OLINGO-1133]Support for Accept-Language value xx-xxx-xx format Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/10133c53 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/10133c53 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/10133c53 Branch: refs/heads/master Commit: 10133c5343cda86f9517eedb5be78182099d725b Parents: e55daaa Author: Archana Rai <[email protected]> Authored: Thu Jun 8 15:40:00 2017 +0530 Committer: Archana Rai <[email protected]> Committed: Thu Jun 8 15:40:00 2017 +0530 ---------------------------------------------------------------------- format.diff | 80 ++++++++++++++++++++ .../olingo/odata2/core/batch/AcceptParser.java | 2 +- .../odata2/core/batch/AcceptParserTest.java | 47 +++++++++++- 3 files changed, 127 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/10133c53/format.diff ---------------------------------------------------------------------- diff --git a/format.diff b/format.diff new file mode 100644 index 0000000..aeaa8ee --- /dev/null +++ b/format.diff @@ -0,0 +1,80 @@ +From f833e7daf941275de72e3b4819221a28a747dc52 Mon Sep 17 00:00:00 2001 +From: Archana Rai <[email protected]> +Date: Mon, 29 May 2017 13:45:48 +0530 +Subject: [PATCH] [OLINGO-1133]Support for Accept-Language value xx-xxx-xx format + +Change-Id: Idabd1112b32f0ae433a319065924a84f4583c0a7 +Signed-off-by: Archana Rai <[email protected]> +--- + +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 3130942..f1c2e73 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 @@ + 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})?)"); ++ .compile("((?:(?:[a-z]{1,8})|(?:\\*))(?:-[a-zA-Z0-9]{1,8}){0,3})"); + 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 + ")?"); + +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 b1baaa7..23e9858 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 +@@ -78,7 +78,52 @@ + assertEquals("application/json;" + TAB + "odata=verbose", acceptHeaders.get(0)); + assertEquals("*/*", acceptHeaders.get(1)); + } +- ++ ++ @Test ++ public void testSpecialAcceptLanguage() throws BatchException { ++ AcceptParser parser = new AcceptParser(); ++ parser.addAcceptLanguageHeaderValue("en-US-x-XXXXXX"); ++ List<String> acceptLanguageHeaders = parser.parseAcceptableLanguages(); ++ assertNotNull(acceptLanguageHeaders); ++ assertEquals(1, acceptLanguageHeaders.size()); ++ assertEquals("en-US-x-XXXXXX", acceptLanguageHeaders.get(0)); ++ } ++ ++ @Test(expected = BatchException.class) ++ public void testInvalidAcceptLanguage1() throws BatchException { ++ AcceptParser parser = new AcceptParser(); ++ parser.addAcceptHeaderValue("en-US-x-xxxx-"); ++ parser.parseAcceptHeaders(); ++ } ++ ++ @Test(expected = BatchException.class) ++ public void testInvalidAcceptLanguage2() throws BatchException { ++ AcceptParser parser = new AcceptParser(); ++ parser.addAcceptLanguageHeaderValue("en-US-"); ++ parser.parseAcceptableLanguages(); ++ } ++ ++ @Test(expected = BatchException.class) ++ public void testInvalidAcceptLanguage3() throws BatchException { ++ AcceptParser parser = new AcceptParser(); ++ parser.addAcceptLanguageHeaderValue("en-US-x-XXX-XXXX"); ++ parser.parseAcceptableLanguages(); ++ } ++ ++ @Test(expected = BatchException.class) ++ public void testInvalidAcceptLanguage4() throws BatchException { ++ AcceptParser parser = new AcceptParser(); ++ parser.addAcceptLanguageHeaderValue("en-US-x-$%"); ++ parser.parseAcceptableLanguages(); ++ } ++ ++ @Test(expected = BatchException.class) ++ public void testInvalidAcceptLanguage5() throws BatchException { ++ AcceptParser parser = new AcceptParser(); ++ parser.addAcceptLanguageHeaderValue("en-"); ++ parser.parseAcceptableLanguages(); ++ } ++ + @Test + public void testAcceptHeaderWithTwoParameters() throws BatchException { + AcceptParser parser = new AcceptParser(); http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/10133c53/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 3130942..f1c2e73 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})?)"); + .compile("((?:(?:[a-z]{1,8})|(?:\\*))(?:-[a-zA-Z0-9]{1,8}){0,3})"); 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/10133c53/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 b1baaa7..23e9858 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 @@ -78,7 +78,52 @@ public class AcceptParserTest { assertEquals("application/json;" + TAB + "odata=verbose", acceptHeaders.get(0)); assertEquals("*/*", acceptHeaders.get(1)); } - + + @Test + public void testSpecialAcceptLanguage() throws BatchException { + AcceptParser parser = new AcceptParser(); + parser.addAcceptLanguageHeaderValue("en-US-x-XXXXXX"); + List<String> acceptLanguageHeaders = parser.parseAcceptableLanguages(); + assertNotNull(acceptLanguageHeaders); + assertEquals(1, acceptLanguageHeaders.size()); + assertEquals("en-US-x-XXXXXX", acceptLanguageHeaders.get(0)); + } + + @Test(expected = BatchException.class) + public void testInvalidAcceptLanguage1() throws BatchException { + AcceptParser parser = new AcceptParser(); + parser.addAcceptHeaderValue("en-US-x-xxxx-"); + parser.parseAcceptHeaders(); + } + + @Test(expected = BatchException.class) + public void testInvalidAcceptLanguage2() throws BatchException { + AcceptParser parser = new AcceptParser(); + parser.addAcceptLanguageHeaderValue("en-US-"); + parser.parseAcceptableLanguages(); + } + + @Test(expected = BatchException.class) + public void testInvalidAcceptLanguage3() throws BatchException { + AcceptParser parser = new AcceptParser(); + parser.addAcceptLanguageHeaderValue("en-US-x-XXX-XXXX"); + parser.parseAcceptableLanguages(); + } + + @Test(expected = BatchException.class) + public void testInvalidAcceptLanguage4() throws BatchException { + AcceptParser parser = new AcceptParser(); + parser.addAcceptLanguageHeaderValue("en-US-x-$%"); + parser.parseAcceptableLanguages(); + } + + @Test(expected = BatchException.class) + public void testInvalidAcceptLanguage5() throws BatchException { + AcceptParser parser = new AcceptParser(); + parser.addAcceptLanguageHeaderValue("en-"); + parser.parseAcceptableLanguages(); + } + @Test public void testAcceptHeaderWithTwoParameters() throws BatchException { AcceptParser parser = new AcceptParser();
