From b8e5c36782518cf819936c58ebdc400e47c1243f Mon Sep 17 00:00:00 2001 From: Greg DiCristofaro <gregd@basistech.com> Date: Thu, 18 Feb 2021 12:31:03 -0500 Subject: [PATCH] fixing cr domain tests --- .../CorrelationAttributeNormalizerTest.java | 153 +++++++++--------- 1 file changed, 75 insertions(+), 78 deletions(-) diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/centralrepository/datamodel/CorrelationAttributeNormalizerTest.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/centralrepository/datamodel/CorrelationAttributeNormalizerTest.java index e1ef943864..1aeafd1763 100644 --- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/centralrepository/datamodel/CorrelationAttributeNormalizerTest.java +++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/centralrepository/datamodel/CorrelationAttributeNormalizerTest.java @@ -19,6 +19,8 @@ */ package org.sleuthkit.autopsy.centralrepository.datamodel; +import java.util.Arrays; +import java.util.List; import junit.framework.Test; import org.junit.Assert; import org.netbeans.junit.NbModuleSuite; @@ -84,90 +86,85 @@ public void testValidateMd5() { private static final String WE_EXPECT_AN_EXCEPTION_HERE = "We expect an exception here."; private static final String THIS_SHOULD_HAVE_THROWN_AN_EXCEPTION = "This should have thrown an exception."; - public void testValidateDomain() { - final String goodDomainOne = "www.test.com"; //should pass - final String badDomainTwo = "http://www.test.com"; //should fail (includes protocol) - final String goodDomainThree = "test.com"; //should pass - final String badDomainFour = "http://1270.0.1"; //should fail - final String badDomainFive = "?>\\/)(*&.com"; //should fail - final String badDomainSix = null; //should fail - final String badDomainSeven = ""; //should fail - final String badDomainEight = "HTTP://tests.com"; //should fail - final String badDomainNine = "http://www.test.com/aPage?aQuestion=aParam&anotherQuestion=anotherParam"; //should fail - final String goodDomainTen = "WWW.TEST.COM"; //should pass but be lowered - final String goodDomainEleven = "TEST.COM"; //should pass but be lowered + /** + * Class for organizing records of successfully parsing and fail to parse + * domains. + */ + private static class DomainData { - final int DOMAIN_TYPE_ID = CorrelationAttributeInstance.DOMAIN_TYPE_ID; + private final String originalString; + private final String resultDomain; + private final boolean shouldParse; - try { - assertTrue(THIS_DOMAIN_SHOULD_PASS, CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, goodDomainOne).equals(goodDomainOne)); - } catch (CorrelationAttributeNormalizationException ex) { - Exceptions.printStackTrace(ex); - fail(ex.getMessage()); - } - try { - CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, badDomainTwo); - fail(THIS_SHOULD_HAVE_THROWN_AN_EXCEPTION); - } catch (CorrelationAttributeNormalizationException ex) { - assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); - } - try { - assertTrue(THIS_DOMAIN_SHOULD_PASS, CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, goodDomainThree).equals(goodDomainThree)); - } catch (CorrelationAttributeNormalizationException ex) { - Exceptions.printStackTrace(ex); - fail(ex.getMessage()); - } - try { - assertTrue(THIS_DOMAIN_SHOULD_PASS, CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, badDomainFour).equals(badDomainFour)); - fail(THIS_SHOULD_HAVE_THROWN_AN_EXCEPTION); - } catch (CorrelationAttributeNormalizationException ex) { - assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); - } - try { - CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, badDomainFive); - fail(THIS_SHOULD_HAVE_THROWN_AN_EXCEPTION); - } catch (CorrelationAttributeNormalizationException ex) { - assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); + static DomainData fail(String originalString) { + return new DomainData(originalString, null, false); } - try { - CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, badDomainSix); - fail(THIS_SHOULD_HAVE_THROWN_AN_EXCEPTION); - } catch (CorrelationAttributeNormalizationException ex) { - assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); - } - try { - CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, badDomainSeven); - fail(THIS_SHOULD_HAVE_THROWN_AN_EXCEPTION); - } catch (CorrelationAttributeNormalizationException ex) { - assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); + + static DomainData pass(String originalString, String resultDomain) { + return new DomainData(originalString, resultDomain, true); } - try { - CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, badDomainEight); - fail("This should have thrown an exception"); - } catch (CorrelationAttributeNormalizationException ex) { - assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); + + private DomainData(String originalString, String resultDomain, boolean shouldParse) { + this.originalString = originalString; + this.resultDomain = resultDomain; + this.shouldParse = shouldParse; } - try { - CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, badDomainNine); - fail("This should have thrown an exception"); - } catch (CorrelationAttributeNormalizationException ex) { - assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); + + String getOriginalString() { + return originalString; } - try { - assertTrue(THIS_DOMAIN_SHOULD_PASS, CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, goodDomainTen).equals(goodDomainTen.toLowerCase())); - } catch (CorrelationAttributeNormalizationException ex) { - Exceptions.printStackTrace(ex); - fail(ex.getMessage()); + + String getResultDomain() { + return resultDomain; } - try { - assertTrue(THIS_DOMAIN_SHOULD_PASS, CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, goodDomainEleven).equals(goodDomainEleven.toLowerCase())); - } catch (CorrelationAttributeNormalizationException ex) { - Exceptions.printStackTrace(ex); - fail(ex.getMessage()); + + boolean shouldParse() { + return shouldParse; } } + private static final String THIS_DOMAIN_SHOULD_PASS = "This domain should pass."; + private static final List<DomainData> DOMAIN_DATA = Arrays.asList( + DomainData.pass("www.test.com", "test.com"), + DomainData.fail("http://www.test.com"), + DomainData.pass("test.com", "test.com"), + DomainData.fail("http://1270.0.1"), + DomainData.fail("?>\\/)(*&.com"), + DomainData.fail(null), + DomainData.fail(""), + DomainData.fail("HTTP://tests.com"), + DomainData.fail("http://www.test.com/aPage?aQuestion=aParam&anotherQuestion=anotherParam"), + DomainData.pass("WWW.TEST.COM", "test.com"), + DomainData.pass("TEST.COM", "test.com") + ); + + public void testValidateDomain() { + final int DOMAIN_TYPE_ID = CorrelationAttributeInstance.DOMAIN_TYPE_ID; + for (DomainData item : DOMAIN_DATA) { + if (item.shouldParse()) { + String input = item.getOriginalString(); + String expected = item.getResultDomain(); + try { + String normalizedDomain = CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, input); + assertTrue(String.format("Expected domain '%s' to be normalized, but was null.", item.getOriginalString()), normalizedDomain != null); + assertTrue(String.format("Was unable to normalize domain '%s' to '%s' but received %s instead.", input, expected, normalizedDomain), normalizedDomain.equals(expected)); + } catch (CorrelationAttributeNormalizationException ex) { + Exceptions.printStackTrace(ex); + fail(String.format("Unable to properly parse %s to %s. Received: %s", input, expected, ex.getMessage())); + } + + } else { + try { + CorrelationAttributeNormalizer.normalize(DOMAIN_TYPE_ID, item.getOriginalString()); + fail(String.format("Original string: '%s' should have failed to parse.", item.getOriginalString())); + } catch (CorrelationAttributeNormalizationException ex) { + assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); + } + } + } + } + public void testValidateEmail() { final String goodEmailOne = "bsweeney@cipehrtechsolutions.com"; //should pass final String goodEmailTwo = "BSWEENEY@ciphertechsolutions.com"; //should pass and be lowered @@ -232,7 +229,7 @@ public void testValidatePhone() { final String goodPnSeven = "+1(978) 474-0486"; final String badPnEight = "asdfasdfasdf"; final String badPnNine = "asdf19784740486adsf"; - + final int PHONE_TYPE_ID = CorrelationAttributeInstance.PHONE_TYPE_ID; try { @@ -263,7 +260,7 @@ public void testValidatePhone() { CorrelationAttributeNormalizer.normalize(PHONE_TYPE_ID, badPnFive); //fail("This should have thrown an exception."); //this will eventually pass when we do a better job at this } catch (CorrelationAttributeNormalizationException ex) { - assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); + assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); } try { assertTrue(THIS_PHONE_NUMBER_SHOULD_PASS, CorrelationAttributeNormalizer.normalize(PHONE_TYPE_ID, goodPnSix).equals(goodPnThree)); @@ -281,13 +278,13 @@ public void testValidatePhone() { CorrelationAttributeNormalizer.normalize(PHONE_TYPE_ID, badPnEight); fail("This should have thrown an exception."); } catch (CorrelationAttributeNormalizationException ex) { - assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); + assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); } try { CorrelationAttributeNormalizer.normalize(PHONE_TYPE_ID, badPnNine); fail("This should have thrown an exception."); } catch (CorrelationAttributeNormalizationException ex) { - assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); + assertTrue(WE_EXPECT_AN_EXCEPTION_HERE, true); } } private static final String THIS_PHONE_NUMBER_SHOULD_PASS = "This phone number should pass."; @@ -302,7 +299,7 @@ public void testValidateUsbId() { final String goodIdSix = "0202 AAFF"; //should pass final String goodIdSeven = "0202AAFF"; //should pass final String goodIdEight = "0202-AAFF"; //should pass*/ - + final int USBID_TYPE_ID = CorrelationAttributeInstance.USBID_TYPE_ID; try { -- GitLab