--- /dev/null
+package de.juplo.thymeleaf;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Scanner;
+import java.util.regex.Matcher;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+
+
+/**
+ *
+ * @author Kai Moritz
+ */
+public class ImportVariablesAttrProcessorTest
+{
+ @Test
+ public void testPattern() throws IOException
+ {
+ Matcher matcher;
+
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher("{}");
+ assertTrue(matcher.matches());
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher(" { } ");
+ assertTrue(matcher.matches());
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher("\t{\t}\t");
+ assertTrue(matcher.matches());
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher("\n{\n}\n");
+ assertTrue(matcher.matches());
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher(" \t\n{ \t\n} \t\n");
+ assertTrue(matcher.matches());
+
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher("{\"foo\":\"bar\",\"foobar\":{\"foo\":\"bar\"}");
+ assertTrue(matcher.matches());
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher(" { \"foo\":\"bar\", \"foobar\": { \"foo\": \"bar\" } ");
+ assertTrue(matcher.matches());
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher("\t{\t\"foo\":\t\"bar\"\t,\t\"foobar\":\t{\t\"foo\":\"bar\"\t}");
+ assertTrue(matcher.matches());
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher("\n{\n\"foo\":\n\"bar\"\n,\n\"foobar\":\n{\n\"foo\":\"bar\"\n}");
+ assertTrue(matcher.matches());
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher("\n\t {\n\t \"foo\":\n\t \"bar\"\n\t ,\n\t \"foobar\":\n\t {\n\t \"foo\":\"bar\"\n\t }");
+ assertTrue(matcher.matches());
+
+ String json;
+
+ json = read("/json/1.json");
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher(json);
+ assertTrue(matcher.matches());
+ json = read("/json/2.json");
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher(json);
+ assertTrue(matcher.matches());
+ json = read("/json/3.json");
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher(json);
+ assertTrue(matcher.matches());
+
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher("foo:bar");
+ assertTrue(matcher.matches());
+ assertNull(matcher.group(1));
+ assertNull(matcher.group(2));
+ assertEquals("foo:bar", matcher.group(3));
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher("replace:foo");
+ assertTrue(matcher.matches());
+ assertNull(matcher.group(1));
+ assertNull(matcher.group(2));
+ assertEquals("foo", matcher.group(3));
+ matcher = ImportVariablesAttrProcessor.PATTERN.matcher("merge:foo");
+ assertTrue(matcher.matches());
+ assertEquals("merge", matcher.group(1));
+ assertNull(matcher.group(2));
+ assertEquals("foo", matcher.group(3));
+ }
+
+
+ String read(String resource)
+ {
+ InputStream is = getClass().getResourceAsStream(resource);
+ return new Scanner(is).useDelimiter("\\Z").next();
+ }
+}