Browse Source

Move C# expression finder tests to SharpDevelop.Tests (the expression finder now is in SharpDevelop.Dom). Fixed a bug in the VB expression finder.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.1@2239 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
0859a04a52
  1. 60
      src/AddIns/BackendBindings/CSharpBinding/Test/CSharpBinding.Tests.csproj
  2. 2
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Debugger.Core.csproj
  3. 7
      src/Main/Base/Test/CSharpExpressionFinderTests.cs
  4. 2
      src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
  5. 78
      src/Main/Base/Test/VBExpressionFinderTests.cs
  6. 6
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/ExpressionFinder.cs
  7. 6
      src/SharpDevelop.Tests.sln

60
src/AddIns/BackendBindings/CSharpBinding/Test/CSharpBinding.Tests.csproj

@ -1,60 +0,0 @@ @@ -1,60 +0,0 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputType>Library</OutputType>
<RootNamespace>CSharpBinding.Tests</RootNamespace>
<AssemblyName>CSharpBinding.Tests</AssemblyName>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{4D0DFCB0-F6FB-469D-AA6F-C7F1D5FD5DE7}</ProjectGuid>
<OutputPath>..\..\..\..\..\bin\UnitTests\</OutputPath>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<RegisterForComInterop>False</RegisterForComInterop>
<PlatformTarget>AnyCPU</PlatformTarget>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Optimize>False</Optimize>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugSymbols>true</DebugSymbols>
<DebugType>Full</DebugType>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>True</Optimize>
<DefineConstants>TRACE</DefineConstants>
<DebugSymbols>false</DebugSymbols>
<DebugType>None</DebugType>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="nunit.framework">
<HintPath>..\..\..\..\Tools\NUnit\nunit.framework.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="ExpressionFinder.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Project\CSharpBinding.csproj">
<Project>{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}</Project>
<Name>CSharpBinding</Name>
<Private>True</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
<Name>ICSharpCode.SharpDevelop</Name>
<Private>True</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj">
<Project>{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}</Project>
<Name>ICSharpCode.SharpDevelop.Dom</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

2
src/AddIns/Misc/Debugger/Debugger.Core/Project/Debugger.Core.csproj

@ -393,4 +393,4 @@ @@ -393,4 +393,4 @@
<Content Include="docs\Stepping.txt" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
</Project>
</Project>

7
src/AddIns/BackendBindings/CSharpBinding/Test/ExpressionFinder.cs → src/Main/Base/Test/CSharpExpressionFinderTests.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
@ -9,15 +9,14 @@ using System; @@ -9,15 +9,14 @@ using System;
using System.Reflection;
using System.Collections.Generic;
using NUnit.Framework;
using CSharpBinding.Parser;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Dom.CSharp;
namespace CSharpBinding.Tests
namespace ICSharpCode.SharpDevelop.Tests
{
[TestFixture]
public class ExpressionFinderTests
public class CSharpExpressionFinderTests
{
const string document = @"using System;
class Main<T> : BaseType

2
src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj

@ -49,6 +49,7 @@ @@ -49,6 +49,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.cs" />
<Compile Include="CSharpExpressionFinderTests.cs" />
<Compile Include="NRefactoryResolverTests.cs" />
<Compile Include="ReflectionLayerTests.cs" />
<Compile Include="GenericResolverTests.cs" />
@ -58,6 +59,7 @@ @@ -58,6 +59,7 @@
<Compile Include="OverloadFinding.cs" />
<Compile Include="SearchGenericClassTests.cs" />
<Compile Include="MemberLookupHelperTests.cs" />
<Compile Include="VBExpressionFinderTests.cs" />
<Compile Include="WebReferences\WebReferenceProjectItemsTest.cs" />
<Compile Include="WebReferences\ProjectHasExistingWebRefFolderTest.cs" />
<Compile Include="WebReferences\VBNetWebReferenceTest.cs" />

78
src/Main/Base/Test/VBExpressionFinderTests.cs

@ -0,0 +1,78 @@ @@ -0,0 +1,78 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Reflection;
using System.Collections.Generic;
using NUnit.Framework;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Dom.VBNet;
namespace ICSharpCode.SharpDevelop.Tests
{
[TestFixture]
public class VBExpressionFinderTests
{
const string program1 = @"
Class MainClass ' a comment
Dim under_score_field As Integer
Sub SomeMethod()
simple += 1
For Each loopVarName In collection
Next
End Sub
End Class
";
VBExpressionFinder ef;
[SetUp]
public void Init()
{
HostCallback.GetParseInformation = ParserService.GetParseInformation;
HostCallback.GetCurrentProjectContent = delegate {
return ParserService.CurrentProjectContent;
};
ef = new VBExpressionFinder();
}
void FindFull(string program, string location, string expectedExpression, ExpressionContext expectedContext)
{
int pos = program.IndexOf(location);
if (pos < 0) Assert.Fail("location not found in program");
ExpressionResult er = ef.FindFullExpression(program, pos);
Assert.AreEqual(expectedExpression, er.Expression);
Assert.AreEqual(expectedContext.ToString(), er.Context.ToString());
}
[Test]
public void Simple()
{
FindFull(program1, "mple += 1", "simple", ExpressionContext.Default);
}
[Test]
public void SimpleBeginningOfExpression()
{
FindFull(program1, "simple += 1", "simple", ExpressionContext.Default);
}
[Test]
public void Underscore()
{
FindFull(program1, "der_score_field", "under_score_field", ExpressionContext.Default);
}
[Test]
public void IdentifierBeforeKeyword()
{
FindFull(program1, "arName", "loopVarName", ExpressionContext.Default);
}
}
}

6
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/ExpressionFinder.cs

@ -73,7 +73,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -73,7 +73,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
// append characters after expression
for (int i = offset + 1; i < inText.Length; ++i) {
char c = inText[i];
if (Char.IsLetterOrDigit(c)) {
if (Char.IsLetterOrDigit(c) || c == '_') {
if (Char.IsWhiteSpace(inText, i - 1))
break;
b.Append(c);
@ -89,6 +89,10 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -89,6 +89,10 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
break;
}
}
// remove space from end:
if (b.Length > 0 && b[b.Length - 1] == ' ') {
b.Length -= 1;
}
return CreateResult(b.ToString());
}

6
src/SharpDevelop.Tests.sln

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 9.00
# SharpDevelop 2.1.0.2027
# Visual Studio 2005
# SharpDevelop 2.1.0.2192
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
@ -53,8 +54,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter.Te @@ -53,8 +54,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter.Te
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter", "AddIns\BackendBindings\Boo\NRefactoryToBooConverter\Project\NRefactoryToBooConverter.csproj", "{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding.Tests", "AddIns\BackendBindings\CSharpBinding\Test\CSharpBinding.Tests.csproj", "{4D0DFCB0-F6FB-469D-AA6F-C7F1D5FD5DE7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{9421EDF4-9769-4BE9-B5A6-C87DE221D73C}"
@ -281,7 +280,6 @@ Global @@ -281,7 +280,6 @@ Global
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{4D0DFCB0-F6FB-469D-AA6F-C7F1D5FD5DE7} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{DBCF20A1-BA13-4582-BFA9-74DE4D987B73} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{C9DE556D-325C-4544-B29F-16A9EB7C9830} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{6604365C-C702-4C10-9BA8-637F1E3D4D0D} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}

Loading…
Cancel
Save