예제 #1
0
        public void ResolveSinglePlaceHolder_WholeValue()
        {
            var resolver = new PlaceholderResolver(GetConfig());
            var thevalue = resolver.ResolveItem("ParameterizedValue", "FallBack Value");

            Assert.AreEqual("NewValue", thevalue, "String should be NewValue");
        }
예제 #2
0
 public void TestBasicUrlComponents()
 {
     string basicUrl = "http://www.example.com/path";
     Assert.AreEqual(
         "www.example.com/path",
         PlaceholderResolver.GetUrlComponent(basicUrl, "RMVSCM")
     );
     Assert.AreEqual(
         "http",
         PlaceholderResolver.GetUrlComponent(basicUrl, "SCM")
     );
     Assert.AreEqual(
         string.Empty,
         PlaceholderResolver.GetUrlComponent(basicUrl, "USERINFO")
     );
     Assert.AreEqual(
         "www.example.com",
         PlaceholderResolver.GetUrlComponent(basicUrl, "HOST")
     );
     Assert.AreEqual(
         "80",
         PlaceholderResolver.GetUrlComponent(basicUrl, "PORT")
     );
     Assert.AreEqual(
         "/path",
         PlaceholderResolver.GetUrlComponent(basicUrl, "PATH")
     );
     Assert.AreEqual(
         string.Empty,
         PlaceholderResolver.GetUrlComponent(basicUrl, "QUERY")
     );
 }
예제 #3
0
        public void PlaceholderTest()
        {
            IKeePassEntry entry = GetTestEntry();

            Assert.AreEqual(
                $"this is a test string with scheme http and {entry.Title.ClearValue}",
                PlaceholderResolver.Resolve("this is a test string {C:comment here}with scheme {URL:SCM} and {TITLE}", entry)
            );
        }
예제 #4
0
        public void TestBadUrlComponents()
        {
            // Bad URL
            Assert.AreEqual(
                string.Empty,
                PlaceholderResolver.GetUrlComponent("foo//bar", "SCM")
            );

            // Bad component
            Assert.IsNull(PlaceholderResolver.GetUrlComponent("http://example.com", "FOO"));
        }
예제 #5
0
 public void BadPlaceholders()
 {
     IKeePassEntry entry = GetTestEntry();
     Assert.AreEqual(
         "foo{username",
         PlaceholderResolver.Resolve("foo{username", entry)
     );
     Assert.AreEqual(
         "foo{username{",
         PlaceholderResolver.Resolve("foo{username{", entry)
     );
     Assert.AreEqual(
         "foo{BAR}",
         PlaceholderResolver.Resolve("foo{BAR}", entry)
     );
     Assert.AreEqual(
         $"{{USERNAME{entry.UserName.ClearValue}}}",
         PlaceholderResolver.Resolve("{USERNAME{UsErnAME}}", entry)
     );
     Assert.AreEqual(
         $"{entry.Password.ClearValue}}}{{{entry.Title.ClearValue}",
         PlaceholderResolver.Resolve("{pASsword}}{{TITLE}", entry)
     );
     Assert.AreEqual(
         $"{{{{{{{{{entry.Password.ClearValue}{{}}{{}}}}}}}}}}}}}}}}{{{{}}{{",
         PlaceholderResolver.Resolve("{{{{{PASSWORD}{}{}}}}}}}}{{}{", entry)
     );
     Assert.AreEqual(
         "{C}",
         PlaceholderResolver.Resolve("{C}", entry)
     );
     Assert.AreEqual(
         string.Empty,
         PlaceholderResolver.Resolve("{C:}", entry)
     );
     Assert.AreEqual(
         string.Empty,
         PlaceholderResolver.Resolve("{C::asdf:::}", entry)
     );
 }
예제 #6
0
 public void KeePassTestVectors()
 {
     string url = "http://*****:*****@keepass.info:81/path/example.php?q=e&s=t";
     Assert.AreEqual(
         "user:[email protected]:81/path/example.php?q=e&s=t",
         PlaceholderResolver.GetUrlComponent(url, "RMVSCM")
     );
     Assert.AreEqual(
         "http",
         PlaceholderResolver.GetUrlComponent(url, "SCM")
     );
     Assert.AreEqual(
         "user:pw",
         PlaceholderResolver.GetUrlComponent(url, "USERINFO")
     );
     Assert.AreEqual(
         "user",
         PlaceholderResolver.GetUrlComponent(url, "USERNAME")
     );
     Assert.AreEqual(
         "pw",
         PlaceholderResolver.GetUrlComponent(url, "PASSWORD")
     );
     Assert.AreEqual(
         "keepass.info",
         PlaceholderResolver.GetUrlComponent(url, "HOST")
     );
     Assert.AreEqual(
         "81",
         PlaceholderResolver.GetUrlComponent(url, "PORT")
     );
     Assert.AreEqual(
         "/path/example.php",
         PlaceholderResolver.GetUrlComponent(url, "PATH")
     );
     Assert.AreEqual(
         "?q=e&s=t",
         PlaceholderResolver.GetUrlComponent(url, "QUERY")
     );
 }
예제 #7
0
 public void TestMoreComplexUrlComponents()
 {
     string complexUrl = "https://[email protected]:1337/path/path?query=flaf";
     Assert.AreEqual(
         "[email protected]:1337/path/path?query=flaf",
         PlaceholderResolver.GetUrlComponent(complexUrl, "RMVSCM")
     );
     Assert.AreEqual(
         "https",
         PlaceholderResolver.GetUrlComponent(complexUrl, "SCM")
     );
     Assert.AreEqual(
         "sfuqua",
         PlaceholderResolver.GetUrlComponent(complexUrl, "USERINFO")
     );
     Assert.AreEqual(
         "sfuqua",
         PlaceholderResolver.GetUrlComponent(complexUrl, "USERNAME")
     );
     Assert.AreEqual(
         string.Empty,
         PlaceholderResolver.GetUrlComponent(complexUrl, "PASSWORD")
     );
     Assert.AreEqual(
         "host.bar.baz",
         PlaceholderResolver.GetUrlComponent(complexUrl, "HOST")
     );
     Assert.AreEqual(
         "1337",
         PlaceholderResolver.GetUrlComponent(complexUrl, "PORT")
     );
     Assert.AreEqual(
         "/path/path",
         PlaceholderResolver.GetUrlComponent(complexUrl, "PATH")
     );
     Assert.AreEqual(
         "?query=flaf",
         PlaceholderResolver.GetUrlComponent(complexUrl, "QUERY")
     );
 }
예제 #8
0
 public void TestComplexUrlComponents()
 {
     string complexUrl = "foo://*****:*****@host.bar.baz/path/path?query=flaf";
     Assert.AreEqual(
         "sfuqua:[email protected]/path/path?query=flaf",
         PlaceholderResolver.GetUrlComponent(complexUrl, "RMVSCM")
     );
     Assert.AreEqual(
         "foo",
         PlaceholderResolver.GetUrlComponent(complexUrl, "SCM")
     );
     Assert.AreEqual(
         "sfuqua:blah",
         PlaceholderResolver.GetUrlComponent(complexUrl, "USERINFO")
     );
     Assert.AreEqual(
         "sfuqua",
         PlaceholderResolver.GetUrlComponent(complexUrl, "USERNAME")
     );
     Assert.AreEqual(
         "blah",
         PlaceholderResolver.GetUrlComponent(complexUrl, "PASSWORD")
     );
     Assert.AreEqual(
         "host.bar.baz",
         PlaceholderResolver.GetUrlComponent(complexUrl, "HOST")
     );
     Assert.AreEqual(
         "-1",
         PlaceholderResolver.GetUrlComponent(complexUrl, "PORT")
     );
     Assert.AreEqual(
         "/path/path",
         PlaceholderResolver.GetUrlComponent(complexUrl, "PATH")
     );
     Assert.AreEqual(
         "?query=flaf",
         PlaceholderResolver.GetUrlComponent(complexUrl, "QUERY")
     );
 }
예제 #9
0
 public void Test_ContainsPlaceHolder_PlaceholderInMiddle()
 {
     Assert.IsTrue(PlaceholderResolver.ContainsPlaceholder("some text" + PlaceholderResolver.START + "NAME" + PlaceholderResolver.END + "some more text"));
 }
예제 #10
0
 public void Test_ContainsPlaceHolder_PlaceholderAtEnd()
 {
     Assert.IsTrue(PlaceholderResolver.ContainsPlaceholder("some text" + PlaceholderResolver.START + "NAME" + PlaceholderResolver.END));
 }
예제 #11
0
 public void Test_ContainsPlaceHolder_OnlyAPlaceholder()
 {
     Assert.IsTrue(PlaceholderResolver.ContainsPlaceholder(PlaceholderResolver.START + "NAME" + PlaceholderResolver.END));
 }