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) ); }
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) ); }