123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- /*
- * Copyright (C) 2019, Thomas Wolf <thomas.wolf@paranor.ch> and others
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Distribution License v. 1.0 which is available at
- * https://www.eclipse.org/org/documents/edl-v10.php.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- package org.eclipse.jgit.gpg.bc.internal;
-
- import static org.junit.Assert.assertFalse;
- import static org.junit.Assert.assertTrue;
-
- import java.util.Locale;
-
- import org.junit.Test;
-
- public class BouncyCastleGpgKeyLocatorTest {
-
- private static final String USER_ID = "Heinrich Heine <heinrichh@uni-duesseldorf.de>";
-
- private static boolean match(String userId, String pattern) {
- return BouncyCastleGpgKeyLocator.containsSigningKey(userId, pattern);
- }
-
- @Test
- public void testFullMatch() throws Exception {
- assertTrue(match(USER_ID,
- "=Heinrich Heine <heinrichh@uni-duesseldorf.de>"));
- assertFalse(match(USER_ID, "=Heinrich Heine"));
- assertFalse(match(USER_ID, "= "));
- assertFalse(match(USER_ID, "=heinrichh@uni-duesseldorf.de"));
- }
-
- @Test
- public void testEmpty() throws Exception {
- assertFalse(match(USER_ID, ""));
- assertFalse(match(USER_ID, null));
- assertFalse(match("", ""));
- assertFalse(match(null, ""));
- assertFalse(match(null, null));
- assertFalse(match("", "something"));
- assertFalse(match(null, "something"));
- }
-
- @Test
- public void testFullEmail() throws Exception {
- assertTrue(match(USER_ID, "<heinrichh@uni-duesseldorf.de>"));
- assertTrue(match(USER_ID + " ", "<heinrichh@uni-duesseldorf.de>"));
- assertFalse(match(USER_ID, "<>"));
- assertFalse(match(USER_ID, "<h>"));
- assertFalse(match(USER_ID, "<heinrichh>"));
- assertFalse(match(USER_ID, "<uni-duesseldorf>"));
- assertFalse(match(USER_ID, "<h@u>"));
- assertFalse(match(USER_ID, "<HeinrichH@uni-duesseldorf.de>"));
- assertFalse(match(USER_ID.substring(0, USER_ID.length() - 1),
- "<heinrichh@uni-duesseldorf.de>"));
- assertFalse(match("", "<>"));
- assertFalse(match("", "<heinrichh@uni-duesseldorf.de>"));
- }
-
- @Test
- public void testPartialEmail() throws Exception {
- assertTrue(match(USER_ID, "@heinrichh@uni-duesseldorf.de"));
- assertTrue(match(USER_ID, "@heinrichh"));
- assertTrue(match(USER_ID, "@duesseldorf"));
- assertTrue(match(USER_ID, "@uni-d"));
- assertTrue(match(USER_ID, "@h"));
- assertTrue(match(USER_ID, "@."));
- assertTrue(match(USER_ID, "@h@u"));
- assertFalse(match(USER_ID, "@ "));
- assertFalse(match(USER_ID, "@"));
- assertFalse(match(USER_ID, "@Heine"));
- assertFalse(match(USER_ID, "@HeinrichH"));
- assertFalse(match(USER_ID, "@Heinrich"));
- assertFalse(match("", "@"));
- assertFalse(match("", "@h"));
- }
-
- private void substringTests(String prefix) throws Exception {
- assertTrue(match(USER_ID, prefix + "heinrichh@uni-duesseldorf.de"));
- assertTrue(match(USER_ID, prefix + "heinrich"));
- assertTrue(match(USER_ID, prefix + "HEIN"));
- assertTrue(match(USER_ID, prefix + "Heine <"));
- assertTrue(match(USER_ID, prefix + "UNI"));
- assertTrue(match(USER_ID, prefix + "uni"));
- assertTrue(match(USER_ID, prefix + "rich He"));
- assertTrue(match(USER_ID, prefix + "h@u"));
- assertTrue(match(USER_ID, prefix + USER_ID));
- assertTrue(match(USER_ID, prefix + USER_ID.toUpperCase(Locale.ROOT)));
- assertFalse(match(USER_ID, prefix + ""));
- assertFalse(match(USER_ID, prefix + " "));
- assertFalse(match(USER_ID, prefix + "yy"));
- assertFalse(match("", prefix + ""));
- assertFalse(match("", prefix + "uni"));
- }
-
- @Test
- public void testSubstringPlain() throws Exception {
- substringTests("");
- }
-
- @Test
- public void testSubstringAsterisk() throws Exception {
- substringTests("*");
- }
-
- @Test
- public void testExplicitFingerprint() throws Exception {
- assertFalse(match("John Fade <j.fade@example.com>", "0xfade"));
- assertFalse(match("John Fade <0xfade@example.com>", "0xfade"));
- assertFalse(match("", "0xfade"));
- }
-
- @Test
- public void testImplicitFingerprint() throws Exception {
- assertTrue(match("John Fade <j.fade@example.com>", "fade"));
- assertTrue(match("John Fade <0xfade@example.com>", "fade"));
- assertTrue(match("John Fade <j.fade@example.com>", "FADE"));
- assertTrue(match("John Fade <0xfade@example.com>", "FADE"));
- }
-
- @Test
- public void testZeroX() throws Exception {
- assertTrue(match("John Fade <0xfade@example.com>", "0x"));
- assertTrue(match("John Fade <0xfade@example.com>", "*0x"));
- assertTrue(match("John Fade <0xfade@example.com>", "*0xfade"));
- assertTrue(match("John Fade <0xfade@example.com>", "*0xFADE"));
- assertTrue(match("John Fade <0xfade@example.com>", "@0xfade"));
- assertFalse(match("John Fade <0xfade@example.com>", "@0xFADE"));
- assertFalse(match("", "0x"));
- }
- }
|