1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.apt.processor;
21
22 import org.junit.jupiter.api.Assertions;
23 import org.junit.jupiter.api.Test;
24
25 import java.util.Arrays;
26
27 public class CheckstyleConfigGeneratorUnitTest {
28
29 @Test
30 public void testGetRegExpForUndefinedAttributes() {
31
32 String regexp = CheckstyleConfigGenerator.getRegExpForUndefinedAttributes(
33 "tc", "textarea", Arrays.asList("attr1", "attr2"));
34
35 Assertions.assertEquals(
36 "<tc:textarea(\\s+(attr1|attr2|xmlns:\\w*)=\\\"([^\"=<>]*)\\\")*\\s+(?!(attr1|attr2|xmlns:\\w*|\\W))", regexp);
37
38 regexp = ".*" + regexp + ".*";
39
40 Assertions.assertFalse("<tc:textarea attr1=\"bla bla\"/>".matches(regexp));
41 Assertions.assertFalse("<tc:textarea attr2=\"bla bla\"/>".matches(regexp));
42 Assertions.assertFalse("<tc:textarea attr2=\"bla bla\" attr1=\".....\"/>".matches(regexp));
43 Assertions.assertTrue("<tc:textarea hallo=\"bla bla\"/>".matches(regexp));
44
45 Assertions.assertFalse("<tc:textarea xmlns:f=\"http://java.sun.com/jsf/core\" attr1=\"bla bla\"/>".matches(regexp));
46 Assertions.assertTrue("<tc:textarea xmlns:f=\"http://java.sun.com/jsf/core\" hallo=\"bla bla\"/>".matches(regexp));
47
48 Assertions.assertFalse("<any> <tc:textarea attr1=\"bla bla\" /> <any>".matches(regexp));
49 Assertions.assertFalse("<any> <tc:textarea attr2=\"bla bla\" /><any>".matches(regexp));
50 Assertions.assertFalse(
51 "<any> <tc:textarea attr2=\"bla bla\" attr1=\".....\"/><any> ".matches(regexp));
52 Assertions.assertTrue("<any> <tc:textarea hallo=\"bla bla\" /> <any> ".matches(regexp));
53 }
54 }