1 19 20 package java_editor_actions; 21 22 import java.awt.event.KeyEvent ; 23 import javax.swing.KeyStroke ; 24 import org.netbeans.jellytools.EditorOperator; 25 import org.netbeans.jemmy.operators.JEditorPaneOperator; 26 import editor_actions.EditorActionsTest; 27 28 65 public class JavaNavigationActionsTest extends JavaEditorActionsTest { 66 67 private JEditorPaneOperator txtOper; 68 private EditorOperator editor; 69 70 71 public JavaNavigationActionsTest(String testMethodName) { 72 super(testMethodName); 73 } 74 75 76 private ValueResolver getResolver(final JEditorPaneOperator txtOper, final int etalon){ 77 ValueResolver resolver = new ValueResolver(){ 78 public Object getValue(){ 79 int newCaretPos = txtOper.getCaretPosition(); 80 return (newCaretPos == etalon) ? Boolean.TRUE : Boolean.FALSE; 81 } 82 }; 83 84 return resolver; 85 } 86 87 88 private void checkActionByKeyStroke(int key, int mod, int caretPosToSet, int etalon, boolean checkSelection){ 89 editor.setCaretPosition(caretPosToSet); 90 txtOper.pushKey(key,mod); 91 waitMaxMilisForValue(1500, getResolver(txtOper, etalon), Boolean.TRUE); 92 int newCaretOffset = txtOper.getCaretPosition(); 93 if (checkSelection){ 94 int selectionStart = txtOper.getSelectionStart(); 95 int selectionEnd = txtOper.getSelectionEnd(); 96 if (selectionStart != Math.min(caretPosToSet, etalon) || 97 selectionEnd != Math.max(caretPosToSet, etalon)){ 98 String keyString = KeyStroke.getKeyStroke(key, mod).toString(); 99 fail(keyString+": Action failed: [etalon/newCaretOffset/selectionStart/selectionEnd]: ["+etalon+"/"+ 100 newCaretOffset+"/"+selectionStart+"/"+selectionEnd+"]"); 101 } 102 }else{ 103 if (etalon != newCaretOffset){ 104 String keyString = KeyStroke.getKeyStroke(key, mod).toString(); 105 fail(keyString+": Action failed: [etalon/newCaretOffset]: ["+etalon+"/"+ 106 newCaretOffset+"]"); 107 } 108 } 109 } 110 111 public void testStandardNavigationActions(){ 112 openDefaultProject(); 113 openDefaultSampleFile(); 114 try { 115 116 editor = getDefaultSampleEditorOperator(); 117 txtOper = editor.txtEditorPane(); 118 119 checkActionByKeyStroke(KeyEvent.VK_RIGHT, 0, 20, 21, false); 121 122 checkActionByKeyStroke(KeyEvent.VK_LEFT, 0, 20, 19, false); 124 125 126 checkActionByKeyStroke(KeyEvent.VK_DOWN, 0, 200, 231, false); 129 130 checkActionByKeyStroke(KeyEvent.VK_UP, 0, 200, 170, false); 133 134 checkActionByKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.SHIFT_DOWN_MASK, 20, 21, true); 136 137 checkActionByKeyStroke(KeyEvent.VK_LEFT, KeyEvent.SHIFT_DOWN_MASK, 20, 19, true); 139 140 checkActionByKeyStroke(KeyEvent.VK_DOWN, KeyEvent.SHIFT_DOWN_MASK, 200, 231, true); 143 144 checkActionByKeyStroke(KeyEvent.VK_UP, KeyEvent.SHIFT_DOWN_MASK, 200, 170, true); 147 148 checkActionByKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.CTRL_DOWN_MASK, 11, 22, false); 151 152 checkActionByKeyStroke(KeyEvent.VK_LEFT, KeyEvent.CTRL_DOWN_MASK, 34, 23, false); 154 155 checkActionByKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.CTRL_DOWN_MASK | KeyEvent.SHIFT_DOWN_MASK, 11, 22, true); 158 159 checkActionByKeyStroke(KeyEvent.VK_LEFT, KeyEvent.CTRL_DOWN_MASK | KeyEvent.SHIFT_DOWN_MASK, 34, 23, true); 161 162 editor.setCaretPosition(5,1); 164 int caretDown = txtOper.getCaretPosition(); 165 editor.setCaretPosition(1,1); 166 int pageDownStart = txtOper.getCaretPosition(); 167 txtOper.pushKey(KeyEvent.VK_PAGE_DOWN); 168 int pageDownEnd = txtOper.getCaretPosition(); 169 if (pageDownEnd < caretDown){ 170 fail("PAGE_DOWN failed"); 171 } 172 173 174 editor.setCaretPosition(32,1); 176 int caretUp = txtOper.getCaretPosition(); 177 editor.setCaretPosition(38,1); 178 int pageUpStart = txtOper.getCaretPosition(); 179 txtOper.pushKey(KeyEvent.VK_PAGE_UP); 180 int pageUpEnd = txtOper.getCaretPosition(); 181 if (pageUpEnd > caretUp){ 182 fail("PAGE_UP failed"); 183 } 184 185 checkActionByKeyStroke(KeyEvent.VK_PAGE_DOWN, KeyEvent.SHIFT_DOWN_MASK, pageDownStart, pageDownEnd, true); 187 188 checkActionByKeyStroke(KeyEvent.VK_PAGE_UP, KeyEvent.SHIFT_DOWN_MASK, pageUpStart, pageUpEnd, true); 190 191 checkActionByKeyStroke(KeyEvent.VK_HOME, 0, 18, 0, false); 193 194 checkActionByKeyStroke(KeyEvent.VK_END, 0, 18, 45, false); 196 197 checkActionByKeyStroke(KeyEvent.VK_HOME, KeyEvent.SHIFT_DOWN_MASK, 18, 0, true); 199 200 checkActionByKeyStroke(KeyEvent.VK_END, KeyEvent.SHIFT_DOWN_MASK, 18, 45, true); 202 203 checkActionByKeyStroke(KeyEvent.VK_HOME, KeyEvent.CTRL_DOWN_MASK, 18, 0, false); 205 206 checkActionByKeyStroke(KeyEvent.VK_END, KeyEvent.CTRL_DOWN_MASK, 18, txtOper.getDocument().getLength(), false); 208 209 checkActionByKeyStroke(KeyEvent.VK_HOME, KeyEvent.CTRL_DOWN_MASK | KeyEvent.SHIFT_DOWN_MASK, 18, 0, true); 211 212 checkActionByKeyStroke(KeyEvent.VK_END, KeyEvent.CTRL_DOWN_MASK | KeyEvent.SHIFT_DOWN_MASK, 18, txtOper.getDocument().getLength(), true); 214 215 editor.setCaretPosition(71); 218 int etalon = 89; txtOper.pushKey(KeyEvent.VK_U, KeyEvent.ALT_DOWN_MASK); 220 txtOper.pushKey(KeyEvent.VK_E); 221 waitMaxMilisForValue(1500, getResolver(txtOper, etalon), Boolean.TRUE); 222 int newCaretOffset = txtOper.getCaretPosition(); 223 if (etalon != newCaretOffset){ 224 fail("Alt+U E: Action failed: [etalon/newCaretOffset]: ["+etalon+"/"+ 225 newCaretOffset+"]"); 226 } 227 228 229 230 } finally { 231 closeFileWithDiscard(); 232 } 233 234 } 235 236 237 } 238
| Popular Tags
|