1 46 47 package org.codehaus.groovy.antlr; 48 49 import groovy.util.GroovyTestCase; 50 51 import java.io.Reader ; 52 import java.io.StringReader ; 53 54 59 public class SourceBufferTest extends GroovyTestCase { 60 61 public void testEmptyBuffer() throws Exception { 62 SourceBuffer buffer = getSourceBuffer(""); 63 assertNull(buffer.getSnippet(new LineColumn(1,1),new LineColumn(1,1))); 64 } 65 66 public void testSimpleUsage() throws Exception { 67 SourceBuffer buffer = getSourceBuffer("println 'hello world'"); 68 assertEquals("hello",buffer.getSnippet(new LineColumn(1,10),new LineColumn(1,15))); 69 } 70 71 public void testUnixLineUsage() throws Exception { 72 String endOfLine = "\n"; 73 StringBuffer src = new StringBuffer (); 74 src.append("println 'hello world'").append(endOfLine); 75 src.append("println 'oh not, not that again'").append(endOfLine); 76 SourceBuffer buffer = getSourceBuffer(src.toString()); 77 assertEquals("hello",buffer.getSnippet(new LineColumn(1,10),new LineColumn(1,15))); 78 assertEquals("world'" + endOfLine + "print",buffer.getSnippet(new LineColumn(1,16),new LineColumn(2,6))); 79 assertEquals(endOfLine,buffer.getSnippet(new LineColumn(1,22),new LineColumn(1,23))); 80 assertEquals(endOfLine,buffer.getSnippet(new LineColumn(2,33),new LineColumn(2,34))); 81 } 82 83 public void testDOSLineUsage() throws Exception { 84 String endOfLine = "\r\n"; 85 StringBuffer src = new StringBuffer (); 86 src.append("println 'hello world'").append(endOfLine); 87 src.append("println 'oh not, not that again'").append(endOfLine); 88 SourceBuffer buffer = getSourceBuffer(src.toString()); 89 assertEquals("hello",buffer.getSnippet(new LineColumn(1,10),new LineColumn(1,15))); 90 assertEquals("oh not",buffer.getSnippet(new LineColumn(2,10),new LineColumn(2,16))); 91 assertEquals("world'" + endOfLine + "print",buffer.getSnippet(new LineColumn(1,16),new LineColumn(2,6))); 92 assertEquals(endOfLine,buffer.getSnippet(new LineColumn(1,22),new LineColumn(1,24))); 93 assertEquals(endOfLine,buffer.getSnippet(new LineColumn(2,33),new LineColumn(2,35))); 94 } 95 96 public void testOutOfBounds() throws Exception { 97 String endOfLine = "\n"; 98 StringBuffer src = new StringBuffer (); 99 src.append("println 'hello world'").append(endOfLine); 100 src.append("println 'oh not, not that again'").append(endOfLine); 101 SourceBuffer buffer = getSourceBuffer(src.toString()); 102 assertEquals("println",buffer.getSnippet(new LineColumn(0,0),new LineColumn(1,8))); 103 assertEquals("println",buffer.getSnippet(new LineColumn(-10,-1),new LineColumn(1,8))); 104 assertEquals(endOfLine,buffer.getSnippet(new LineColumn(2,33),new LineColumn(2,40))); 105 assertEquals("",buffer.getSnippet(new LineColumn(3,33),new LineColumn(6,40))); 106 } 107 108 private SourceBuffer getSourceBuffer(String text) throws Exception { 109 SourceBuffer buffer = new SourceBuffer(); 110 Reader reader = new UnicodeEscapingReader(new StringReader (text),buffer); 111 112 while (reader.read() != -1) { 113 } 118 return buffer; 119 } 120 } 121 | Popular Tags |