Browse Source

Fix #333: Unable to save WiX file.

Allow saving of an updated WiX file when it has been edited in the
Setup - Files view.
pull/343/merge
Matt Ward 12 years ago
parent
commit
bec633db6c
  1. 6
      src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/OpenTextEditors.cs
  2. 17
      src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/OpenTextEditorsTestFixture.cs
  3. 1
      src/AddIns/BackendBindings/WixBinding/Test/Utils/MockViewContent.cs

6
src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/OpenTextEditors.cs

@ -37,8 +37,10 @@ namespace ICSharpCode.WixBinding @@ -37,8 +37,10 @@ namespace ICSharpCode.WixBinding
{
foreach (IViewContent view in workbench.ViewContentCollection) {
ITextEditor textEditor = view.GetService<ITextEditor>();
if (AreFileNamesEqual(view.PrimaryFileName, document.FileName)) {
return textEditor;
if (textEditor != null) {
if (AreFileNamesEqual(view.PrimaryFileName, document.FileName)) {
return textEditor;
}
}
}
return null;

17
src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/OpenTextEditorsTestFixture.cs

@ -18,6 +18,7 @@ @@ -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 @@ -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 @@ -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);
}
}
}

1
src/AddIns/BackendBindings/WixBinding/Test/Utils/MockViewContent.cs

@ -65,6 +65,7 @@ namespace WixBinding.Tests.Utils @@ -65,6 +65,7 @@ namespace WixBinding.Tests.Utils
public OpenedFile PrimaryFile {
get { return primaryFile; }
set { primaryFile = value; }
}
public FileName PrimaryFileName {

Loading…
Cancel
Save