diff options
author | Mike Krüger <mikkrg@microsoft.com> | 2019-03-22 13:12:59 +0300 |
---|---|---|
committer | Mike Krüger <mikkrg@microsoft.com> | 2019-03-27 09:16:10 +0300 |
commit | 13dc868cd6fb2dd839003a747d4cb124e87af215 (patch) | |
tree | 613940fa0f5f24112122e3b978ac92566f03d4e1 /main/src/addins/Xml/Tests | |
parent | 58d77c5ab1ec6f695e68adcc6b4786d4e467e082 (diff) |
Fixes VSTS Bug 826321: [Feedback] XAML Editor: When a closing tag already has '</' present, choosing the closing element from the completion window enters an invalid closing tag such as <//ContentView>
https://devdiv.visualstudio.com/DevDiv/_workitems/edit/826321
Diffstat (limited to 'main/src/addins/Xml/Tests')
-rw-r--r-- | main/src/addins/Xml/Tests/CodeCompletion/XmlCodeCompletionTests.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/main/src/addins/Xml/Tests/CodeCompletion/XmlCodeCompletionTests.cs b/main/src/addins/Xml/Tests/CodeCompletion/XmlCodeCompletionTests.cs index 5ffe1c26ce..92afb0b270 100644 --- a/main/src/addins/Xml/Tests/CodeCompletion/XmlCodeCompletionTests.cs +++ b/main/src/addins/Xml/Tests/CodeCompletion/XmlCodeCompletionTests.cs @@ -6,6 +6,7 @@ using MonoDevelop.Ide.Editor.Extension; using MonoDevelop.Xml.Editor; using NUnit.Framework; using MonoDevelop.Ide.CodeCompletion; +using System.Linq; namespace MonoDevelop.Xml.Tests.CodeCompletion { @@ -22,6 +23,46 @@ namespace MonoDevelop.Xml.Tests.CodeCompletion await ext.TriggerCompletion (Ide.CodeCompletion.CompletionTriggerReason.CompletionCommand); ext.KeyPress (KeyDescriptor.FromGtk (Gdk.Key.colon, ':', Gdk.ModifierType.None)); Assert.IsTrue (CompletionWindowManager.IsVisible); + CompletionWindowManager.Wnd.HideWindow (); + } + } + + /// <summary> + /// FeedbackTicket 739349: XAML Editor: When a closing tag already has '</' present, choosing the closing element from the completion window enters an invalid closing tag such as <//ContentView> + /// </summary> + [Test] + public async Task TestVSTS739349 () + { + const string input = @" +<Foo> +</F"; + using (var testCase = await SetupTestCase (input, input.Length)) { + var doc = testCase.Document; + var ext = doc.GetContent<BaseXmlEditorExtension> (); + ext.CompletionWidget = doc.Editor.GetViewContent ().GetContent<ICompletionWidget> (); + await ext.TriggerCompletion (Ide.CodeCompletion.CompletionTriggerReason.CompletionCommand); + Assert.IsTrue (CompletionWindowManager.IsVisible); + + Assert.AreEqual ("Foo>", CompletionWindowManager.Wnd.SelectedItem.DisplayText); + CompletionWindowManager.Wnd.HideWindow (); + } + } + + [Test] + public async Task TestVSTS739349_Case2 () + { + const string input = @" +<Foo> +<"; + using (var testCase = await SetupTestCase (input, input.Length)) { + var doc = testCase.Document; + var ext = doc.GetContent<BaseXmlEditorExtension> (); + ext.CompletionWidget = doc.Editor.GetViewContent ().GetContent<ICompletionWidget> (); + await ext.TriggerCompletion (Ide.CodeCompletion.CompletionTriggerReason.CompletionCommand); + Assert.IsTrue (CompletionWindowManager.IsVisible); + var list = CompletionWindowManager.Wnd.GetFilteredItems (); + Assert.IsTrue (list.Any (i => i.DisplayText == "/Foo>")); + CompletionWindowManager.Wnd.HideWindow (); } } |