Example #1
0
        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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        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));
        }
Example #5
0
        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));
        }
Example #8
0
        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);
        }
Example #9
0
        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
        }
Example #11
0
		/// <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;
		}		
Example #12
0
 public HelpController(ApplicationSettings settings, UserServiceBase userManager, IUserContext context, SettingsService settingsService, PageService pageService)
     : base(settings, userManager, context, settingsService)
 {
     _customTokenParser = new CustomTokenParser(settings);
     _pageService = pageService;
 }
 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;
 }