1 19 20 package org.netbeans.lib.lexer.test.simple; 21 22 import junit.framework.TestCase; 23 import org.netbeans.api.lexer.TokenHierarchy; 24 import org.netbeans.api.lexer.TokenId; 25 import org.netbeans.api.lexer.TokenSequence; 26 import org.netbeans.lib.lexer.LexerUtilsConstants; 27 import org.netbeans.lib.lexer.test.LexerTestUtilities; 28 29 34 public class FlyTokensTest extends TestCase { 35 36 public FlyTokensTest(String testName) { 37 super(testName); 38 } 39 40 protected void setUp() throws java.lang.Exception { 41 } 42 43 protected void tearDown() throws java.lang.Exception { 44 } 45 46 public void testMaxFlySequenceLength() { 47 String text = "public public public public public public public "; 49 int commentTextStartOffset = 5; 50 TokenHierarchy<?> hi = TokenHierarchy.create(text, SimpleTokenId.language()); 51 TokenSequence<? extends TokenId> ts = hi.tokenSequence(); 52 int firstNonFlyIndex = -1; 53 int secondNonFlyIndex = -1; 54 int tokenIndex = 0; 55 for (int i = 0; i < 7; i++) { 56 assertTrue(ts.moveNext()); 57 LexerTestUtilities.assertTokenEquals(ts, SimpleTokenId.PUBLIC, "public", -1); 58 if (!ts.token().isFlyweight()) { 59 if (firstNonFlyIndex == -1) { 60 firstNonFlyIndex = tokenIndex; 61 } else if (secondNonFlyIndex == -1) { 62 secondNonFlyIndex = tokenIndex; 63 } 64 } 65 tokenIndex++; 66 67 assertTrue(ts.moveNext()); 68 LexerTestUtilities.assertTokenEquals(ts, SimpleTokenId.WHITESPACE, " ", -1); 69 if (!ts.token().isFlyweight()) { 70 if (firstNonFlyIndex == -1) { 71 firstNonFlyIndex = tokenIndex; 72 } else if (secondNonFlyIndex == -1) { 73 secondNonFlyIndex = tokenIndex; 74 } 75 } 76 tokenIndex++; 77 } 78 assertEquals(LexerUtilsConstants.MAX_FLY_SEQUENCE_LENGTH, firstNonFlyIndex); 79 assertEquals(LexerUtilsConstants.MAX_FLY_SEQUENCE_LENGTH * 2 + 1, secondNonFlyIndex); 80 } 81 } 82 | Popular Tags |