diff --git a/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/OpenTextEditors.cs b/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/OpenTextEditors.cs index d2af441a04..534434b1f7 100644 --- a/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/OpenTextEditors.cs +++ b/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/OpenTextEditors.cs @@ -37,8 +37,10 @@ namespace ICSharpCode.WixBinding { foreach (IViewContent view in workbench.ViewContentCollection) { ITextEditor textEditor = view.GetService(); - if (AreFileNamesEqual(view.PrimaryFileName, document.FileName)) { - return textEditor; + if (textEditor != null) { + if (AreFileNamesEqual(view.PrimaryFileName, document.FileName)) { + return textEditor; + } } } return null; diff --git a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/OpenTextEditorsTestFixture.cs b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/OpenTextEditorsTestFixture.cs index 741c831d10..16703169fd 100644 --- a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/OpenTextEditorsTestFixture.cs +++ b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/OpenTextEditorsTestFixture.cs @@ -18,6 +18,7 @@ using System; using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.WixBinding; using NUnit.Framework; using WixBinding.Tests.Utils; @@ -37,7 +38,7 @@ namespace WixBinding.Tests.PackageFiles { SD.InitializeForUnitTests(); existingTextEditor = new MockTextEditor(); - MockTextEditorViewContent viewContent = new MockTextEditorViewContent(); + var viewContent = new MockTextEditorViewContent(); viewContent.TextEditor = existingTextEditor; viewContent.SetFileName(@"d:\projects\test\file.wxs"); @@ -64,5 +65,19 @@ namespace WixBinding.Tests.PackageFiles unknownDocument.FileName = @"d:\unknown-file.wxs"; Assert.IsNull(openEditors.FindTextEditorForDocument(unknownDocument)); } + + [Test] + public void FindTextEditorForDocument_FirstViewContentHasNoTextEditorAndNoPrimaryFileName_DoesNotThrowNullReferenceException() + { + var viewContent = new MockViewContent(); + viewContent.PrimaryFile = null; + workbench.ViewContentCollection.Add(viewContent); + var unknownDocument = new WixDocument(); + unknownDocument.FileName = @"d:\unknown-file.wxs"; + + ITextEditor textEditor = openEditors.FindTextEditorForDocument(unknownDocument); + + Assert.IsNull(textEditor); + } } } diff --git a/src/AddIns/BackendBindings/WixBinding/Test/Utils/MockViewContent.cs b/src/AddIns/BackendBindings/WixBinding/Test/Utils/MockViewContent.cs index bbdfae79a4..5e48733a16 100644 --- a/src/AddIns/BackendBindings/WixBinding/Test/Utils/MockViewContent.cs +++ b/src/AddIns/BackendBindings/WixBinding/Test/Utils/MockViewContent.cs @@ -65,6 +65,7 @@ namespace WixBinding.Tests.Utils public OpenedFile PrimaryFile { get { return primaryFile; } + set { primaryFile = value; } } public FileName PrimaryFileName {