public void AppendMessageWithBitcoinTxHash() { var msg = "foo bc4c50f4bcacf990804e2dbc0049ff04eb1500acd535a20f8adf24212f333ed8 bar"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("foo ")); builder.Append( new UrlMessagePartModel( "https://blockchain.info/tx/bc4c50f4bcacf990804e2dbc0049ff04eb1500acd535a20f8adf24212f333ed8", "bc4c50f4bcacf990804e2dbc0049ff04eb1500acd535a20f8adf24212f333ed8" ) ); builder.Append(new TextMessagePartModel(" bar")); TestMessage(msg, builder.ToMessage()); msg = "foo (bc4c50f4bcacf990804e2dbc0049ff04eb1500acd535a20f8adf24212f333ed8) bar"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("foo (")); builder.Append( new UrlMessagePartModel( "https://blockchain.info/tx/bc4c50f4bcacf990804e2dbc0049ff04eb1500acd535a20f8adf24212f333ed8", "bc4c50f4bcacf990804e2dbc0049ff04eb1500acd535a20f8adf24212f333ed8" ) ); builder.Append(new TextMessagePartModel(") bar")); TestMessage(msg, builder.ToMessage()); }
public void AppendBrokenMail() { var msg = "mailto:/[email protected]"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("mailto:/")); builder.Append(new UrlMessagePartModel("mailto:[email protected]", "*****@*****.**")); TestMessage(msg, builder.ToMessage()); }
public void AppendTextUrlEndsInDot() { var msg = @"This is a http://sentence.th/at/ends.with?a. This is another sentence."; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel(@"This is a ")); builder.Append(new UrlMessagePartModel("http://sentence.th/at/ends.with?a")); builder.Append(new TextMessagePartModel(@". This is another sentence.")); TestMessage(msg, builder.ToMessage()); }
public void AppendTextUrlEndsInClosedBracket() { var msg = @"16:04:11 <clonkspot> Glückwunsch! (@YouTube http://t.co/IXjWtfGJ5d)"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel(@"16:04:11 <clonkspot> Glückwunsch! (@YouTube ")); builder.Append(new UrlMessagePartModel("http://t.co/IXjWtfGJ5d")); builder.Append(new TextMessagePartModel(@")")); TestMessage(msg, builder.ToMessage()); }
public void AppendTextUrlGithubMessage() { var msg = @"[smuxi] meebey pushed 2 new commits to stable: https://github.com/meebey/smuxi/compare/153153feddd4...ff7d23a7550c"; var url = @"https://github.com/meebey/smuxi/compare/153153feddd4...ff7d23a7550c"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("[smuxi] meebey pushed 2 new commits to stable: ")); builder.Append(new UrlMessagePartModel(url)); TestMessage(msg, builder.ToMessage()); }
public void AppendTextUrlNormalBrackets() { var msg = @"[372 (Motd)] - page (http://freenode.net/policy.shtml). Thank you for usin"; var url = @"http://freenode.net/policy.shtml"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("[372 (Motd)] - page (")); builder.Append(new UrlMessagePartModel(url)); builder.Append(new TextMessagePartModel("). Thank you for usin")); TestMessage(msg, builder.ToMessage()); }
public void AppendTextUrlSquareBrackets() { var msg = @"[372 (Motd)] - FOSSCON [http://www.fosscon.org] and fossevents "; var url = @"http://www.fosscon.org"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("[372 (Motd)] - FOSSCON [")); builder.Append(new UrlMessagePartModel(url)); builder.Append(new TextMessagePartModel("] and fossevents ")); TestMessage(msg, builder.ToMessage()); }
public void AppendTextUrlParsingUrlEndsInComma() { var msg = @"hey look at this: http://test.org, it is really cool"; var url = @"http://test.org"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("hey look at this: ")); builder.Append(new UrlMessagePartModel(url)); builder.Append(new TextMessagePartModel(", it is really cool")); TestMessage(msg, builder.ToMessage()); }
public void AppendTextUrlParsingLtGtBrackets() { var msg = @"<http://smuxi.im/#sometag>"; var url = @"http://smuxi.im/#sometag"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("<")); builder.Append(new UrlMessagePartModel(url)); builder.Append(new TextMessagePartModel(">")); TestMessage(msg, builder.ToMessage()); }
public void AppendTextUrlParsingUrlNoProtocol() { var msg = @"hey look at this: test.org"; var url = @"http://test.org"; var urltext = @"test.org"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("hey look at this: ")); builder.Append(new UrlMessagePartModel(url, urltext)); TestMessage(msg, builder.ToMessage()); }
public void AppendTextUrlParsingUrlInBrackets() { var msg = @"my homepage (http://mine.my) has nothing on it"; var url = @"http://mine.my"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("my homepage (")); builder.Append(new UrlMessagePartModel(url)); builder.Append(new TextMessagePartModel(") has nothing on it")); TestMessage(msg, builder.ToMessage()); }
public void AppendMessageWithEmojis() { // simple emoji var msg = "foo :smiley: bar"; var builder = new MessageBuilder(); builder.Settings.Emojis = true; builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("foo ")); builder.Append( new ImageMessagePartModel("smuxi-emoji://smiley", ":smiley:") ); builder.Append(new TextMessagePartModel(" bar")); TestMessage(msg, builder.ToMessage(), builder.Settings); // emoji with underscore msg = ":slightly_smiling_face:"; builder = new MessageBuilder(); builder.Settings.Emojis = true; builder.TimeStamp = DateTime.MinValue; builder.Append( new ImageMessagePartModel("smuxi-emoji://slightly_smiling_face", ":slightly_smiling_face:") ); TestMessage(msg, builder.ToMessage(), builder.Settings); // emoji with plus msg = ":+1:"; builder = new MessageBuilder(); builder.Settings.Emojis = true; builder.TimeStamp = DateTime.MinValue; builder.Append( new ImageMessagePartModel("smuxi-emoji://+1", ":+1:") ); TestMessage(msg, builder.ToMessage(), builder.Settings); // test all supported emojis of the Emojione provider foreach (var emojiShortname in Emojione.ShortnameToUnicodeMap.Keys) { var msgWithEmoji = ":" + emojiShortname + ":"; builder = new MessageBuilder(); builder.Settings.Emojis = true; builder.TimeStamp = DateTime.MinValue; builder.Append( new ImageMessagePartModel( String.Format("smuxi-emoji://{0}", emojiShortname), msgWithEmoji ) ); TestMessage(msgWithEmoji, builder.ToMessage(), builder.Settings, String.Format("failed testing emoji '{0}'", emojiShortname)); } }
public void AppendTextUrlMultipleInQuotes() { var msg = @"look at all those deprecated fields pidgin still sets: <c xmlns=""http://jabber.org/protocol/caps"" hash=""sha-1"" node=""http://pidgin.im/"" ext=""voice-v1 camera-v1 video-v1"" ver=""AcN1/PEN8nq7AHD+9jpxMV4U6YM="" />"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel(@"look at all those deprecated fields pidgin still sets: <c xmlns=""")); builder.Append(new UrlMessagePartModel("http://jabber.org/protocol/caps")); builder.Append(new TextMessagePartModel(@""" hash=""sha-1"" node=""")); builder.Append(new UrlMessagePartModel("http://pidgin.im/")); builder.Append(new TextMessagePartModel(@""" ext=""voice-v1 camera-v1 video-v1"" ver=""AcN1/PEN8nq7AHD+9jpxMV4U6YM="" />")); TestMessage(msg, builder.ToMessage()); }
public void AppendMessageWithHeuristicDomainAndLeadingAndTrailingParanthesis() { var msg = "leading text (example.com) trailing text"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("leading text (")); builder.Append( new UrlMessagePartModel( "http://example.com", "example.com" ) ); builder.Append(new TextMessagePartModel(") trailing text")); TestMessage(msg, builder.ToMessage()); }
public void AppendMessageWithSmartLinks() { var msg = "RFC2812"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://www.ietf.org/rfc/rfc2812.txt", "RFC2812")); TestMessage(msg, builder.ToMessage()); }
public void AppendMessageWithSmartLinks() { var msg = "RFC2812"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://www.ietf.org/rfc/rfc2812.txt", "RFC2812")); TestMessage(msg, builder.ToMessage()); msg = "(CVE-2017-0144)"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("(")); builder.Append(new UrlMessagePartModel("http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0144", "CVE-2017-0144")); builder.Append(new TextMessagePartModel(")")); TestMessage(msg, builder.ToMessage()); }
public void BrokenAppendMessageWithNonUrls() { var msg = "org.gnome.Foo.desktop"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("org.gnome.Foo.desktop")); TestMessage(msg, builder.ToMessage()); }
public void AppendMessageWithNonUrls() { var msg = "ServiceStack.Common"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("ServiceStack.Common")); TestMessage(msg, builder.ToMessage()); }
public void AppendIPv4Links() { var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://127.0.0.1")); TestMessage("http://127.0.0.1", builder.ToMessage()); builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://93.220.211.43:40000")); TestMessage("http://93.220.211.43:40000", builder.ToMessage()); }
public void AppendTextUrlParsingEndsInQuestionmark() { var msg = @"have you recently looked at xkcd.com?"; var url = @"http://xkcd.com"; var urltext = @"xkcd.com"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("have you recently looked at ")); builder.Append(new UrlMessagePartModel(url, urltext)); builder.Append(new TextMessagePartModel("?")); TestMessage(msg, builder.ToMessage()); /* var msg = @"my homepage (http://mine.my) has nothing on it"; var msg = @"[smuxi] meebey pushed 2 new commits to stable: https://github.com/meebey/smuxi/compare/153153feddd4...ff7d23a7550c"; var msg = @"[372 (Motd)] - FOSSCON [http://www.fosscon.org] and fossevents "; var msg = @"[372 (Motd)] - page (http://freenode.net/policy.shtml). Thank you for usin"; var msg = @"look at all those deprecated fields pidgin still sets: <c xmlns=""http://jabber.org/protocol/caps"" hash=""sha-1"" node=""http://pidgin.im/"" ext=""voice-v1 camera-v1 video-v1"" ver=""AcN1/PEN8nq7AHD+9jpxMV4U6YM="" />"; var msg = @"16:04:11 <clonkspot> Glückwunsch! (@YouTube http://t.co/IXjWtfGJ5d)"; var msg = @"This is a http://sentence.that/ends.with?a. This is another sentence."; */ }
public void AppendMessageWithIdnLink() { var msg = "http://www.brasileirão.com"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel(msg)); TestMessage(msg, builder.ToMessage()); msg = "http://مثال.ايران/"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel(msg)); TestMessage(msg, builder.ToMessage()); }
public void BrokenAppendMessageWithOddUrls() { var msg = "https://en.wikipedia.org/wiki/Brace_(singer)"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel(msg)); TestMessage(msg, builder.ToMessage()); msg = "see the link (https://en.wikipedia.org/wiki/Brace_(singer))"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("see the link (")); builder.Append(new UrlMessagePartModel(msg)); builder.Append(new TextMessagePartModel(")")); TestMessage(msg, builder.ToMessage()); msg = "https://www.amazon.de/TP-Link-TL-SG105-Gigabit-lüfterloses-Passivkühlkonzept/dp/B00A128S24/"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel(msg)); TestMessage(msg, builder.ToMessage()); }
public void AppendHtmlMessageBold() { var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; var textPart = builder.CreateText("Test"); textPart.Bold = true; builder.Append(textPart); var expectedMsg = builder.ToMessage(); builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.AppendHtmlMessage("<b>Test</b>"); var actualMsg = builder.ToMessage(); Assert.AreEqual(expectedMsg, actualMsg); }
public void AppendHtmlMessageCssFgRed() { var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; var textPart = builder.CreateText("Test"); textPart.ForegroundColor = new TextColor(255, 0, 0); builder.Append(textPart); var expectedMsg = builder.ToMessage(); builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.AppendHtmlMessage("<div style=\"color: #FF0000\">Test</div>"); var actualMsg = builder.ToMessage(); Assert.AreEqual(expectedMsg, actualMsg); }
public void AppendMessageWithNonBitcoinTxHash() { var msg = "11:45:54 <matt> I so I send to 0x2880502fc7373e73cc19f3e8dd1cd71ca75ad826, correct?"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel(msg)); TestMessage(msg, builder.ToMessage()); msg = "19:15:50 <meebey> b7ae3f09f4f1ef58a6bc479541523a7428ab5d30 ../../lib/emoji.json"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel(msg)); TestMessage(msg, builder.ToMessage()); }
public void AppendIPv6Links() { var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://[::1]")); TestMessage("http://[::1]", builder.ToMessage()); builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://[2003:71:ce67:e700:3631:c4ff:fe2b:f874]:40000/")); TestMessage("http://[2003:71:ce67:e700:3631:c4ff:fe2b:f874]:40000/", builder.ToMessage()); builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://[2a01:4f8:a0:7041::2]/")); TestMessage("http://[2a01:4f8:a0:7041::2]/", builder.ToMessage()); }
public void AppendHtmlMessageCssFgRedBgBlue() { var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; var textPart = builder.CreateText("Test"); textPart.ForegroundColor = new TextColor(255, 0, 0); textPart.BackgroundColor = new TextColor(0, 0, 255); builder.Append(textPart); var expectedMsg = builder.ToMessage(); builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.AppendHtmlMessage( "<div style=\"" + "color: #FF0000; " + "background: #0000FF url('smiley.gif') no-repeat fixed center" + "\">Test</div>"); var actualMsg = builder.ToMessage(); Assert.AreEqual(expectedMsg, actualMsg); }
public void AppendTextUrlParsingSanity() { var msg = @"http://ab.cd.ef.de-hlub.gummi.museum/my_script%20windows.php?test=blub&blar=93"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel(msg)); TestMessage(msg, builder.ToMessage()); /* var msg = @"<http://smuxi.im/#sometag>"; var msg = @"hey look at this: http://test.org, it is really cool"; var msg = @"have you recently looked at xkcd.org?"; var msg = @"my homepage (http://mine.my) has nothing on it"; var msg = @"[smuxi] meebey pushed 2 new commits to stable: https://github.com/meebey/smuxi/compare/153153feddd4...ff7d23a7550c"; var msg = @"[372 (Motd)] - FOSSCON [http://www.fosscon.org] and fossevents "; var msg = @"[372 (Motd)] - page (http://freenode.net/policy.shtml). Thank you for usin"; var msg = @"look at all those deprecated fields pidgin still sets: <c xmlns=""http://jabber.org/protocol/caps"" hash=""sha-1"" node=""http://pidgin.im/"" ext=""voice-v1 camera-v1 video-v1"" ver=""AcN1/PEN8nq7AHD+9jpxMV4U6YM="" />"; var msg = @"16:04:11 <clonkspot> Glückwunsch! (@YouTube http://t.co/IXjWtfGJ5d)"; var msg = @"This is a http://sentence.that/ends.with?a. This is another sentence."; */ }
public void AppendMessageWithOddUrls() { var msg = @"zack: http://anonscm.debian.org/gitweb/?p=lintian/lintian.git;a=blob;f=checks/source-copyright.desc;h=3276a57e81b1c8c38073e667221e262df1a606c0;hb=167170d7911473a726f7e77008d8b2246a6822e8"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("zack: ")); builder.Append(new UrlMessagePartModel("http://anonscm.debian.org/gitweb/?p=lintian/lintian.git;a=blob;f=checks/source-copyright.desc;h=3276a57e81b1c8c38073e667221e262df1a606c0;hb=167170d7911473a726f7e77008d8b2246a6822e8")); TestMessage(msg, builder.ToMessage()); msg = "http://sources.debian.net/src/kfreebsd-10/10.0~svn259778-1/sys/cddl/dev/dtrace/dtrace_anon.c"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://sources.debian.net/src/kfreebsd-10/10.0~svn259778-1/sys/cddl/dev/dtrace/dtrace_anon.c")); TestMessage(msg, builder.ToMessage()); msg = "http://www.stack.nl/~jilles/cgi-bin/hgwebdir.cgi/charybdis/raw-rev/9d769851c1c7"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://www.stack.nl/~jilles/cgi-bin/hgwebdir.cgi/charybdis/raw-rev/9d769851c1c7")); TestMessage(msg, builder.ToMessage()); msg = "<RAOF> meebey: Associated mono branch is master-experimental in git+ssh://git.debian.org/~/public_git/mono.git"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("<RAOF> meebey: Associated mono branch is master-experimental in ")); builder.Append(new UrlMessagePartModel("git+ssh://git.debian.org/~/public_git/mono.git")); TestMessage(msg, builder.ToMessage()); msg = "<knocte> meebey: does this URL highlight ok with latest master? https://groups.google.com/forum/#!topic/fsharp-opensource/KLejo_vw5R4"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("<knocte> meebey: does this URL highlight ok with latest master? ")); builder.Append(new UrlMessagePartModel("https://groups.google.com/forum/#!topic/fsharp-opensource/KLejo_vw5R4")); TestMessage(msg, builder.ToMessage()); msg = "<astronouth7303> found another bad URL: http://www.flickr.com/photos/34962649@N00/12000715226/in/photostream/"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("<astronouth7303> found another bad URL: ")); builder.Append(new UrlMessagePartModel("http://www.flickr.com/photos/34962649@N00/12000715226/in/photostream/")); TestMessage(msg, builder.ToMessage()); msg = "http://en.wikipedia.org/Talk:Main_Page"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://en.wikipedia.org/Talk:Main_Page")); TestMessage(msg, builder.ToMessage()); msg = "http://en.wikipedia.org/wiki/Godunov's_scheme"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://en.wikipedia.org/wiki/Godunov's_scheme")); TestMessage(msg, builder.ToMessage()); msg = "<astronouth7303> ok, this is just trippy URL matching: http://couchdb.local/mydb/_magic"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("<astronouth7303> ok, this is just trippy URL matching: ")); builder.Append(new UrlMessagePartModel("http://couchdb.local/mydb/_magic")); TestMessage(msg, builder.ToMessage()); msg = "https://web.archive.org/web/20050208144213/http://www.jaganelli.de/"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("https://web.archive.org/web/20050208144213/http://www.jaganelli.de/")); TestMessage(msg, builder.ToMessage()); msg = "irc://freenode/smuxi"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel(msg)); TestMessage(msg, builder.ToMessage()); msg = "http://www.test.de/bilder.html?data[meta_id]=13895&data[bild_id]=7"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel("http://www.test.de/bilder.html?data[meta_id]=13895&data[bild_id]=7")); TestMessage(msg, builder.ToMessage()); msg = "https://eu.api.soyoustart.com/console/#/order/dedicated/server/{serviceName}#GET"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new UrlMessagePartModel(msg)); TestMessage(msg, builder.ToMessage()); }
public void BrokenAppendMessageWithNonUrls() { var msg = "org.gnome.Foo.desktop"; var builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("org.gnome.Foo.desktop")); TestMessage(msg, builder.ToMessage()); msg = "ServiceStack.Common"; builder = new MessageBuilder(); builder.TimeStamp = DateTime.MinValue; builder.Append(new TextMessagePartModel("ServiceStack.Common")); TestMessage(msg, builder.ToMessage()); }
public void CommandGenerateMessages(CommandModel cmd, IChatView chat) { Trace.Call(cmd, chat); var count = 0; Int32.TryParse(cmd.Parameter, out count); var builder = new MessageBuilder(); var sender = new ContactModel("msg-tester", "msg-tester", "test", "test"); builder.AppendMessage(sender, "time for a messsage generator command so I can test speed and memory usage"); var text = builder.CreateText(" *formatted text* "); text.Bold = true; builder.Append(text); builder.AppendUrl("https://www.smuxi.org/"); var msgs = new List<MessageModel>(count); for (var i = 0; i < count; i++) { var msg = builder.ToMessage(); msgs.Add(msg); } DateTime start, stop; start = DateTime.UtcNow; foreach (var msg in msgs) { chat.AddMessage(msg); } stop = DateTime.UtcNow; builder = new MessageBuilder(); builder.AppendText( "IChatView.AddMessage(): count: {0} took: {1:0} ms avg: {2:0.00} ms", count, (stop - start).TotalMilliseconds, (stop - start).TotalMilliseconds / count ); chat.AddMessage(builder.ToMessage()); }