OptionPaneDemoTest.java revision 13978:1993af50385d
1/* 2 * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24import com.sun.swingset3.demos.optionpane.OptionPaneDemo; 25import static com.sun.swingset3.demos.optionpane.OptionPaneDemo.*; 26import javax.swing.UIManager; 27import static org.jemmy2ext.JemmyExt.*; 28import static org.testng.AssertJUnit.*; 29import org.testng.annotations.Test; 30import org.netbeans.jemmy.ClassReference; 31import org.netbeans.jemmy.operators.JButtonOperator; 32import org.netbeans.jemmy.operators.JComboBoxOperator; 33import org.netbeans.jemmy.operators.JDialogOperator; 34import org.netbeans.jemmy.operators.JFrameOperator; 35import org.netbeans.jemmy.operators.JLabelOperator; 36import org.netbeans.jemmy.operators.JTextFieldOperator; 37 38 39/* 40 * @test 41 * @key headful 42 * @summary Verifies SwingSet3 OptionPaneDemo page by opening all the dialogs 43 * and choosing different options in them. 44 * 45 * @library /sanity/client/lib/jemmy/src 46 * @library /sanity/client/lib/Jemmy2Ext/src 47 * @library /sanity/client/lib/SwingSet3/src 48 * @build org.jemmy2ext.JemmyExt 49 * @build com.sun.swingset3.demos.optionpane.OptionPaneDemo 50 * @run testng OptionPaneDemoTest 51 */ 52public class OptionPaneDemoTest { 53 54 public static final String SOME_TEXT_TO_TYPE = "I am some text"; 55 public static final String MESSAGE = UIManager.getString("OptionPane.messageDialogTitle"); 56 public static final String OK = "OK"; 57 public static final String CANCEL = "Cancel"; 58 public static final String INPUT = UIManager.getString("OptionPane.inputDialogTitle"); 59 public static final String TEXT_TO_TYPE = "Hooray! I'm a textField"; 60 public static final String NO = "No"; 61 public static final String YES = "Yes"; 62 public static final String SELECT_AN__OPTION = UIManager.getString("OptionPane.titleText"); 63 64 @Test 65 public void test() throws Exception { 66 captureDebugInfoOnFail(() -> { 67 new ClassReference(OptionPaneDemo.class.getCanonicalName()).startApplication(); 68 69 JFrameOperator frame = new JFrameOperator(DEMO_TITLE); 70 71 showInputDialog(frame); 72 showWarningDialog(frame); 73 showMessageDialog(frame); 74 showComponentDialog(frame); 75 showConfirmationDialog(frame); 76 }); 77 } 78 79 public void showInputDialog(JFrameOperator jfo) throws Exception { 80 // Cancel with text case 81 { 82 new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock(); 83 84 JDialogOperator jdo = new JDialogOperator(INPUT); 85 JTextFieldOperator jto = new JTextFieldOperator(jdo); 86 jto.setText(SOME_TEXT_TO_TYPE); 87 88 assertTrue("Show Input Dialog cancel w/ Text", jdo.isShowing()); 89 90 new JButtonOperator(jdo, CANCEL).push(); 91 92 assertFalse("Show Input Dialog cancel w/ Text", jdo.isShowing()); 93 } 94 95 // Cancel with *NO* text case 96 { 97 new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock(); 98 99 JDialogOperator jdo = new JDialogOperator(INPUT); 100 101 assertTrue("Show Input Dialog cancel w/o Text", jdo.isShowing()); 102 103 new JButtonOperator(jdo, CANCEL).push(); 104 105 assertFalse("Show Input Dialog cancel w/o Text", jdo.isShowing()); 106 } 107 108 // Text field has *NO* input 109 { 110 new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock(); 111 112 JDialogOperator jdo = new JDialogOperator(INPUT); 113 114 assertTrue("Show Input Dialog w/o Input", jdo.isShowing()); 115 116 new JButtonOperator(jdo, OK).push(); 117 118 assertFalse("Show Input Dialog w/o Input", jdo.isShowing()); 119 } 120 121 // Text field has input 122 { 123 final String enteredText = "Rambo"; 124 125 new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock(); 126 127 JDialogOperator jdo = new JDialogOperator(INPUT); 128 JTextFieldOperator jto = new JTextFieldOperator(jdo); 129 jto.setText(enteredText); 130 new JButtonOperator(jdo, OK).pushNoBlock(); 131 132 JDialogOperator jdo1 = new JDialogOperator(MESSAGE); 133 134 assertTrue("Show Input Dialog w/ Input", jdo1.isShowing()); 135 136 final String labelText = enteredText + INPUT_RESPONSE; 137 JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText); 138 assertEquals("Text from the field made it into the dialog", labelText, jLabelOperator.getText()); 139 140 new JButtonOperator(jdo1, OK).push(); 141 142 assertFalse("Show Input Dialog w/ Input", jdo1.isShowing()); 143 } 144 } 145 146 public void showWarningDialog(JFrameOperator jfo) throws Exception { 147 new JButtonOperator(jfo, WARNING_BUTTON).pushNoBlock(); 148 149 JDialogOperator jdo = new JDialogOperator(WARNING_TITLE); 150 151 assertTrue("Show Warning Dialog", jdo.isShowing()); 152 153 new JButtonOperator(jdo, OK).push(); 154 155 assertFalse("Show Warning Dialog", jdo.isShowing()); 156 } 157 158 public void showMessageDialog(JFrameOperator jfo) throws Exception { 159 new JButtonOperator(jfo, MESSAGE_BUTTON).pushNoBlock(); 160 161 JDialogOperator jdo = new JDialogOperator(MESSAGE); 162 163 assertTrue("Show Message Dialog", jdo.isShowing()); 164 165 new JButtonOperator(jdo, OK).push(); 166 167 assertFalse("Show Message Dialog", jdo.isShowing()); 168 } 169 170 public void showComponentDialog(JFrameOperator jfo) throws Exception { 171 // Case: Cancel 172 { 173 new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock(); 174 175 JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE); 176 177 assertTrue("Show Component Dialog Cancel Option", jdo.isShowing()); 178 179 new JButtonOperator(jdo, COMPONENT_OP5).push(); 180 181 assertFalse("Show Component Dialog Cancel Option", jdo.isShowing()); 182 } 183 184 // Case: Yes option selected 185 { 186 new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock(); 187 188 JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE); 189 new JButtonOperator(jdo, COMPONENT_OP1).pushNoBlock(); 190 191 JDialogOperator jdo1 = new JDialogOperator(MESSAGE); 192 193 assertTrue("Component Dialog Example Yes Option", jdo1.isShowing()); 194 195 final String labelText = COMPONENT_R1; 196 JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText); 197 assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText()); 198 199 new JButtonOperator(jdo1, OK).push(); 200 201 assertFalse("Component Dialog Example Yes Option", jdo1.isShowing()); 202 } 203 204 // Case: No option selected 205 { 206 new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock(); 207 208 JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE); 209 new JButtonOperator(jdo, COMPONENT_OP2).pushNoBlock(); 210 211 JDialogOperator jdo1 = new JDialogOperator(MESSAGE); 212 213 assertTrue("Component Dialog Example No Option", jdo1.isShowing()); 214 215 final String labelText = COMPONENT_R2; 216 JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText); 217 assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText()); 218 219 new JButtonOperator(jdo1, OK).push(); 220 221 assertFalse("Component Dialog Example No Option", jdo1.isShowing()); 222 } 223 224 // Case: Maybe option selected 225 { 226 new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock(); 227 228 JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE); 229 new JButtonOperator(jdo, COMPONENT_OP3).pushNoBlock(); 230 231 JDialogOperator jdo1 = new JDialogOperator(MESSAGE); 232 233 assertTrue("Component Dialog Maybe Yes Option", jdo1.isShowing()); 234 235 final String labelText = COMPONENT_R3; 236 JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText); 237 assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText()); 238 239 new JButtonOperator(jdo1, OK).push(); 240 241 assertFalse("Component Dialog Maybe Yes Option", jdo1.isShowing()); 242 } 243 244 // Case: Probably option selected 245 { 246 new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock(); 247 248 JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE); 249 new JButtonOperator(jdo, COMPONENT_OP4).pushNoBlock(); 250 251 JDialogOperator jdo1 = new JDialogOperator(MESSAGE); 252 253 assertTrue("Component Dialog Example Probably Option", jdo1.isShowing()); 254 255 final String labelText = COMPONENT_R4; 256 JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText); 257 assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText()); 258 259 new JButtonOperator(jdo1, OK).push(); 260 261 assertFalse("Component Dialog Example Probably Option", jdo1.isShowing()); 262 } 263 264 // Case TextField and ComboBox functional 265 { 266 new JButtonOperator(jfo, COMPONENT_BUTTON).push(); 267 268 JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE); 269 270 JTextFieldOperator jto = new JTextFieldOperator(jdo); 271 jto.clearText(); 272 jto.typeText(TEXT_TO_TYPE); 273 274 JComboBoxOperator jcbo = new JComboBoxOperator(jdo); 275 jcbo.selectItem(2); 276 277 assertEquals("Show Component Dialog TextField", TEXT_TO_TYPE, jto.getText()); 278 assertEquals("Show Component Dialog ComboBox", 2, jcbo.getSelectedIndex()); 279 280 new JButtonOperator(jdo, "cancel").push(); 281 } 282 } 283 284 public void showConfirmationDialog(JFrameOperator jfo) throws Exception { 285 // Case: Yes option selected 286 { 287 new JButtonOperator(jfo, CONFIRM_BUTTON).pushNoBlock(); 288 289 JDialogOperator jdo = new JDialogOperator(SELECT_AN__OPTION); 290 new JButtonOperator(jdo, YES).pushNoBlock(); 291 292 JDialogOperator jdo1 = new JDialogOperator(MESSAGE); 293 294 assertTrue("Show Confirmation Dialog Yes Option", jdo1.isShowing()); 295 296 final String labelText = CONFIRM_YES; 297 JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText); 298 assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText()); 299 300 new JButtonOperator(jdo1, OK).push(); 301 302 assertFalse("Show Confirmation Dialog Yes Option", jdo1.isShowing()); 303 } 304 305 // Case: No option selected 306 { 307 new JButtonOperator(jfo, CONFIRM_BUTTON).pushNoBlock(); 308 309 JDialogOperator jdo = new JDialogOperator(SELECT_AN__OPTION); 310 new JButtonOperator(jdo, NO).pushNoBlock(); 311 312 JDialogOperator jdo1 = new JDialogOperator(MESSAGE); 313 314 assertTrue("Show Confirmation Dialog No Option", jdo1.isShowing()); 315 316 final String labelText = CONFIRM_NO; 317 JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText); 318 assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText()); 319 320 new JButtonOperator(jdo1, OK).push(); 321 322 assertFalse("Show Confirmation Dialog No Option", jdo1.isShowing()); 323 } 324 325 // Case: Cancel option selected 326 { 327 new JButtonOperator(jfo, CONFIRM_BUTTON).pushNoBlock(); 328 329 JDialogOperator jdo = new JDialogOperator(SELECT_AN__OPTION); 330 331 assertTrue("Show Confirmation Dialog Cancel Option", jdo.isShowing()); 332 333 new JButtonOperator(jdo, CANCEL).push(); 334 335 assertFalse("Show Confirmation Dialog Cancel Option", jdo.isShowing()); 336 } 337 } 338 339} 340