public void should_clean_html_using_sanitizer() { string markdown = @"@@warningbox:ENTER YOUR CONTENT HERE here is some more content @@"; string expectedHtml = @"<div class=""alert alert-warning"">ENTER YOUR CONTENT HERE here is some more content </div><br style=""clear:both""/>"; var pagehtml = new PageHtml() { Html = markdown }; var settings = new TextSettings(); settings.CustomTokensPath = Path.Combine(Directory.GetCurrentDirectory(), "Text", "CustomTokens", "customvariables.xml"); var customTokenParser = new CustomTokenParser(settings, _logger); var middleware = new CustomTokenMiddleware(customTokenParser); // Act PageHtml actualPageHtml = middleware.Invoke(pagehtml); actualPageHtml.Html = actualPageHtml.Html.Replace(Environment.NewLine, "", StringComparison.Ordinal); expectedHtml = expectedHtml.Replace(Environment.NewLine, "", StringComparison.Ordinal); // Assert Assert.Equal(expectedHtml, actualPageHtml.Html); }
/// <summary> /// Turns the wiki markup provided into HTML. /// </summary> /// <param name="text">A wiki markup string, e.g. creole markup.</param> /// <returns>The wiki markup converted to HTML.</returns> public PageHtml ToHtml(string text) { CustomTokenParser tokenParser = new CustomTokenParser(_applicationSettings); PageHtml pageHtml = new PageHtml(); TextPluginRunner runner = new TextPluginRunner(_pluginFactory); // Text plugins before parse text = runner.BeforeParse(text, pageHtml); // Parse the markup into HTML string html = _parser.Transform(text); // Remove bad HTML tags html = RemoveHarmfulTags(html); // Customvariables.xml file html = tokenParser.ReplaceTokensAfterParse(html); // Text plugins after parse html = runner.AfterParse(html); // Text plugins pre and post #container HTML pageHtml.PreContainerHtml = runner.PreContainerHtml(); pageHtml.PostContainerHtml = runner.PostContainerHtml(); pageHtml.IsCacheable = runner.IsCacheable; pageHtml.Html = html; return(pageHtml); }
public void should_register_text_and_tokenparsers() { // Arrange IContainer container = CreateContainer(); // Act MarkupConverter markupConverter = container.GetInstance <MarkupConverter>(); CustomTokenParser tokenParser = container.GetInstance <CustomTokenParser>(); // Assert Assert.That(markupConverter, Is.TypeOf <MarkupConverter>()); Assert.That(tokenParser, Is.TypeOf <CustomTokenParser>()); }
public void Should_Contain_Empty_List_When_When_Deserializing_Bad_Xml_File() { // Arrange ApplicationSettings settings = new ApplicationSettings(); settings.CustomTokensPath = Path.Combine(Settings.ROOT_FOLDER, "readme.md"); // use a markdown file string expectedHtml = "@@warningbox:ENTER YOUR CONTENT HERE {{some link}}@@"; // Act CustomTokenParser parser = new CustomTokenParser(settings); string actualHtml = parser.ReplaceTokensAfterParse("@@warningbox:ENTER YOUR CONTENT HERE {{some link}}@@"); // Assert Assert.That(actualHtml, Is.EqualTo(expectedHtml)); }
public void should_contain_empty_list_when_when_deserializing_bad_xml_file() { // Arrange TextSettings settings = new TextSettings(); settings.CustomTokensPath = Path.Combine(Directory.GetCurrentDirectory(), "Text", "CustomTokens", "badxml-file.json"); string expectedHtml = "@@warningbox:ENTER YOUR CONTENT HERE {{some link}}@@"; // Act CustomTokenParser parser = new CustomTokenParser(settings, _logger); string actualHtml = parser.ReplaceTokensAfterParse("@@warningbox:ENTER YOUR CONTENT HERE {{some link}}@@"); // Assert expectedHtml.ShouldBe(actualHtml); }
public void WarningBox_Token_Should_Return_Html_Fragment() { // Arrange ApplicationSettings settings = new ApplicationSettings(); settings.CustomTokensPath = Path.Combine(Settings.WEB_PATH, "App_Data", "customvariables.xml"); CustomTokenParser parser = new CustomTokenParser(settings); string expectedHtml = @"<div class=""alert alert-warning"">ENTER YOUR CONTENT HERE {{some link}}</div><br style=""clear:both""/>"; // Act string actualHtml = parser.ReplaceTokensAfterParse("@@warningbox:ENTER YOUR CONTENT HERE {{some link}}@@"); // Assert Assert.That(actualHtml, Is.EqualTo(expectedHtml)); }
public void Should_Contain_Empty_List_When_Tokens_File_Not_Found() { // Arrange ApplicationSettings settings = new ApplicationSettings(); settings.CustomTokensPath = Path.Combine(Settings.WEB_PATH, "doesntexist.xml"); CustomTokenParser parser = new CustomTokenParser(settings); string expectedHtml = "@@warningbox:ENTER YOUR CONTENT HERE {{some link}}@@"; // Act string actualHtml = parser.ReplaceTokensAfterParse("@@warningbox:ENTER YOUR CONTENT HERE {{some link}}@@"); // Assert Assert.That(actualHtml, Is.EqualTo(expectedHtml)); }
public void warningbox_token_should_return_html_fragment() { // Arrange TextSettings settings = new TextSettings(); settings.CustomTokensPath = Path.Combine(Directory.GetCurrentDirectory(), "Text", "CustomTokens", "customvariables.xml"); CustomTokenParser parser = new CustomTokenParser(settings, _logger); string expectedHtml = @"<div class=""alert alert-warning"">ENTER YOUR CONTENT HERE {{some link}}</div><br style=""clear:both""/>"; // Act string actualHtml = parser.ReplaceTokensAfterParse("@@warningbox:ENTER YOUR CONTENT HERE {{some link}}@@"); // Assert expectedHtml.ShouldBe(actualHtml); }
public void should_contain_empty_list_when_tokens_file_not_found() { // Arrange TextSettings settings = new TextSettings(); settings.CustomTokensPath = Path.Combine(Directory.GetCurrentDirectory(), "Unit", "Text", "CustomTokens", "doesntexist.xml"); CustomTokenParser parser = new CustomTokenParser(settings, _logger); string expectedHtml = "@@warningbox:ENTER YOUR CONTENT HERE {{some link}}@@"; // Act string actualHtml = parser.ReplaceTokensAfterParse("@@warningbox:ENTER YOUR CONTENT HERE {{some link}}@@"); // Assert expectedHtml.ShouldBe(actualHtml); }
public void Single_Constructor_Argument_Should_Register_Default_Instances() { // Arrange DependencyManager container = new DependencyManager(new ApplicationSettings()); // Act container.Configure(); ApplicationSettings settings = ObjectFactory.TryGetInstance <ApplicationSettings>(); IRepository repository = ObjectFactory.GetInstance <IRepository>(); IUserContext context = ObjectFactory.GetInstance <IUserContext>(); IPageService pageService = ObjectFactory.GetInstance <IPageService>(); MarkupConverter markupConverter = ObjectFactory.GetInstance <MarkupConverter>(); CustomTokenParser tokenParser = ObjectFactory.GetInstance <CustomTokenParser>(); UserViewModel userModel = ObjectFactory.GetInstance <UserViewModel>(); SettingsViewModel settingsModel = ObjectFactory.GetInstance <SettingsViewModel>(); AttachmentRouteHandler routerHandler = ObjectFactory.GetInstance <AttachmentRouteHandler>(); UserServiceBase userManager = ObjectFactory.GetInstance <UserServiceBase>(); IPluginFactory pluginFactory = ObjectFactory.GetInstance <IPluginFactory>(); IWikiImporter wikiImporter = ObjectFactory.GetInstance <IWikiImporter>(); IAuthorizationProvider authProvider = ObjectFactory.GetInstance <IAuthorizationProvider>(); IActiveDirectoryProvider adProvider = ObjectFactory.GetInstance <IActiveDirectoryProvider>(); // Assert Assert.That(settings, Is.Not.Null); Assert.That(repository, Is.TypeOf <LightSpeedRepository>()); Assert.That(context, Is.TypeOf <UserContext>()); Assert.That(pageService, Is.TypeOf <PageService>()); Assert.That(markupConverter, Is.TypeOf <MarkupConverter>()); Assert.That(tokenParser, Is.TypeOf <CustomTokenParser>()); Assert.That(userModel, Is.TypeOf <UserViewModel>()); Assert.That(settingsModel, Is.TypeOf <SettingsViewModel>()); Assert.That(userManager, Is.TypeOf <FormsAuthUserService>()); Assert.That(pluginFactory, Is.TypeOf <PluginFactory>()); Assert.That(wikiImporter, Is.TypeOf <ScrewTurnImporter>()); Assert.That(authProvider, Is.TypeOf <AuthorizationProvider>()); #if !MONO Assert.That(adProvider, Is.TypeOf <ActiveDirectoryProvider>()); #endif }
/// <summary> /// Turns the wiki markup provided into HTML. /// </summary> /// <param name="text">A wiki markup string, e.g. creole markup.</param> /// <returns>The wiki markup converted to HTML.</returns> public PageHtml ToHtml(string text) { CustomTokenParser tokenParser = new CustomTokenParser(_applicationSettings); PageHtml pageHtml = new PageHtml(); TextPluginRunner runner = new TextPluginRunner(_pluginFactory); // Text plugins before parse text = runner.BeforeParse(text, pageHtml); // Parse the markup into HTML string html = _parser.Transform(text); // Remove bad HTML tags html = RemoveHarmfulTags(html); // Customvariables.xml file html = tokenParser.ReplaceTokensAfterParse(html); // Text plugins after parse html = runner.AfterParse(html); // Text plugins pre and post #container HTML pageHtml.PreContainerHtml = runner.PreContainerHtml(); pageHtml.PostContainerHtml = runner.PostContainerHtml(); pageHtml.IsCacheable = runner.IsCacheable; pageHtml.Html = html; return pageHtml; }
public HelpController(ApplicationSettings settings, UserServiceBase userManager, IUserContext context, SettingsService settingsService, PageService pageService) : base(settings, userManager, context, settingsService) { _customTokenParser = new CustomTokenParser(settings); _pageService = pageService; }
public CustomTokenMiddleware(CustomTokenParser customTokenParser) { _customTokenParser = customTokenParser; }