You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
3.6 KiB
128 lines
3.6 KiB
// <file> |
|
// <copyright see="prj:///doc/copyright.txt"/> |
|
// <license see="prj:///doc/license.txt"/> |
|
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/> |
|
// <version>$Revision$</version> |
|
// </file> |
|
|
|
using ICSharpCode.Core; |
|
using ICSharpCode.SharpDevelop.Project; |
|
using System; |
|
using System.Collections.Generic; |
|
|
|
namespace ICSharpCode.SharpDevelop.Tests.WebReferences |
|
{ |
|
/// <summary> |
|
/// Helper methods used when testing web references |
|
/// </summary> |
|
public static class WebReferenceTestHelper |
|
{ |
|
public static MSBuildBasedProject CreateTestProject(string languageName) |
|
{ |
|
return new TestProject(languageName); |
|
} |
|
|
|
class TestProject : CompilableProject |
|
{ |
|
string languageName; |
|
bool readOnly = false; |
|
|
|
public TestProject(string languageName) |
|
{ |
|
this.languageName = languageName; |
|
} |
|
|
|
public override string Language { |
|
get { return languageName; } |
|
} |
|
|
|
public override bool ReadOnly { |
|
get { return readOnly; } |
|
} |
|
|
|
public override ICSharpCode.SharpDevelop.Dom.LanguageProperties LanguageProperties { |
|
get { return ICSharpCode.SharpDevelop.Dom.LanguageProperties.CSharp; } |
|
} |
|
} |
|
|
|
public static void InitializeLanguageBindings() |
|
{ |
|
Properties prop = new Properties(); |
|
prop["id"] = "C#"; |
|
prop["supportedextensions"] = ".cs"; |
|
prop["projectfileextension"] = ".csproj"; |
|
Codon codon1 = new Codon(null, "LanguageBinding", prop, new Condition[0]); |
|
prop = new Properties(); |
|
prop["id"] = "VBNet"; |
|
prop["supportedextensions"] = ".vb"; |
|
prop["projectfileextension"] = ".vbproj"; |
|
Codon codon2 = new Codon(null, "LanguageBinding", prop, new Condition[0]); |
|
LanguageBindingService.SetBindings(new LanguageBindingDescriptor[] { |
|
new LanguageBindingDescriptor(codon1), |
|
new LanguageBindingDescriptor(codon2) |
|
}); |
|
} |
|
|
|
public static ProjectItem GetProjectItem(List<ProjectItem> items, string include, ItemType itemType) { |
|
foreach (ProjectItem item in items) { |
|
if (item.ItemType == itemType) { |
|
if (item.Include == include) { |
|
return item; |
|
} |
|
} |
|
} |
|
return null; |
|
} |
|
|
|
public static FileProjectItem GetFileProjectItem(List<ProjectItem> items, string include, ItemType itemType) { |
|
foreach (ProjectItem item in items) { |
|
if (item.ItemType == itemType) { |
|
if (item.Include == include) { |
|
return (FileProjectItem)item; |
|
} |
|
} |
|
} |
|
return null; |
|
} |
|
|
|
public static ProjectItem GetProjectItem(List<ProjectItem> items, ItemType itemType) |
|
{ |
|
foreach (ProjectItem item in items) { |
|
if (item.ItemType == itemType) { |
|
return item; |
|
} |
|
} |
|
return null; |
|
} |
|
|
|
public static WebReferencesFolderNode GetWebReferencesFolderNode(ProjectNode projectNode) |
|
{ |
|
foreach (AbstractProjectBrowserTreeNode node in projectNode.Nodes) { |
|
if (node is WebReferencesFolderNode) { |
|
return (WebReferencesFolderNode)node; |
|
} |
|
} |
|
return null; |
|
} |
|
|
|
public static WebReferenceNode GetWebReferenceNode(WebReferencesFolderNode webReferencesFolderNode) { |
|
foreach (AbstractProjectBrowserTreeNode node in webReferencesFolderNode.Nodes) { |
|
if (node is WebReferenceNode) { |
|
return (WebReferenceNode)node; |
|
} |
|
} |
|
return null; |
|
} |
|
|
|
public static FileNode GetFileNode(AbstractProjectBrowserTreeNode parent, string fileName) |
|
{ |
|
foreach (AbstractProjectBrowserTreeNode node in parent.Nodes) { |
|
FileNode fileNode = node as FileNode; |
|
if (fileNode != null && fileNode.FileName == fileName) { |
|
return fileNode; |
|
} |
|
} |
|
return null; |
|
} |
|
} |
|
}
|
|
|