Provides a form and functions for setting and applying multiple find and replacements on a text string.
Inheritance: System.Windows.Forms.Form
Exemple #1
0
        public void FindAndReplaceRemove()
        {
            WikiFunctions.Parse.Replacement r = new WikiFunctions.Parse.Replacement("foo", "", true, true, true, true, RegexOptions.None, "");

            WikiFunctions.Parse.FindandReplace fr = new FindandReplace();

            bool changemade = false;

            Assert.AreEqual(fr.PerformFindAndReplace(r, "the was", "Test", out changemade), "the was");
            Assert.IsFalse(changemade);
            Assert.AreEqual(null, fr.ReplacedSummary, "No match: no edit summary");
            Assert.AreEqual(null, fr.RemovedSummary, "No match: no edit summary");

            Assert.AreEqual(fr.PerformFindAndReplace(r, "the foo was", "Test", out changemade), "the  was");
            Assert.IsTrue(changemade);
            Assert.AreEqual("foo", fr.RemovedSummary, "One match: removed a");

            fr = new FindandReplace();
            changemade = false;

            Assert.AreEqual(fr.PerformFindAndReplace(r, "the foo was or foo was", "Test", out changemade), "the  was or  was");
            Assert.AreEqual("foo (2)", fr.RemovedSummary, "Match count shown");

            r = new WikiFunctions.Parse.Replacement("foot?", "", true, true, true, true, RegexOptions.None, "");
            fr = new FindandReplace();
            changemade = false;

            Assert.AreEqual(fr.PerformFindAndReplace(r, "the foot was or foo was", "Test", out changemade), "the  was or  was");
            Assert.IsTrue(changemade);
            Assert.AreEqual("foot (2)", fr.RemovedSummary, "Different matches, match text of first used");
        }
Exemple #2
0
        public void FindAndReplaceNewLines()
        {
            // regex
            WikiFunctions.Parse.Replacement r = new WikiFunctions.Parse.Replacement("foo\n", "bar ", true, true, true, true, RegexOptions.None, "");
            WikiFunctions.Parse.FindandReplace fr = new FindandReplace();
            bool changemade = false;

            Assert.AreEqual("the bar was", fr.PerformFindAndReplace(r, "the foo\nwas", "Test", out changemade));
            Assert.IsTrue(changemade);

            // not regex
            r = new WikiFunctions.Parse.Replacement("foo\n", "bar ", false, true, true, true, RegexOptions.None, "");
            Assert.AreEqual("the bar was", fr.PerformFindAndReplace(r, "the foo\nwas", "Test", out changemade));
            Assert.IsTrue(changemade);
        }
Exemple #3
0
        public void FindAndReplaceProperties()
        {
            WikiFunctions.Parse.Replacement r = new WikiFunctions.Parse.Replacement("foo", "bar", true, true, true, true, RegexOptions.None, "");
            WikiFunctions.Parse.Replacement r2 = new WikiFunctions.Parse.Replacement("foo2", "bar2", true, true, true, false, RegexOptions.None, "");
            WikiFunctions.Parse.Replacement r2Disabled = new WikiFunctions.Parse.Replacement("foo2", "bar2", true, false, true, false, RegexOptions.None, "");
            WikiFunctions.Parse.FindandReplace fr = new FindandReplace();

            fr.AddNew(r);
            Assert.IsTrue(fr.HasAfterProcessingReplacements);
            Assert.IsTrue(fr.HasProcessingReplacements(true));
            Assert.IsFalse(fr.HasProcessingReplacements(false));

            fr.AddNew(r2);
            Assert.IsTrue(fr.HasAfterProcessingReplacements);
            Assert.IsTrue(fr.HasProcessingReplacements(true));
            Assert.IsTrue(fr.HasProcessingReplacements(false));

            fr.Clear();
            fr.AddNew(r2);
            Assert.IsFalse(fr.HasAfterProcessingReplacements);
            Assert.IsFalse(fr.HasProcessingReplacements(true));
            Assert.IsTrue(fr.HasProcessingReplacements(false));

            // all false when no enabled rules
            fr.Clear();
            fr.AddNew(r2Disabled);
            Assert.IsFalse(fr.HasAfterProcessingReplacements);
            Assert.IsFalse(fr.HasProcessingReplacements(true));
            Assert.IsFalse(fr.HasProcessingReplacements(false));

            fr.Clear();
            List<WikiFunctions.Parse.Replacement> l = new List<Replacement>();
            l.Add(r);
            l.Add(r2);
            fr.AddNew(l);
            Assert.IsTrue(fr.HasReplacements);
            Assert.AreEqual(fr.GetList(), l);
        }
Exemple #4
0
        public void FindAndReplace()
        {
            WikiFunctions.Parse.Replacement r = new WikiFunctions.Parse.Replacement("foo", "bar", true, true, true, true, RegexOptions.None, "");

            WikiFunctions.Parse.FindandReplace fr = new FindandReplace();

            bool changemade = false;

            Assert.AreEqual(fr.PerformFindAndReplace(r, "the was", "Test", out changemade), "the was");
            Assert.IsFalse(changemade);
            Assert.AreEqual(null, fr.ReplacedSummary, "No match: no edit summary");

            Assert.AreEqual(fr.PerformFindAndReplace(r, "the foo was", "Test", out changemade), "the bar was");
            Assert.IsTrue(changemade);
            Assert.AreEqual("foo" + WikiFunctions.Parse.FindandReplace.Arrow + "bar", fr.ReplacedSummary, "One match: a to b");

            fr = new FindandReplace();
            changemade = false;

            Assert.AreEqual(fr.PerformFindAndReplace(r, "the foo was or foo was", "Test", out changemade), "the bar was or bar was");
            Assert.AreEqual("foo" + WikiFunctions.Parse.FindandReplace.Arrow + "bar (2)", fr.ReplacedSummary, "Match count shown");

            fr = new FindandReplace();
            changemade = false;

            Assert.AreEqual(fr.PerformFindAndReplace(r, "the foo was or foo was foo", "Test", out changemade), "the bar was or bar was bar");
            Assert.AreEqual("foo" + WikiFunctions.Parse.FindandReplace.Arrow + "bar (3)", fr.ReplacedSummary, "Match count shown, 3");

            r = new WikiFunctions.Parse.Replacement("foot?", "bar", true, true, true, true, RegexOptions.None, "");
            fr = new FindandReplace();
            changemade = false;

            Assert.AreEqual(fr.PerformFindAndReplace(r, "the foot was or foo was", "Test", out changemade), "the bar was or bar was");
            Assert.IsTrue(changemade);
            Assert.AreEqual("foot" + WikiFunctions.Parse.FindandReplace.Arrow + "bar (2)", fr.ReplacedSummary, "Different matches, match text of first used");

            r = new WikiFunctions.Parse.Replacement("fooo?", "foo", true, true, true, true, RegexOptions.None, "");
            fr = new FindandReplace();
            changemade = false;
            Assert.AreEqual(fr.PerformFindAndReplace(r, "the foo was a fooo it", "Test", out changemade), "the foo was a foo it");
            Assert.IsTrue(changemade);
            Assert.AreEqual("fooo" + WikiFunctions.Parse.FindandReplace.Arrow + "foo", fr.ReplacedSummary, "No-change match ignored");

            fr = new FindandReplace();
            changemade = false;
            Assert.AreEqual(fr.PerformFindAndReplace(r, "the foo was", "Test", out changemade), "the foo was");
            Assert.IsFalse(changemade, "only match is no-change on replace, so no change made");
            Assert.AreEqual(null, fr.ReplacedSummary, "Only match is No-change match, no edit summary");
        }