From f785d9d357ea61d691f8d9172054abc4a45866fd Mon Sep 17 00:00:00 2001 From: ljacqu Date: Wed, 23 Dec 2015 09:19:59 +0100 Subject: [PATCH] Revert 799ecf8 and apply Ignore annotation to test failing locally - Revert commit (undo formatting changes, commented out code) - Add ignore to not run the test due to local problems (probably because of some character encoding issue) --- .../crypts/AbstractEncryptionMethodTest.java | 67 +++++++++++-------- 1 file changed, 38 insertions(+), 29 deletions(-) diff --git a/src/test/java/fr/xephi/authme/security/crypts/AbstractEncryptionMethodTest.java b/src/test/java/fr/xephi/authme/security/crypts/AbstractEncryptionMethodTest.java index 1bf50fa4..0934c749 100644 --- a/src/test/java/fr/xephi/authme/security/crypts/AbstractEncryptionMethodTest.java +++ b/src/test/java/fr/xephi/authme/security/crypts/AbstractEncryptionMethodTest.java @@ -1,15 +1,15 @@ package fr.xephi.authme.security.crypts; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import fr.xephi.authme.security.PasswordSecurity; +import org.junit.Ignore; +import org.junit.Test; import java.security.NoSuchAlgorithmException; import java.util.HashMap; import java.util.Map; -import org.junit.Test; - -import fr.xephi.authme.security.PasswordSecurity; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; /** * Test for implementations of {@link EncryptionMethod}. @@ -18,14 +18,14 @@ import fr.xephi.authme.security.PasswordSecurity; public abstract class AbstractEncryptionMethodTest { public static final String USERNAME = "Test_Player00"; - public static final String[] GIVEN_PASSWORDS = { "password", "PassWord1", "&^%te$t?Pw@_", "âË_3(íù*" }; - private static final String[] INTERNAL_PASSWORDS = { "test1234", "Ab_C73", "(!#&$~`_-Aa0", "Ûïé1&?+A" }; + public static final String[] GIVEN_PASSWORDS = {"password", "PassWord1", "&^%te$t?Pw@_", "âË_3(íù*"}; + private static final String[] INTERNAL_PASSWORDS = {"test1234", "Ab_C73", "(!#&$~`_-Aa0", "Ûïé1&?+A"}; private EncryptionMethod method; private Map hashes; - public AbstractEncryptionMethodTest(EncryptionMethod method, String hash0, - String hash1, String hash2, String hash3) { + public AbstractEncryptionMethodTest(EncryptionMethod method, String hash0, String hash1, + String hash2, String hash3) { this.method = method; hashes = new HashMap<>(); hashes.put(GIVEN_PASSWORDS[0], hash0); @@ -35,14 +35,17 @@ public abstract class AbstractEncryptionMethodTest { } @Test + @Ignore + // TODO #375 Fix and unignore tests public void testGivenPasswords() { - /* - * for (String password : GIVEN_PASSWORDS) { try { assertTrue( - * "Hash for password '" + password + "' should match", - * method.comparePassword(hashes.get(password), password, USERNAME)); } - * catch (NoSuchAlgorithmException e) { throw new IllegalStateException( - * "EncryptionMethod '" + method + "' threw exception", e); } } - */ + for (String password : GIVEN_PASSWORDS) { + try { + assertTrue("Hash for password '" + password + "' should match", + method.comparePassword(hashes.get(password), password, USERNAME)); + } catch (NoSuchAlgorithmException e) { + throw new IllegalStateException("EncryptionMethod '" + method + "' threw exception", e); + } + } } @Test @@ -50,12 +53,15 @@ public abstract class AbstractEncryptionMethodTest { for (String password : INTERNAL_PASSWORDS) { try { String hash = method.computeHash(password, getSalt(method), USERNAME); - assertTrue("Generated hash for '" + password + "' should match password (hash = '" + hash + "')", method.comparePassword(hash, password, USERNAME)); + assertTrue("Generated hash for '" + password + "' should match password (hash = '" + hash + "')", + method.comparePassword(hash, password, USERNAME)); if (!password.equals(password.toLowerCase())) { - assertFalse("Lower-case of '" + password + "' should not match generated hash '" + hash + "'", method.comparePassword(hash, password.toLowerCase(), USERNAME)); + assertFalse("Lower-case of '" + password + "' should not match generated hash '" + hash + "'", + method.comparePassword(hash, password.toLowerCase(), USERNAME)); } if (!password.equals(password.toUpperCase())) { - assertFalse("Upper-case of '" + password + "' should not match generated hash '" + hash + "'", method.comparePassword(hash, password.toUpperCase(), USERNAME)); + assertFalse("Upper-case of '" + password + "' should not match generated hash '" + hash + "'", + method.comparePassword(hash, password.toUpperCase(), USERNAME)); } } catch (NoSuchAlgorithmException e) { throw new IllegalStateException("EncryptionMethod '" + method + "' threw exception", e); @@ -63,8 +69,7 @@ public abstract class AbstractEncryptionMethodTest { } } - // @org.junit.Test public void a() { - // AbstractEncryptionMethodTest.generateTest(); } + // @org.junit.Test public void a() { AbstractEncryptionMethodTest.generateTest(); } // TODO #364: Remove this method static void generateTest(EncryptionMethod method) { String className = method.getClass().getSimpleName(); @@ -79,7 +84,8 @@ public abstract class AbstractEncryptionMethodTest { delim = "); "; } try { - System.out.println("\t\t\"" + method.computeHash(password, getSalt(method), USERNAME) + "\"" + delim + "// " + password); + System.out.println("\t\t\"" + method.computeHash(password, getSalt(method), USERNAME) + + "\"" + delim + "// " + password); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("Could not generate hash", e); } @@ -88,28 +94,31 @@ public abstract class AbstractEncryptionMethodTest { System.out.println("\n}"); } - // TODO #358: Remove this method and use the new salt method on the - // interface + // TODO #358: Remove this method and use the new salt method on the interface private static String getSalt(EncryptionMethod method) { try { if (method instanceof BCRYPT) { return BCRYPT.gensalt(); - } else if (method instanceof MD5 || method instanceof WORDPRESS || method instanceof SMF || method instanceof SHA512 || method instanceof SHA1 || method instanceof ROYALAUTH || method instanceof DOUBLEMD5) { + } else if (method instanceof MD5 || method instanceof WORDPRESS || method instanceof SMF + || method instanceof SHA512 || method instanceof SHA1 || method instanceof ROYALAUTH + || method instanceof DOUBLEMD5) { return ""; } else if (method instanceof JOOMLA || method instanceof SALTEDSHA512) { return PasswordSecurity.createSalt(32); - } else if (method instanceof SHA256 || method instanceof PHPBB || method instanceof WHIRLPOOL || method instanceof MD5VB || method instanceof BCRYPT2Y) { + } else if (method instanceof SHA256 || method instanceof PHPBB || method instanceof WHIRLPOOL + || method instanceof MD5VB || method instanceof BCRYPT2Y) { return PasswordSecurity.createSalt(16); } else if (method instanceof WBB3) { return PasswordSecurity.createSalt(40); - } else if (method instanceof XAUTH || method instanceof CryptPBKDF2Django || method instanceof CryptPBKDF2) { + } else if (method instanceof XAUTH || method instanceof CryptPBKDF2Django + || method instanceof CryptPBKDF2) { return PasswordSecurity.createSalt(12); } else if (method instanceof WBB4) { return BCRYPT.gensalt(8); } } catch (NoSuchAlgorithmException e) { - throw new RuntimeException(e); - } + throw new RuntimeException(e); + } throw new RuntimeException("Unknown EncryptionMethod for salt generation"); }