summaryrefslogtreecommitdiff
path: root/core/src/test/java
diff options
context:
space:
mode:
authorjmestwa-coder <jmestwa@gmail.com>2026-06-12 17:29:55 +0300
committerGitHub <noreply@github.com>2026-06-12 17:29:55 +0300
commit6dc847efc12c2aa0a8c803a0ecd5c93c6e31f170 (patch)
treec764feac2b4ad9eec1a3ce68e07bcbfd2d9fe92e /core/src/test/java
parent297c6b296e2c9a202bf39513c7d688f8c65a00f0 (diff)
downloadzxing-6dc847efc12c2aa0a8c803a0ecd5c93c6e31f170.tar.xz
guard unterminated AI in ExpandedProductResultParser (#2088)
Diffstat (limited to 'core/src/test/java')
-rw-r--r--core/src/test/java/com/google/zxing/client/result/ExpandedProductParsedResultTestCase.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/core/src/test/java/com/google/zxing/client/result/ExpandedProductParsedResultTestCase.java b/core/src/test/java/com/google/zxing/client/result/ExpandedProductParsedResultTestCase.java
index 861e6636f..7f83999d0 100644
--- a/core/src/test/java/com/google/zxing/client/result/ExpandedProductParsedResultTestCase.java
+++ b/core/src/test/java/com/google/zxing/client/result/ExpandedProductParsedResultTestCase.java
@@ -63,4 +63,14 @@ public final class ExpandedProductParsedResultTestCase extends Assert {
assertEquals("445", o.getPriceCurrency());
assertEquals(uncommonAIs, o.getUncommonAIs());
}
+
+ @Test
+ public void testUnterminatedAI() {
+ // an AI that is not closed by ')' must not match, rather than read past the end of the text
+ ExpandedProductResultParser parser = new ExpandedProductResultParser();
+ assertNull(parser.parse(new Result("(99", null, null, BarcodeFormat.RSS_EXPANDED)));
+ assertNull(parser.parse(new Result("(", null, null, BarcodeFormat.RSS_EXPANDED)));
+ // a valid prefix followed by a truncated final AI must parse without throwing
+ assertNotNull(parser.parse(new Result("(01)66546(13)001205(3932", null, null, BarcodeFormat.RSS_EXPANDED)));
+ }
}