diff options
author | Dani Megert | 2006-11-21 13:56:15 +0000 |
---|---|---|
committer | Dani Megert | 2006-11-21 13:56:15 +0000 |
commit | 629bedcf47080d923ef5c834148dde4933c8b271 (patch) | |
tree | 18a63d5ab0ca26e0a923c1517be3a9b0360210b6 /org.eclipse.jface.text.tests | |
parent | 240acafe5607274a79e682c4b552c4091f50e813 (diff) | |
download | eclipse.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.java | 72 |
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)); + } + } |