|
From: Christopher W. <caw...@us...> - 2006-05-12 21:56:16
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv3940/src/org/rubypeople/rdt/internal/ui/text Modified Files: TS_InternalUiText.java Added Files: RubyPartitionScannerTest.java Log Message: try to fix up the tests to compile (though they're still broken), add more tests for our partition scanner (needs to be integrated with our already existing tests) Index: TS_InternalUiText.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/TS_InternalUiText.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TS_InternalUiText.java 16 Oct 2005 23:52:40 -0000 1.1 --- TS_InternalUiText.java 12 May 2006 21:56:13 -0000 1.2 *************** *** 8,11 **** --- 8,12 ---- TestSuite suite = new TestSuite("org.rubypeople.rdt.internal.ui.text"); suite.addTestSuite(TC_RubyPartitionScanner.class); + suite.addTestSuite(RubyPartitionScannerTest.class); return suite; } --- NEW FILE: RubyPartitionScannerTest.java --- package org.rubypeople.rdt.internal.ui.text; import junit.framework.TestCase; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.IDocument; // FIXME Integrate this with already existing PartitionScanner tests public class RubyPartitionScannerTest extends TestCase { private RubyPartitionScanner scanner; protected void setUp() throws Exception { super.setUp(); scanner = new RubyPartitionScanner(); } private void setDocument(String text) { IDocument document = new Document(text); scanner.setRange(document, 0, document.getLength()); } public void testSingleLineComment() { setDocument("# comment"); assertEquals(IRubyPartitions.RUBY_SINGLE_LINE_COMMENT, scanner .nextToken().getData()); } public void testMultiLineComment() { setDocument("=begin\nSome comment text\n=end\n"); assertEquals(IRubyPartitions.RUBY_MULTI_LINE_COMMENT, scanner .nextToken().getData()); } public void testMultiLineCommentMustStartAtFirstColumn() { setDocument(" =begin\nSome comment text\n=end\n"); assertFalse(IRubyPartitions.RUBY_MULTI_LINE_COMMENT.equals(scanner .nextToken().getData())); assertNull(scanner.nextToken().getData()); } public void testPoundCharacterIsntAComment() { setDocument("?#"); assertNull(scanner.nextToken().getData()); } public void testDoubleQuotedString() { setDocument("\"double quoted string\""); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); } public void testSingleQuotedString() { setDocument("'single quoted string'"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertTrue(scanner.nextToken().isEOF()); } public void testCommand() { setDocument("`command`"); assertEquals(IRubyPartitions.RUBY_COMMAND, scanner.nextToken() .getData()); assertTrue(scanner.nextToken().isEOF()); } public void testRegularExpression() { setDocument("/regex/"); assertEquals(IRubyPartitions.RUBY_REGEX, scanner.nextToken().getData()); assertTrue(scanner.nextToken().isEOF()); } public void testRegularExpressionWithPercentSyntax() { setDocument("%r(regex)"); assertEquals(IRubyPartitions.RUBY_REGEX, scanner.nextToken().getData()); assertTrue(scanner.nextToken().isEOF()); setDocument("%r!regex!"); assertEquals(IRubyPartitions.RUBY_REGEX, scanner.nextToken().getData()); assertTrue(scanner.nextToken().isEOF()); setDocument("%r{regex}"); assertEquals(IRubyPartitions.RUBY_REGEX, scanner.nextToken().getData()); assertTrue(scanner.nextToken().isEOF()); } public void testCommandWithPercentSyntax() { setDocument("%x(command)"); assertEquals(IRubyPartitions.RUBY_COMMAND, scanner.nextToken().getData()); assertTrue(scanner.nextToken().isEOF()); setDocument("%x!command!"); assertEquals(IRubyPartitions.RUBY_COMMAND, scanner.nextToken().getData()); assertTrue(scanner.nextToken().isEOF()); setDocument("%x{command}"); assertEquals(IRubyPartitions.RUBY_COMMAND, scanner.nextToken().getData()); assertTrue(scanner.nextToken().isEOF()); } public void testStringWithPercentSyntax() { setDocument("%q(command) # Comment"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertCommentFollows(); setDocument("%q!command! # Comment"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertCommentFollows(); setDocument("%q{command} # Comment"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertCommentFollows(); setDocument("%Q(command) # Comment"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertCommentFollows(); setDocument("%Q!command! # Comment"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertCommentFollows(); setDocument("%Q[command] # Comment"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertCommentFollows(); setDocument("%/command/ # Comment"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertCommentFollows(); setDocument("%!command! # Comment"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertCommentFollows(); setDocument("%[command] # Comment"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertCommentFollows(); } private void assertCommentFollows() { assertNull(scanner.nextToken().getData()); assertEquals(IRubyPartitions.RUBY_SINGLE_LINE_COMMENT, scanner .nextToken().getData()); assertTrue(scanner.nextToken().isEOF()); } public void testRegularExpressionClosesProperly() { setDocument("/regex/ # Comment"); assertEquals(IRubyPartitions.RUBY_REGEX, scanner.nextToken().getData()); assertCommentFollows(); } public void testRegularExpressionWithOptions() { setDocument("/regex/i"); assertEquals(IRubyPartitions.RUBY_REGEX, scanner.nextToken().getData()); assertTrue("Failed to gobble up option/flag as part of regular expression",scanner.nextToken().isEOF()); setDocument("/regex/i # Comment"); assertEquals(IRubyPartitions.RUBY_REGEX, scanner.nextToken().getData()); assertNull(scanner.nextToken().getData()); assertEquals(IRubyPartitions.RUBY_SINGLE_LINE_COMMENT, scanner .nextToken().getData()); } public void testStringWithEscapedEndChar() { setDocument("%q(ain\\)# blah)"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertTrue("failed to skip escaped end character", scanner.nextToken().isEOF()); setDocument("%(ain\\)# blah)"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertTrue("failed to skip escaped end character", scanner.nextToken().isEOF()); setDocument("%Q(ain\\)# blah)"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertTrue("failed to skip escaped end character", scanner.nextToken().isEOF()); } public void testExpressionSubstitution() { setDocument("%{There are #{count} monkeys}"); assertEquals(IRubyPartitions.RUBY_STRING, scanner.nextToken().getData()); assertTrue("failed to gobble up expression substiution", scanner.nextToken().isEOF()); } } |