You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
(41) |
Apr
(9) |
May
|
Jun
|
Jul
(39) |
Aug
(38) |
Sep
(135) |
Oct
(220) |
Nov
(75) |
Dec
(74) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(44) |
Feb
(160) |
Mar
(49) |
Apr
(69) |
May
(40) |
Jun
(52) |
Jul
(47) |
Aug
(51) |
Sep
(19) |
Oct
(22) |
Nov
(36) |
Dec
(76) |
| 2007 |
Jan
(154) |
Feb
(165) |
Mar
(186) |
Apr
(143) |
May
(175) |
Jun
(133) |
Jul
(203) |
Aug
(177) |
Sep
(136) |
Oct
|
Nov
|
Dec
|
|
From: David C. <dc...@us...> - 2005-10-19 00:33:21
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24791/src/org/rubypeople/rdt/internal/core Added Files: SymbolIndexResourceChangeListener.java Log Message: Update SymbolIndex when a new project is opened. --- NEW FILE: SymbolIndexResourceChangeListener.java --- /* * Author: David Corbin * * Copyright (c) 2005 RubyPeople. * * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. */ package org.rubypeople.rdt.internal.core; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.ResourcesPlugin; import org.rubypeople.rdt.internal.core.builder.IndexUpdater; import org.rubypeople.rdt.internal.core.builder.MassIndexUpdater; import org.rubypeople.rdt.internal.core.symbols.SymbolIndex; import org.rubypeople.rdt.internal.core.util.ListUtil; public final class SymbolIndexResourceChangeListener implements IResourceChangeListener { private final MassIndexUpdater updater; public static void register(SymbolIndex symbolIndex) { // DSC check constructors IndexUpdater indexUpdater = new IndexUpdater(symbolIndex); MassIndexUpdater massIndexUpdater = new MassIndexUpdater(indexUpdater); SymbolIndexResourceChangeListener listener = new SymbolIndexResourceChangeListener(massIndexUpdater); ResourcesPlugin.getWorkspace().addResourceChangeListener(listener); } public SymbolIndexResourceChangeListener(MassIndexUpdater updater) { this.updater = updater; } public void resourceChanged(IResourceChangeEvent event) { if (event.getType() == IResourceChangeEvent.POST_CHANGE) handlePostChangeEvent(event); } private void handlePostChangeEvent(IResourceChangeEvent event) { IResourceDelta[] deltas = event.getDelta().getAffectedChildren(); for (int i = 0; i < deltas.length; i++) { IResourceDelta delta = deltas[i]; if (isDeltaOpen(delta)) { IResource resource = delta.getResource(); if (isProject(resource)) updater.updateProjects(ListUtil.create((IProject) resource.getAdapter(IProject.class))); } } } private boolean isProject(IResource resource) { return ((IProject) resource.getAdapter(IProject.class)) != null; } private boolean isDeltaOpen(IResourceDelta delta) { return delta.getKind() == IResourceDelta.CHANGED && (delta.getFlags() & IResourceDelta.OPEN) != 0; } } |
|
From: David C. <dc...@us...> - 2005-10-19 00:33:21
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24791/lib Modified Files: generateJrubyJar.jardesc Log Message: Update SymbolIndex when a new project is opened. Index: generateJrubyJar.jardesc =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core/lib/generateJrubyJar.jardesc,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** generateJrubyJar.jardesc 23 Aug 2005 19:33:25 -0000 1.1 --- generateJrubyJar.jardesc 19 Oct 2005 00:33:12 -0000 1.2 *************** *** 1,5 **** <?xml version="1.0" encoding="UTF-8"?> <jardesc> ! <jar path="D:/java/rdt/org.rubypeople.rdt.core/lib/jruby.jar"/> <options buildIfNeeded="true" compress="true" descriptionLocation="/org.rubypeople.rdt.core/generateJrubyJar.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" useSourceFolders="false"/> <manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true"> --- 1,5 ---- <?xml version="1.0" encoding="UTF-8"?> <jardesc> ! <jar path="/home/dcorbin/eclipse/rdt-head/org.rubypeople.rdt.core/lib/jruby.jar"/> <options buildIfNeeded="true" compress="true" descriptionLocation="/org.rubypeople.rdt.core/generateJrubyJar.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" useSourceFolders="false"/> <manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true"> |
|
From: David C. <dc...@us...> - 2005-10-19 00:33:16
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24779 Added Files: dcorbin.txt Log Message: Update SymbolIndex when a new project is opened. --- NEW FILE: dcorbin.txt --- JUnitView features * discard index data when a project is closed * add support for "Heirarchy tab" * support for mulitple class definitions * add support for methods * index by method * open menu item * double-click * update symbol index with 'editor reconciliation' L* populate index in the background L* and queue builder updates |
|
From: David C. <dc...@us...> - 2005-10-19 00:33:15
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/builder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24760/src/org/rubypeople/rdt/internal/core/builder Modified Files: TC_IndexUpdater.java Added Files: ShamSymbolIndex.java Log Message: Update SymbolIndex when a new project is opened. Index: TC_IndexUpdater.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/builder/TC_IndexUpdater.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TC_IndexUpdater.java 16 Oct 2005 17:29:16 -0000 1.2 --- TC_IndexUpdater.java 19 Oct 2005 00:33:05 -0000 1.3 *************** *** 15,31 **** import junit.framework.TestCase; - import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; - import org.eclipse.core.runtime.IPath; import org.jruby.ast.ClassNode; import org.jruby.ast.Colon2Node; import org.jruby.ast.Node; import org.jruby.ast.TrueNode; - import org.jruby.lexer.yacc.ISourcePosition; import org.rubypeople.eclipse.shams.resources.ShamFile; import org.rubypeople.rdt.internal.core.parser.RdtPosition; import org.rubypeople.rdt.internal.core.parser.RubyParser; import org.rubypeople.rdt.internal.core.symbols.ClassSymbol; - import org.rubypeople.rdt.internal.core.symbols.SymbolIndex; public class TC_IndexUpdater extends TestCase { --- 15,27 ---- *************** *** 36,44 **** private IndexUpdater updater; private ShamFile file; ! private MockSymbolIndex symbolIndex; public void setUp() { file = new ShamFile("TestFile.rb"); ! symbolIndex = new MockSymbolIndex(); updater = new IndexUpdater(symbolIndex); } --- 32,40 ---- private IndexUpdater updater; private ShamFile file; ! private ShamSymbolIndex symbolIndex; public void setUp() { file = new ShamFile("TestFile.rb"); ! symbolIndex = new ShamSymbolIndex(); updater = new IndexUpdater(symbolIndex); } *************** *** 103,137 **** return new RubyParser().parse(file, reader); } - - private static class MockSymbolIndex extends SymbolIndex { - - private IFile fileArg; - private ClassSymbol symbolArg; - private ISourcePosition positionArg; - private IPath flushedPathArg; - - public void flush(IPath path) { - flushedPathArg = path; - } - public void assertFlushed(IPath expectedPath) { - assertEquals("Flushed path", expectedPath, flushedPathArg); - } - - public void assertAddNotCalled() { - assertNull("Unexpected call to assertAddNotCalled()", fileArg); - } - - public void assertAdded(ClassSymbol expectedSymbol, IFile expectedFile, ISourcePosition expectedPosition) { - assertEquals("Symbol", expectedSymbol, symbolArg); - assertEquals("File", expectedFile, fileArg); - assertEquals("Position", expectedPosition, positionArg); - - } - public void add(ClassSymbol symbol, IFile file, ISourcePosition position) { - symbolArg = symbol; - fileArg = file; - positionArg = position; - } - - } } \ No newline at end of file --- 99,101 ---- --- NEW FILE: ShamSymbolIndex.java --- /* * Author: David Corbin * * Copyright (c) 2005 RubyPeople. * * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. */ package org.rubypeople.rdt.internal.core.builder; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IPath; import org.jruby.lexer.yacc.ISourcePosition; import org.rubypeople.rdt.internal.core.symbols.ClassSymbol; import org.rubypeople.rdt.internal.core.symbols.SymbolIndex; public class ShamSymbolIndex extends SymbolIndex { private IFile fileArg; private ClassSymbol symbolArg; private ISourcePosition positionArg; private IPath flushedPathArg; public void flush(IPath path) { flushedPathArg = path; } public void assertFlushed(IPath expectedPath) { TC_IndexUpdater.assertEquals("Flushed path", expectedPath, flushedPathArg); } public void assertAddNotCalled() { TC_IndexUpdater.assertNull("Unexpected call to assertAddNotCalled()", fileArg); } public void assertAdded(ClassSymbol expectedSymbol, IFile expectedFile, ISourcePosition expectedPosition) { TC_IndexUpdater.assertEquals("Symbol", expectedSymbol, symbolArg); TC_IndexUpdater.assertEquals("File", expectedFile, fileArg); TC_IndexUpdater.assertEquals("Position", expectedPosition, positionArg); } public void add(ClassSymbol symbol, IFile file, ISourcePosition position) { symbolArg = symbol; fileArg = file; positionArg = position; } } |
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24760/src/org/rubypeople/rdt/internal/core Modified Files: TC_SymbolIndexResourceEventListener.java Added Files: ShamMassIndexUpdater.java ShamResourceChangeEvent.java ShamResourceDelta.java Log Message: Update SymbolIndex when a new project is opened. --- NEW FILE: ShamResourceChangeEvent.java --- /* * Author: David Corbin * * Copyright (c) 2005 RubyPeople. * * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. */ package org.rubypeople.rdt.internal.core; import org.eclipse.core.resources.IMarkerDelta; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceDelta; public class ShamResourceChangeEvent implements IResourceChangeEvent { private final int type; private final IResourceDelta delta; public ShamResourceChangeEvent(int type, IResourceDelta delta) { this.type = type; this.delta = delta; } public IMarkerDelta[] findMarkerDeltas(String type, boolean includeSubtypes) { return null; } public int getBuildKind() { return 0; } public IResourceDelta getDelta() { return delta; } public IResource getResource() { return null; } public Object getSource() { return null; } public int getType() { return type; } } Index: TC_SymbolIndexResourceEventListener.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/TC_SymbolIndexResourceEventListener.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TC_SymbolIndexResourceEventListener.java 16 Oct 2005 23:52:44 -0000 1.1 --- TC_SymbolIndexResourceEventListener.java 19 Oct 2005 00:33:05 -0000 1.2 *************** *** 1,10 **** package org.rubypeople.rdt.internal.core; import junit.framework.TestCase; public class TC_SymbolIndexResourceEventListener extends TestCase { ! public void testSomething() throws Exception { } } --- 1,106 ---- + /* + * Author: David Corbin + * + * Copyright (c) 2005 RubyPeople. + * + * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. + * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use + * RDT except in compliance with the License. For further information see + * org.rubypeople.rdt/rdt.license. + */ package org.rubypeople.rdt.internal.core; import junit.framework.TestCase; + import org.eclipse.core.resources.IResource; + import org.eclipse.core.resources.IResourceChangeEvent; + import org.eclipse.core.resources.IResourceDelta; + import org.eclipse.core.runtime.Path; + import org.rubypeople.eclipse.shams.resources.ShamProject; + import org.rubypeople.eclipse.shams.resources.ShamResource; + import org.rubypeople.rdt.internal.core.util.ListUtil; + public class TC_SymbolIndexResourceEventListener extends TestCase { ! ! private ShamMassIndexUpdater massIndexUpdater; ! private SymbolIndexResourceChangeListener listener; ! private ShamProject project; ! private ShamResourceDelta parentDelta; ! private ShamResource resource; ! ! public void setUp() { ! massIndexUpdater = new ShamMassIndexUpdater(); ! listener = new SymbolIndexResourceChangeListener(massIndexUpdater); ! project = new ShamProject("test1"); ! resource = new ShamResource(new Path("test1/file1")); ! parentDelta = new ShamResourceDelta(); ! } ! ! public void testSimpleProjectOpen() throws Exception { ! parentDelta.addChildren(createDelta(project)); ! ! ShamResourceChangeEvent event = ! new ShamResourceChangeEvent(IResourceChangeEvent.POST_CHANGE, parentDelta); ! ! listener.resourceChanged(event); ! ! massIndexUpdater.assertProjectsUpdated(ListUtil.create(project)); ! } ! ! public void testWithoutProject() throws Exception { ! parentDelta.addChildren(createDelta(resource)); ! ! ShamResourceChangeEvent event = ! new ShamResourceChangeEvent(IResourceChangeEvent.POST_CHANGE, parentDelta); ! ! listener.resourceChanged(event); ! ! massIndexUpdater.assertUpdateProjectsNotCalled(); ! } ! ! public void testNotAPostChange() throws Exception { ! parentDelta.addChildren(createDelta(project)); ! ! ShamResourceChangeEvent event = ! new ShamResourceChangeEvent(IResourceChangeEvent.POST_BUILD, parentDelta); ! ! listener.resourceChanged(event); ! ! massIndexUpdater.assertUpdateProjectsNotCalled(); ! } ! ! public void testNotADeltaChange() throws Exception { ! ShamResourceDelta projectDelta = createDelta(project); ! projectDelta.setKind(IResourceDelta.MOVED_FROM); ! parentDelta.addChildren(projectDelta); ! ! ShamResourceChangeEvent event = ! new ShamResourceChangeEvent(IResourceChangeEvent.POST_CHANGE, parentDelta); + listener.resourceChanged(event); + + massIndexUpdater.assertUpdateProjectsNotCalled(); + } + + public void testNotAOpen() throws Exception { + ShamResourceDelta projectDelta = createDelta(project); + projectDelta.setFlags(IResourceDelta.MARKERS); + parentDelta.addChildren(projectDelta); + + ShamResourceChangeEvent event = + new ShamResourceChangeEvent(IResourceChangeEvent.POST_CHANGE, parentDelta); + + listener.resourceChanged(event); + + massIndexUpdater.assertUpdateProjectsNotCalled(); + } + + private ShamResourceDelta createDelta(IResource resource) { + ShamResourceDelta delta = new ShamResourceDelta(); + delta.addResource(resource); + delta.setKind(IResourceDelta.CHANGED); + delta.setFlags(IResourceDelta.OPEN | IResourceDelta.MARKERS); + return delta; } } --- NEW FILE: ShamResourceDelta.java --- /* * Author: David Corbin * * Copyright (c) 2005 RubyPeople. * * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. */ package org.rubypeople.rdt.internal.core; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IMarkerDelta; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IResourceDeltaVisitor; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; class ShamResourceDelta implements IResourceDelta { private List children = new ArrayList(); private IResource resource; private int kind; private int flags; public void accept(IResourceDeltaVisitor visitor) throws CoreException { } public void accept(IResourceDeltaVisitor visitor, boolean includePhantoms) throws CoreException { } public void accept(IResourceDeltaVisitor visitor, int memberFlags) throws CoreException { } public IResourceDelta findMember(IPath path) { return null; } public IResourceDelta[] getAffectedChildren() { return (IResourceDelta[]) children.toArray(new IResourceDelta[0]); } public IResourceDelta[] getAffectedChildren(int kindMask) { return null; } public IResourceDelta[] getAffectedChildren(int kindMask, int memberFlags) { return null; } public int getFlags() { return flags; } public IPath getFullPath() { return null; } public int getKind() { return kind; } public IMarkerDelta[] getMarkerDeltas() { return null; } public IPath getMovedFromPath() { return null; } public IPath getMovedToPath() { return null; } public IPath getProjectRelativePath() { return null; } public IResource getResource() { return resource; } public Object getAdapter(Class adapter) { return null; } public void addResource(IResource resource) { this.resource = resource; } public void addChildren(IResourceDelta delta) { children.add(delta); } public void setKind(int kind) { this.kind = kind; } public void setFlags(int flags) { this.flags = flags; } } --- NEW FILE: ShamMassIndexUpdater.java --- /* * Author: David Corbin * * Copyright (c) 2005 RubyPeople. * * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. */ package org.rubypeople.rdt.internal.core; import java.util.Collection; import java.util.List; import junit.framework.Assert; import org.rubypeople.rdt.internal.core.builder.MassIndexUpdater; public class ShamMassIndexUpdater extends MassIndexUpdater { private Collection projectsArg; public ShamMassIndexUpdater() { super(null); } public void assertProjectsUpdated(Collection expectedProjects) { Assert.assertEquals(expectedProjects, projectsArg); } public void updateProjects(List projects) { projectsArg = projects; } public void assertUpdateProjectsNotCalled() { Assert.assertNull("Unexpected call to updateProjects", projectsArg); } } |
|
From: Markus B. <mba...@us...> - 2005-10-18 20:44:11
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.webpage/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24672/htdocs Modified Files: welcome.php Log Message: correction to latest news Index: welcome.php =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.webpage/htdocs/welcome.php,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** welcome.php 18 Oct 2005 20:38:14 -0000 1.5 --- welcome.php 18 Oct 2005 20:44:03 -0000 1.6 *************** *** 34,40 **** <tr> <td align="right" valign="top" width="20"><img src="images/arrow.gif" alt="->" border="0" height="16" width="16"></td> ! <td valign="top"><font face="arial,helvetica,geneva" size="-1"><b>Article on developerworks (2005-10-18)</b> <br/> ! Recently Neal Ford has published an article on IBM's developerWorks site. It gives a good overview of RDT:<br/> <a href="http://www-128.ibm.com/developerworks/opensource/library/os-rubyeclipse/">Using the Ruby Development Tools plug-in for Eclipse</a> </p> --- 34,40 ---- <tr> <td align="right" valign="top" width="20"><img src="images/arrow.gif" alt="->" border="0" height="16" width="16"></td> ! <td valign="top"><font face="arial,helvetica,geneva" size="-1"><b>Article on developerWorks (2005-10-18)</b> <br/> ! Recently Neal Ford has published an article on IBM's developerWorks site. It gives an excellent overview of RDT, particularly useful for newbies:<br/> <a href="http://www-128.ibm.com/developerworks/opensource/library/os-rubyeclipse/">Using the Ruby Development Tools plug-in for Eclipse</a> </p> |
|
From: Markus B. <mba...@us...> - 2005-10-18 20:38:23
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.webpage/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23494/htdocs Modified Files: welcome.php Log Message: added news topic with link to article on developerWorks Index: welcome.php =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.webpage/htdocs/welcome.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** welcome.php 28 Sep 2005 23:30:08 -0000 1.4 --- welcome.php 18 Oct 2005 20:38:14 -0000 1.5 *************** *** 30,34 **** --- 30,45 ---- <!-- INSERT NEW NEWS HERE!!! --> + <table> + <tr> + <td align="right" valign="top" width="20"><img src="images/arrow.gif" alt="->" border="0" height="16" width="16"></td> + <td valign="top"><font face="arial,helvetica,geneva" size="-1"><b>Article on developerworks (2005-10-18)</b> + <br/> + Recently Neal Ford has published an article on IBM's developerWorks site. It gives a good overview of RDT:<br/> + <a href="http://www-128.ibm.com/developerworks/opensource/library/os-rubyeclipse/">Using the Ruby Development Tools plug-in for Eclipse</a> + </p> + </font> + </td> + </tr> <tr> <td align="right" valign="top" width="20"><img src="images/arrow.gif" alt="->" border="0" height="16" width="16"></td> |
|
From: Zach D. <zd...@us...> - 2005-10-17 04:32:03
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3132/src/org/rubypeople/rdt/internal/core Modified Files: RubyScriptStructureBuilder.java Log Message: Added today for method aliasing, to find the visibility for the original method that you are aliasing instead of using currentVisibility. Index: RubyScriptStructureBuilder.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/RubyScriptStructureBuilder.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** RubyScriptStructureBuilder.java 17 Oct 2005 04:23:45 -0000 1.11 --- RubyScriptStructureBuilder.java 17 Oct 2005 04:31:55 -0000 1.12 *************** *** 176,179 **** --- 176,180 ---- String name = iVisited.getNewName(); + // TODO Use the visibility for the original method that this is aliasing Visibility visibility = currentVisibility; if( name.equals("initialize") ) visibility = Visibility.PROTECTED; |
|
From: Zach D. <zd...@us...> - 2005-10-17 04:24:39
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1813 Modified Files: Changelog.txt Log Message: Updating changelog adding aliasing support for methods, and for the bug fix which resets the method visibility when opening or defining a class. Index: Changelog.txt =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt/Changelog.txt,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Changelog.txt 9 Oct 2005 21:22:23 -0000 1.16 --- Changelog.txt 17 Oct 2005 04:24:29 -0000 1.17 *************** *** 8,11 **** --- 8,13 ---- * The catchpoint dialog allows to add a ruby exception breakpoint * There can be at most one exception breakpoint; the breakpoint can be enabled, disabled and removed in the breakpoint view + * Added outline support for aliasing methods using the format 'alias :new_method :old_method' + * Fixed bug where current visibility was never reset when opening a new class Changes merged from SRB 0.6.1: |
|
From: Zach D. <zd...@us...> - 2005-10-17 04:23:53
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1712/src/org/rubypeople/rdt/internal/core Modified Files: RubyScriptStructureBuilder.java Log Message: Added support for aliasing methods using 'alias :new_method :old_method' syntax. This shows up and correctly positions in the outline view. Fixed bug where the currentVisibility was never reset to be public when opening or declaring a new class. Removed a line of unneeded where the assignment was the only area where the local variable was used. Index: RubyScriptStructureBuilder.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/RubyScriptStructureBuilder.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** RubyScriptStructureBuilder.java 9 Oct 2005 22:14:06 -0000 1.10 --- RubyScriptStructureBuilder.java 17 Oct 2005 04:23:45 -0000 1.11 *************** *** 172,176 **** */ public void visitAliasNode(AliasNode iVisited) { ! handleNode(iVisited); } --- 172,197 ---- */ public void visitAliasNode(AliasNode iVisited) { ! handleNode(iVisited); ! ! String name = iVisited.getNewName(); ! ! Visibility visibility = currentVisibility; ! if( name.equals("initialize") ) visibility = Visibility.PROTECTED; ! ! RubyMethod method = new RubyMethod( getCurrentType(), name ); ! modelStack.push( method ); ! ! RubyElementInfo parentInfo = infoStack.peek(); ! parentInfo.addChild( method ); ! ! RubyMethodElementInfo info = new RubyMethodElementInfo(); ! info.setVisibility( convertVisibility(visibility) ); ! ISourcePosition pos = iVisited.getPosition(); ! setKeywordRange( "alias", pos, info, ":" + name ); ! infoStack.push( info ); ! newElements.put( method, info ); ! ! modelStack.pop(); ! infoStack.pop(); } *************** *** 438,441 **** --- 459,466 ---- public void visitClassNode(ClassNode iVisited) { handleNode(iVisited); + + // This resets the visibility when opening or declaring a class to public + currentVisibility = Visibility.PUBLIC; + String name = iVisited.getCPath().getName(); RubyType handle = new RubyType(modelStack.peek(), name); *************** *** 832,836 **** String arg = getString(node); if (arg != null) { - RubyElementInfo parentInfo = scriptInfo; ImportContainer importContainer = (ImportContainer) script.getImportContainer(); // create the import container and its info --- 857,860 ---- |
|
From: David C. <dc...@us...> - 2005-10-16 23:53:14
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.launching.tests/src/org/rubypeople/rdt/launching/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24637/src/org/rubypeople/rdt/launching/tests Added Files: TS_Launching.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- NEW FILE: TS_Launching.java --- package org.rubypeople.rdt.launching.tests; import org.rubypeople.rdt.internal.launching.TS_InternalLaunching; import junit.framework.Test; import junit.framework.TestSuite; public class TS_Launching { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(TS_InternalLaunching.suite()); return suite; } } |
|
From: David C. <dc...@us...> - 2005-10-16 23:53:14
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.launching.tests/src/org/rubypeople/rdt/internal/launching In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24637/src/org/rubypeople/rdt/internal/launching Added Files: TS_InternalLaunching.java Removed Files: TS_Launching.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- TS_Launching.java DELETED --- --- NEW FILE: TS_InternalLaunching.java --- package org.rubypeople.rdt.internal.launching; import junit.framework.Test; import junit.framework.TestSuite; public class TS_InternalLaunching { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(TC_RubyInterpreter.class); suite.addTestSuite(TC_RubyRuntime.class); suite.addTestSuite(TC_RunnerLaunching.class) ; suite.addTestSuite(TC_ArgumentSplitter.class) ; return suite; } } |
|
From: David C. <dc...@us...> - 2005-10-16 23:53:11
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core/src/org/rubypeople/rdt/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24617/src/org/rubypeople/rdt/core Modified Files: RubyCore.java Added Files: SymbolIndexResourceChangeListener.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. Index: RubyCore.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core/src/org/rubypeople/rdt/core/RubyCore.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** RubyCore.java 16 Oct 2005 21:02:16 -0000 1.19 --- RubyCore.java 16 Oct 2005 23:53:03 -0000 1.20 *************** *** 55,62 **** private static final String RUBY_PARSER_DEBUG_OPTION = RubyCore.PLUGIN_ID + "/rubyparser"; - private static final String MODEL_MANAGER_VERBOSE_OPTION = RubyCore.PLUGIN_ID + "/modelmanager"; - private static final String SYMBOL_INDEX_VERBOSE_OPTION = RubyCore.PLUGIN_ID + "/symbolIndex"; public final static String NATURE_ID = PLUGIN_ID + ".rubynature"; --- 55,61 ---- private static final String RUBY_PARSER_DEBUG_OPTION = RubyCore.PLUGIN_ID + "/rubyparser"; private static final String MODEL_MANAGER_VERBOSE_OPTION = RubyCore.PLUGIN_ID + "/modelmanager"; private static final String SYMBOL_INDEX_VERBOSE_OPTION = RubyCore.PLUGIN_ID + "/symbolIndex"; + public final static String NATURE_ID = PLUGIN_ID + ".rubynature"; *************** *** 214,220 **** SymbolIndex.setVerbose(isDebugOptionTrue(SYMBOL_INDEX_VERBOSE_OPTION)); IndexUpdater indexUpdater = new IndexUpdater(symbolIndex); MassIndexUpdater massUpdater = new MassIndexUpdater(indexUpdater); ! massUpdater.update(Arrays.asList(getRubyProjects())); } --- 213,221 ---- SymbolIndex.setVerbose(isDebugOptionTrue(SYMBOL_INDEX_VERBOSE_OPTION)); + SymbolIndexResourceChangeListener.register(symbolIndex); IndexUpdater indexUpdater = new IndexUpdater(symbolIndex); MassIndexUpdater massUpdater = new MassIndexUpdater(indexUpdater); ! massUpdater.updateProjects(Arrays.asList(getRubyProjects())); ! } --- NEW FILE: SymbolIndexResourceChangeListener.java --- /* * Author: David Corbin * * Copyright (c) 2005 RubyPeople. * * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. */ package org.rubypeople.rdt.core; import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.resources.ResourcesPlugin; import org.rubypeople.rdt.internal.core.symbols.SymbolIndex; final class SymbolIndexResourceChangeListener implements IResourceChangeListener { private final SymbolIndex symbolIndex; static void register(SymbolIndex symbolIndex) { ResourcesPlugin.getWorkspace().addResourceChangeListener(new SymbolIndexResourceChangeListener(symbolIndex)); } SymbolIndexResourceChangeListener(SymbolIndex symbolIndex) { this.symbolIndex = symbolIndex; } public void resourceChanged(IResourceChangeEvent event) { } } |
|
From: David C. <dc...@us...> - 2005-10-16 23:53:11
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/builder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24617/src/org/rubypeople/rdt/internal/core/builder Modified Files: MassIndexUpdater.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. Index: MassIndexUpdater.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/builder/MassIndexUpdater.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MassIndexUpdater.java 16 Oct 2005 17:29:21 -0000 1.1 --- MassIndexUpdater.java 16 Oct 2005 23:53:03 -0000 1.2 *************** *** 36,40 **** } ! public void update(List projects) { try { List files = findFiles(projects); --- 36,40 ---- } ! public void updateProjects(List projects) { try { List files = findFiles(projects); |
|
From: David C. <dc...@us...> - 2005-10-16 23:53:11
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.debug.ui.tests/src/org/rubypeople/rdt/internal/debug/ui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24567/src/org/rubypeople/rdt/internal/debug/ui Added Files: TC_RubySourceLocator.java TS_InternalDebugUi.java TC_RubyConsoleTracker.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- NEW FILE: TC_RubySourceLocator.java --- package org.rubypeople.rdt.internal.debug.ui; import java.io.ByteArrayInputStream; import java.io.File; import java.util.List; import java.util.Map; import junit.framework.TestCase; import org.eclipse.core.internal.resources.Project; import org.eclipse.core.internal.resources.Workspace; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationType; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.PlatformUI; import org.rubypeople.rdt.internal.debug.core.model.RubyStackFrame; import org.rubypeople.rdt.internal.debug.ui.RdtDebugUiPlugin; import org.rubypeople.rdt.internal.debug.ui.RubySourceLocator; public class TC_RubySourceLocator extends TestCase { public TC_RubySourceLocator(String name) { super(name); } protected void setUp() { } public void testWorkspaceInternalFile() throws Exception { Workspace workspace = (Workspace) RdtDebugUiPlugin.getWorkspace() ; // Create a project called 'SourceLocatorTest' Project p = new TestProject("/SourceLocatorTest", workspace) ; //$NON-NLS-1$ p.create(null) ; p.open(null) ; IPath filePath = new Path("/SourceLocatorTest/test.rb") ; //$NON-NLS-1$ IFile file =RdtDebugUiPlugin.getWorkspace().getRoot().getFile(filePath) ; file.create(new ByteArrayInputStream(new byte[0]) ,true, null) ; // using slashes for the workspace internal path is platform independent String fullPath = workspace.getRoot().getLocation().toOSString() + File.separator + "SourceLocatorTest/test.rb" ; //$NON-NLS-1$ RubySourceLocator sourceLocator = new RubySourceLocator() ; RubyStackFrame rubyStackFrame = new RubyStackFrame(null,fullPath, 5, 1) ; Object sourceElement = sourceLocator.getSourceElement(rubyStackFrame) ; IEditorInput input = sourceLocator.getEditorInput(sourceElement) ; assertNotNull(input) ; assertTrue(input.exists()) ; PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input, sourceLocator.getEditorId(input, sourceElement)) ; } public void testWorkspaceExternalFile() throws Exception { // external File File tmpFile = File.createTempFile("rubyfile", null) ; //$NON-NLS-1$ RubyStackFrame rubyStackFrame = new RubyStackFrame(null,tmpFile.getAbsolutePath(), 5, 1) ; RubySourceLocator sourceLocator = new RubySourceLocator() ; Object sourceElement = sourceLocator.getSourceElement(rubyStackFrame) ; IEditorInput input = sourceLocator.getEditorInput(sourceElement) ; assertNotNull(input) ; assertTrue(input.exists()) ; PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input, sourceLocator.getEditorId(input, sourceElement)) ; // set Working Directory to a project location Workspace workspace = (Workspace) RdtDebugUiPlugin.getWorkspace() ; Project p = new TestProject("/WorkingDirIsProject", workspace) ; //$NON-NLS-1$ p.create(null) ; p.open(null) ; sourceLocator.initializeDefaults(new LaunchConfiguration(workspace.getRoot().getLocation().toOSString() + File.separator + "WorkingDirIsProject")) ; sourceElement = sourceLocator.getSourceElement(rubyStackFrame) ; input = sourceLocator.getEditorInput(sourceElement) ; assertNotNull(input) ; assertTrue(input.exists()) ; PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input, sourceLocator.getEditorId(input, sourceElement)) ; // An External file which is relative to the working directory // If an external file is found within an include path, ruby seems always to deliver an // absolte file path. But if the file found relative to the working directory, ruby // shows a relative path String workspacePath = workspace.getRoot().getLocation().toOSString() ; File externalFile = new File(workspacePath + File.separator + "externalRelativeRubyFile.rb") ; assertTrue(externalFile.createNewFile()) ; // current directory = working dir = workspacePath/WorkingDirIsProject rubyStackFrame = new RubyStackFrame(null,"../externalRelativeRubyFile.rb", 5, 1) ; sourceElement = sourceLocator.getSourceElement(rubyStackFrame) ; input = sourceLocator.getEditorInput(sourceElement) ; assertNotNull(input) ; assertTrue(input.exists()) ; PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input, sourceLocator.getEditorId(input, sourceElement)) ; } public void testNotExistingFile() throws Exception { RubyStackFrame rubyStackFrame = new RubyStackFrame(null,"/tmp/nonexistingtestfile", 5, 1) ; //$NON-NLS-1$ RubySourceLocator sourceLocator = new RubySourceLocator() ; Object sourceElement = sourceLocator.getSourceElement(rubyStackFrame) ; IEditorInput input = sourceLocator.getEditorInput(sourceElement) ; assertNull(input) ; } public class TestProject extends Project { public TestProject(String aName, Workspace aWorkspace) { super(new Path(aName), aWorkspace) ; } } public class LaunchConfiguration implements ILaunchConfiguration { String workingDir ; public LaunchConfiguration(String pDir) { workingDir = pDir ; } public boolean contentsEqual(ILaunchConfiguration configuration) { return false; } public ILaunchConfigurationWorkingCopy copy(String name) throws CoreException { return null; } public void delete() throws CoreException { } public boolean exists() { return false; } public boolean getAttribute(String attributeName, boolean defaultValue) throws CoreException { return false; } public int getAttribute(String attributeName, int defaultValue) throws CoreException { return 0; } public List getAttribute(String attributeName, List defaultValue) throws CoreException { return null; } public Map getAttribute(String attributeName, Map defaultValue) throws CoreException { return null; } public String getAttribute(String attributeName, String defaultValue) throws CoreException { return workingDir ; } public Map getAttributes() throws CoreException { return null; } public String getCategory() throws CoreException { return null; } public IFile getFile() { return null; } public IPath getLocation() { return null; } public String getMemento() throws CoreException { return null; } public String getName() { return null; } public ILaunchConfigurationType getType() throws CoreException { return null; } public ILaunchConfigurationWorkingCopy getWorkingCopy() throws CoreException { return null; } public boolean isLocal() { return false; } public boolean isWorkingCopy() { return false; } public ILaunch launch(String mode, IProgressMonitor monitor) throws CoreException { return null; } public boolean supportsMode(String mode) throws CoreException { return false; } public Object getAdapter(Class adapter) { return null; } public ILaunch launch(String mode, IProgressMonitor monitor, boolean build) throws CoreException { return null; } public ILaunch launch(String mode, IProgressMonitor monitor, boolean build, boolean register) throws CoreException { // TODO Auto-generated method stub return null; } } } --- NEW FILE: TS_InternalDebugUi.java --- package org.rubypeople.rdt.internal.debug.ui; import junit.framework.Test; import junit.framework.TestSuite; public class TS_InternalDebugUi { public static Test suite() { TestSuite suite = new TestSuite("Test for org.rubypeople.rdt.internal.debug.ui"); suite.addTestSuite(TC_RubyConsoleTracker.class); suite.addTestSuite(TC_RubySourceLocator.class); return suite; } } --- NEW FILE: TC_RubyConsoleTracker.java --- package org.rubypeople.rdt.internal.debug.ui; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.core.model.IStreamMonitor; import org.eclipse.debug.core.model.IStreamsProxy; import org.eclipse.debug.ui.console.IConsole; import org.eclipse.debug.ui.console.IConsoleHyperlink; import org.eclipse.jface.text.AbstractDocument; import org.eclipse.jface.text.DefaultLineTracker; import org.eclipse.jface.text.GapTextStore; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IRegion; import org.eclipse.ui.console.IOConsoleOutputStream; import org.eclipse.ui.console.IPatternMatchListener; import org.rubypeople.rdt.internal.debug.ui.console.RubyConsoleTracker; import org.rubypeople.rdt.internal.debug.ui.console.RubyStackTraceHyperlink; import org.rubypeople.rdt.internal.debug.ui.console.RubyConsoleTracker.FileExistanceChecker; public class TC_RubyConsoleTracker extends TestCase { private static final String SYNTAX_IN_REQUIRE = " /RdtTest/FooTest.rb:2:in `require': /RdtTestLib/anotherFile.rb:9: parse error (SyntaxError)"; private TestConsole console; private MockFileExistanceChecker fileChecker; public void setUp() throws Exception { fileChecker = new MockFileExistanceChecker(); console = new TestConsole(fileChecker); } public void testCorrect() throws Exception { //data/test/configFile.rb:1:in `require': No such file to load -- inifile (LoadError) // * from /data/test/configFile.rb:1 // * from /data/test/fetchmail.rb:2:in `require' fileChecker.addKnownFile("/d/t.rb"); fileChecker.addKnownFile("c:/d/abc.rb"); console.lineAppend("/d/t.rb:1:in `require': No such file to load -- inifile (LoadError)") ; console.lineAppend("\tfrom c:/d/abc.rb:99") ; console.lineAppend(" /name with from in the middle/rb.rb:123") ; console.assertLink(0, 9, "/d/t.rb", 1, 0); console.assertLink(6, 14, "c:/d/abc.rb", 99, 1); console.assertLinkCount(2); } public void testSyntaxErrorInRequire() throws Exception { fileChecker.addKnownFile("/RdtTest/FooTest.rb"); fileChecker.addKnownFile("/RdtTestLib/anotherFile.rb"); console.lineAppend(SYNTAX_IN_REQUIRE) ; console.assertLinkCount(2); console.assertLink( 1, 21, "/RdtTest/FooTest.rb", 2, 0); console.assertLink(37, 28, "/RdtTestLib/anotherFile.rb", 9, 1); } public void testSecondWithoutFirst() throws Exception { fileChecker.addKnownFile("c:/d/abc.rb"); console.lineAppend("\tfrom c:/d/abc.rb:99") ; console.assertLink(6, 14, "c:/d/abc.rb", 99, 0); } public void testInCorrect() throws Exception { fileChecker.addKnownFile("/d/t.rb"); console.lineAppend("/d/t.rb:a:in `require': No such file to load -- inifile (LoadError)") ; console.lineAppend("/d/t.rb:123 "); console.assertLinkCount(0); } private final class MockFileExistanceChecker implements RubyConsoleTracker.FileExistanceChecker { private List knownFiles = new ArrayList(); public void addKnownFile(String filename) { knownFiles.add(filename); } public boolean fileExists(String filename) { return knownFiles.contains(filename); } } public class TestConsole implements IConsole { private class MetaLink { public RubyStackTraceHyperlink link; public int offset; public int length; } private List metaLinks = new ArrayList(); SimpleDocument doc = new SimpleDocument() ; RubyConsoleTracker tracker ; public TestConsole(FileExistanceChecker fileChecker) throws Exception { tracker = new RubyConsoleTracker(fileChecker); tracker.init(this) ; } public void assertLinkCount(int expectedLinkCount) { assertEquals(expectedLinkCount, metaLinks.size()); } public void assertLink(int expectedOffset, int expectedLength, String expectedFilename, int expectedLineNumber, int linkIndex) { MetaLink metaLink = (MetaLink) metaLinks.get(linkIndex); assertNotNull(metaLink); assertEquals("Offset of link["+linkIndex+"]", expectedOffset, metaLink.offset); assertEquals(expectedLength, metaLink.length); assertEquals(expectedFilename, metaLink.link.getFilename()); assertEquals(expectedLineNumber, metaLink.link.getLineNumber()); } public void addLink(IConsoleHyperlink pLink, int pOffset, int pLength) { } public void addLink(org.eclipse.ui.console.IHyperlink pLink, int pOffset, int pLength) { MetaLink metaLink = new MetaLink(); metaLink.link = (RubyStackTraceHyperlink) pLink ; metaLink.offset = pOffset ; metaLink.length = pLength ; metaLinks.add(metaLink); } public void connect(IStreamMonitor streamMonitor, String streamIdentifer) { throw new RuntimeException("Not Implemented Exception"); } public void connect(IStreamsProxy streamsProxy) { throw new RuntimeException("Not Implemented Exception"); } public IDocument getDocument() { return doc; } public IProcess getProcess() { throw new RuntimeException("Not Implemented Exception"); } public IRegion getRegion(IConsole link) { throw new RuntimeException("Not Implemented Exception"); } public void lineAppend(String pLine) throws Exception { doc.set(pLine) ; tracker.lineAppended(doc.getLineInformationOfOffset(1)) ; } public IRegion getRegion(IConsoleHyperlink link) { // TODO Auto-generated method stub return null; } public IRegion getRegion(org.eclipse.ui.console.IHyperlink link) { // TODO Auto-generated method stub return null; } public void addPatternMatchListener(IPatternMatchListener matchListener) { // TODO Auto-generated method stub } public void removePatternMatchListener(IPatternMatchListener matchListener) { // TODO Auto-generated method stub } public IOConsoleOutputStream getStream(String streamIdentifier) { // TODO Auto-generated method stub return null; } } public class SimpleDocument extends AbstractDocument { public SimpleDocument() { // The text store is not really necessary, but there is a not null assert in AbstractDocument this.setTextStore(new GapTextStore(1,2)) ; setLineTracker(new DefaultLineTracker()); completeInitialization(); } } } |
|
From: David C. <dc...@us...> - 2005-10-16 23:53:11
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.debug.ui.tests/src/org/rubypeople/rdt/internal/debug/ui/launcher In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24567/src/org/rubypeople/rdt/internal/debug/ui/launcher Added Files: TC_RubyEnvironmentTab.java TC_RubyApplicationShortcut.java ShamApplicationLaunchConfigurationDelegate.java TS_InternalDebugUiLauncher.java TC_RubyArgumentsTab.java TC_RubyEntryPointTab.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- NEW FILE: TC_RubyEnvironmentTab.java --- package org.rubypeople.rdt.internal.debug.ui.launcher; import junit.framework.TestCase; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.rubypeople.eclipse.shams.debug.core.ShamLaunchConfigurationWorkingCopy; import org.rubypeople.rdt.internal.debug.ui.RdtDebugUiMessages; import org.rubypeople.rdt.internal.debug.ui.launcher.RubyEnvironmentTab; import org.rubypeople.rdt.internal.launching.RubyLaunchConfigurationAttribute; public class TC_RubyEnvironmentTab extends TestCase { public TC_RubyEnvironmentTab(String name) { super(name); } public void testIsValid() { RubyEnvironmentTab tab = new RubyEnvironmentTab(); ILaunchConfigurationWorkingCopy configuration = new ShamLaunchConfigurationWorkingCopy(); String errorMessage = tab.getErrorMessage(); assertNull("There should be no error message.", errorMessage); assertTrue("The tab is not valid when the configuration is completely empty.", !tab.isValid(configuration)); errorMessage = RdtDebugUiMessages.getString("LaunchConfigurationTab.RubyEnvironment.interpreter_not_selected_error_message"); assertEquals("The tab should set the error message for no interpreter selected.", errorMessage, tab.getErrorMessage()); configuration.setAttribute(RubyLaunchConfigurationAttribute.SELECTED_INTERPRETER, "anInterpreter"); assertTrue("The tab is valid when the configuration has a selected interpreter.", tab.isValid(configuration)); assertNull("The tab should set the error message to null when there is a selected interpreter.", tab.getErrorMessage()); } } --- NEW FILE: TC_RubyArgumentsTab.java --- package org.rubypeople.rdt.internal.debug.ui.launcher; import junit.framework.TestCase; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.rubypeople.eclipse.shams.debug.core.ShamLaunchConfigurationWorkingCopy; import org.rubypeople.rdt.internal.debug.ui.RdtDebugUiMessages; import org.rubypeople.rdt.internal.debug.ui.launcher.RubyArgumentsTab; import org.rubypeople.rdt.internal.launching.RubyLaunchConfigurationAttribute; public class TC_RubyArgumentsTab extends TestCase { public TC_RubyArgumentsTab(String name) { super(name); } public void testIsValid() { RubyArgumentsTab tab = new RubyArgumentsTab(); ILaunchConfigurationWorkingCopy configuration = new ShamLaunchConfigurationWorkingCopy(); String errorMessage = tab.getErrorMessage(); assertNull("There should be no error message.", errorMessage); assertTrue("The tab is not valid when the configuration is completely empty.", !tab.isValid(configuration)); errorMessage = RdtDebugUiMessages.getString("LaunchConfigurationTab.RubyArguments.working_dir_error_message"); assertEquals("The tab should set the error message for invalid working directory.", errorMessage, tab.getErrorMessage()); configuration.setAttribute(RubyLaunchConfigurationAttribute.WORKING_DIRECTORY, "aValidDirectory"); assertTrue("The tab is valid when the configuration has a working directory.", tab.isValid(configuration)); assertNull("The tab should set the error message to null when there is a working directory.", tab.getErrorMessage()); } } --- NEW FILE: TC_RubyApplicationShortcut.java --- package org.rubypeople.rdt.internal.debug.ui.launcher; import java.io.ByteArrayInputStream; import java.io.File; import java.util.Arrays; import junit.framework.Assert; import junit.framework.TestCase; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationType; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.debug.core.ILaunchManager; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.FileEditorInput; import org.rubypeople.rdt.internal.debug.ui.RdtDebugUiPlugin; import org.rubypeople.rdt.internal.debug.ui.RubySourceLocator; import org.rubypeople.rdt.internal.debug.ui.launcher.RubyApplicationShortcut; import org.rubypeople.rdt.internal.launching.RubyInterpreter; import org.rubypeople.rdt.internal.launching.RubyLaunchConfigurationAttribute; import org.rubypeople.rdt.internal.launching.RubyRuntime; import org.rubypeople.rdt.ui.IRubyConstants; public class TC_RubyApplicationShortcut extends TestCase { protected ShamRubyApplicationShortcut shortcut; protected IFile rubyFile, nonRubyFile; private static String SHAM_LAUNCH_CONFIG_TYPE = "org.rubypeople.rdt.debug.ui.tests.launching.LaunchConfigurationTypeSham"; public TC_RubyApplicationShortcut(String name) { super(name); } protected IProject getOrCreateProject(String pName) throws CoreException { IProject p = RdtDebugUiPlugin.getWorkspace().getRoot().getProject(pName); if (!p.exists()) { p.create(null); p.open(null); } return p; } protected IFile getOrCreateFile(String pName) throws CoreException { IFile f = RdtDebugUiPlugin.getWorkspace().getRoot().getFile(new Path(pName)); if (!f.exists()) { f.create(new ByteArrayInputStream(new byte[0]), true, null); } return f; } protected IFolder getOrCreateDir(String pName) throws CoreException { IFolder f = RdtDebugUiPlugin.getWorkspace().getRoot().getFolder(new Path(pName)); if (!f.exists()) { f.create(true, true, null); } return f; } protected void createLaunchConfiguration(String pName, IFile pFile) throws Exception { ILaunchConfigurationType configType = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(SHAM_LAUNCH_CONFIG_TYPE); ILaunchConfigurationWorkingCopy wc = configType.newInstance(null, pName); wc.setAttribute(RubyLaunchConfigurationAttribute.PROJECT_NAME, pFile.getProject().getName()); wc.setAttribute(RubyLaunchConfigurationAttribute.FILE_NAME, pFile.getProjectRelativePath().toString()); wc.setAttribute(RubyLaunchConfigurationAttribute.WORKING_DIRECTORY, ""); wc.setAttribute(RubyLaunchConfigurationAttribute.SELECTED_INTERPRETER, RubyRuntime.getDefault().getSelectedInterpreter().getName()); wc.setAttribute(ILaunchConfiguration.ATTR_SOURCE_LOCATOR_ID, "org.rubypeople.rdt.debug.ui.rubySourceLocator"); wc.doSave(); } protected ILaunchConfiguration[] getLaunchConfigurations() throws CoreException { ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager(); return launchManager.getLaunchConfigurations(launchManager.getLaunchConfigurationType(SHAM_LAUNCH_CONFIG_TYPE)); } protected void setUp() throws CoreException { shortcut = new ShamRubyApplicationShortcut(); this.getOrCreateProject("/project1"); this.getOrCreateDir("/project1/folderOne"); nonRubyFile = this.getOrCreateFile("/project1/folderOne/myFile.java"); rubyFile = this.getOrCreateFile("/project1/folderOne/myFile.rb"); ILaunchConfiguration[] configs = this.getLaunchConfigurations(); for (int i = 0; i < configs.length; i++) { configs[i].delete(); } Assert.assertEquals("All configurations deleted.", 0, this.getLaunchConfigurations().length); ShamApplicationLaunchConfigurationDelegate.resetLaunches(); RubyInterpreter interpreterOne = new RubyInterpreter("InterpreterOne", new Path("C:/RubyInstallRootOne")); RubyRuntime.getDefault().setInstalledInterpreters(Arrays.asList(new Object[] { interpreterOne})); } public void testNoInterpreterInstalled() throws Exception { RubyRuntime.getDefault().setInstalledInterpreters(Arrays.asList(new Object[] { })); ISelection selection = new StructuredSelection(rubyFile); shortcut.launch(selection, ILaunchManager.RUN_MODE); assertTrue("A dialog has been shown.", shortcut.didShowDialog); } public void testLaunchWithSelectedRubyFile() throws Exception { ISelection selection = new StructuredSelection(rubyFile); shortcut.launch(selection, ILaunchManager.RUN_MODE); assertEquals("A configuration has been created", 1, this.getLaunchConfigurations().length); assertEquals("A launch took place.", 1, ShamApplicationLaunchConfigurationDelegate.getLaunches()); assertTrue("The shortcut should not log a message when asked to launch the correct file type.", !shortcut.didLog()); } public void testLaunchWithSelectedNonRubyFile() throws Exception { ISelection selection = new StructuredSelection(nonRubyFile); shortcut.launch(selection, ILaunchManager.RUN_MODE); assertEquals("There is no configuration.", 0, this.getLaunchConfigurations().length); assertEquals("There was no launch.", 0, ShamApplicationLaunchConfigurationDelegate.getLaunches()); assertTrue("The shortcut should log a message when asked to launch the wrong file type.", shortcut.didLog()); } public void testLaunchWithSelectionMultipleConfigurationsExist() throws Exception { shortcut.expectException(); this.createLaunchConfiguration("id1", rubyFile); this.createLaunchConfiguration("id2", rubyFile); ISelection selection = new StructuredSelection(rubyFile); shortcut.launch(selection, ILaunchManager.RUN_MODE); assertEquals("A new configuration for myFile.rb should not be created when one ore more configurations already exist.", 2, this.getLaunchConfigurations().length); assertEquals("The configuration for myFile.rb should not be launched when multiple configurations exist.", 0, ShamApplicationLaunchConfigurationDelegate.getLaunches()); assertTrue("The shortcut should log a message when asked to launch a file that has multiple configurations.", shortcut.didLog()); } public void testLaunchWithSelectionMultipleSelections() throws Exception { ISelection selection = new StructuredSelection(new Object[] { rubyFile, this.getOrCreateFile("project1/folderOne/yourFile.rb")}); shortcut.launch(selection, ILaunchManager.RUN_MODE); ILaunchConfiguration[] configurations = this.getLaunchConfigurations(); assertEquals("A configuration has been created", 1, configurations.length); assertEquals("A launch took place.", 1, ShamApplicationLaunchConfigurationDelegate.getLaunches()); assertTrue("The shortcut should not log a message when asked to launch the correct file type.", !shortcut.didLog()); String launchedFileName = configurations[0].getAttribute(RubyLaunchConfigurationAttribute.FILE_NAME, ""); assertEquals("folderOne/myFile.rb", launchedFileName); } public void testLaunchWithSelectionTwice() throws Exception { ISelection selection = new StructuredSelection(rubyFile); shortcut.launch(selection, ILaunchManager.RUN_MODE); shortcut.launch(selection, ILaunchManager.RUN_MODE); assertEquals("Only one configuration has been created", 1, this.getLaunchConfigurations().length); assertEquals("Two launches took place.", 2, ShamApplicationLaunchConfigurationDelegate.getLaunches()); assertTrue("The shortcut should not log a message when asked to launch the correct file type.", !shortcut.didLog()); } public void testLaunchWithSelectionWhenFileNamesSameInDifferentDirectory() throws Exception { IFile anotherRubyFileWithSameNameInDifferentFolder = this.getOrCreateFile("project1/myFile.rb"); ISelection selection = new StructuredSelection(rubyFile); shortcut.launch(selection, ILaunchManager.RUN_MODE); ILaunchConfiguration[] configurations = this.getLaunchConfigurations(); assertEquals("A configuration has been created", 1, configurations.length); assertEquals("A launch took place.", 1, ShamApplicationLaunchConfigurationDelegate.getLaunches()); assertTrue("The shortcut should not log a message when asked to launch the correct file type.", !shortcut.didLog()); String launchedFileName = configurations[0].getAttribute(RubyLaunchConfigurationAttribute.FILE_NAME, ""); assertEquals("folderOne/myFile.rb", launchedFileName); } public void testLaunchFromEditorWithRubyFile() throws Exception { IFile file = this.getOrCreateFile("/project1/test.rb"); RubySourceLocator sourceLocator = new RubySourceLocator(); String fullPath = RdtDebugUiPlugin.getWorkspace().getRoot().getLocation().toOSString() + File.separator + file.getFullPath().toOSString(); Object sourceElement = sourceLocator.getSourceElement(fullPath); IEditorInput input = sourceLocator.getEditorInput(sourceElement); IEditorPart rubyEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input, IRubyConstants.EDITOR_ID); shortcut.launch(rubyEditor, ILaunchManager.RUN_MODE); assertEquals("A configuration has been created", 1, this.getLaunchConfigurations().length); assertEquals("A launch took place.", 1, ShamApplicationLaunchConfigurationDelegate.getLaunches()); assertTrue("The shortcut should not log a message when asked to launch the correct file type.", !shortcut.didLog()); } public void testLaunchFromEditorWithTxtFile() throws Exception { IFile file = this.getOrCreateFile("/project1/test.txt"); IEditorInput input = new FileEditorInput(file); IEditorPart txtEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input, "org.eclipse.ui.DefaultTextEditor"); shortcut.launch(txtEditor, ILaunchManager.RUN_MODE); assertEquals("No configuration has been created", 0, this.getLaunchConfigurations().length); assertEquals("No launch took place.", 0, ShamApplicationLaunchConfigurationDelegate.getLaunches()); assertTrue("The shortcut should must have logged a message.", shortcut.didLog()); } public void testLaunchFromExternalRubyFileEditor() throws Exception { File tmpFile = File.createTempFile("rubyfile.rb", null); //$NON-NLS-1$ RubySourceLocator sourceLocator = new RubySourceLocator(); Object sourceElement = sourceLocator.getSourceElement(tmpFile.getAbsolutePath()); IEditorInput input = sourceLocator.getEditorInput(sourceElement); IEditorPart rubyExternalEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input, IRubyConstants.EXTERNAL_FILES_EDITOR_ID); shortcut.launch(rubyExternalEditor, ILaunchManager.RUN_MODE); assertEquals("No configuration has been created", 0, this.getLaunchConfigurations().length); assertEquals("No launch took place.", 0, ShamApplicationLaunchConfigurationDelegate.getLaunches()); assertTrue("The shortcut should must have logged a message.", shortcut.didLog()); } protected class ShamRubyApplicationShortcut extends RubyApplicationShortcut { protected boolean didLog; protected boolean didShowDialog=false; private boolean expectingException; protected void log(String message) { didLog = true; } public void expectException() { expectingException = true; } protected void log(Throwable t) { if (!expectingException) throw new RuntimeException("Unexpected throwable", t); didLog = true; } protected boolean didLog() { return didLog; } protected ILaunchConfigurationType getRubyLaunchConfigType() { return DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(SHAM_LAUNCH_CONFIG_TYPE); } protected void showNoInterpreterDialog() { didShowDialog = true ; } } } --- NEW FILE: TC_RubyEntryPointTab.java --- package org.rubypeople.rdt.internal.debug.ui.launcher; import junit.framework.TestCase; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.rubypeople.eclipse.shams.debug.core.ShamLaunchConfigurationWorkingCopy; import org.rubypeople.rdt.internal.debug.ui.RdtDebugUiMessages; import org.rubypeople.rdt.internal.debug.ui.launcher.RubyEntryPointTab; import org.rubypeople.rdt.internal.launching.RubyLaunchConfigurationAttribute; public class TC_RubyEntryPointTab extends TestCase { public TC_RubyEntryPointTab(String name) { super(name); } public void testIsValid() { RubyEntryPointTab tab = new RubyEntryPointTab(); ILaunchConfigurationWorkingCopy configuration = new ShamLaunchConfigurationWorkingCopy(); String errorMessage = tab.getErrorMessage(); assertNull("There should be no error message.", errorMessage); assertTrue("The tab is not valid when the configuration is completely empty.", !tab.isValid(configuration)); errorMessage = RdtDebugUiMessages.getString("LaunchConfigurationTab.RubyEntryPoint.invalidProjectSelectionMessage"); assertEquals("The tab should set the error message for no project.", errorMessage, tab.getErrorMessage()); configuration.setAttribute(RubyLaunchConfigurationAttribute.PROJECT_NAME, "myProjectName"); assertTrue("The tab is not valid when the configuration has only a projectname.", !tab.isValid(configuration)); errorMessage = RdtDebugUiMessages.getString("LaunchConfigurationTab.RubyEntryPoint.invalidFileSelectionMessage"); assertEquals("The tab should set the error message for no file.", errorMessage, tab.getErrorMessage()); configuration.setAttribute(RubyLaunchConfigurationAttribute.FILE_NAME, "myFileName"); assertTrue("The tab is valid when the configuration has a filename and projectName.", tab.isValid(configuration)); assertNull("The tab should set the error message to null when there is a filename and projectname.", tab.getErrorMessage()); } } --- NEW FILE: TS_InternalDebugUiLauncher.java --- package org.rubypeople.rdt.internal.debug.ui.launcher; import junit.framework.Test; import junit.framework.TestSuite; public class TS_InternalDebugUiLauncher { public static Test suite() { TestSuite suite = new TestSuite("Test for org.rubypeople.rdt.internal.debug.ui.launcher"); suite.addTestSuite(TC_RubyArgumentsTab.class); suite.addTestSuite(TC_RubyApplicationShortcut.class); suite.addTestSuite(TC_RubyEntryPointTab.class); suite.addTestSuite(TC_RubyEnvironmentTab.class); return suite; } } --- NEW FILE: ShamApplicationLaunchConfigurationDelegate.java --- package org.rubypeople.rdt.internal.debug.ui.launcher; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.model.ILaunchConfigurationDelegate; public class ShamApplicationLaunchConfigurationDelegate implements ILaunchConfigurationDelegate { private static int launches ; /** * @see ILaunchConfigurationDelegate#launch(ILaunchConfiguration, String, ILaunch, IProgressMonitor) */ public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException { launches += 1 ; } public static int getLaunches() { return launches; } public static void resetLaunches() { launches = 0 ; } } |
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.debug.ui.tests/src/org/rubypeople/rdt/internal/debug/ui/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24567/src/org/rubypeople/rdt/internal/debug/ui/tests Removed Files: TC_RubySourceLocator.java RdtDebugUiTestsPlugin.java TC_RubyConsoleTracker.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- TC_RubySourceLocator.java DELETED --- --- TC_RubyConsoleTracker.java DELETED --- --- RdtDebugUiTestsPlugin.java DELETED --- |
|
From: David C. <dc...@us...> - 2005-10-16 23:53:10
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.debug.ui.tests/src/org/rubypeople/rdt/internal/debug/ui/tests/launcher In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24567/src/org/rubypeople/rdt/internal/debug/ui/tests/launcher Removed Files: TC_RubyApplicationShortcut.java TC_RubyArgumentsTab.java TC_RubyEntryPointTab.java TS_Launcher.java TC_RubyEnvironmentTab.java ShamApplicationLaunchConfigurationDelegate.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- TC_RubyEnvironmentTab.java DELETED --- --- TC_RubyArgumentsTab.java DELETED --- --- TC_RubyApplicationShortcut.java DELETED --- --- TC_RubyEntryPointTab.java DELETED --- --- TS_Launcher.java DELETED --- --- ShamApplicationLaunchConfigurationDelegate.java DELETED --- |
|
From: David C. <dc...@us...> - 2005-10-16 23:53:10
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.debug.ui.tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24567 Modified Files: plugin.xml .classpath Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. Index: .classpath =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.debug.ui.tests/.classpath,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** .classpath 28 Mar 2004 18:59:39 -0000 1.5 --- .classpath 16 Oct 2005 23:52:59 -0000 1.6 *************** *** 2,7 **** <classpath> <classpathentry kind="src" path="src"/> - <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="output" path="bin"/> </classpath> --- 2,7 ---- <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="output" path="bin"/> </classpath> Index: plugin.xml =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.debug.ui.tests/plugin.xml,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** plugin.xml 13 Jul 2005 14:29:54 -0000 1.13 --- plugin.xml 16 Oct 2005 23:52:59 -0000 1.14 *************** *** 6,15 **** version="0.6.0" provider-name="RubyPeople Inc." ! class="org.rubypeople.rdt.internal.debug.ui.tests.RdtDebugUiTestsPlugin"> <runtime> <library name="rdtdebuguitests.jar"> <export name="*"/> ! </library> </runtime> --- 6,15 ---- version="0.6.0" provider-name="RubyPeople Inc." ! class="org.rubypeople.rdt.debug.ui.tests.RdtDebugUiTestsPlugin"> <runtime> <library name="rdtdebuguitests.jar"> <export name="*"/> ! </library>sts </runtime> *************** *** 40,44 **** <launchConfigurationType name="DebugUiTestRunConfiguration" ! delegate="org.rubypeople.rdt.internal.debug.ui.tests.launcher.ShamApplicationLaunchConfigurationDelegate" modes="run,debug" id="org.rubypeople.rdt.debug.ui.tests.launching.LaunchConfigurationTypeSham"> --- 40,44 ---- <launchConfigurationType name="DebugUiTestRunConfiguration" ! delegate="org.rubypeople.rdt.internal.debug.ui.launcher.ShamApplicationLaunchConfigurationDelegate" modes="run,debug" id="org.rubypeople.rdt.debug.ui.tests.launching.LaunchConfigurationTypeSham"> |
|
From: David C. <dc...@us...> - 2005-10-16 23:53:10
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.debug.ui.tests/src/org/rubypeople/rdt/debug/ui/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24567/src/org/rubypeople/rdt/debug/ui/tests Added Files: TS_DebugUi.java RdtDebugUiTestsPlugin.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- NEW FILE: TS_DebugUi.java --- package org.rubypeople.rdt.debug.ui.tests; import org.rubypeople.rdt.internal.debug.ui.TS_InternalDebugUi; import org.rubypeople.rdt.internal.debug.ui.launcher.TS_InternalDebugUiLauncher; import junit.framework.Test; import junit.framework.TestSuite; public class TS_DebugUi { public static Test suite() { TestSuite suite = new TestSuite("Test for org.rubypeople.rdt.debug.ui"); suite.addTest(TS_InternalDebugUiLauncher.suite()); suite.addTest(TS_InternalDebugUi.suite()); return suite; } } --- NEW FILE: RdtDebugUiTestsPlugin.java --- package org.rubypeople.rdt.debug.ui.tests; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Plugin; import org.eclipse.ui.plugin.AbstractUIPlugin; /** * The main plugin class to be used in the desktop. */ public class RdtDebugUiTestsPlugin extends AbstractUIPlugin { //The shared instance. private static RdtDebugUiTestsPlugin plugin; /** * The constructor. */ public RdtDebugUiTestsPlugin() { super(); plugin = this; } /** * Returns the shared instance. */ public static Plugin getDefault() { return plugin; } /** * Returns the workspace instance. */ public static IWorkspace getWorkspace() { return ResourcesPlugin.getWorkspace(); } } |
|
From: David C. <dc...@us...> - 2005-10-16 23:53:00
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.tests.all/src/org/rubypeople/rdt/tests/all In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24548/src/org/rubypeople/rdt/tests/all Modified Files: TS_RdtAllUnitTests.java TS_RdtAllFunctionalTests.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. Index: TS_RdtAllFunctionalTests.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.tests.all/src/org/rubypeople/rdt/tests/all/TS_RdtAllFunctionalTests.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TS_RdtAllFunctionalTests.java 1 Oct 2005 23:10:55 -0000 1.3 --- TS_RdtAllFunctionalTests.java 16 Oct 2005 23:52:53 -0000 1.4 *************** *** 4,8 **** import junit.framework.TestSuite; ! import org.rubypeople.rdt.debug.core.tests.TS_Debug; public class TS_RdtAllFunctionalTests { --- 4,8 ---- import junit.framework.TestSuite; ! import org.rubypeople.rdt.debug.core.tests.FTS_Debug; public class TS_RdtAllFunctionalTests { *************** *** 13,17 **** // org.rubypeople.rdt.debug.core.tests ! suite.addTest(TS_Debug.suite()); //$JUnit-END$ --- 13,17 ---- // org.rubypeople.rdt.debug.core.tests ! suite.addTest(FTS_Debug.suite()); //$JUnit-END$ Index: TS_RdtAllUnitTests.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.tests.all/src/org/rubypeople/rdt/tests/all/TS_RdtAllUnitTests.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TS_RdtAllUnitTests.java 1 Oct 2005 23:10:55 -0000 1.3 --- TS_RdtAllUnitTests.java 16 Oct 2005 23:52:53 -0000 1.4 *************** *** 4,12 **** import junit.framework.TestSuite; ! import org.rubypeople.rdt.internal.core.TS_Core; ! import org.rubypeople.rdt.internal.debug.ui.tests.launcher.TS_Launcher; ! import org.rubypeople.rdt.internal.formatter.TC_CodeFormatter; ! import org.rubypeople.rdt.internal.launching.TS_Launching; ! import org.rubypeople.rdt.internal.ui.TS_UiTests; public class TS_RdtAllUnitTests { --- 4,11 ---- import junit.framework.TestSuite; ! import org.rubypeople.rdt.core.TS_Core; ! import org.rubypeople.rdt.debug.ui.tests.TS_DebugUi; ! import org.rubypeople.rdt.internal.launching.TS_InternalLaunching; ! import org.rubypeople.rdt.internal.ui.TS_InternalUi; public class TS_RdtAllUnitTests { *************** *** 18,31 **** // org.rubypeople.rdt.core.tests suite.addTest(TS_Core.suite()); - suite.addTestSuite(TC_CodeFormatter.class) ; // org.rubypeople.rdt.launching.tests ! suite.addTest(TS_Launching.suite()); // org.rubypeople.rdt.ui.tests ! suite.addTest(TS_UiTests.suite()); // org.rubypeople.rdt.debug.ui.tests ! suite.addTest(TS_Launcher.suite()); //$JUnit-END$ --- 17,29 ---- // org.rubypeople.rdt.core.tests suite.addTest(TS_Core.suite()); // org.rubypeople.rdt.launching.tests ! suite.addTest(TS_InternalLaunching.suite()); // org.rubypeople.rdt.ui.tests ! suite.addTest(TS_InternalUi.suite()); // org.rubypeople.rdt.debug.ui.tests ! suite.addTest(TS_DebugUi.suite()); //$JUnit-END$ |
|
From: David C. <dc...@us...> - 2005-10-16 23:52:58
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.debug.core.tests/src/org/rubypeople/rdt/debug/core/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24526/src/org/rubypeople/rdt/debug/core/tests Modified Files: FTC_DebuggerLaunch.java Added Files: FTC_DebuggerCommunicationTest.java FTS_Debug.java FTC_ReadStrategyTest.java FTC_DebuggerProxyTest.java Removed Files: TC_ReadStrategyTest.java TC_DebuggerCommunicationTest.java TC_DebuggerProxyTest.java TS_Debug.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- TC_DebuggerProxyTest.java DELETED --- --- TC_DebuggerCommunicationTest.java DELETED --- --- NEW FILE: FTC_ReadStrategyTest.java --- package org.rubypeople.rdt.debug.core.tests; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PipedInputStream; import java.io.PipedOutputStream; import java.io.PrintWriter; import junit.framework.TestCase; import org.rubypeople.rdt.internal.debug.core.parsing.MultiReaderStrategy; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory; public class FTC_ReadStrategyTest extends TestCase { protected PrintWriter writer ; protected XmlPullParser xpp ; public FTC_ReadStrategyTest(String name) { super(name); } public void setUp() throws Exception { XmlPullParserFactory factory = XmlPullParserFactory.newInstance("org.kxml2.io.KXmlParser,org.kxml2.io.KXmlSerializer", null); xpp = factory.newPullParser(); PipedOutputStream outputStream = new PipedOutputStream() ; PipedInputStream inputStream = new PipedInputStream(outputStream) ; xpp.setInput(new InputStreamReader(inputStream)) ; writer = new PrintWriter(new OutputStreamWriter(outputStream)) ; } public void testSingleReaderStrategy() throws Exception { final TestXmlStreamReader reader = new TestXmlStreamReader(xpp) ; reader.acceptTag("testTag") ; Thread testTagReaderThread = new Thread() { public void run() { try { reader.read() ; } catch (Exception ex) { } } } ; testTagReaderThread.start() ; writer.println("<testTag/>") ; writer.flush() ; testTagReaderThread.join() ; assertTrue("testTag", reader.isTagRead()) ; } public void testMultiReaderStrategy() throws Exception { MultiReaderStrategy multiReaderStrategy = new MultiReaderStrategy(xpp) ; final TestXmlStreamReader testTagReader = new TestXmlStreamReader(multiReaderStrategy) ; testTagReader.acceptTag("testTag") ; Thread testTagReaderThread = new Thread() { public void run() { try { testTagReader.read() ; } catch (Exception ex) { } } } ; testTagReaderThread.start() ; final TestXmlStreamReader breakpointReader = new TestXmlStreamReader(multiReaderStrategy) ; breakpointReader.acceptTag("breakpoint") ; Thread breakpointReaderThread = new Thread() { public void run() { try { breakpointReader.read() ; } catch (Exception ex) { } } } ; breakpointReaderThread.start() ; Thread.sleep(500) ; // wait for threads to be started assertTrue(testTagReaderThread.isAlive()) ; assertTrue(breakpointReaderThread.isAlive()) ; writer.println("<testTag/>") ; writer.flush() ; testTagReaderThread.join() ; assertTrue("testTag was read.", testTagReader.isTagRead()) ; assertTrue("breakpoint was not yet read.", !breakpointReader.isTagRead()) ; assertTrue("breakpointReaderThread has not yet finished.",breakpointReaderThread.isAlive()) ; writer.println("<breakpoint/>") ; writer.flush() ; breakpointReaderThread.join() ; assertTrue("breakpoint was read.", breakpointReader.isTagRead()) ; } public void testMultiReaderStrategyWithMultipleTags() throws Exception { // make sure that a complete element gets dispatched to the reader MultiReaderStrategy multiReaderStrategy = new MultiReaderStrategy(xpp); final TestXmlStreamReader testTagReader = new TestXmlStreamReader(multiReaderStrategy) ; testTagReader.acceptTag("testTag"); Thread testTagReaderThread = new Thread() { public void run() { try { testTagReader.read() ; } catch (Exception ex) { } } } ; testTagReaderThread.start(); Thread.sleep(500); // wait for threads to be started writer.println("<testTag><testTag><testTag/><testTag/></testTag>") ; writer.flush() ; testTagReaderThread.join(); assertEquals("testTag was read 3 times.", 3, testTagReader.getTagReadCount()); } public void testMultiReaderStrategyDontMissTag() throws Exception { // make sure the element is delivered to the reader, even if the reader is started after // the tag is fetched from the xpp writer.println("<testTag><testTag/></testTag>") ; writer.flush() ; MultiReaderStrategy multiReaderStrategy = new MultiReaderStrategy(xpp) ; final TestXmlStreamReader testTagReader = new TestXmlStreamReader(multiReaderStrategy) ; testTagReader.acceptTag("testTag") ; Thread testTagReaderThread = new Thread() { public void run() { try { testTagReader.read() ; } catch (Exception ex) { fail() ; } } } ; Thread.sleep(500) ; // wait to make this test more evil testTagReaderThread.start() ; Thread.sleep(500) ; // wait for threads to be started testTagReaderThread.join() ; assertEquals("testTag was read 2 times.", 2, testTagReader.getTagReadCount()) ; } } --- NEW FILE: FTS_Debug.java --- package org.rubypeople.rdt.debug.core.tests; import junit.framework.Test; import junit.framework.TestSuite; public class FTS_Debug { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(FTC_DebuggerCommunicationTest.class); suite.addTestSuite(FTC_DebuggerProxyTest.class) ; suite.addTestSuite(FTC_ReadStrategyTest.class) ; suite.addTestSuite(FTC_DebuggerLaunch.class) ; return suite; } } Index: FTC_DebuggerLaunch.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.debug.core.tests/src/org/rubypeople/rdt/debug/core/tests/FTC_DebuggerLaunch.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FTC_DebuggerLaunch.java 9 Oct 2005 21:22:19 -0000 1.1 --- FTC_DebuggerLaunch.java 16 Oct 2005 23:52:50 -0000 1.2 *************** *** 35,39 **** ! RubyInterpreter rubyInterpreter = new RubyInterpreter("RubyInterpreter", new Path(TC_DebuggerCommunicationTest.RUBY_INTERPRETER)); RubyRuntime.getDefault().addInstalledInterpreter(rubyInterpreter) ; --- 35,39 ---- ! RubyInterpreter rubyInterpreter = new RubyInterpreter("RubyInterpreter", new Path(FTC_DebuggerCommunicationTest.RUBY_INTERPRETER)); RubyRuntime.getDefault().addInstalledInterpreter(rubyInterpreter) ; --- NEW FILE: FTC_DebuggerCommunicationTest.java --- package org.rubypeople.rdt.debug.core.tests; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ConnectException; import java.net.Socket; import junit.framework.TestCase; import org.rubypeople.rdt.core.RubyCore; import org.rubypeople.rdt.internal.debug.core.ExceptionSuspensionPoint; import org.rubypeople.rdt.internal.debug.core.StepSuspensionPoint; import org.rubypeople.rdt.internal.debug.core.SuspensionPoint; import org.rubypeople.rdt.internal.debug.core.model.RubyProcessingException; import org.rubypeople.rdt.internal.debug.core.model.RubyStackFrame; import org.rubypeople.rdt.internal.debug.core.model.RubyThread; import org.rubypeople.rdt.internal.debug.core.model.RubyVariable; [...1001 lines suppressed...] runToLine(4); // now a is calculated and the result is 4. That means that ruby does not change the code which // currently being executed in a stack frame, Java would have reset the instruction pointer and the // result would be 8 sendRuby("v local") ; localVariables = getVariableReader().readVariables(createStackFrame()); assertEquals("4", localVariables[0].getValue().getValueString()); // Now check that the new code is executed with the next call to calc runToLine(3) ; runToLine(4) ; sendRuby("v local") ; localVariables = getVariableReader().readVariables(createStackFrame()); assertEquals("8", localVariables[0].getValue().getValueString()); } } --- TS_Debug.java DELETED --- --- TC_ReadStrategyTest.java DELETED --- --- NEW FILE: FTC_DebuggerProxyTest.java --- package org.rubypeople.rdt.debug.core.tests; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PipedInputStream; import java.io.PipedOutputStream; import java.io.PrintWriter; import junit.framework.TestCase; import org.eclipse.core.runtime.CoreException; import org.rubypeople.rdt.internal.debug.core.RubyDebuggerProxy; import org.rubypeople.rdt.internal.debug.core.RubyExceptionBreakpoint; import org.rubypeople.rdt.internal.debug.core.model.ThreadInfo; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory; public class FTC_DebuggerProxyTest extends TestCase { private PrintWriter writer ; private RubyDebuggerProxy proxy ; private TestRubyDebugTarget target ; private BufferedReader proxyOutputReader ; public FTC_DebuggerProxyTest(String name) { super(name); } protected PrintWriter getPrintWriter() { return writer ; } public RubyDebuggerProxy getProxy() { return proxy; } public TestRubyDebugTarget getTarget() { return target; } public void writeToDebuggerProxy(String text) throws Exception { getPrintWriter().println(text) ; getPrintWriter().flush() ; } public String getLineFromDebuggerProxy() throws IOException { return proxyOutputReader.readLine() ; } public void setUp() throws Exception { target = new TestRubyDebugTarget() ; proxy = new RubyDebuggerProxy(target) ; PipedInputStream pipedInputStream = new PipedInputStream() ; PipedOutputStream pipedOutputStream = new PipedOutputStream(pipedInputStream) ; proxy.setWriter(new PrintWriter(pipedOutputStream)) ; XmlPullParserFactory factory = XmlPullParserFactory.newInstance("org.kxml2.io.KXmlParser,org.kxml2.io.KXmlSerializer", null); XmlPullParser xpp = factory.newPullParser(); PipedOutputStream outputStream = new PipedOutputStream() ; PipedInputStream inputStream = new PipedInputStream(outputStream) ; xpp.setInput(new InputStreamReader(inputStream)) ; proxy.setXpp(xpp) ; proxy.startRubyLoop() ; writer = new PrintWriter(new OutputStreamWriter(outputStream)) ; proxyOutputReader = new BufferedReader(new InputStreamReader(pipedInputStream)) ; } public void testMultipleBreakpoints() throws Exception { writeToDebuggerProxy("<breakpoint file=\"\" line=\"44\" threadId=\"2\"/>") ; Thread.sleep(2000) ; assertNotNull(getTarget().getLastSuspensionPoint()) ; assertEquals(44, getTarget().getLastSuspensionPoint().getLine()) ; new Thread() { public void run() { try { Thread.sleep(2000) ; writeToDebuggerProxy("<breakpoint file=\"\" line=\"55\" threadId=\"2\"/>") ; writeToDebuggerProxy("<threads><thread id=\"1\" status=\"sleep\"/></threads>") ; } catch (Exception ex) { fail() ; } } }.start() ; // blocks until threads are read ThreadInfo[] threadInfos = getProxy().readThreads() ; assertEquals(1, threadInfos.length) ; Thread.sleep(1000) ; assertEquals(55, getTarget().getLastSuspensionPoint().getLine()) ; } public void testExceptionBreakpoint() throws IOException, CoreException { RubyExceptionBreakpoint rubyExceptionBreakpoint = new RubyExceptionBreakpoint("MyStandardError") ; proxy.addBreakpoint( rubyExceptionBreakpoint ) ; proxy.getWriter().flush() ; assertEquals("cont", this.getLineFromDebuggerProxy()) ; assertEquals("catch MyStandardError", this.getLineFromDebuggerProxy()) ; } } |
|
From: David C. <dc...@us...> - 2005-10-16 23:52:52
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24494/src/org/rubypeople/rdt/core Added Files: TS_Core.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- NEW FILE: TS_Core.java --- /* * Author: * * Copyright (c) 2005 RubyPeople. * * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. */ package org.rubypeople.rdt.core; import junit.framework.Test; import junit.framework.TestSuite; import org.rubypeople.rdt.internal.core.TS_InternalCore; import org.rubypeople.rdt.internal.core.builder.TS_InternalCoreBuilder; import org.rubypeople.rdt.internal.core.parser.TS_InternalCoreParser; import org.rubypeople.rdt.internal.core.symbols.TS_CoreSymbols; import org.rubypeople.rdt.internal.formatter.TS_InternalFormatter; public class TS_Core { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(TS_InternalCoreBuilder.suite()); suite.addTest(TS_InternalCoreParser.suite()); suite.addTest(TS_CoreSymbols.suite()); suite.addTest(TS_InternalCore.suite()); suite.addTest(TS_InternalFormatter.suite()); return suite; } } |
|
From: David C. <dc...@us...> - 2005-10-16 23:52:52
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24494/src/org/rubypeople/rdt/internal/core Added Files: TS_InternalCore.java TC_SymbolIndexResourceEventListener.java Removed Files: TS_Core.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- NEW FILE: TS_InternalCore.java --- /* * Copyright (c) 2005 RubyPeople. * * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. */ package org.rubypeople.rdt.internal.core; import junit.framework.Test; import junit.framework.TestSuite; public class TS_InternalCore { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(TC_RubyCore.class); suite.addTestSuite(TC_RubyProject.class); suite.addTestSuite(TC_LoadPathEntry.class); suite.addTestSuite(TC_SymbolIndexResourceEventListener.class); return suite; } } --- TS_Core.java DELETED --- --- NEW FILE: TC_SymbolIndexResourceEventListener.java --- package org.rubypeople.rdt.internal.core; import junit.framework.TestCase; public class TC_SymbolIndexResourceEventListener extends TestCase { public void testSomething() throws Exception { } } |
|
From: David C. <dc...@us...> - 2005-10-16 23:52:52
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/builder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24494/src/org/rubypeople/rdt/internal/core/builder Modified Files: TC_MassIndexUpdater.java Added Files: TS_InternalCoreBuilder.java Removed Files: TS_CoreBuilder.java Log Message: Organize tests for consistency. Found a few TCs that weren't being called for the main suite. --- TS_CoreBuilder.java DELETED --- --- NEW FILE: TS_InternalCoreBuilder.java --- /* * Author: David Corbin * * Copyright (c) 2005 RubyPeople. * * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. */ package org.rubypeople.rdt.internal.core.builder; import junit.framework.Test; import junit.framework.TestSuite; public class TS_InternalCoreBuilder { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(TC_TaskCompiler.class); suite.addTestSuite(TC_RdtCompiler.class); suite.addTestSuite(TC_MassIndexUpdater.class); suite.addTestSuite(TC_IndexUpdater.class); return suite; } } Index: TC_MassIndexUpdater.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/builder/TC_MassIndexUpdater.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TC_MassIndexUpdater.java 16 Oct 2005 17:29:16 -0000 1.1 --- TC_MassIndexUpdater.java 16 Oct 2005 23:52:44 -0000 1.2 *************** *** 53,57 **** projects.add(project2); ! massUpdater.update(projects); RubySourceFileCollectingVisitor expectedVisitor = new RubySourceFileCollectingVisitor(new ArrayList()); --- 53,57 ---- projects.add(project2); ! massUpdater.updateProjects(projects); RubySourceFileCollectingVisitor expectedVisitor = new RubySourceFileCollectingVisitor(new ArrayList()); |