Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDani Megert2006-11-21 13:56:15 +0000
committerDani Megert2006-11-21 13:56:15 +0000
commit629bedcf47080d923ef5c834148dde4933c8b271 (patch)
tree18a63d5ab0ca26e0a923c1517be3a9b0360210b6 /org.eclipse.jface.text.tests
parent240acafe5607274a79e682c4b552c4091f50e813 (diff)
downloadeclipse.platform.text-629bedcf47080d923ef5c834148dde4933c8b271.tar.gz
eclipse.platform.text-629bedcf47080d923ef5c834148dde4933c8b271.tar.xz
eclipse.platform.text-629bedcf47080d923ef5c834148dde4933c8b271.zip
Fixed bug 144355: [syntax highlighting] case insensitive WordRule
Diffstat (limited to 'org.eclipse.jface.text.tests')
-rw-r--r--org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/rules/WordRuleTest.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/rules/WordRuleTest.java b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/rules/WordRuleTest.java
index 94fcbec72a9..c305f04c258 100644
--- a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/rules/WordRuleTest.java
+++ b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/rules/WordRuleTest.java
@@ -55,4 +55,76 @@ public class WordRuleTest extends TestCase {
assertTrue(i < 1000);
}
+
+ /*
+ * https://bugs.eclipse.org/bugs/show_bug.cgi?id=144355
+ */
+ public void testBug144355() throws Exception {
+ IWordDetector detector= new IWordDetector() {
+
+ public boolean isWordPart(char c) {
+ return true;
+ }
+
+ public boolean isWordStart(char c) {
+ return true;
+ }
+
+ };
+
+ String defaultTokenString= "defaultToken";
+ Token defaultToken= new Token(defaultTokenString);
+
+ String testTokenStringNormal= "TestTokenString";
+ String testTokenStringDifferentCapitalization= "TestTOKENString";
+ String testTokenStringCompletelyDifferent= "XXX";
+ Token normalToken= new Token(testTokenStringNormal);
+
+ WordRule rule= new WordRule(detector, defaultToken, true);
+ rule.addWord(testTokenStringNormal, normalToken);
+
+ // scenario 1
+ // pre: pass in a normal string ("TestTokenString")
+ // post: expect the normal token to be returned
+ RuleBasedScanner scanner= new RuleBasedScanner();
+ scanner.setRules(new IRule[] {rule});
+ scanner.setRange(new Document(testTokenStringNormal), 0, testTokenStringNormal.length());
+ assertTrue(scanner.nextToken().getData().equals(testTokenStringNormal));
+
+ // scenario 2
+ // pre: pass in a normal string but different capitalization ("TestTOKENString")
+ // post: expect the normal token to be returned
+ scanner= new RuleBasedScanner();
+ scanner.setRules(new IRule[] {rule});
+ scanner.setRange(new Document(testTokenStringDifferentCapitalization), 0, testTokenStringDifferentCapitalization.length());
+ assertTrue(scanner.nextToken().getData().equals(testTokenStringNormal));
+
+ // scenario 3
+ // pre: pass in a completely different string ("XXX")
+ // post: expect the default token to be returned because the string can't be matched
+ scanner= new RuleBasedScanner();
+ scanner.setRules(new IRule[] {rule});
+ scanner.setRange(new Document(testTokenStringCompletelyDifferent), 0, testTokenStringCompletelyDifferent.length());
+ assertTrue(scanner.nextToken().getData().equals(defaultTokenString));
+
+ WordRule ruleWithoutIgnoreCase= new WordRule(detector, defaultToken);
+ ruleWithoutIgnoreCase.addWord(testTokenStringNormal, normalToken);
+
+ // scenario 4
+ // pre: pass in a normal string ("TestTokenString")
+ // post: expect the normal token to be returned
+ scanner= new RuleBasedScanner();
+ scanner.setRules(new IRule[] {ruleWithoutIgnoreCase});
+ scanner.setRange(new Document(testTokenStringNormal), 0, testTokenStringNormal.length());
+ assertTrue(scanner.nextToken().getData().equals(testTokenStringNormal));
+
+ // scenario 5
+ // pre: pass in a normal string but different capitalization ("TestTOKENString")
+ // post: expect the default token to be returned
+ scanner= new RuleBasedScanner();
+ scanner.setRules(new IRule[] {ruleWithoutIgnoreCase});
+ scanner.setRange(new Document(testTokenStringDifferentCapitalization), 0, testTokenStringDifferentCapitalization.length());
+ assertTrue(scanner.nextToken().getData().equals(defaultTokenString));
+ }
+
}

Back to the top