1/*
2 * Copyright (c) 2011, 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 org.jtregext.GuiTestListener;
25import com.sun.swingset3.demos.window.WindowDemo;
26import static com.sun.swingset3.demos.window.WindowDemo.*;
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.JFrameOperator;
33import org.netbeans.jemmy.operators.JLabelOperator;
34import org.netbeans.jemmy.operators.WindowOperator;
35import org.testng.annotations.Listeners;
36
37/*
38 * @test
39 * @key headful
40 * @summary Verifies SwingSet3 WindowDemo by checking that separate JWindow is
41 *          shown, it contains predefined label and no new windows are opened
42 *          when the "Show JWindow..." button is clicked.
43 *
44 * @library /sanity/client/lib/jemmy/src
45 * @library /sanity/client/lib/Extensions/src
46 * @library /sanity/client/lib/SwingSet3/src
47 * @modules java.desktop
48 *          java.logging
49 * @build org.jemmy2ext.JemmyExt
50 * @build com.sun.swingset3.demos.window.WindowDemo
51 * @run testng WindowDemoTest
52 */
53@Listeners(GuiTestListener.class)
54public class WindowDemoTest {
55
56    @Test
57    public void test() throws Exception {
58
59        new ClassReference(WindowDemo.class.getCanonicalName()).startApplication();
60
61        JFrameOperator frame = new JFrameOperator();
62
63        assertEquals("Only one JWindow is shown", 1, getJWindowCount());
64
65        WindowOperator window = new WindowOperator(getJWindow());
66
67        assertTrue("JFrame is showing", frame.isShowing());
68        assertFalse("JFrame is not iconified", isIconified(frame));
69        assertTrue("JWindow is showing", window.isShowing());
70
71        final String labelText = I_HAVE_NO_SYSTEM_BORDER;
72        JLabelOperator jLabelOperator = new JLabelOperator(window, labelText);
73        assertEquals("JWindow contains the label with corresponding text", labelText, jLabelOperator.getText());
74
75        new JButtonOperator(frame, SHOW_J_WINDOW).push();
76
77        assertEquals("Only one JWindow is shown", 1, getJWindowCount());
78    }
79
80}
81