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