You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2018/09/26 13:40:06 UTC

[36/45] wicket git commit: removed import, added some imports

removed import, added some imports


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b0a96e95
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b0a96e95
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b0a96e95

Branch: refs/heads/master
Commit: b0a96e9514bb8fad94c6a63b7781e643c18a6a17
Parents: 51725af
Author: renoth <jo...@gmx.de>
Authored: Tue Jul 31 12:45:28 2018 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Wed Sep 26 16:03:32 2018 +0300

----------------------------------------------------------------------
 .../util/convert/converters/ConvertersTest.java | 205 ++++++++----
 .../wicket/util/io/FullyBufferedReaderTest.java | 324 +++++++++----------
 2 files changed, 298 insertions(+), 231 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/b0a96e95/wicket-util/src/test/java/org/apache/wicket/util/convert/converters/ConvertersTest.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/test/java/org/apache/wicket/util/convert/converters/ConvertersTest.java b/wicket-util/src/test/java/org/apache/wicket/util/convert/converters/ConvertersTest.java
index 2f8142a..35be426 100644
--- a/wicket-util/src/test/java/org/apache/wicket/util/convert/converters/ConvertersTest.java
+++ b/wicket-util/src/test/java/org/apache/wicket/util/convert/converters/ConvertersTest.java
@@ -14,16 +14,33 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.wicket.util.convert.converters;
 
+import java.math.BigDecimal;
+import java.text.ChoiceFormat;
+import java.text.NumberFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+
+import org.apache.wicket.util.convert.ConversionException;
+import org.apache.wicket.util.convert.converter.*;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.fail;
+
 @SuppressWarnings("javadoc")
 public final class ConvertersTest
 {
-/*	*//** Dutch locale for localized testing. *//*
+	/** Dutch locale for localized testing. **/
 	private static final Locale DUTCH_LOCALE = new Locale("nl", "NL");
 
 	@Test
-	public void thousandSeperator() throws Exception
+	public void thousandSeperator()
 	{
 		BigDecimalConverter bdc = new BigDecimalConverter();
 		assertEquals(new BigDecimal(3000), bdc.convertToObject("3 000", Locale.FRENCH));
@@ -32,11 +49,11 @@ public final class ConvertersTest
 		assertEquals(3000, dc.convertToObject("3 000", Locale.FRENCH), 0.001);
 	}
 
-	*//**
+	/**
 	 * WICKET-4988 nbsp between digits only
-	 *//*
+	 */
 	@Test
-	public void thousandSeperatorWithCurrency() throws Exception
+	public void thousandSeperatorWithCurrency()
 	{
 		FloatConverter fc = new FloatConverter()
 		{
@@ -68,13 +85,14 @@ public final class ConvertersTest
 		assertEquals(Boolean.FALSE, converter.convertToObject("false", Locale.getDefault(Locale.Category.FORMAT)));
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidBooleanConversion()
 	{
 		BooleanConverter converter = new BooleanConverter();
 
-		// should throw an exception
-		converter.convertToObject("whatever", Locale.getDefault(Locale.Category.FORMAT));
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("whatever", Locale.getDefault(Locale.Category.FORMAT));
+		});
 	}
 
 	@Test
@@ -86,25 +104,31 @@ public final class ConvertersTest
 		assertEquals("10", converter.convertToString((byte)10, Locale.US));
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidByteConversion1()
 	{
 		ByteConverter converter = new ByteConverter();
-		converter.convertToObject("whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidByteConversion2()
 	{
 		ByteConverter converter = new ByteConverter();
-		converter.convertToObject("10whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("10whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidByteConversion3()
 	{
 		ByteConverter converter = new ByteConverter();
-		converter.convertToObject("256", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("256", Locale.US);
+		});
 	}
 
 	@Test
@@ -118,25 +142,31 @@ public final class ConvertersTest
 		assertEquals("1.1", converter.convertToString(1.1, Locale.US));
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidDoubleConversion1()
 	{
 		DoubleConverter converter = new DoubleConverter();
-		converter.convertToObject("whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidDoubleConversion2()
 	{
 		DoubleConverter converter = new DoubleConverter();
-		converter.convertToObject("1.1whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("1.1whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidDoubleConversion3()
 	{
 		DoubleConverter converter = new DoubleConverter();
-		converter.convertToObject("1" + Double.MAX_VALUE, Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("1" + Double.MAX_VALUE, Locale.US);
+		});
 	}
 
 	@Test
@@ -148,25 +178,31 @@ public final class ConvertersTest
 		assertEquals("1.1", converter.convertToString(1.1F, Locale.US));
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidFloatConversion1()
 	{
 		FloatConverter converter = new FloatConverter();
-		converter.convertToObject("whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidFloatConversion2()
 	{
 		FloatConverter converter = new FloatConverter();
-		converter.convertToObject("1.1whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("1.1whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidFloatConversion3()
 	{
 		FloatConverter converter = new FloatConverter();
-		converter.convertToObject("1" + Float.MAX_VALUE, Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("1" + Float.MAX_VALUE, Locale.US);
+		});
 	}
 
 	@Test
@@ -179,33 +215,40 @@ public final class ConvertersTest
 		assertEquals("10", converter.convertToString(10, Locale.US));
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidIntegerConversion1()
 	{
 		IntegerConverter converter = new IntegerConverter();
-		converter.convertToObject("whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidIntegerConversion2()
 	{
 		IntegerConverter converter = new IntegerConverter();
-		converter.convertToObject("10whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("10whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidIntegerConversion3()
 	{
 		IntegerConverter converter = new IntegerConverter();
-		converter.convertToObject("1.0", Locale.US);
-		fail("Conversion should have thrown an exception");
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("1.0", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidIntegerConversion4()
 	{
 		IntegerConverter converter = new IntegerConverter();
-		converter.convertToObject("1" + Integer.MAX_VALUE, Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("1" + Integer.MAX_VALUE, Locale.US);
+		});
 	}
 
 	@Test
@@ -217,28 +260,34 @@ public final class ConvertersTest
 		assertEquals("10", converter.convertToString(10L, Locale.US));
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidLongConversion1()
 	{
 		LongConverter converter = new LongConverter();
-		converter.convertToObject("whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidLongConversion2()
 	{
 		LongConverter converter = new LongConverter();
-		converter.convertToObject("10whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("10whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidLongConversion3()
 	{
 		LongConverter converter = new LongConverter();
-		converter.convertToObject("1" + Long.MAX_VALUE, Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("1" + Long.MAX_VALUE, Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidLongConversion4()
 	{
 		LongConverter converter = new LongConverter();
@@ -247,10 +296,12 @@ public final class ConvertersTest
 		final String biggerThanLong = "9223372036854776833";
 		assertEquals(1,
 			new BigDecimal(biggerThanLong).compareTo(BigDecimal.valueOf(Long.MAX_VALUE)));
-		converter.convertToObject(biggerThanLong, Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject(biggerThanLong, Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidLongConversion5()
 	{
 		LongConverter converter = new LongConverter();
@@ -259,7 +310,9 @@ public final class ConvertersTest
 		final String biggerThanLong = "9223372036854776832";
 		assertEquals(1,
 			new BigDecimal(biggerThanLong).compareTo(BigDecimal.valueOf(Long.MAX_VALUE)));
-		converter.convertToObject(biggerThanLong, Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject(biggerThanLong, Locale.US);
+		});
 	}
 
 	@Test
@@ -271,25 +324,31 @@ public final class ConvertersTest
 		assertEquals("10", converter.convertToString((short) 10, Locale.US));
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidShortConversion1()
 	{
 		ShortConverter converter = new ShortConverter();
-		converter.convertToObject("whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidShortConversion2()
 	{
 		ShortConverter converter = new ShortConverter();
-		converter.convertToObject("10whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("10whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidShortConversion3()
 	{
 		ShortConverter converter = new ShortConverter();
-		converter.convertToObject("" + (Short.MAX_VALUE + 1), Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("" + (Short.MAX_VALUE + 1), Locale.US);
+		});
 	}
 
 	@Test
@@ -302,12 +361,13 @@ public final class ConvertersTest
 		assertEquals((Object)'A', converter.convertToObject("A", DUTCH_LOCALE));
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidCharacterConversion1()
 	{
 		CharacterConverter converter = new CharacterConverter();
-		converter.convertToObject("AA", Locale.US);
-		fail("Conversion should have thrown an exception");
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("AA", Locale.US);
+		});
 	}
 
 	@Test
@@ -329,18 +389,22 @@ public final class ConvertersTest
 		assertEquals(date, converter.convertToObject("10/24/02", Locale.US));
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidDateConversion1()
 	{
 		DateConverter converter = new DateConverter();
-		converter.convertToObject("whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidDateConversion2()
 	{
 		DateConverter converter = new DateConverter();
-		converter.convertToObject("10/24/02whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("10/24/02whatever", Locale.US);
+		});
 	}
 
 	@Test
@@ -362,24 +426,28 @@ public final class ConvertersTest
 		assertEquals(cal, converter.convertToObject("5/1/11", Locale.US));
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidCalendarConversion1()
 	{
 		CalendarConverter converter = new CalendarConverter();
-		converter.convertToObject("whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("whatever", Locale.US);
+		});
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidCalendarConversion2()
 	{
 		CalendarConverter converter = new CalendarConverter();
-		converter.convertToObject("5/1/11whatever", Locale.US);
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("5/1/11whatever", Locale.US);
+		});
 	}
 
-	*//**
+	/**
 	 * See WICKET-2878 and
 	 * http://java.sun.com/j2se/1.4.2/docs/api/java/math/BigDecimal.html#BigDecimal%28double%29
-	 *//*
+	 */
 	@Test
 	public void bigDecimalConverter()
 	{
@@ -411,7 +479,7 @@ public final class ConvertersTest
 		assertEquals(Integer.valueOf(2), integer);
 	}
 
-	@Test(expected = ConversionException.class)
+	@Test
 	public void invalidCustomConversion1()
 	{
 		@SuppressWarnings("serial")
@@ -424,7 +492,8 @@ public final class ConvertersTest
 			}
 		};
 
-		converter.convertToObject("four", Locale.US);
-		fail("Conversion should have thrown an exception");
-	}*/
+		assertThrows(ConversionException.class, () -> {
+			converter.convertToObject("four", Locale.US);
+		});
+	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/b0a96e95/wicket-util/src/test/java/org/apache/wicket/util/io/FullyBufferedReaderTest.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/test/java/org/apache/wicket/util/io/FullyBufferedReaderTest.java b/wicket-util/src/test/java/org/apache/wicket/util/io/FullyBufferedReaderTest.java
index 7ae2495..5278fd2 100644
--- a/wicket-util/src/test/java/org/apache/wicket/util/io/FullyBufferedReaderTest.java
+++ b/wicket-util/src/test/java/org/apache/wicket/util/io/FullyBufferedReaderTest.java
@@ -1,163 +1,161 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.wicket.util.io;
-
-import org.junit.jupiter.api.Test;
-
-import java.text.ParseException;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-/**
- * Tests for {@link FullyBufferedReader}
- */
-
-public class FullyBufferedReaderTest
-{
-
-	/**
-	 * 
-	 * @throws ParseException
-	 */
-
-	@Test
-	public void nestedQuotes() throws ParseException
-	{
-		// testTag is <a href='b \'" > a' theAtr="at'r'\"r">
-		String testTag = "<a href='b \\'\" > a' theAtr=\"at'r'\\\"r\">";
-		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
-
-		// System.out.println(fullyBufferedReader);
-		int position = fullyBufferedReader.findOutOfQuotes('>', 0);
-
-		// have you found a close bracket?
-		assertEquals('>', testTag.charAt(position));
-		// close bracket must be at the end of the string
-		assertEquals(testTag.length(), position + 1);
-	}
-
-
-	/**
-	 * 
-	 * @throws ParseException
-	 */
-
-	@Test
-	public void quotedEsclamationQuotationMark() throws ParseException
-	{
-		// testTag is <a href='b " >!! a<??!!' theAtr=">">
-		String testTag = "<a href='b \" >!! a<??!!' theAtr=\">\">";
-		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
-
-		// System.out.println(fullyBufferedReader);
-		int position = fullyBufferedReader.findOutOfQuotes('>', 0);
-
-		// have you found a close bracket?
-		assertEquals('>', testTag.charAt(position));
-		// close bracket must be at the end of the string
-		assertEquals(testTag.length(), position + 1);
-	}
-
-
-	/**
-	 * https://issues.apache.org/jira/browse/WICKET-4117
-	 * 
-	 * Test exception when we forgot to close quote
-	 * 
-	 * @throws ParseException
-	 */
-
-	@Test
-	public void missingClosingQuote() throws ParseException
-	{
-		String testTag = "<a href='blabla>";
-		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
-
-		final ParseException e = assertThrows(ParseException.class, () -> {
-			fullyBufferedReader.findOutOfQuotes('>', 0);
-		});
-
-		assertEquals("Opening/closing quote not found for quote at (line 1, column 9)", e.getMessage());
-	}
-
-
-	/**
-	 * https://issues.apache.org/jira/browse/WICKET-4117
-	 * 
-	 * Test exception when we forgot to close quote
-	 * 
-	 * @throws ParseException
-	 */
-
-	@Test
-	public void missingOpeningQuote() throws ParseException
-	{
-		String testTag = "<a href=blabla'>";
-		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
-
-		final ParseException e = assertThrows(ParseException.class, () -> {
-			fullyBufferedReader.findOutOfQuotes('>', 0);
-		});
-
-		assertEquals("Opening/closing quote not found for quote at (line 1, column 15)", e.getMessage());
-	}
-
-	/**
-	 * https://issues.apache.org/jira/browse/WICKET-4117
-	 * 
-	 * Test exception when we forgot to close quote
-	 * 
-	 * @throws ParseException
-	 */
-
-	@Test
-	public void missingClosingDoubleQuote() throws ParseException
-	{
-		String testTag = "<a href=\"blabla>";
-		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
-
-		final ParseException e = assertThrows(ParseException.class, () -> {
-			fullyBufferedReader.findOutOfQuotes('>', 0);
-		});
-
-		assertEquals("Opening/closing quote not found for quote at (line 1, column 9)", e.getMessage());
-	}
-
-
-	/**
-	 * https://issues.apache.org/jira/browse/WICKET-4117
-	 * 
-	 * Test exception when we forgot to close quote
-	 * 
-	 * @throws ParseException
-	 */
-
-	@Test
-	public void missingOpeningDoubleQuote() throws ParseException
-	{
-		String testTag = "<a href=blabla\">";
-		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
-
-		final ParseException e = assertThrows(ParseException.class, () -> {
-			fullyBufferedReader.findOutOfQuotes('>', 0);
-		});
-
-		assertEquals("Opening/closing quote not found for quote at (line 1, column 15)", e.getMessage());
-	}
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.wicket.util.io;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import java.text.ParseException;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * Tests for {@link FullyBufferedReader}
+ */
+public class FullyBufferedReaderTest
+{
+
+	/**
+	 * 
+	 * @throws ParseException
+	 */
+
+	@Test
+	public void nestedQuotes() throws ParseException
+	{
+		// testTag is <a href='b \'" > a' theAtr="at'r'\"r">
+		String testTag = "<a href='b \\'\" > a' theAtr=\"at'r'\\\"r\">";
+		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
+
+		// System.out.println(fullyBufferedReader);
+		int position = fullyBufferedReader.findOutOfQuotes('>', 0);
+
+		// have you found a close bracket?
+		assertEquals('>', testTag.charAt(position));
+		// close bracket must be at the end of the string
+		assertEquals(testTag.length(), position + 1);
+	}
+
+
+	/**
+	 * 
+	 * @throws ParseException
+	 */
+
+	@Test
+	public void quotedEsclamationQuotationMark() throws ParseException
+	{
+		// testTag is <a href='b " >!! a<??!!' theAtr=">">
+		String testTag = "<a href='b \" >!! a<??!!' theAtr=\">\">";
+		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
+
+		// System.out.println(fullyBufferedReader);
+		int position = fullyBufferedReader.findOutOfQuotes('>', 0);
+
+		// have you found a close bracket?
+		assertEquals('>', testTag.charAt(position));
+		// close bracket must be at the end of the string
+		assertEquals(testTag.length(), position + 1);
+	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-4117
+	 * 
+	 * Test exception when we forgot to close quote
+	 * 
+	 * @throws ParseException
+	 */
+
+	@Test
+	public void missingClosingQuote()
+	{
+		String testTag = "<a href='blabla>";
+		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
+
+		final ParseException e = assertThrows(ParseException.class, () -> {
+			fullyBufferedReader.findOutOfQuotes('>', 0);
+		});
+
+		assertEquals("Opening/closing quote not found for quote at (line 1, column 9)", e.getMessage());
+	}
+
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-4117
+	 * 
+	 * Test exception when we forgot to close quote
+	 * 
+	 * @throws ParseException
+	 */
+
+	@Test
+	public void missingOpeningQuote()
+	{
+		String testTag = "<a href=blabla'>";
+		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
+
+		final ParseException e = assertThrows(ParseException.class, () -> {
+			fullyBufferedReader.findOutOfQuotes('>', 0);
+		});
+
+		assertEquals("Opening/closing quote not found for quote at (line 1, column 15)", e.getMessage());
+	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-4117
+	 * 
+	 * Test exception when we forgot to close quote
+	 * 
+	 * @throws ParseException
+	 */
+
+	@Test
+	public void missingClosingDoubleQuote()
+	{
+		String testTag = "<a href=\"blabla>";
+		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
+
+		final ParseException e = assertThrows(ParseException.class, () -> {
+			fullyBufferedReader.findOutOfQuotes('>', 0);
+		});
+
+		assertEquals("Opening/closing quote not found for quote at (line 1, column 9)", e.getMessage());
+	}
+
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-4117
+	 * 
+	 * Test exception when we forgot to close quote
+	 * 
+	 * @throws ParseException
+	 */
+
+	@Test
+	public void missingOpeningDoubleQuote()
+	{
+		String testTag = "<a href=blabla\">";
+		FullyBufferedReader fullyBufferedReader = new FullyBufferedReader(testTag);
+
+		final ParseException e = assertThrows(ParseException.class, () -> {
+			fullyBufferedReader.findOutOfQuotes('>', 0);
+		});
+
+		assertEquals("Opening/closing quote not found for quote at (line 1, column 15)", e.getMessage());
+	}
+}