コード例 #1
0
        public void ReplacePageLinks_Should_Rename_Basic_Creole_Title()
        {
            // Arrange
            CreoleParser      parser  = new CreoleParser(_applicationSettings, _siteSettings);
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text           = "here is a nice [[the internal wiki page title|the link text]]";
            string expectedMarkup = "here is a nice [[buy stuff online|the link text]]";

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "the internal wiki page title", "buy stuff online");

            // Assert
            Assert.That(actualMarkup, Is.EqualTo(expectedMarkup), actualMarkup);
        }
コード例 #2
0
        public void ReplacePageLinks_Should_Rename_Basic_Markdown_Title()
        {
            // Arrange
            MarkdownParser    parser  = new MarkdownParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text           = "here is a nice [the link text](the-internal-wiki-page-title)";
            string expectedMarkup = "here is a nice [the link text](buy-stuff-online)";

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "the internal wiki page title", "buy stuff online");

            // Assert
            Assert.That(actualMarkup, Is.EqualTo(expectedMarkup), actualMarkup);
        }
コード例 #3
0
        public void replacepagelinks_should_rename_basic_markdown_title()
        {
            // Arrange
            MarkdigParser     parser  = new MarkdigParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text           = "here is a nice [the link text](the-internal-wiki-page-title)";
            string expectedMarkup = "here is a nice [the link text](buy-stuff-online)";

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "the internal wiki page title", "buy stuff online");

            // Assert
            expectedMarkup.ShouldBe(actualMarkup);
        }
コード例 #4
0
        public void ReplacePageLinks_Should_Not_Rename_Title_That_Is_Not_Found_In_Markdown()
        {
            // Arrange
            MarkdownParser    parser  = new MarkdownParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = @"*here* is a nice **[the link text](the-internal-wiki-page-title)** and 
                            another one: *here is a nice [the link text](the-internal-wiki-page-title) and 
							a different one: *here is a nice [the link text](different-title)"                            ;

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "page title", "buy stuff online");

            // Assert
            Assert.That(actualMarkup, Is.EqualTo(text), actualMarkup);
        }
コード例 #5
0
        public void ReplacePageLinks_Should_Not_Rename_Title_That_Is_Not_Found_In_Creole()
        {
            // Arrange
            CreoleParser      parser  = new CreoleParser(_applicationSettings, _siteSettings);
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = @"here is a nice [[the internal wiki page title|the link text]] and 
                            another one: here is a nice [[the internal wiki page title|the link text]] and 
							a different one: here is a nice [[different title|the link text]]"                            ;

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "page title", "buy stuff online");

            // Assert
            Assert.That(actualMarkup, Is.EqualTo(text), actualMarkup);
        }
コード例 #6
0
        public void replacepagelinks_should_not_rename_title_that_is_not_found_in_markdown()
        {
            // Arrange
            MarkdigParser     parser  = new MarkdigParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = @"*here* is a nice **[the link text](the-internal-wiki-page-title)** and
                            another one: *here is a nice [the link text](the-internal-wiki-page-title) and
							a different one: *here is a nice [the link text](different-title)"                            ;

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "page title", "buy stuff online");

            // Assert
            text.ShouldBe(actualMarkup);
        }
コード例 #7
0
        public void ReplacePageLinks_Should_Rename_Title_Inside_Creole_Markup_Block()
        {
            // Arrange
            CreoleParser      parser  = new CreoleParser(_applicationSettings, _siteSettings);
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = @"//here is a nice **[[the internal wiki page title|the link text]]** and// 
                            another one: *here is a nice [[the internal wiki page title|the link text]] and 
							*a different one: here is a nice [[different title|the link text]]"                            ;

            string expectedMarkup = @"//here is a nice **[[buy stuff online|the link text]]** and// 
                            another one: *here is a nice [[buy stuff online|the link text]] and 
							*a different one: here is a nice [[different title|the link text]]"                            ;

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "the internal wiki page title", "buy stuff online");

            // Assert
            Assert.That(actualMarkup, Is.EqualTo(expectedMarkup), actualMarkup);
        }
コード例 #8
0
        public void replacepagelinks_should_rename_title_inside_markdown_block()
        {
            // Arrange
            MarkdownParser    parser  = new MarkdownParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = @"here is a nice [the link text](the-internal-wiki-page-title) and 
                            another one: here is a nice [the link text](the-internal-wiki-page-title) and 
							a different one: here is a nice [the link text](different-title)"                            ;

            string expectedMarkup = @"here is a nice [the link text](buy-stuff-online) and 
                            another one: here is a nice [the link text](buy-stuff-online) and 
							a different one: here is a nice [the link text](different-title)"                            ;

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "the internal wiki page title", "buy stuff online");

            // Assert
            Assert.That(actualMarkup, Is.EqualTo(expectedMarkup), actualMarkup);
        }
コード例 #9
0
        public void replacepagelinks_should_rename_multiple_creole_titles()
        {
            // Arrange
            CreoleParser      parser  = new CreoleParser(_applicationSettings, _siteSettings);
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = @"here is a nice [[the internal wiki page title|the link text]] and 
                            another one: here is a nice [[the internal wiki page title|the link text]] and 
							a different one: here is a nice [[different title|the link text]]"                            ;

            string expectedMarkup = @"here is a nice [[buy stuff online|the link text]] and 
                            another one: here is a nice [[buy stuff online|the link text]] and 
							a different one: here is a nice [[different title|the link text]]"                            ;

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "the internal wiki page title", "buy stuff online");

            // Assert
            Assert.That(actualMarkup, Is.EqualTo(expectedMarkup), actualMarkup);
        }
コード例 #10
0
        public void replacepagelinks_should_rename_title_inside_markdown_markup_block()
        {
            // Arrange
            var parser = new MarkdigParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = @"//here is a nice **[the link text](the-internal-wiki-page-title)** and//
                            another one: *here is a nice [the link text](the-internal-wiki-page-title) and
							*a different one: here is a nice [the link text](different-title)"                            ;

            string expectedMarkup = @"//here is a nice **[the link text](buy-stuff-online)** and//
                            another one: *here is a nice [the link text](buy-stuff-online) and
							*a different one: here is a nice [the link text](different-title)"                            ;

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "the internal wiki page title", "buy stuff online");

            // Assert
            expectedMarkup.ShouldBe(actualMarkup);
        }
コード例 #11
0
        /// <summary>
        /// Updates all links in pages to another page, when that page's title is changed.
        /// </summary>
        /// <param name="oldTitle">The previous page title.</param>
        /// <param name="newTitle">The new page title.</param>
        public void UpdateLinksToPage(string oldTitle, string newTitle)
        {
            bool shouldClearCache = false;

            foreach (PageContent content in Repository.AllPageContents())
            {
                if (_markupLinkUpdater.ContainsPageLink(content.Text, oldTitle))
                {
                    content.Text = _markupLinkUpdater.ReplacePageLinks(content.Text, oldTitle, newTitle);
                    Repository.UpdatePageContent(content);

                    shouldClearCache = true;
                }
            }

            if (shouldClearCache)
            {
                _pageViewModelCache.RemoveAll();
                _listCache.RemoveAll();
            }
        }