public void ConvertEntry_WithEntryHavingAttachments_IncludesAttachmentsWithoutEmbedding() { // arrange var entry = new EntryStatsView { EntryName = "my-cool-post", Body = @"<div><img src=""/my-dogs.jpg"" />" }; var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(new Blog { Id = 321, Host = "foo.example.com" }); subtextContext.Setup(c => c.UrlHelper.AppRoot()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.BlogUrl()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.EntryUrl(It.IsAny <IEntryIdentity>())).Returns("/my-cool-post.aspx"); var converter = new BlogMLExportMapper(subtextContext.Object); // act var post = converter.ConvertEntry(entry, false /*embedAttachments*/); // assert Assert.AreEqual(1, post.Attachments.Count); var attachment = post.Attachments[0]; Assert.IsFalse(attachment.Embedded); Assert.AreEqual("/my-dogs.jpg", attachment.Url); }
public void ConvertEntry_WithEntryHavingAttachments_EmbedsAttachmentsWhenEmbedIsTrue() { // arrange var entry = new EntryStatsView { EntryName = "my-cool-post", Body = @"<div><img src=""/my-dogs.jpg"" />" }; var subtextContext = new Mock <ISubtextContext>(); string filePath = UnitTestHelper.UnpackEmbeddedBinaryResource("BlogMl.blank.gif", "blank.gif"); subtextContext.Setup(c => c.Blog).Returns(new Blog { Id = 321, Host = "foo.example.com" }); subtextContext.Setup(c => c.HttpContext.Server.MapPath("/my-dogs.jpg")).Returns(filePath); subtextContext.Setup(c => c.UrlHelper.AppRoot()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.BlogUrl()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.EntryUrl(It.IsAny <IEntryIdentity>())).Returns("/my-cool-post.aspx"); var converter = new BlogMLExportMapper(subtextContext.Object); // act var post = converter.ConvertEntry(entry, true /*embedAttachments*/); // assert Assert.AreEqual(1, post.Attachments.Count); var attachment = post.Attachments[0]; Assert.IsTrue(attachment.Embedded); Assert.AreEqual("/my-dogs.jpg", attachment.Url); Assert.AreEqual("/my-dogs.jpg", attachment.Path); Assert.AreEqual("R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==", Convert.ToBase64String(attachment.Data)); }
public void ConvertEntry_WithEntry_ConvertsToBLogMLPosts() { // arrange var entry = new EntryStatsView { Title = "Test Entry" }; var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(new Blog { Host = "example.com" }); subtextContext.Setup(c => c.UrlHelper.BlogUrl()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.EntryUrl(It.IsAny <IEntryIdentity>())).Returns("/irrelevant"); var converter = new BlogMLExportMapper(subtextContext.Object); // act var post = converter.ConvertEntry(entry, false /*embedAttachments*/); // assert Assert.AreEqual("Test Entry", post.Title); }
public void ConvertEntry_WithEntryHavingAuthor_ConvertsToBLogMLPostWithAuthorReference() { // arrange var entry = new EntryStatsView { EntryName = "my-cool-post" }; var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(new Blog { Id = 321, Host = "foo.example.com" }); subtextContext.Setup(c => c.UrlHelper.BlogUrl()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.EntryUrl(It.IsAny <IEntryIdentity>())).Returns("/my-cool-post.aspx"); var converter = new BlogMLExportMapper(subtextContext.Object); // act var post = converter.ConvertEntry(entry, false /*embedAttachments*/); // assert Assert.AreEqual("321", post.Authors[0].Ref); }
public void ConvertEntry_WithEntryHavingEntryName_ConvertsToBLogMLPostWithPostName() { // arrange var entry = new EntryStatsView { EntryName = "My-Cool-Post" }; var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(new Blog { Host = "example.com" }); subtextContext.Setup(c => c.UrlHelper.BlogUrl()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.EntryUrl(It.IsAny <IEntryIdentity>())).Returns("/My-Cool-Post"); var converter = new BlogMLExportMapper(subtextContext.Object); // act var post = converter.ConvertEntry(entry, false /*embedAttachments*/); // assert Assert.AreEqual("My-Cool-Post", post.PostName); }
public void ConvertEntry_WithEntryHavingFullyQualifiedImage_IgnoresImage() { // arrange var entry = new EntryStatsView { EntryName = "my-cool-post", Body = @"<div><img src=""http://example.com/my-dogs.jpg"" />" }; var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(new Blog { Id = 321, Host = "foo.example.com" }); subtextContext.Setup(c => c.UrlHelper.AppRoot()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.BlogUrl()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.EntryUrl(It.IsAny <IEntryIdentity>())).Returns("/my-cool-post.aspx"); var converter = new BlogMLExportMapper(subtextContext.Object); // act var post = converter.ConvertEntry(entry, false /*embedAttachments*/); // assert Assert.AreEqual(0, post.Attachments.Count); }
public void ConvertEntry_WithEntryHavingNoDatePublished_DoesNotThrowNullReferenceException() { // arrange var entry = new EntryStatsView { Title = "Test Entry", DateCreatedUtc = DateTime.UtcNow, IsActive = true }; var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.UrlHelper.EntryUrl(It.IsAny <IEntryIdentity>(), It.IsAny <Blog>())).Returns((VirtualPath)null); var blog = new Mock <Blog>(); blog.Object.Host = "example.com"; subtextContext.Setup(c => c.Blog).Returns(blog.Object); subtextContext.Setup(c => c.UrlHelper.BlogUrl()).Returns("/"); var converter = new BlogMLExportMapper(subtextContext.Object); // act var post = converter.ConvertEntry(entry, false /*embedAttachments*/); // assert Assert.IsNotNull(post); }
public void ConvertEntry_WithActiveEntry_SetsDateCreatedToLocalDateTime() { // arrange DateTime dateCreatedUtc = DateTime.ParseExact("2009/08/15 11:00 PM", "yyyy/MM/dd hh:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal).ToUniversalTime(); var entry = new EntryStatsView { Title = "Test Entry", DateCreatedUtc = dateCreatedUtc, IsActive = true }; var subtextContext = new Mock <ISubtextContext>(); var blog = new Mock <Blog>(); blog.Object.Host = "example.com"; subtextContext.Setup(c => c.Blog).Returns(blog.Object); subtextContext.Setup(c => c.UrlHelper.BlogUrl()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.EntryUrl(It.IsAny <IEntryIdentity>())).Returns("/irrelevant"); var converter = new BlogMLExportMapper(subtextContext.Object); // act var post = converter.ConvertEntry(entry, false /*embedAttachments*/); // assert Assert.AreEqual(dateCreatedUtc, post.DateCreated); }
public void ConvertEntry_WithEntryHavingCommentsAndTrackbacks_IncludesCommentsAndTrackbacks() { // arrange var entry = new EntryStatsView(); entry.Comments.AddRange(new[] { new FeedbackItem(FeedbackType.Comment), new FeedbackItem(FeedbackType.Comment), new FeedbackItem(FeedbackType.PingTrack) }); var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(new Blog { Id = 321, Host = "foo.example.com" }); subtextContext.Setup(c => c.UrlHelper.AppRoot()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.BlogUrl()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.EntryUrl(It.IsAny <IEntryIdentity>())).Returns("/my-cool-post.aspx"); var converter = new BlogMLExportMapper(subtextContext.Object); // act var post = converter.ConvertEntry(entry, false /*embedAttachments*/); // assert Assert.AreEqual(2, post.Comments.Count); Assert.AreEqual(1, post.Trackbacks.Count); }
public void ConvertEntry_WithEntry_ContvertsBodyAndExcerptToBase64Encoding() { // arrange var entry = new EntryStatsView { Body = "<style><![CDATA[Test]]></style>", Description = "<style><![CDATA[excerpt]]></style>" }; var subtextContext = new Mock <ISubtextContext>(); subtextContext.Setup(c => c.Blog).Returns(new Blog { Host = "example.com" }); subtextContext.Setup(c => c.UrlHelper.BlogUrl()).Returns("/"); subtextContext.Setup(c => c.UrlHelper.EntryUrl(It.IsAny <IEntryIdentity>())).Returns("/irrelevant"); var converter = new BlogMLExportMapper(subtextContext.Object); // act var post = converter.ConvertEntry(entry, false /*embedAttachments*/); // assert Assert.AreEqual("<style><![CDATA[Test]]></style>", post.Content.UncodedText); Assert.AreEqual(ContentTypes.Base64, post.Content.ContentType); Assert.AreEqual("<style><![CDATA[excerpt]]></style>", post.Excerpt.UncodedText); Assert.AreEqual(ContentTypes.Base64, post.Excerpt.ContentType); }