summaryrefslogtreecommitdiffstats
path: root/JLanguageTool/src/test/de/danielnaber/languagetool/rules/ro/RomanianPatternRuleTest.java
blob: eab518f6b188babcd411b811946f417dad6ba2b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package de.danielnaber.languagetool.rules.ro;

import junit.framework.TestCase;
import de.danielnaber.languagetool.rules.patterns.PatternRuleTest;

/**
 * 
 * @author Ionuț Păduraru
 * @since 07.05.2009 21:07:12
 * 
 * This testcase is not for actual rules but for PatternRuleTest to ensure proper 
 * xml cleaning: there is a romanian rule where "<<" is used; we want 
 * "X<marker><<</marker>Y" to be tranformed into "X<<Y", not into "XY" 
 * (see rule id GHILIMELE_DUBLE_INTERIOR_INCEPUT in ro/grammar.xml).  
 *  
 */
public class RomanianPatternRuleTest extends TestCase {

	private PatternRuleTestWrapper patternRuleTestWrapper = new PatternRuleTestWrapper();

	/**
	 * wrapper on PatternRuleTestWrapper to expose cleanXML method
	 * 
	 * @author Ionuț Păduraru
	 * @since 07.05.2009 21:11:01
	 */
	private static class PatternRuleTestWrapper extends PatternRuleTest {
		@Override
		public String cleanXML(String str) {
			return super.cleanXML(str);
		}
	}

	public String cleanXML(String str) {
		return patternRuleTestWrapper.cleanXML(str);
	}

	/**
	 * Ensure proper xml cleanining in PatternRuleTest
	 * 
	 * @author Ionuț Păduraru
	 * @since 07.05.2009 21:11:30
	 * @throws Exception
	 */
	public void testCleanXML() throws Exception {
		assertEquals(cleanXML("1<mark>2"), "12");
		assertEquals(cleanXML("1</mark>2"), "12");
		assertEquals(cleanXML("1<</mark>2"), "1<2");
		assertEquals(cleanXML("<</mark>2"), "<2");
		assertEquals(cleanXML("></mark>2"), ">2");
		assertEquals(cleanXML("1<mark>abc</mark>2"), "1abc2");
		assertEquals(cleanXML("1<mark><<</mark>2"), "1<<2");
		assertEquals(cleanXML("1<mark>>></mark>2"), "1>>2");
	}
}