1 7 22 23 package de.schlichtherle.key.passwd.swing; 24 25 import java.io.*; 26 import java.util.*; 27 28 import javax.swing.*; 29 30 import junit.framework.*; 31 32 import org.netbeans.jemmy.*; 33 import org.netbeans.jemmy.operators.*; 34 import org.netbeans.jemmy.util.*; 35 36 41 public class CreateKeyPanelTest extends TestCase { 42 static { 43 JemmyProperties.setCurrentOutput(TestOut.getNullOutput()); } 45 46 private CreateKeyPanel instance; 47 private JFrameOperator frame; 48 private JLabelOperator errorLabel; 49 private final ComponentChooser keyFileChooser 50 = new NameComponentChooser("keyFileChooser"); 51 52 public CreateKeyPanelTest(String testName) { 53 super(testName); 54 } 55 56 protected void setUp() throws Exception { 57 instance = new CreateKeyPanel(); 58 frame = showInstanceInFrame(); 59 errorLabel = findErrorLabel(frame); 60 61 } 62 63 protected void tearDown() throws Exception { 64 frame.setVisible(false); 65 } 66 67 private JFrameOperator showInstanceInFrame() { 68 final JFrame frame = new JFrame(); 69 frame.getContentPane().add(instance); 70 frame.pack(); 71 frame.setLocationRelativeTo(null); 72 frame.setVisible(true); 73 return new JFrameOperator(); 74 } 75 76 public void testResourceID() { 77 final String resourceID = "Hello world!"; 78 instance.setResourceID(resourceID); 79 assertEquals(resourceID, instance.getResourceID()); 80 81 new JTextComponentOperator(frame, resourceID); 82 } 83 84 87 public void testSetError() { 88 instance.setError("This is a test error message!"); 89 assertFalse(isBlank(errorLabel.getText())); 90 new JTextFieldOperator(frame).typeText("secret"); 91 assertTrue(isBlank(errorLabel.getText())); 92 93 instance.setError("This is a test error message!"); 94 assertFalse(isBlank(errorLabel.getText())); 95 new JTabbedPaneOperator(frame).selectPage(AuthenticationPanel.AUTH_KEY_FILE); new JButtonOperator(frame, keyFileChooser).push(); new JFileChooserOperator().chooseFile("file"); 98 assertTrue(isBlank(errorLabel.getText())); 99 } 100 101 private JLabelOperator findErrorLabel(final JFrameOperator frame) { 102 final String error = "error"; 103 instance.setError(error); 104 final JLabelOperator errorLabel = new JLabelOperator(frame, error); 105 ((JFrame) frame.getSource()).pack(); 106 instance.setError(null); 107 return errorLabel; 108 } 109 110 private static boolean isBlank(String s) { 111 return s == null || s.trim().length() <= 0; 112 } 113 114 117 public void testResetPasswd() { 118 new JPasswordFieldOperator(frame, 0).setText("foofoo"); 120 new JPasswordFieldOperator(frame, 1).setText("barbar"); 121 122 instance.resetPasswd(); 124 assertTrue("".equals(new JPasswordFieldOperator(frame, 0).getText())); 125 assertTrue("".equals(new JPasswordFieldOperator(frame, 1).getText())); 126 } 127 128 131 public void testPasswd() { 132 String passwd; 133 Object result; 134 135 result = instance.getCreateKey(); 137 assertNull(result); 138 assertFalse(isBlank(errorLabel.getText())); 139 140 new JPasswordFieldOperator(frame, 0).setText("foofoo"); 142 new JPasswordFieldOperator(frame, 1).setText("barbar"); 143 result = instance.getCreateKey(); 144 assertNull(result); 145 assertFalse(isBlank(errorLabel.getText())); 146 147 passwd = "secre"; new JPasswordFieldOperator(frame, 0).setText(passwd); 150 new JPasswordFieldOperator(frame, 1).setText(passwd); 151 result = instance.getCreateKey(); 152 assertNull(result); 153 assertFalse(isBlank(errorLabel.getText())); 154 155 passwd = "secret"; new JPasswordFieldOperator(frame, 0).setText(passwd); 158 new JPasswordFieldOperator(frame, 1).setText(passwd); 159 result = instance.getCreateKey(); 160 assertTrue(result instanceof char[]); 161 assertTrue(Arrays.equals(passwd.toCharArray(), (char[]) result)); 162 assertTrue(isBlank(errorLabel.getText())); 163 } 164 165 168 public void testGetFileAsCreateKey() { 169 new JTabbedPaneOperator(frame).selectPage(AuthenticationPanel.AUTH_KEY_FILE); 171 new JButtonOperator(frame, keyFileChooser).push(); new JFileChooserOperator().chooseFile("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"$%&/()=?"); 173 assertTrue(isBlank(errorLabel.getText())); 174 assertNull(instance.getCreateKey()); 175 assertFalse(isBlank(errorLabel.getText())); 176 177 new JButtonOperator(frame, keyFileChooser).push(); JFileChooserOperator fc = new JFileChooserOperator(); 179 File[] files = fc.getFiles(); 180 fc.cancel(); 182 for (int i = 0, l = files.length; i < l; i++) { 183 final File file = files[i]; 184 if (!file.isFile()) 185 continue; 186 187 new JButtonOperator(frame, keyFileChooser).push(); fc = new JFileChooserOperator(); 189 fc.setSelectedFile(file); 190 fc.approve(); 191 final Object key = instance.getCreateKey(); 192 if (key != null) { 193 assertTrue(key instanceof byte[]); 194 assertTrue(isBlank(errorLabel.getText())); 195 } else { 196 assertFalse(isBlank(errorLabel.getText())); 197 } 198 } 199 } 200 201 204 public void testExtraDataUI() { 205 final JComponent ui = new AesKeyStrengthPanel(); 206 instance.setExtraDataUI(ui); 207 frame.pack(); 208 assertSame(ui, instance.getExtraDataUI()); 209 210 new JComboBoxOperator(frame); } 212 } 213 | Popular Tags |