Ejemplo n.º 1
0
        public async Task Test_RichSuggestBox_Load()
        {
            const string rtf    = @"{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil Segoe UI;}}
{\colortbl ;\red255\green255\blue255;\red0\green0\blue255;\red41\green150\blue204;}
{\*\generator Riched20 10.0.19041}\viewkind4\uc1 
\pard\tx720\cf1\f0\fs21\lang4105 Hello {{\field{\*\fldinst{HYPERLINK ""c3b58ee9-df54-4686-b295-f203a5d8809a""}}{\fldrslt{\ul\cf2\u8203?\cf3\highlight1 @Michael Hawker\cf1\highlight0\u8203?}}}}\f1\fs21  \f0 from {{\field{\*\fldinst{HYPERLINK ""1c6a71c3-f81f-4a27-8f17-50d64acd5b61""}}{\fldrslt{\ul\cf2\u8203?\cf3\highlight1 @Tung Huynh\cf1\highlight0\u8203?}}}}\f1\fs21\par
}
";
            var          token1 = new RichSuggestToken(Guid.Parse("c3b58ee9-df54-4686-b295-f203a5d8809a"), "@Michael Hawker");
            var          token2 = new RichSuggestToken(Guid.Parse("1c6a71c3-f81f-4a27-8f17-50d64acd5b61"), "@Tung Huynh");

            await App.DispatcherQueue.EnqueueAsync(async() =>
            {
                var rsb = new RichSuggestBox();
                await SetTestContentAsync(rsb);

                var document  = rsb.TextDocument;
                var selection = document.Selection;
                selection.TypeText("before ");
                await AddTokenAsync(rsb, "@Token");
                selection.TypeText("after");

                rsb.Load(rtf, new[] { token1, token2 });
                await Task.Delay(10);
                document.GetText(TextGetOptions.NoHidden, out var text);

                Assert.AreEqual(2, rsb.Tokens.Count, "Unexpected tokens count after load.");
                Assert.AreEqual("Hello \u200b@Michael Hawker\u200b from \u200b@Tung Huynh\u200b\r", text, "Unexpected document text.");
                AssertToken(rsb, token1);
                AssertToken(rsb, token2);
            });
        }
Ejemplo n.º 2
0
        private static void AssertToken(RichSuggestBox rsb, RichSuggestToken token)
        {
            var document   = rsb.TextDocument;
            var tokenRange = document.GetRange(token.RangeStart, token.RangeEnd);

            Assert.AreEqual(token.ToString(), tokenRange.Text);
            Assert.AreEqual($"\"{token.Id}\"", tokenRange.Link, "Unexpected link value.");
            Assert.AreEqual(LinkType.FriendlyLinkAddress, tokenRange.CharacterFormat.LinkType, "Unexpected link type.");
        }