Browse Source

Fix null reference exception when using ProjectReferenceProjectItem in unit tests - LocalizedObject checks for null workbench when refiltering properties.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6107 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Matt Ward 16 years ago
parent
commit
f3956a7f41
  1. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj
  2. 24
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Testing/PythonTestRunnerResponseFileTestFixture.cs
  3. 32
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DummyServiceManager.cs
  4. 4
      src/Main/Base/Project/Src/Gui/Components/LocalizedPropertyGrid/LocalizedObject.cs

1
src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj

@ -453,7 +453,6 @@ @@ -453,7 +453,6 @@
<Compile Include="Utils\DerivedPythonFormsDesignerDisplayBinding.cs" />
<Compile Include="Utils\DerivedToolStripMenuItem.cs" />
<Compile Include="Utils\DoublePropertyUserControl.cs" />
<Compile Include="Utils\DummyServiceManager.cs" />
<Compile Include="Utils\DummySynchronizeInvoke.cs" />
<Compile Include="Utils\FooItemCollection.cs" />
<Compile Include="Utils\MockComponentCreator.cs" />

24
src/AddIns/BackendBindings/Python/PythonBinding/Test/Testing/PythonTestRunnerResponseFileTestFixture.cs

@ -158,10 +158,6 @@ namespace PythonBinding.Tests.Testing @@ -158,10 +158,6 @@ namespace PythonBinding.Tests.Testing
[Test]
public void WriteTestsWritesDirectoriesForReferencedProjectsToSysPathCommandLineArguments()
{
// Have to initialize the workbench since ProjectReferenceProjectItem has a dependency on
// WorkbenchSingleton.
InitializeWorkbench();
MockCSharpProject referencedProject = new MockCSharpProject();
referencedProject.FileName = @"c:\projects\pyproject\pyproject.pyproj";
@ -182,25 +178,5 @@ namespace PythonBinding.Tests.Testing @@ -182,25 +178,5 @@ namespace PythonBinding.Tests.Testing
Assert.AreEqual(expectedText, responseFileText.ToString());
}
void InitializeWorkbench()
{
string addInXml =
"<AddIn name=\"Test\" author= \"\" copyright=\"\" description=\"\">\r\n" +
"<Manifest>\r\n" +
" <Identity name=\"Test\"/>\r\n" +
"</Manifest>\r\n" +
"<Path name=\"/SharpDevelop/Workbench/DisplayBindings\"/>\r\n " +
"</AddIn>";
AddIn addin = AddIn.Load(new StringReader(addInXml));
addin.Enabled = true;
AddInTree.InsertAddIn(addin);
if (!PropertyService.Initialized) {
PropertyService.InitializeService(String.Empty, String.Empty, String.Empty);
}
DummyServiceManager serviceManager = new DummyServiceManager();
ServiceManager.Instance = serviceManager;
WorkbenchSingleton.InitializeWorkbench(new MockWorkbench(), null);
}
}
}

32
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DummyServiceManager.cs

@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
// <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 System;
using System.Windows.Forms;
using ICSharpCode.Core.Services;
using ICSharpCode.Core.WinForms;
namespace PythonBinding.Tests.Utils
{
public class DummyServiceManager : ServiceManager
{
WinFormsMessageService messageService = new WinFormsMessageService();
public DummyServiceManager()
{
}
public override IMessageService MessageService {
get { return messageService; }
}
public override object GetService(Type serviceType)
{
return null;
}
}
}

4
src/Main/Base/Project/Src/Gui/Components/LocalizedPropertyGrid/LocalizedObject.cs

@ -73,7 +73,9 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -73,7 +73,9 @@ namespace ICSharpCode.SharpDevelop.Gui
protected void ReFilterProperties()
{
globalizedProps = null;
WorkbenchSingleton.SafeThreadAsyncCall(delegate { PropertyPad.RefreshItem(this); });
if (WorkbenchSingleton.Workbench != null) {
WorkbenchSingleton.SafeThreadAsyncCall(delegate { PropertyPad.RefreshItem(this); });
}
}
protected virtual void FilterProperties(PropertyDescriptorCollection globalizedProps)

Loading…
Cancel
Save