public void should_configure_whitelist_for_sanitizer()
        {
            // given
            var whiteListSettings = new HtmlWhiteListSettings()
            {
                AllowedElements = new List <string> {
                    "StarWarsMarquee"
                },
                AllowedAttributes = new List <string> {
                    "cheesecake"
                }
            };

            var whiteListProviderMock = Substitute.For <IHtmlWhiteListProvider>();

            whiteListProviderMock
            .Deserialize()
            .Returns(whiteListSettings);

            HtmlSanitizerFactory factory = CreateFactory(null, whiteListProviderMock);

            // when
            IHtmlSanitizer sanitizer = factory.CreateHtmlSanitizer();

            // then
            sanitizer.ShouldNotBeNull();
            sanitizer.AllowDataAttributes.ShouldNotBeNull();

            sanitizer.AllowedSchemes.ShouldContain("http");
            sanitizer.AllowedSchemes.ShouldContain("https");
            sanitizer.AllowedSchemes.ShouldContain("mailto");

            sanitizer.AllowedTags.ShouldContain("StarWarsMarquee");
            sanitizer.AllowedAttributes.ShouldContain("cheesecake");
        }
Exemplo n.º 2
0
        public void should_return_default_whitelistsettings_when_path_is_empty()
        {
            // given
            var defaultSettings = _htmlWhiteListProvider.CreateDefaultWhiteList();

            // when
            HtmlWhiteListSettings settings = _htmlWhiteListProvider.Deserialize();

            // then
            defaultSettings.ShouldBeEquivalent(settings);
        }
Exemplo n.º 3
0
        public void should_return_default_whitelistsettings_when_exception_occurs()
        {
            // given
            _textSettings.HtmlElementWhiteListPath = Path.Combine(Directory.GetCurrentDirectory(), "Text", "Sanitizer", "dodgy-whitelist.json");
            var defaultSettings = _htmlWhiteListProvider.CreateDefaultWhiteList();

            // when
            HtmlWhiteListSettings settings = _htmlWhiteListProvider.Deserialize();

            // then
            defaultSettings.ShouldBeEquivalent(settings);
        }
Exemplo n.º 4
0
        public void should_return_default_whitelistsettings_when_whitelist_file_is_missing()
        {
            // given
            _textSettings.HtmlElementWhiteListPath = "file that doesnt exist.json";
            var defaultSettings = _htmlWhiteListProvider.CreateDefaultWhiteList();

            // when
            HtmlWhiteListSettings settings = _htmlWhiteListProvider.Deserialize();

            // then
            defaultSettings.ShouldBeEquivalent(settings);
        }
Exemplo n.º 5
0
        public void should_return_whitelistsettings_from_derialized_file()
        {
            // given
            _textSettings.HtmlElementWhiteListPath = Path.Combine(Directory.GetCurrentDirectory(), "Text", "Sanitizer", "whitelist.json");

            // when
            HtmlWhiteListSettings settings = _htmlWhiteListProvider.Deserialize();

            // then
            settings.AllowedElements.Count.ShouldBe(2);
            settings.AllowedAttributes.Count.ShouldBe(3);

            settings.AllowedElements[0].ShouldBe("blah");
            settings.AllowedElements[1].ShouldBe("test");

            settings.AllowedAttributes[0].ShouldBe("id");
            settings.AllowedAttributes[1].ShouldBe("class");
            settings.AllowedAttributes[2].ShouldBe("href");
        }