OptionPaneDemoTest.java revision 14305:566a5f5a9a5a
1251881Speter/*
2251881Speter * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
3251881Speter * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4251881Speter *
5251881Speter * This code is free software; you can redistribute it and/or modify it
6251881Speter * under the terms of the GNU General Public License version 2 only, as
7251881Speter * published by the Free Software Foundation.
8251881Speter *
9251881Speter * This code is distributed in the hope that it will be useful, but WITHOUT
10251881Speter * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11251881Speter * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12251881Speter * version 2 for more details (a copy is included in the LICENSE file that
13251881Speter * accompanied this code).
14251881Speter *
15251881Speter * You should have received a copy of the GNU General Public License version
16251881Speter * 2 along with this work; if not, write to the Free Software Foundation,
17251881Speter * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18251881Speter *
19251881Speter * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20251881Speter * or visit www.oracle.com if you need additional information or have any
21251881Speter * questions.
22251881Speter */
23251881Speter
24251881Speterimport org.jtregext.GuiTestListener;
25251881Speterimport com.sun.swingset3.demos.optionpane.OptionPaneDemo;
26251881Speterimport static com.sun.swingset3.demos.optionpane.OptionPaneDemo.*;
27251881Speterimport javax.swing.UIManager;
28251881Speterimport static org.testng.AssertJUnit.*;
29251881Speterimport org.testng.annotations.Test;
30251881Speterimport org.netbeans.jemmy.ClassReference;
31251881Speterimport org.netbeans.jemmy.operators.JButtonOperator;
32251881Speterimport org.netbeans.jemmy.operators.JComboBoxOperator;
33251881Speterimport org.netbeans.jemmy.operators.JDialogOperator;
34251881Speterimport org.netbeans.jemmy.operators.JFrameOperator;
35251881Speterimport org.netbeans.jemmy.operators.JLabelOperator;
36251881Speterimport org.netbeans.jemmy.operators.JTextFieldOperator;
37251881Speterimport org.testng.annotations.Listeners;
38251881Speter
39251881Speter
40251881Speter/*
41251881Speter * @test
42251881Speter * @key headful
43251881Speter * @summary Verifies SwingSet3 OptionPaneDemo page by opening all the dialogs
44251881Speter *          and choosing different options in them.
45251881Speter *
46251881Speter * @library /sanity/client/lib/jemmy/src
47251881Speter * @library /sanity/client/lib/Extensions/src
48251881Speter * @library /sanity/client/lib/SwingSet3/src
49251881Speter * @build org.jemmy2ext.JemmyExt
50251881Speter * @build com.sun.swingset3.demos.optionpane.OptionPaneDemo
51251881Speter * @run testng OptionPaneDemoTest
52251881Speter */
53251881Speter@Listeners(GuiTestListener.class)
54251881Speterpublic class OptionPaneDemoTest {
55251881Speter
56251881Speter    public static final String SOME_TEXT_TO_TYPE = "I am some text";
57251881Speter    public static final String MESSAGE = UIManager.getString("OptionPane.messageDialogTitle");
58251881Speter    public static final String OK = "OK";
59251881Speter    public static final String CANCEL = "Cancel";
60251881Speter    public static final String INPUT = UIManager.getString("OptionPane.inputDialogTitle");
61251881Speter    public static final String TEXT_TO_TYPE = "Hooray! I'm a textField";
62251881Speter    public static final String NO = "No";
63251881Speter    public static final String YES = "Yes";
64251881Speter    public static final String SELECT_AN_OPTION = UIManager.getString("OptionPane.titleText");
65251881Speter
66251881Speter    @Test
67251881Speter    public void test() throws Exception {
68286506Speter
69286506Speter        new ClassReference(OptionPaneDemo.class.getCanonicalName()).startApplication();
70286506Speter
71286506Speter        JFrameOperator frame = new JFrameOperator(DEMO_TITLE);
72286506Speter
73286506Speter        showInputDialog(frame);
74286506Speter        showWarningDialog(frame);
75286506Speter        showMessageDialog(frame);
76286506Speter        showComponentDialog(frame);
77286506Speter        showConfirmationDialog(frame);
78286506Speter    }
79286506Speter
80286506Speter    public void showInputDialog(JFrameOperator jfo) throws Exception {
81286506Speter        // Cancel with text case
82286506Speter        {
83286506Speter            new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock();
84286506Speter
85286506Speter            JDialogOperator jdo = new JDialogOperator(INPUT);
86286506Speter            JTextFieldOperator jto = new JTextFieldOperator(jdo);
87286506Speter            jto.setText(SOME_TEXT_TO_TYPE);
88286506Speter
89251881Speter            assertTrue("Show Input Dialog cancel w/ Text", jdo.isShowing());
90251881Speter
91251881Speter            new JButtonOperator(jdo, CANCEL).push();
92251881Speter
93251881Speter            assertFalse("Show Input Dialog cancel w/ Text", jdo.isShowing());
94251881Speter        }
95251881Speter
96251881Speter        // Cancel with *NO* text case
97251881Speter        {
98251881Speter            new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock();
99251881Speter
100251881Speter            JDialogOperator jdo = new JDialogOperator(INPUT);
101251881Speter
102251881Speter            assertTrue("Show Input Dialog cancel w/o Text", jdo.isShowing());
103251881Speter
104251881Speter            new JButtonOperator(jdo, CANCEL).push();
105251881Speter
106251881Speter            assertFalse("Show Input Dialog cancel w/o Text", jdo.isShowing());
107251881Speter        }
108251881Speter
109251881Speter        // Text field has *NO* input
110251881Speter        {
111251881Speter            new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock();
112251881Speter
113251881Speter            JDialogOperator jdo = new JDialogOperator(INPUT);
114251881Speter
115251881Speter            assertTrue("Show Input Dialog w/o Input", jdo.isShowing());
116251881Speter
117251881Speter            new JButtonOperator(jdo, OK).push();
118251881Speter
119251881Speter            assertFalse("Show Input Dialog w/o Input", jdo.isShowing());
120251881Speter        }
121251881Speter
122251881Speter        // Text field has input
123251881Speter        {
124251881Speter            final String enteredText = "Rambo";
125251881Speter
126251881Speter            new JButtonOperator(jfo, INPUT_BUTTON).pushNoBlock();
127251881Speter
128251881Speter            JDialogOperator jdo = new JDialogOperator(INPUT);
129251881Speter            JTextFieldOperator jto = new JTextFieldOperator(jdo);
130251881Speter            jto.setText(enteredText);
131251881Speter            new JButtonOperator(jdo, OK).pushNoBlock();
132251881Speter
133251881Speter            JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
134251881Speter
135251881Speter            assertTrue("Show Input Dialog w/ Input", jdo1.isShowing());
136251881Speter
137251881Speter            final String labelText = enteredText + INPUT_RESPONSE;
138251881Speter            JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
139251881Speter            assertEquals("Text from the field made it into the dialog", labelText, jLabelOperator.getText());
140251881Speter
141251881Speter            new JButtonOperator(jdo1, OK).push();
142251881Speter
143251881Speter            assertFalse("Show Input Dialog w/ Input", jdo1.isShowing());
144251881Speter        }
145251881Speter    }
146251881Speter
147251881Speter    public void showWarningDialog(JFrameOperator jfo) throws Exception {
148251881Speter        new JButtonOperator(jfo, WARNING_BUTTON).pushNoBlock();
149251881Speter
150251881Speter        JDialogOperator jdo = new JDialogOperator(WARNING_TITLE);
151251881Speter
152251881Speter        assertTrue("Show Warning Dialog", jdo.isShowing());
153251881Speter
154251881Speter        new JButtonOperator(jdo, OK).push();
155251881Speter
156251881Speter        assertFalse("Show Warning Dialog", jdo.isShowing());
157251881Speter    }
158251881Speter
159251881Speter    public void showMessageDialog(JFrameOperator jfo) throws Exception {
160251881Speter        new JButtonOperator(jfo, MESSAGE_BUTTON).pushNoBlock();
161251881Speter
162251881Speter        JDialogOperator jdo = new JDialogOperator(MESSAGE);
163251881Speter
164251881Speter        assertTrue("Show Message Dialog", jdo.isShowing());
165251881Speter
166251881Speter        new JButtonOperator(jdo, OK).push();
167251881Speter
168251881Speter        assertFalse("Show Message Dialog", jdo.isShowing());
169251881Speter    }
170251881Speter
171251881Speter    public void showComponentDialog(JFrameOperator jfo) throws Exception {
172251881Speter        // Case: Cancel
173251881Speter        {
174251881Speter            new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock();
175251881Speter
176251881Speter            JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
177251881Speter
178251881Speter            assertTrue("Show Component Dialog Cancel Option", jdo.isShowing());
179251881Speter
180251881Speter            new JButtonOperator(jdo, COMPONENT_OP5).push();
181251881Speter
182251881Speter            assertFalse("Show Component Dialog Cancel Option", jdo.isShowing());
183251881Speter        }
184251881Speter
185251881Speter        // Case: Yes option selected
186251881Speter        {
187251881Speter            new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock();
188251881Speter
189251881Speter            JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
190251881Speter            new JButtonOperator(jdo, COMPONENT_OP1).pushNoBlock();
191251881Speter
192251881Speter            JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
193251881Speter
194251881Speter            assertTrue("Component Dialog Example Yes Option", jdo1.isShowing());
195251881Speter
196251881Speter            final String labelText = COMPONENT_R1;
197251881Speter            JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
198251881Speter            assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
199251881Speter
200251881Speter            new JButtonOperator(jdo1, OK).push();
201251881Speter
202251881Speter            assertFalse("Component Dialog Example Yes Option", jdo1.isShowing());
203251881Speter        }
204251881Speter
205251881Speter        // Case: No option selected
206251881Speter        {
207251881Speter            new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock();
208251881Speter
209251881Speter            JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
210251881Speter            new JButtonOperator(jdo, COMPONENT_OP2).pushNoBlock();
211251881Speter
212251881Speter            JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
213251881Speter
214251881Speter            assertTrue("Component Dialog Example No Option", jdo1.isShowing());
215251881Speter
216251881Speter            final String labelText = COMPONENT_R2;
217251881Speter            JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
218251881Speter            assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
219251881Speter
220251881Speter            new JButtonOperator(jdo1, OK).push();
221251881Speter
222251881Speter            assertFalse("Component Dialog Example No Option", jdo1.isShowing());
223251881Speter        }
224251881Speter
225251881Speter        // Case: Maybe option selected
226251881Speter        {
227251881Speter            new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock();
228251881Speter
229251881Speter            JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
230251881Speter            new JButtonOperator(jdo, COMPONENT_OP3).pushNoBlock();
231251881Speter
232251881Speter            JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
233251881Speter
234251881Speter            assertTrue("Component Dialog Maybe Yes Option", jdo1.isShowing());
235251881Speter
236251881Speter            final String labelText = COMPONENT_R3;
237251881Speter            JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
238251881Speter            assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
239251881Speter
240251881Speter            new JButtonOperator(jdo1, OK).push();
241251881Speter
242251881Speter            assertFalse("Component Dialog Maybe Yes Option", jdo1.isShowing());
243251881Speter        }
244251881Speter
245251881Speter        // Case: Probably option selected
246251881Speter        {
247251881Speter            new JButtonOperator(jfo, COMPONENT_BUTTON).pushNoBlock();
248251881Speter
249251881Speter            JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
250251881Speter            new JButtonOperator(jdo, COMPONENT_OP4).pushNoBlock();
251251881Speter
252251881Speter            JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
253251881Speter
254251881Speter            assertTrue("Component Dialog Example Probably Option", jdo1.isShowing());
255251881Speter
256251881Speter            final String labelText = COMPONENT_R4;
257251881Speter            JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
258251881Speter            assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
259251881Speter
260251881Speter            new JButtonOperator(jdo1, OK).push();
261251881Speter
262251881Speter            assertFalse("Component Dialog Example Probably Option", jdo1.isShowing());
263251881Speter        }
264251881Speter
265251881Speter        // Case TextField and ComboBox functional
266251881Speter        {
267251881Speter            new JButtonOperator(jfo, COMPONENT_BUTTON).push();
268251881Speter
269251881Speter            JDialogOperator jdo = new JDialogOperator(COMPONENT_TITLE);
270251881Speter
271251881Speter            JTextFieldOperator jto = new JTextFieldOperator(jdo);
272251881Speter            jto.clearText();
273251881Speter            jto.typeText(TEXT_TO_TYPE);
274251881Speter
275251881Speter            JComboBoxOperator jcbo = new JComboBoxOperator(jdo);
276251881Speter            jcbo.selectItem(2);
277251881Speter
278251881Speter            assertEquals("Show Component Dialog TextField", TEXT_TO_TYPE, jto.getText());
279251881Speter            assertEquals("Show Component Dialog ComboBox", 2, jcbo.getSelectedIndex());
280251881Speter
281251881Speter            new JButtonOperator(jdo, "cancel").push();
282251881Speter        }
283251881Speter    }
284251881Speter
285251881Speter    public void showConfirmationDialog(JFrameOperator jfo) throws Exception {
286251881Speter        // Case: Yes option selected
287251881Speter        {
288251881Speter            new JButtonOperator(jfo, CONFIRM_BUTTON).pushNoBlock();
289251881Speter
290251881Speter            JDialogOperator jdo = new JDialogOperator(SELECT_AN_OPTION);
291251881Speter            new JButtonOperator(jdo, YES).pushNoBlock();
292
293            JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
294
295            assertTrue("Show Confirmation Dialog Yes Option", jdo1.isShowing());
296
297            final String labelText = CONFIRM_YES;
298            JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
299            assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
300
301            new JButtonOperator(jdo1, OK).push();
302
303            assertFalse("Show Confirmation Dialog Yes Option", jdo1.isShowing());
304        }
305
306        // Case: No option selected
307        {
308            new JButtonOperator(jfo, CONFIRM_BUTTON).pushNoBlock();
309
310            JDialogOperator jdo = new JDialogOperator(SELECT_AN_OPTION);
311            new JButtonOperator(jdo, NO).pushNoBlock();
312
313            JDialogOperator jdo1 = new JDialogOperator(MESSAGE);
314
315            assertTrue("Show Confirmation Dialog No Option", jdo1.isShowing());
316
317            final String labelText = CONFIRM_NO;
318            JLabelOperator jLabelOperator = new JLabelOperator(jdo1, labelText);
319            assertEquals("Dialog contains appropriate text", labelText, jLabelOperator.getText());
320
321            new JButtonOperator(jdo1, OK).push();
322
323            assertFalse("Show Confirmation Dialog No Option", jdo1.isShowing());
324        }
325
326        // Case: Cancel option selected
327        {
328            new JButtonOperator(jfo, CONFIRM_BUTTON).pushNoBlock();
329
330            JDialogOperator jdo = new JDialogOperator(SELECT_AN_OPTION);
331
332            assertTrue("Show Confirmation Dialog Cancel Option", jdo.isShowing());
333
334            new JButtonOperator(jdo, CANCEL).push();
335
336            assertFalse("Show Confirmation Dialog Cancel Option", jdo.isShowing());
337        }
338    }
339
340}
341