|
From: <mir...@us...> - 2006-08-21 12:36:44
|
Revision: 1582 Author: mirkostocker Date: 2006-08-21 05:36:33 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/rubyeclipse/?rev=1582&view=rev Log Message: ----------- add a test for ticket #115 and added TS_UiSymbols to TS_Ui Modified Paths: -------------- 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/ui/tests/TS_Ui.java Added Paths: ----------- trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/TC_RubyWordFinder.java Added: trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/TC_RubyWordFinder.java =================================================================== --- trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/TC_RubyWordFinder.java (rev 0) +++ trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/TC_RubyWordFinder.java 2006-08-21 12:36:33 UTC (rev 1582) @@ -0,0 +1,54 @@ +package org.rubypeople.rdt.internal.ui.text; + +import junit.framework.TestCase; + +import org.eclipse.jface.text.Document; +import org.eclipse.jface.text.IRegion; + +public class TC_RubyWordFinder extends TestCase { + + private static final String document = + "class Product < ActiveRecord::Base\n"+ + " validates_presence_of :title, :description, :image_url\n"+ + "end"; + + private IRegion findWord(int offset) { + return RubyWordFinder.findWord(new Document(document), offset); + } + + private boolean regionEquals(IRegion region, int offset, int length){ + return region.getLength() == length && region.getLength() == length; + } + + private boolean isWordAtPosition(String word, int cursorPosition) { + return regionEquals(findWord(cursorPosition), document.indexOf(word), word.length()); + } + + public void testFindFirstWord() { + assertTrue (isWordAtPosition("class", 0)); + assertTrue (isWordAtPosition("class", 3)); + assertTrue (isWordAtPosition("class", 4)); + assertFalse(isWordAtPosition("class", 5)); + + assertNull(findWord(-1)); + } + + public void testFindWord() { + assertTrue (isWordAtPosition("Product", 6)); + assertFalse(isWordAtPosition("Product", 5)); + assertTrue (isWordAtPosition("Product", 12)); + + assertTrue (isWordAtPosition("ActiveRecord::Base", 16)); + + assertTrue (isWordAtPosition("<", 14)); + } + + public void testFindLastWord() { + assertTrue (isWordAtPosition("end", document.length() -1)); + assertTrue (isWordAtPosition("end", document.length() -2)); + assertTrue (isWordAtPosition("end", document.length() -3)); + assertFalse(isWordAtPosition("end", document.length() -4)); + + assertNull(findWord(document.length())); + } +} 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 2006-08-21 08:48:54 UTC (rev 1581) +++ trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/TS_InternalUiText.java 2006-08-21 12:36:33 UTC (rev 1582) @@ -8,6 +8,7 @@ TestSuite suite = new TestSuite("org.rubypeople.rdt.internal.ui.text"); suite.addTestSuite(TC_RubyPartitionScanner.class); suite.addTestSuite(RubyPartitionScannerTest.class); + suite.addTestSuite(TC_RubyWordFinder.class); return suite; } } Modified: trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/ui/tests/TS_Ui.java =================================================================== --- trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/ui/tests/TS_Ui.java 2006-08-21 08:48:54 UTC (rev 1581) +++ trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/ui/tests/TS_Ui.java 2006-08-21 12:36:33 UTC (rev 1582) @@ -6,6 +6,7 @@ import org.rubypeople.rdt.internal.ui.TS_InternalUi; import org.rubypeople.rdt.internal.ui.rubyeditor.TS_InternalUiRubyEditor; import org.rubypeople.rdt.internal.ui.search.TS_InternalUiRubySearch; +import org.rubypeople.rdt.internal.ui.symbols.TS_UiSymbols; import org.rubypeople.rdt.internal.ui.text.TS_InternalUiText; public class TS_Ui { @@ -15,6 +16,7 @@ suite.addTest(TS_InternalUiRubyEditor.suite()); suite.addTest(TS_InternalUiText.suite()); suite.addTest(TS_InternalUiRubySearch.suite()); + suite.addTest(TS_UiSymbols.suite()); return suite; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |