public void Accept_EmptyDocument_EmptyResult() { var document = new FlowDocument(); var visitor = new FlowDocumentVisitor(e => true); visitor.Accept(document); Assert.That(visitor.Results, Is.Empty); }
public void Accept_SingleRunElement_ReturnsRunElement() { var document = new FlowDocument(); document.Blocks.Add(new Paragraph(new Run("Some dummy "))); var visitor = new FlowDocumentVisitor(e => e is Run); visitor.Accept(document); Assert.That(visitor.Results.OfType<Run>().Count(), Is.EqualTo(1)); }
public void OnPaste_NonLink_NoHyperlinkInserted() { var editor = new RichTextEditor(); editor.Document.Blocks.Add(new Paragraph(new Run("Some dummy "))); editor.CaretPosition = editor.Document.ContentEnd; Clipboard.SetData(DataFormats.Text, "some-other-text"); editor.Paste(); var visitor = new FlowDocumentVisitor(e => e is Hyperlink); visitor.Accept(editor.Document); Assert.That(visitor.Results, Is.Empty); }
public void Accept_MultipleRunElementsAndContinueAfterMatchIsTrue_AllRunElementsReturned() { var document = new FlowDocument(); var para = new Paragraph(); para.Inlines.Add(new Run("a")); para.Inlines.Add(new Run("b")); para.Inlines.Add(new Run("c")); document.Blocks.Add(para); var visitor = new FlowDocumentVisitor(e => e is Run) { ContinueAfterMatch = true }; visitor.Accept(document); Assert.That(visitor.Results.OfType<Run>().Count(), Is.EqualTo(3)); }
public void Accept_HyperlinkInLists_AllHyperlinksFound() { var document = new FlowDocument(); var list = new List(); list.ListItems.Add(new ListItem(new Paragraph(new Hyperlink(new Run("http://github.com"))))); list.ListItems.Add(new ListItem(new Paragraph(new Hyperlink(new Run("http://github.com"))))); list.ListItems.Add(new ListItem(new Paragraph(new Hyperlink(new Run("http://github.com"))))); document.Blocks.Add(list); var visitor = new FlowDocumentVisitor(e => e is Hyperlink) { ContinueAfterMatch = true }; visitor.Accept(document); Assert.That(visitor.Results.OfType<Hyperlink>().Count(), Is.EqualTo(3)); }
public void OnBackspace_AfterLink_HyperlinkRemoved() { var editor = new RichTextEditor(); editor.Document.Blocks.Add(new Paragraph(new Run("Some dummy http://github.org/"))); editor.CaretPosition = editor.Document.ContentEnd; // we know from other tests that this works editor.TriggerInput(Key.Space); editor.TriggerInput(Key.Back); var visitor = new FlowDocumentVisitor(e => e is Hyperlink); visitor.Accept(editor.Document); Assert.That(visitor.Results, Is.Empty); }
public void OnPaste_WithLink_HyperlinkInserted() { var url = "http://github.com/"; var editor = new RichTextEditor(); editor.Document.Blocks.Add(new Paragraph(new Run("Some dummy "))); editor.CaretPosition = editor.Document.ContentEnd; Clipboard.SetData(DataFormats.Text, url); editor.Paste(); var visitor = new FlowDocumentVisitor(e => e is Hyperlink); visitor.Accept(editor.Document); Assert.That(visitor.Results.Count, Is.EqualTo(1)); var hyperlink = visitor.Results.OfType<Hyperlink>().Single(); Assert.That(hyperlink.Inlines.OfType<Run>().Single().Text, Is.EqualTo(url)); Assert.That(hyperlink.NavigateUri.ToString(), Is.EqualTo(url)); }
public void OnWordCompleted_AfterIncompleteWwwLink_HyperlinkWithHttpPrefixInserted([Values(Key.Space, Key.Return)]Key key) { var editor = new RichTextEditor(); editor.Document.Blocks.Add(new Paragraph(new Run("Some dummy www.host.org"))); editor.CaretPosition = editor.Document.ContentEnd; editor.TriggerInput(key); var visitor = new FlowDocumentVisitor(e => e is Hyperlink); visitor.Accept(editor.Document); Assert.That(visitor.Results.Count, Is.EqualTo(1)); var hyperlink = visitor.Results.OfType<Hyperlink>().Single(); Assert.That(hyperlink.Inlines.OfType<Run>().Single().Text, Is.EqualTo("www.host.org")); Assert.That(hyperlink.NavigateUri.ToString(), Is.EqualTo("http://www.host.org/")); }
public void OnWordContinued_AfterNonLink_NoHyperlinkInserted() { var editor = new RichTextEditor(); editor.Document.Blocks.Add(new Paragraph(new Run("Some dummy text"))); editor.CaretPosition = editor.Document.ContentEnd; editor.TriggerInput(Key.A); var visitor = new FlowDocumentVisitor(e => e is Hyperlink); visitor.Accept(editor.Document); Assert.That(visitor.Results, Is.Empty); }