summaryrefslogtreecommitdiff
path: root/core/src/test/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/test/java/com')
-rw-r--r--core/src/test/java/com/google/zxing/client/result/URIParsedResultTestCase.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/core/src/test/java/com/google/zxing/client/result/URIParsedResultTestCase.java b/core/src/test/java/com/google/zxing/client/result/URIParsedResultTestCase.java
index 168acbf3c..8b3dac1c0 100644
--- a/core/src/test/java/com/google/zxing/client/result/URIParsedResultTestCase.java
+++ b/core/src/test/java/com/google/zxing/client/result/URIParsedResultTestCase.java
@@ -65,6 +65,17 @@ public final class URIParsedResultTestCase extends Assert {
doTestNotUri("foo.bar.bing.baz.foo.bar.bing.baz");
}
+ // A long run of characters that never forms a URI at the start must be rejected quickly;
+ // find() rescanned from every position and was quadratic on such input.
+ @Test(timeout = 5000L)
+ public void testNoQuadraticScanning() {
+ StringBuilder sb = new StringBuilder(200000);
+ for (int i = 0; i < 200000; i++) {
+ sb.append('a');
+ }
+ assertFalse(URIResultParser.isBasicallyValidURI(sb.toString()));
+ }
+
@Test
public void testURLTO() {
doTest("urlto::bar.com", "http://bar.com", null);