public static string AwesomeDisplay(this IFubuPage page, object model) { var type = model.GetType(); var result = new StringBuilder(); var tags = page.Tags(model); var sl = page.Get <IServiceLocator>(); tags.SetProfile(AwesomeConfiguration.TagProfile); var tr = new HtmlTag("tr"); foreach (var prop in getProperties(type)) { var p = new SingleProperty(prop, type); var elementRequest = new ElementRequest(model, p, sl); var accessRight = page.Get <IFieldAccessService>().RightsFor(elementRequest); HtmlTag display = tags.DisplayFor(elementRequest).Authorized(accessRight.Read); var td = new HtmlTag("td").Append(display); tr.Append(td); } var editLink = new LinkTag("Edit", page.EditUrlFor(model)); tr.Append(new HtmlTag("td").Append(editLink)); var deleteLink = new LinkTag("Delete", page.DeleteUrlFor(model)); tr.Append(new HtmlTag("td").Append(deleteLink)); result.Append(tr.ToString()); return(result.ToString()); }
public void Handle(CreateLinkCommand command) { var link = command.ConvertTo <Link>(); UnitOfWork(db => { db.Save(link); command.Id = link.Id; if (command.TagIds != null) { foreach (var tagId in command.TagIds) { var linkTag = new LinkTag() { LinkId = command.Id, TagId = tagId }; db.Save(linkTag); } } }); }
public ActionResult WebsiteMenu(string menuSliderPartialView, string partialView, bool showSlider) { MenuViewModel menuViewModel = new MenuViewModel(); menuViewModel.ShowSlider = showSlider; menuViewModel.MenuPartialView = partialView; menuViewModel.MenuSliderPartialView = menuSliderPartialView; if (showSlider) { string theme = "5E1A2906-F51C-4915-84D1-5FD49ED9C18B"; string path = Path.Combine(Server.MapPath("~/Content/" + theme + "/menu/"), partialView.ToLower()); List <LinkTag> imageList = new List <LinkTag>(); foreach (string image in Directory.GetFiles(path, "*.jpg")) { LinkTag linkTag = new LinkTag(); linkTag.Src = "/" + image.Substring(Server.MapPath("~").Length).Replace("\\", "/"); imageList.Add(linkTag); } menuViewModel.ImageList = imageList; } return(PartialView(menuViewModel.MenuPartialView, menuViewModel)); }
public static HtmlTag TagList(List <string> tags) { tags ??= new List <string>(); tags = tags.Where(x => !string.IsNullOrWhiteSpace(x)).Select(x => x.Trim()).ToList(); if (!tags.Any()) { return(HtmlTag.Empty()); } var tagsContainer = new DivTag().AddClass("tags-container"); tagsContainer.Children.Add(new DivTag().Text("Tags:").AddClass("tag-detail-label-tag")); foreach (var loopTag in tags) { var tagLinkContainer = new DivTag().AddClass("tags-detail-link-container"); var tagLink = new LinkTag(loopTag.Replace("-", " "), UserSettingsSingleton.CurrentSettings().TagPageUrl(loopTag)) .AddClass("tag-detail-link"); tagLinkContainer.Children.Add(tagLink); tagsContainer.Children.Add(tagLinkContainer); } return(tagsContainer); }
public static HtmlTag PictureImgThumbWithLink(PictureAsset pictureAsset, string linkTo) { if (pictureAsset == null) { return(HtmlTag.Empty()); } var imgTag = PictureImgTagWithSmallestDefaultSrc(pictureAsset); if (imgTag.IsEmpty()) { return(HtmlTag.Empty()); } imgTag.AddClass(pictureAsset.SmallPicture.Height > pictureAsset.SmallPicture.Width ? "thumb-vertical" : "thumb-horizontal"); if (string.IsNullOrWhiteSpace(linkTo)) { return(imgTag); } var outerLink = new LinkTag(string.Empty, linkTo); outerLink.Children.Add(imgTag); return(outerLink); }
public static LinkTag ActionLink(this HtmlTag tag, string text, params string[] classes) { var child = new LinkTag(text, "#", classes); tag.Append(child); return child; }
public static string Process(string toProcess, IProgress <string> progress) { if (string.IsNullOrWhiteSpace(toProcess)) { return(string.Empty); } var resultList = BracketCodeCommon.ContentBracketCodeMatches(toProcess, BracketCodeToken); var context = Db.Context().Result; foreach (var loopMatch in resultList) { var dbContent = context.FileContents.FirstOrDefault(x => x.ContentId == loopMatch.contentGuid); if (dbContent == null) { continue; } progress?.Report($"Adding file download link {dbContent.Title} from Code"); var settings = UserSettingsSingleton.CurrentSettings(); var linkTag = new LinkTag( string.IsNullOrWhiteSpace(loopMatch.displayText) ? dbContent.Title : loopMatch.displayText.Trim(), dbContent.PublicDownloadLink ? settings.FileDownloadUrl(dbContent) : settings.FilePageUrl(dbContent), "file-download-link"); toProcess = toProcess.Replace(loopMatch.bracketCodeText, linkTag.ToString()); } return(toProcess); }
/// <summary> /// Get markdown 'tags' for a given style. /// </summary> /// <param name="styleName">The name of the style.</param> /// <param name="indent">The indent level.</param> /// <param name="url">The link url.</param> /// <returns></returns> private TextTag[] GetTags(string styleName, int indent, string url = null) { var tags = new List <TextTag>(); var styleTag = textView.Buffer.TagTable.Lookup(styleName); if (styleTag != null) { tags.Add(styleTag); } if (indent > 0) { var indentTag = textView.Buffer.TagTable.Lookup($"Indent{indent}"); if (indentTag != null) { tags.Add(indentTag); } } if (url != null) { // Only add the tag to the tag table if it doesn't already exist. // This does actually occur from time to time if a description // contains multiple links to the same target. var linkTag = textView.Buffer.TagTable.Lookup(url) as LinkTag; if (linkTag == null) { linkTag = new LinkTag(url); linkTag.SizePoints = 12; textView.Buffer.TagTable.Add(linkTag); } tags.Add(linkTag); } return(tags.ToArray()); }
public static HtmlTag TagListTextLinkList(List <string> tags) { tags ??= new List <string>(); tags = tags.Where(x => !string.IsNullOrWhiteSpace(x)).Select(x => x.Trim()).ToList(); if (!tags.Any()) { return(HtmlTag.Empty()); } var tagsContainer = new HtmlTag("p"); var innerContent = new List <string>(); foreach (var loopTag in tags) { var tagLink = new LinkTag(loopTag.Replace("-", " "), UserSettingsSingleton.CurrentSettings().TagPageUrl(loopTag)) .AddClass("tag-detail-link"); innerContent.Add(tagLink.ToString()); } tagsContainer.Text($"Tags: {string.Join(", ", innerContent)}").Encoded(false); return(tagsContainer); }
public static HtmlTag Menu(this IFubuPage page, string menuName = null) { var navigationService = page.Get <INavigationService>(); var items = navigationService.MenuFor(new NavigationKey(menuName ?? StringConstants.BlogName)); var menu = new HtmlTag("ul"); var user = page.GetUser(); items.Each(x => { var link = new LinkTag(x.Key, x.Url); var li = new HtmlTag("li"); li.AddClass( string.Format("menu-item-{0}", x.Key.Replace(" ", string.Empty).ToLowerInvariant())); if (x.Key.Equals("Logout") && x.MenuItemState == MenuItemState.Available && user != null) { var aTag = new LinkTag(string.Format("Welcome, {0}", user.FirstName), "/profile"); aTag.AddClass("user"); menu.Append(aTag); } if (x.MenuItemState == MenuItemState.Active) { li.AddClass("current"); } if (x.MenuItemState == MenuItemState.Active || x.MenuItemState == MenuItemState.Available) { menu.Append(li.Append(link)); } }); return(menu); }
public static LinkTag ActionLink(this HtmlTag tag, string text, params string[] classes) { var child = new LinkTag(text, "#", classes); tag.Append(child); return(child); }
public static HtmlTag FromContentCommon(IContentCommon content) { if (content == null) { return(HtmlTag.Empty()); } var compactContentContainerDiv = new DivTag().AddClass("content-compact-container"); var linkTo = UserSettingsSingleton.CurrentSettings().ContentUrl(content.ContentId).Result; if (content.MainPicture != null) { var compactContentMainPictureContentDiv = new DivTag().AddClass("content-compact-image-content-container"); var image = new PictureSiteInformation(content.MainPicture.Value); compactContentMainPictureContentDiv.Children.Add(Tags.PictureImgThumbWithLink(image.Pictures, linkTo)); compactContentContainerDiv.Children.Add(compactContentMainPictureContentDiv); } var compactContentMainTextContentDiv = new DivTag().AddClass("content-compact-text-content-container"); var compactContentMainTextTitleTextDiv = new DivTag().AddClass("content-compact-text-content-title-container"); var compactContentMainTextTitleLink = new LinkTag(content.Title, linkTo).AddClass("content-compact-text-content-title-link"); compactContentMainTextTitleTextDiv.Children.Add(compactContentMainTextTitleLink); HtmlTag compactContentSummaryTextDiv; if (content.MainPicture == null) { compactContentSummaryTextDiv = new DivTag().AddClass("content-compact-text-content-summary") .Text(content.Summary); } else { compactContentSummaryTextDiv = new DivTag().AddClass("content-compact-text-content-optional-summary") .Text(content.Summary); } var compactContentMainTextCreatedOrUpdatedTextDiv = new DivTag() .AddClass("content-compact-text-content-date") .Text(Tags.LatestCreatedOnOrUpdatedOn(content)?.ToString("M/d/yyyy") ?? string.Empty); compactContentMainTextContentDiv.Children.Add(compactContentMainTextTitleTextDiv); compactContentMainTextContentDiv.Children.Add(compactContentSummaryTextDiv); compactContentMainTextContentDiv.Children.Add(compactContentMainTextCreatedOrUpdatedTextDiv); compactContentContainerDiv.Children.Add(compactContentMainTextContentDiv); return(compactContentContainerDiv); }
public HtmlTag PhotoFigureWithLinkToPageTag(PhotoContent dbEntry, string sizes) { var figureTag = new HtmlTag("figure").AddClass("single-photo-container"); var linkTag = new LinkTag(string.Empty, PageUrl); linkTag.Children.Add(Tags.PictureImgTag(Pictures, sizes, true)); figureTag.Children.Add(linkTag); return(figureTag); }
public async Task CheckLinkSubresourceIntegrity(LinkTag linkTag) { string expectedIntegrity = await GetShaIntegrity(linkTag); if (!expectedIntegrity.Equals(linkTag.Integrity, StringComparison.OrdinalIgnoreCase)) { Assert.False(true, $"Expected {linkTag.HRef} to have Integrity '{expectedIntegrity}' but it had '{linkTag.Integrity}'."); } }
public HtmlTag ImageFigureWithCaptionAndLinkToPageTag(ImageContent dbEntry, string sizes) { var figureTag = new HtmlTag("figure").AddClass("single-image-container"); var linkTag = new LinkTag(string.Empty, PageUrl); linkTag.Children.Add(Tags.PictureImgTag(Pictures, sizes, true)); figureTag.Children.Add(linkTag); figureTag.Children.Add(Tags.ImageFigCaptionTag(dbEntry)); return(figureTag); }
public HtmlTag BuildLeafTag(ISpecNode node) { return(new HtmlTag("li", tag => { var url = _urls.UrlFor(node.Path()); var link = new LinkTag(node.Path().Parts.Last(), url); tag.Add("span").AddClass("file").Append(link); })); }
public object Post(CreateLinkRequest request) { var link = request.ConvertTo <Link>(); link.SessionId = Session.Id; link.CreatedAt = DateTime.UtcNow; if (link.Key.IsNullOrEmpty()) { var currentIterator = StartKeyLength * 10; do { ++currentIterator; link.Key = KeyValidator.GenerateKey(currentIterator / 10); } while (_linkRepo.KeyExists(link.Key)); } UnitOfWork(() => { _linkRepo.Create(link); if (request.Tags != null) { link.LinkTags = new List <LinkTag>(); var tagsDict = _tagRepo.GetTagsDictionary(); foreach (var tag in request.Tags) { if (!tagsDict.ContainsKey(tag)) { throw HttpError.NotFound($"Tag '{tag}' not found."); } var linkTag = new LinkTag() { LinkId = link.Id, TagId = tagsDict[tag].Id }; link.LinkTags.Add(linkTag); } _linkRepo.SetLinkTags(link.Id, link.LinkTags); } PublishMessage(new CreateLinkScreenshotRequest() { Id = link.Id }); }); return(_linkRepo.GetLinkResponse(link.Id)); }
public void should_have_li_child_element_when_add_item_child() { var child = new LinkTag("foo", "url"); _listTag.AddItem(child); _listTag.Children.ShouldHaveCount(1); var item = _listTag.Children.First(); item.TagName().ShouldEqual("li"); item.Children.ShouldHaveCount(1); item.Children.First().ShouldEqual(child); }
protected static HtmlTag ShowCardActionRender(TypedElement actionElement, RenderContext context) { ShowCardAction action = (ShowCardAction)actionElement; if (context.Config.SupportsInteractivity) { var uiButton = new LinkTag(action.Title, null, $"ac-{action.Type.Replace(".", "").ToLower()}", "ac-action"); return(uiButton); } return(null); }
public void SetUp() { _txt = "some text"; _href = "href"; _class1 = "class1"; _class2 = "class2"; _textLink = new LinkTag(_txt, _href, _class1, _class2); _imgTag = new ImageTag("image.jpg", "its an image"); _imgLink = new LinkTag(_imgTag, _href, _class1, _class2); }
public static HtmlTag RelatedContentDiv(IContentCommon post) { if (post == null) { return(HtmlTag.Empty()); } var relatedPostContainerDiv = new DivTag().AddClass("related-post-container"); if (post.MainPicture != null) { var relatedPostMainPictureContentDiv = new DivTag().AddClass("related-post-image-content-container"); var image = new PictureSiteInformation(post.MainPicture.Value); relatedPostMainPictureContentDiv.Children.Add(Tags.PictureImgThumbWithLink(image.Pictures, UserSettingsSingleton.CurrentSettings().ContentUrl(post.ContentId).Result)); relatedPostContainerDiv.Children.Add(relatedPostMainPictureContentDiv); } var relatedPostMainTextContentDiv = new DivTag().AddClass("related-post-text-content-container"); var relatedPostMainTextTitleTextDiv = new DivTag().AddClass("related-post-text-content-title-container"); HtmlTag relatedPostMainTextTitleLink; if (post.MainPicture == null) { relatedPostMainTextTitleLink = new LinkTag($"{post.Title} - {post.Summary}", UserSettingsSingleton.CurrentSettings().ContentUrl(post.ContentId).Result) .AddClass("related-post-text-content-title-link"); } else { relatedPostMainTextTitleLink = new LinkTag(post.Title, UserSettingsSingleton.CurrentSettings().ContentUrl(post.ContentId).Result) .AddClass("related-post-text-content-title-link"); } relatedPostMainTextTitleTextDiv.Children.Add(relatedPostMainTextTitleLink); var relatedPostMainTextCreatedOrUpdatedTextDiv = new DivTag().AddClass("related-post-text-content-date") .Text(Tags.LatestCreatedOnOrUpdatedOn(post)?.ToString("M/d/yyyy") ?? string.Empty); relatedPostMainTextContentDiv.Children.Add(relatedPostMainTextTitleTextDiv); relatedPostMainTextContentDiv.Children.Add(relatedPostMainTextCreatedOrUpdatedTextDiv); relatedPostContainerDiv.Children.Add(relatedPostMainTextContentDiv); return(relatedPostContainerDiv); }
public static HtmlTag EmailSimpleFooter() { var footer = new HtmlTag("h4"); footer.Style("text-align", "center"); var siteLink = new LinkTag(UserSettingsSingleton.CurrentSettings().SiteUrl, @$ "https://{UserSettingsSingleton.CurrentSettings().SiteUrl}"); footer.Children.Add(siteLink); return(footer); }
public static IHtmlString ButtonLink <T>(this HtmlHelper <T> helper, string actionUrl, string text) { var urlHelper = helper.UrlHelper(); var linkText = new HtmlTag("span").AddClasses("link-text").Text(text); var anchor = new LinkTag(null, urlHelper.Content(actionUrl)) .AddClasses("button", "button--primary") .Title(text) .Append(linkText); return(anchor); }
public static HtmlTag TitleLinkDiv(ITitleSummarySlugFolder content, IContentId id) { var titleContainer = new HtmlTag("div").AddClass("title-link-container"); var header = new HtmlTag("h1").AddClass("title-link-content"); var linkToFullPost = new LinkTag(content.Title, UserSettingsSingleton.CurrentSettings().ContentUrl(id.ContentId).Result); header.Children.Add(linkToFullPost); titleContainer.Children.Add(header); return(titleContainer); }
public static HtmlTag NoteTitleLinkDiv(NoteContent dbEntry) { var settings = UserSettingsSingleton.CurrentSettings(); var titleContainer = new HtmlTag("div").AddClass("title-link-container"); var header = new HtmlTag("h2").AddClass("title-link-content"); var linkToFullPost = new LinkTag(dbEntry.Title, settings.NotePageUrl(dbEntry)); header.Children.Add(linkToFullPost); titleContainer.Children.Add(header); return(titleContainer); }
public static async Task <HtmlTag> EmailSimpleTitle(dynamic content) { Guid contentId = content.ContentId; string title = content.Title; var header = new HtmlTag("h3"); header.Style("text-align", "center"); var postAddress = $"https:{await UserSettingsSingleton.CurrentSettings().ContentUrl(contentId)}"; var postLink = new LinkTag($"{UserSettingsSingleton.CurrentSettings().SiteName} - {title}", postAddress); header.Children.Add(postLink); return(header); }
public async Task CheckLinkSubresourceIntegrity(LinkTag linkTag) { string expectedIntegrity; using (var responseStream = await _httpClient.GetStreamAsync(linkTag.HRef)) using (var alg = SHA256.Create()) { var hash = alg.ComputeHash(responseStream); expectedIntegrity = "sha256-" + Convert.ToBase64String(hash); } if (!expectedIntegrity.Equals(linkTag.Integrity, StringComparison.OrdinalIgnoreCase)) { Assert.False(true, $"Expected {linkTag.HRef} to have Integrity '{expectedIntegrity}' but it had '{linkTag.Integrity}'."); } }
public static string SpecialPagesCodeProcess(string toProcess, IProgress <string> progress) { if (string.IsNullOrWhiteSpace(toProcess)) { return(string.Empty); } progress?.Report("Searching for Special Page Codes"); var specialPageLookup = new List <(string bracketCode, string defaultDisplayString, string url)> { ("index", "Main", $"https:{UserSettingsSingleton.CurrentSettings().IndexPageUrl()}"), ("indexrss", "Main Page RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().RssIndexFeedUrl()}"), ("filerss", "Files RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().FileRssUrl()}"), ("imagerss", "Images RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().ImageRssUrl()}"), ("linkrss", "Links RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().LinkRssUrl()}"), ("noterss", "Notes RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().NoteRssUrl()}"), ("photorss", "Photo Gallery RSS Feed", $"https:{UserSettingsSingleton.CurrentSettings().PhotoRssUrl()}"), ("photogallerypage", "Photos", $"https:{UserSettingsSingleton.CurrentSettings().CameraRollPhotoGalleryUrl()}"), ("searchpage", "Search", $"https:{UserSettingsSingleton.CurrentSettings().AllContentListUrl()}"), ("tagspage", "Tags", $"https:{UserSettingsSingleton.CurrentSettings().AllTagsListUrl()}"), ("linklistpage", "Links", $"https:{UserSettingsSingleton.CurrentSettings().LinkListUrl()}") }; foreach (var loopLookups in specialPageLookup) { var matches = BracketCodeCommon.SpecialPageBracketCodeMatches(toProcess, loopLookups.bracketCode); foreach (var loopMatch in matches) { progress?.Report($"Adding Special Page {loopLookups.bracketCode} from Code"); var linkTag = new LinkTag( string.IsNullOrWhiteSpace(loopMatch.displayText) ? loopLookups.defaultDisplayString : loopMatch.displayText.Trim(), loopLookups.url, "special-page-link"); toProcess = toProcess.Replace(loopMatch.bracketCodeText, linkTag.ToString()); } } return(toProcess); }
public static HtmlTag DownloadLinkTag(FileContent content) { if (!content.PublicDownloadLink) { return(HtmlTag.Empty()); } var downloadLinkContainer = new DivTag().AddClass("file-download-container"); var settings = UserSettingsSingleton.CurrentSettings(); var downloadLink = new LinkTag("Download", settings.FileDownloadUrl(content)).AddClass("file-download-link"); downloadLinkContainer.Children.Add(downloadLink); return(downloadLinkContainer); }
public void VisitLinkTag(LinkTag link) { if (this._isPreTag) { this._results.Append(link.GetLinkText()); } else { this.Collapse(this._results, Translate.Decode(link.GetLinkText())); } if (this.GetLinks()) { this._results.Append("<"); this._results.Append(link.GetLink()); this._results.Append(">"); } }
public ActionResult WebsiteMenu2(string menuSliderPartialView, string partialView, bool showSlider, string maparea) { MenuViewModel menuViewModel = new MenuViewModel(); menuViewModel.ShowSlider = showSlider; menuViewModel.MenuPartialView = partialView; menuViewModel.MenuSliderPartialView = menuSliderPartialView; if (showSlider) { string theme = "5E1A2906-F51C-4915-84D1-5FD49ED9C18B"; string path = Path.Combine(Server.MapPath("~/Content/" + theme + "/menu/"), partialView.ToLower()); List <LinkTag> imageList = new List <LinkTag>(); string[] images = Directory.GetFiles(path, "*.jpg"); string[] mapareas = new string[0]; if (!string.IsNullOrEmpty(maparea)) { mapareas = maparea.Split('|'); } for (int i = 0; i < images.Length; i++) { LinkTag linkTag = new LinkTag(); linkTag.Src = "/" + images[i].Substring(Server.MapPath("~").Length).Replace("\\", "/"); if (mapareas.Length > 0 && i < mapareas.Length) { linkTag.Usemap = mapareas[i]; } imageList.Add(linkTag); } menuViewModel.ImageList = imageList; } return(PartialView(menuViewModel.MenuPartialView, menuViewModel)); }
public HtmlTag TopTag(HtmlTag topChild) { if (topChild.TagName() != "ul") { throw new ArgumentOutOfRangeException("Only ul tags are valid here: \n" + topChild.ToString()); } var topUrl = _urls.UrlFor <JasminePages>(x => x.AllSpecs(), null); return(new HtmlTag("ul", tag => { tag.Id("all-specs-node").AddClass("filetree"); var link = new LinkTag("All Specs", topUrl, "all-specs"); var li = tag.Add("li"); li.Add("span").AddClass("folder").Append(link); li.Append(topChild); })); }
public static string Process(string toProcess, IProgress <string> progress) { if (string.IsNullOrWhiteSpace(toProcess)) { return(string.Empty); } progress?.Report("Searching for GeoJson Link Codes..."); var resultList = BracketCodeCommon.ContentBracketCodeMatches(toProcess, BracketCodeToken); if (!resultList.Any()) { return(toProcess); } var context = Db.Context().Result; foreach (var loopMatch in resultList) { var dbContent = context.GeoJsonContents.FirstOrDefault(x => x.ContentId == loopMatch.contentGuid); if (dbContent == null) { continue; } progress?.Report($"Adding GeoJson Link {dbContent.Title} from Code"); var linkTag = new LinkTag( string.IsNullOrWhiteSpace(loopMatch.displayText) ? dbContent.Title : loopMatch.displayText.Trim(), UserSettingsSingleton.CurrentSettings().GeoJsonPageUrl(dbContent), "geojson-page-link"); toProcess = toProcess.Replace(loopMatch.bracketCodeText, linkTag.ToString()); } return(toProcess); }
public void test_normal() { LinkTag lt = new LinkTag(); string bbcode = "[url]http://click me[/url]"; string expected = "<a href=\"http://click%20me\">http://click me</a>"; string actual = BBCode.ToHtml(bbcode, new Dictionary<string, BaseTagHandler> { {"url", lt} }); Assert.AreEqual(expected, actual); }
public void test_space_in_src_value() { LinkTag lt = new LinkTag(); string bbcode = "[url src=\"http://some url\"]Click me[/url]"; string expected = "<a href=\"http://some%20url\">Click me</a>"; string actual = BBCode.ToHtml(bbcode, new Dictionary<string, BaseTagHandler> { {"url", lt} }); Assert.AreEqual(expected, actual); }
public void test_attributes() { LinkTag lt = new LinkTag("style=\"display:none\""); string bbcode = "[url]foo[/url]"; string expected = "<a href=\"foo\" style=\"display:none\">foo</a>"; string actual = BBCode.ToHtml(bbcode, new Dictionary<string, BaseTagHandler> { {"url", lt} }); Assert.AreEqual(expected, actual); }
public void test_redundant_attribute() { LinkTag lt = new LinkTag(); string bbcode = "[url src=\"http://some.url\" xxx=yyy]Click me[/url]"; string expected = "<a href=\"http://some.url\"%20xxx=yyy\">Click me</a>"; string actual = BBCode.ToHtml(bbcode, new Dictionary<string, BaseTagHandler> { {"url", lt} }); Assert.AreEqual(expected, actual); }
public void test_prefix_with_src() { LinkTag lt = new LinkTag(null, "mailto:"); string bbcode = "[email src=foo]bar[/email]"; string expected = "<a href=\"mailto:foo\">bar</a>"; string actual = BBCode.ToHtml(bbcode, new Dictionary<string, BaseTagHandler> { {"email", lt} }); Assert.AreEqual(expected, actual); }
public void test_empty_body() { LinkTag lt = new LinkTag(); string bbcode = "[url src=somewhere][/url]"; string expected = "<a href=\"somewhere\">somewhere</a>"; string actual = BBCode.ToHtml(bbcode, new Dictionary<string, BaseTagHandler> { {"url", lt} }); Assert.AreEqual(expected, actual); }