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 24 import org.jtregext.GuiTestListener; 25 import com.sun.swingset3.demos.progressbar.ProgressBarDemo; 26 import static com.sun.swingset3.demos.progressbar.ProgressBarDemo.*; 27 import java.awt.Component; 28 import static org.testng.AssertJUnit.*; 29 import org.testng.annotations.Test; 30 import org.netbeans.jemmy.ClassReference; 31 import org.netbeans.jemmy.ComponentChooser; 32 import org.netbeans.jemmy.operators.JButtonOperator; 33 import org.netbeans.jemmy.operators.JFrameOperator; 34 import org.netbeans.jemmy.operators.JProgressBarOperator; 35 import org.testng.annotations.Listeners; 36 37 /* 38 * @test 39 * @key headful 40 * @summary Verifies SwingSet3 ProgressBarDemo page by pressing start and stop 41 * buttons and checking the progress bar and the buttons state. 42 * 43 * @library /sanity/client/lib/jemmy/src 44 * @library /sanity/client/lib/Extensions/src 45 * @library /sanity/client/lib/SwingSet3/src 46 * @modules java.desktop 47 * @build org.jemmy2ext.JemmyExt 48 * @build com.sun.swingset3.demos.progressbar.ProgressBarDemo 49 * @run testng ProgressBarDemoTest 50 */ 51 @Listeners(GuiTestListener.class) 52 public class ProgressBarDemoTest { 53 54 @Test 55 public void test() throws Exception { 56 57 new ClassReference(ProgressBarDemo.class.getCanonicalName()).startApplication(); 58 59 JFrameOperator frame = new JFrameOperator(DEMO_TITLE); 60 61 JButtonOperator startButton = new JButtonOperator(frame, START_BUTTON); 62 JButtonOperator stopButton = new JButtonOperator(frame, STOP_BUTTON); 63 JProgressBarOperator jpbo = new JProgressBarOperator(frame); 64 65 // Check that progress completes and corect enable/disable of start/stop buttons 66 checkCompleteProgress(frame, startButton, stopButton, jpbo); 67 68 // Check progess bar progression and start/stop button disabled/enabled states 69 checkStartStop(frame, startButton, stopButton, jpbo); 70 } 71 72 // Check that progress completes and corect enable/disable of start/stop buttons 73 public void checkStartStop(JFrameOperator frame, JButtonOperator startButton, JButtonOperator stopButton, JProgressBarOperator progressBar) throws Exception { 74 int initialProgress = progressBar.getValue(); 75 System.out.println("initialProgress = " + initialProgress); 76 int maximum = progressBar.getMaximum(); 77 78 startButton.pushNoBlock(); 79 80 progressBar.waitState(new ComponentChooser() { 81 82 @Override 83 public boolean checkComponent(Component comp) { 84 int value = progressBar.getValue(); 85 return value < maximum; 86 } 87 88 @Override 89 public String getDescription() { 90 return "Progress < maximum (" + maximum + ")"; 91 } 92 }); 93 94 stopButton.waitComponentEnabled(); 95 96 progressBar.waitState(new ComponentChooser() { 97 98 @Override 99 public boolean checkComponent(Component comp) { 100 int value = progressBar.getValue(); 101 return value > 0; 102 } 103 104 @Override 105 public String getDescription() { 106 return "Progress > 0"; 107 } 108 }); 109 110 int progress = progressBar.getValue(); 111 System.out.println("progress = " + progress); 112 113 //Check that progress par has progressed and Start Button Disabled 114 assertTrue("Progress Bar Progressing (progress > 0, actual value: " + progress + ")", progress > 0); 115 assertFalse("Start Button Disabled", startButton.isEnabled()); 116 assertTrue("Stop Button Enabled", stopButton.isEnabled()); 117 118 //Wait a liitle bit longer then Press stop get progress 119 progressBar.waitState(new ComponentChooser() { 120 121 @Override 122 public boolean checkComponent(Component comp) { 123 return progressBar.getValue() > progress; 124 } 125 126 @Override 127 public String getDescription() { 128 return "Progress > " + progress; 129 } 130 }); 131 132 stopButton.pushNoBlock(); 133 134 startButton.waitComponentEnabled(); 135 136 int interimProgress = progressBar.getValue(); 137 138 // Check that progress par has Stopped and Start Button Disabled 139 assertTrue("Progress Bar Stopped " 140 + "(interimProgress, actual value: " + interimProgress + " " 141 + "> progress, actual value: " + progress + ")", 142 interimProgress > progress); 143 assertTrue("Start Button Enabled", startButton.isEnabled()); 144 assertFalse("Stop Button Disabled", stopButton.isEnabled()); 145 } 146 147 // Check progess bar progression and start/stop button disabled/enabled states 148 public void checkCompleteProgress(JFrameOperator frame, JButtonOperator startButton, JButtonOperator stopButton, JProgressBarOperator progressBar) throws Exception { 149 startButton.pushNoBlock(); 150 151 progressBar.waitValue(progressBar.getMaximum()); 152 153 startButton.waitComponentEnabled(); 154 155 assertEquals("Complete Progress", progressBar.getMaximum(), progressBar.getValue()); 156 assertTrue("Start Button Enabled", startButton.isEnabled()); 157 assertFalse("Stop Button Disabled", stopButton.isEnabled()); 158 } 159 160 }