You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2013/10/14 19:18:05 UTC
[73/81] [abbrv] git commit: updated refs/heads/ui-restyle to e901b82
PasswordGenerator tests
- StringBuffer replaced with a StringBuilder
- tests added
Signed-off-by: Laszlo Hornyak <la...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/47dd1c1e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/47dd1c1e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/47dd1c1e
Branch: refs/heads/ui-restyle
Commit: 47dd1c1e95092d8bea9324f369c63b0b500073b2
Parents: b76e501
Author: Laszlo Hornyak <la...@gmail.com>
Authored: Thu Oct 10 22:01:06 2013 +0200
Committer: Laszlo Hornyak <la...@gmail.com>
Committed: Fri Oct 11 20:09:37 2013 +0200
----------------------------------------------------------------------
.../src/com/cloud/utils/PasswordGenerator.java | 2 +-
.../com/cloud/utils/PasswordGeneratorTest.java | 39 ++++++++++++++++++++
2 files changed, 40 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/47dd1c1e/utils/src/com/cloud/utils/PasswordGenerator.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/PasswordGenerator.java b/utils/src/com/cloud/utils/PasswordGenerator.java
index 2e1cb17..d1a5939 100644
--- a/utils/src/com/cloud/utils/PasswordGenerator.java
+++ b/utils/src/com/cloud/utils/PasswordGenerator.java
@@ -79,7 +79,7 @@ public class PasswordGenerator {
}
public static String rot13(final String password) {
- final StringBuffer newPassword = new StringBuffer("");
+ final StringBuilder newPassword = new StringBuilder(password.length());
for (int i = 0; i < password.length(); i++) {
char c = password.charAt(i);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/47dd1c1e/utils/test/com/cloud/utils/PasswordGeneratorTest.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/PasswordGeneratorTest.java b/utils/test/com/cloud/utils/PasswordGeneratorTest.java
new file mode 100644
index 0000000..50f9560
--- /dev/null
+++ b/utils/test/com/cloud/utils/PasswordGeneratorTest.java
@@ -0,0 +1,39 @@
+package com.cloud.utils;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class PasswordGeneratorTest {
+ @Test
+ public void generateRandomPassword() {
+ // actual length is requested length + 3
+ Assert.assertTrue(PasswordGenerator.generateRandomPassword(0).length() == 3);
+ Assert.assertTrue(PasswordGenerator.generateRandomPassword(1).length() == 4);
+ String password = PasswordGenerator.generateRandomPassword(0);
+ // TODO: this might give more help to bruteforcing than desired
+ // the actual behavior is that the first character is a random lowercase
+ // char
+ Assert.assertTrue(Character.isLowerCase(password.charAt(0)));
+ // the second character is a random upper case char
+ Assert.assertTrue(Character.isUpperCase(password.charAt(1)));
+ // and the third is a digit
+ Assert.assertTrue(Character.isDigit(password.charAt(2)));
+ }
+
+ @Test
+ public void rot13() {
+ // only letters are handled, numbers are unchanged
+ Assert.assertEquals("1234", PasswordGenerator.rot13("1234"));
+ // letters are moved by +-13 characters
+ Assert.assertEquals("nop", PasswordGenerator.rot13("abc"));
+ // the transformation it is reversable
+ Assert.assertEquals("abc", PasswordGenerator.rot13("nop"));
+ // which means for any string
+ Assert.assertEquals("abcdefghijklmnooprstuvxyzuv1234?",
+ PasswordGenerator.rot13(PasswordGenerator
+ .rot13("abcdefghijklmnooprstuvxyzuv1234?")));
+ // same for capital letters
+ Assert.assertEquals("ABC", PasswordGenerator.rot13("NOP"));
+ Assert.assertEquals("NOP", PasswordGenerator.rot13("ABC"));
+ }
+}