From 95a1d1da422da9e817544d9dd4f8f8e348d78f36 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sat, 5 Aug 2006 11:48:37 +0000 Subject: [PATCH] Fixed null reference exception that occurred if the WiX dialog designer was switched to when no WiX project was open. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1660 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Src/Gui/NameValueListEditor.cs | 2 +- .../Project/Src/Gui/WixDialogDesigner.cs | 9 ++++--- .../WixBinding/Project/Src/WixDocument.cs | 5 +++- .../GetValueWithNoProjectTestFixture.cs | 24 +++++++++++++++++++ .../WixBinding/Test/WixBinding.Tests.csproj | 1 + 5 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 src/AddIns/BackendBindings/WixBinding/Test/Document/GetValueWithNoProjectTestFixture.cs diff --git a/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/NameValueListEditor.cs b/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/NameValueListEditor.cs index eca68ad8c3..265ca58664 100644 --- a/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/NameValueListEditor.cs +++ b/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/NameValueListEditor.cs @@ -120,7 +120,7 @@ namespace ICSharpCode.WixBinding // // valueColumn // - this.valueColumn.HeaderText = "ValueColumn"; + this.valueColumn.HeaderText = "Value"; this.valueColumn.Name = "valueColumn"; this.valueColumn.Width = 400; // diff --git a/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDialogDesigner.cs b/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDialogDesigner.cs index 3a1f3ef144..6b8ad485e3 100644 --- a/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDialogDesigner.cs +++ b/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDialogDesigner.cs @@ -289,9 +289,12 @@ namespace ICSharpCode.WixBinding /// WixProject GetProject() { - foreach (IProject project in ProjectService.OpenSolution.Projects) { - if (project.IsFileInProject(base.viewContent.FileName)) { - return project as WixProject; + Solution openSolution = ProjectService.OpenSolution; + if (openSolution != null) { + foreach (IProject project in openSolution.Projects) { + if (project.IsFileInProject(base.viewContent.FileName)) { + return project as WixProject; + } } } return null; diff --git a/src/AddIns/BackendBindings/WixBinding/Project/Src/WixDocument.cs b/src/AddIns/BackendBindings/WixBinding/Project/Src/WixDocument.cs index 74874668e3..fea0a6f7cb 100644 --- a/src/AddIns/BackendBindings/WixBinding/Project/Src/WixDocument.cs +++ b/src/AddIns/BackendBindings/WixBinding/Project/Src/WixDocument.cs @@ -419,7 +419,10 @@ namespace ICSharpCode.WixBinding /// public string GetValue(string name) { - return project.GetVariable(name); + if (project != null) { + return project.GetVariable(name); + } + return null; } /// diff --git a/src/AddIns/BackendBindings/WixBinding/Test/Document/GetValueWithNoProjectTestFixture.cs b/src/AddIns/BackendBindings/WixBinding/Test/Document/GetValueWithNoProjectTestFixture.cs new file mode 100644 index 0000000000..42c9dd4951 --- /dev/null +++ b/src/AddIns/BackendBindings/WixBinding/Test/Document/GetValueWithNoProjectTestFixture.cs @@ -0,0 +1,24 @@ +// +// +// +// +// $Revision$ +// + +using ICSharpCode.WixBinding; +using NUnit.Framework; +using System; + +namespace WixBinding.Tests.Document +{ + [TestFixture] + public class GetValueWithNoProjectTestFixture + { + [Test] + public void NullReturned() + { + WixDocument doc = new WixDocument(); + Assert.IsNull(doc.GetValue("test")); + } + } +} diff --git a/src/AddIns/BackendBindings/WixBinding/Test/WixBinding.Tests.csproj b/src/AddIns/BackendBindings/WixBinding/Test/WixBinding.Tests.csproj index bea8a62c94..f614de88eb 100644 --- a/src/AddIns/BackendBindings/WixBinding/Test/WixBinding.Tests.csproj +++ b/src/AddIns/BackendBindings/WixBinding/Test/WixBinding.Tests.csproj @@ -142,6 +142,7 @@ +