public void HtmlManipulator_Initialises_TextContent_IsDirty_To_False() { var manipulator = new TextManipulator(); _Manipulators.Add(manipulator); SetResponseContent(MimeType.Html, "a"); _Manipulator.ManipulateResponseStream(_Environment.Environment); Assert.IsFalse(manipulator.TextContent.IsDirty); }
public void JavascriptManipulator_Initialises_TextContent_IsDirty_To_False() { var manipulator = new TextManipulator(); _TextManipulators.Add(manipulator); SetResponseContent(MimeType.Javascript, "a"); _Pipeline.BuildAndCallMiddleware(_JavascriptManipulator.AppFuncBuilder, _Environment.Environment); Assert.IsFalse(manipulator.TextContent.IsDirty); }
public void Test_ProcessOutput() { string expectedResult = System.IO.File.ReadAllText(@"C:\Users\joela\OneDrive\Documents\Desktop\IT Shit\BuilderWire\Output\Output.txt"); string refArticle = System.IO.File.ReadAllText(@"C:\Users\joela\OneDrive\Documents\Desktop\IT Shit\BuilderWire\Input\Article.txt"); string refWords = System.IO.File.ReadAllText(@"C:\Users\joela\OneDrive\Documents\Desktop\IT Shit\BuilderWire\Input\Words.txt"); string abbrev = "mr.,mrs.,e.g."; var textManipulatorTest = new TextManipulator(); var actualResult = textManipulatorTest.ProcessOutput(refArticle, refWords, abbrev); Assert.AreEqual(expectedResult, actualResult); }
/// <summary> /// Asserts that after user writes text it will be replaced /// </summary> /// <param name="baseText">Text, $ tag marks cursor </param> /// <param name="userInput">Text to input at cursor ($)</param> /// <param name="expectedOutput">Final text with replacements</param> public void AssertReplacement(string baseText, string userInput, string expectedOutput) { (int cursor, string inputText, string span) = TestUtils.PrepareTextWithSpan(baseText, userInput); TextManipulator manipulator = new TextManipulator(inputText, cursor); var change = new TextChange(cursor, userInput, cursor, span); var manipulations = manipulator.ManipulateText(change); var actualOutput = ApplyManipulations(inputText, manipulations); Assert.Equal(expectedOutput, actualOutput); }
public void JavascriptManipulator_ManipulateResponseStream_Calls_Any_Registered_Manipulators() { var manipulator = new TextManipulator(); _TextManipulators.Add(manipulator); SetResponseContent(MimeType.Javascript, "a"); _Pipeline.BuildAndCallMiddleware(_JavascriptManipulator.AppFuncBuilder, _Environment.Environment); Assert.AreEqual(1, manipulator.CallCount); Assert.AreSame(_Environment.Environment, manipulator.Environment); Assert.AreEqual("a", manipulator.TextContent.Content); }
public void HtmlManipulator_ManipulateResponseStream_Calls_Any_Registered_Manipulators() { var manipulator = new TextManipulator(); _Manipulators.Add(manipulator); SetResponseContent(MimeType.Html, "a"); _Manipulator.ManipulateResponseStream(_Environment.Environment); Assert.AreEqual(1, manipulator.CallCount); Assert.AreSame(_Environment.Environment, manipulator.Environment); Assert.AreEqual("a", manipulator.TextContent.Content); }
/// <summary> /// Asserts that after user writes text it will be replaced /// </summary> /// <param name="baseText">Text, $ tag marks cursor </param> /// <param name="userInput">Text to input at cursor ($)</param> /// <param name="expectedOutput">Final text with replacements</param> public void AssertInsertion(string baseText, string userInput, string expectedOutput) { (int cursor, string text) = TestUtils.PrepareTextWithCursor(baseText); var inputText = baseText.Replace("$", userInput); TextManipulator manipulator = new TextManipulator(inputText, cursor); var change = new TextChange(cursor, userInput, cursor, ""); var manipulations = manipulator.ManipulateText(change); var actualOutput = ApplyManipulations(inputText, manipulations); Assert.Equal(expectedOutput, actualOutput); }
private async Task ApplyTextManipulations(DidChangeTextDocumentParams request, string text, string buffer, string changedBuffer, int position, int deletedCharacters) { TextManipulator textManipulator = new TextManipulator(changedBuffer, position); var manipulations = textManipulator.ManipulateText(new TextChangeAdapter(position, text, buffer.Substring(position, deletedCharacters))); if (manipulations.Count == 0) { return; } var edits = manipulations.Select(n => { var start = Utils.OffsetToPosition(n.Start, changedBuffer); switch (n.Type) { case ManipulationType.Insert: return(new TextEdit() { NewText = n.Text, Range = new Range(start, start) }); case ManipulationType.Delete: var end = Utils.OffsetToPosition(n.End, changedBuffer); return(new TextEdit() { NewText = "", Range = new Range(start, end) }); default: throw new NotSupportedException(); } }).ToList(); if (edits.Count > 0) { await _router.ApplyWorkspaceEdit(new ApplyWorkspaceEditParams() { Edit = new WorkspaceEdit() { DocumentChanges = new Container <WorkspaceEditDocumentChange>(new WorkspaceEditDocumentChange(new TextDocumentEdit() { TextDocument = request.TextDocument, Edits = new TextEditContainer(edits) })) } }); } }
public void JavascriptManipulator_ManipulateResponseStream_Writes_Manipulated_Response() { var manipulator = new TextManipulator { Callback = (env, content) => content.Content = "b" }; _TextManipulators.Add(manipulator); SetResponseContent(MimeType.Javascript, "a"); _Pipeline.BuildAndCallMiddleware(_JavascriptManipulator.AppFuncBuilder, _Environment.Environment); var textContent = GetResponseContent(); Assert.AreEqual("b", textContent.Content); Assert.AreNotEqual(0, _Environment.ResponseBody.Position); // MemoryStream will throw an exception if you read this after it's been disposed }
public void HtmlManipulator_ManipulateResponseStream_Writes_Manipulated_Response() { var manipulator = new TextManipulator { Callback = (env, content) => content.Content = "b" }; _Manipulators.Add(manipulator); SetResponseContent(MimeType.Html, "a"); _Manipulator.ManipulateResponseStream(_Environment.Environment); var textContent = GetResponseContent(); Assert.AreEqual("b", textContent.Content); Assert.AreNotEqual(0, _Environment.Response.Body.Position); // MemoryStream will throw an exception if you read this after it's been disposed }
public void JavascriptManipulator_ManipulateResponseStream_Only_Writes_Dirty_TextContent() { var manipulator = new TextManipulator { Callback = (env, content) => { content.Content = "b"; content.IsDirty = false; } }; _TextManipulators.Add(manipulator); SetResponseContent(MimeType.Javascript, "a"); _Pipeline.BuildAndCallMiddleware(_JavascriptManipulator.AppFuncBuilder, _Environment.Environment); var textContent = GetResponseContent(); Assert.AreEqual("a", textContent.Content); }
public void HtmlManipulator_ManipulateResponseStream_Only_Writes_Dirty_TextContent() { var manipulator = new TextManipulator { Callback = (env, content) => { content.Content = "b"; content.IsDirty = false; } }; _Manipulators.Add(manipulator); SetResponseContent(MimeType.Html, "a"); _Manipulator.ManipulateResponseStream(_Environment.Environment); var textContent = GetResponseContent(); Assert.AreEqual("a", textContent.Content); }
private void TextBuffer_Changed(object sender, TextContentChangedEventArgs e) { if (_isChangingText) { return; } try { if (_buffer.Properties.TryGetProperty <XamlBufferMetadata>(typeof(XamlBufferMetadata), out var metadata) && metadata.CompletionMetadata != null) { var sw = Stopwatch.StartNew(); var pos = _textView.Caret.Position.BufferPosition; var text = _buffer.CurrentSnapshot.GetText(); foreach (Microsoft.VisualStudio.Text.ITextChange change in e.Changes.ToList()) { var textManipulator = new TextManipulator(text, change.NewPosition); var avaloniaChange = new TextChangeAdapter(change); var manipulations = textManipulator.ManipulateText(avaloniaChange); if (manipulations?.Count > 0) { _isChangingText = true; ApplyManipulations(manipulations); Log.Logger.Verbose("XAML manipulation took {Time}", sw.Elapsed); } } sw.Stop(); } } finally { _isChangingText = false; } }