|
From: <caw...@us...> - 2007-03-14 17:54:56
|
Revision: 2167
http://svn.sourceforge.net/rubyeclipse/?rev=2167&view=rev
Author: cawilliams
Date: 2007-03-14 10:54:55 -0700 (Wed, 14 Mar 2007)
Log Message:
-----------
Modified Paths:
--------------
trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/TS_InternalUiText.java
Added Paths:
-----------
trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/ruby/TC_RubyTokenScanner.java
Modified: trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/TS_InternalUiText.java
===================================================================
--- trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/TS_InternalUiText.java 2007-03-14 17:51:01 UTC (rev 2166)
+++ trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/TS_InternalUiText.java 2007-03-14 17:54:55 UTC (rev 2167)
@@ -3,12 +3,15 @@
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.rubypeople.rdt.internal.ui.text.ruby.TC_RubyTokenScanner;
+
public class TS_InternalUiText {
public static Test suite() {
TestSuite suite = new TestSuite("org.rubypeople.rdt.internal.ui.text");
suite.addTestSuite(TC_RubyPartitionScanner.class);
suite.addTestSuite(RubyPartitionScannerTest.class);
suite.addTestSuite(TC_RubyWordFinder.class);
+ suite.addTestSuite(TC_RubyTokenScanner.class);
return suite;
}
}
Added: trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/ruby/TC_RubyTokenScanner.java
===================================================================
--- trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/ruby/TC_RubyTokenScanner.java (rev 0)
+++ trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/ruby/TC_RubyTokenScanner.java 2007-03-14 17:54:55 UTC (rev 2167)
@@ -0,0 +1,72 @@
+package org.rubypeople.rdt.internal.ui.text.ruby;
+
+import junit.framework.TestCase;
+
+import org.eclipse.jface.text.Document;
+import org.eclipse.jface.text.rules.IToken;
+import org.rubypeople.rdt.internal.ui.RubyPlugin;
+import org.rubypeople.rdt.internal.ui.text.IRubyColorConstants;
+import org.rubypeople.rdt.internal.ui.text.RubyColorManager;
+
+public class TC_RubyTokenScanner extends TestCase {
+
+ private RubyTokenScanner fScanner;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ RubyColorManager colorManager = new RubyColorManager(false);
+ fScanner = new RubyTokenScanner(colorManager, RubyPlugin.getDefault().getPreferenceStore());
+ }
+
+ private void setUpScanner(String code) {
+ setUpScanner(code, 0, code.length());
+ }
+
+ private void setUpScanner(String code, int offset, int length) {
+ Document doc = new Document(code);
+ fScanner.setRange(doc, offset, length);
+ }
+
+ private void assertToken(String color, int offset, int length) {
+ IToken token = fScanner.nextToken();
+ assertEquals("Offsets don't match", offset, fScanner.getTokenOffset());
+ assertEquals("Lengths don't match", length, fScanner.getTokenLength());
+ assertEquals("Colors don't match", fScanner.getToken(color), token);
+ }
+
+ public void testSimpleClassDefinition() {
+ String code = "class Chris\nend\n";
+ setUpScanner(code);
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 0, 5);
+ assertToken(IRubyColorConstants.RUBY_DEFAULT, 5, 6);
+ assertToken(IRubyColorConstants.RUBY_DEFAULT, 11, 1);
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 12, 3);
+ }
+
+ public void testCommentAfterEnd() {
+ String code = "class Chris\nend # comment\n";
+ setUpScanner(code);
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 0, 5);
+ assertToken(IRubyColorConstants.RUBY_DEFAULT, 5, 6);
+ assertToken(IRubyColorConstants.RUBY_DEFAULT, 11, 1);
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 12, 3);
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 15, 10);
+ }
+
+ public void testCommentAfterEndYeah() {
+ String code = "=begin\r\n" +
+"c\r\n" +
+"=end\r\n" +
+"#hmm\r\n" +
+"#comment here why is ths\r\n" +
+"class Chris\r\n" +
+" def thing\r\n" +
+" end #ocmm \r\n" +
+"end";
+ setUpScanner(code, 75, 14);
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 75, 5);
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 80, 7);
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|