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 * @build org.jemmy2ext.JemmyExt 47 * @build com.sun.swingset3.demos.progressbar.ProgressBarDemo 48 * @run testng ProgressBarDemoTest 49 */ 50 @Listeners(GuiTestListener.class) 51 public class ProgressBarDemoTest { 52 53 @Test 54 public void test() throws Exception { 55 56 new ClassReference(ProgressBarDemo.class.getCanonicalName()).startApplication(); 57 58 JFrameOperator frame = new JFrameOperator(DEMO_TITLE); 59 60 JButtonOperator startButton = new JButtonOperator(frame, START_BUTTON); 61 JButtonOperator stopButton = new JButtonOperator(frame, STOP_BUTTON); 62 JProgressBarOperator jpbo = new JProgressBarOperator(frame); 63 64 // Check that progress completes and corect enable/disable of start/stop buttons 65 checkCompleteProgress(frame, startButton, stopButton, jpbo); 66 67 // Check progess bar progression and start/stop button disabled/enabled states 68 checkStartStop(frame, startButton, stopButton, jpbo); 69 } 70 71 // Check that progress completes and corect enable/disable of start/stop buttons 72 public void checkStartStop(JFrameOperator frame, JButtonOperator startButton, JButtonOperator stopButton, JProgressBarOperator progressBar) throws Exception { 73 int initialProgress = progressBar.getValue(); 74 System.out.println("initialProgress = " + initialProgress); 75 int maximum = progressBar.getMaximum(); 76 77 startButton.pushNoBlock(); 78 79 progressBar.waitState(new ComponentChooser() { 80 81 @Override 82 public boolean checkComponent(Component comp) { 83 int value = progressBar.getValue(); 84 System.out.println("checkComponent1 value = " + value); 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 System.out.println("checkComponent2 value = " + value); 102 return value > 0; 103 } 104 105 @Override 106 public String getDescription() { 107 return "Progress > 0"; 108 } 109 }); 110 111 int progress = progressBar.getValue(); 112 System.out.println("progress = " + progress); 113 114 //Check that progress par has progressed and Start Button Disabled 115 assertTrue("Progress Bar Progressing (progress > 0, actual value: " + progress + ")", progress > 0); 116 assertFalse("Start Button Disabled", startButton.isEnabled()); 117 assertTrue("Stop Button Enabled", stopButton.isEnabled()); 118 119 //Wait a liitle bit longer then Press stop get progress 120 progressBar.waitState(new ComponentChooser() { 121 122 @Override 123 public boolean checkComponent(Component comp) { 124 return progressBar.getValue() > progress; 125 } 126 127 @Override 128 public String getDescription() { 129 return "Progress > " + progress; 130 } 131 }); 132 133 stopButton.pushNoBlock(); 134 135 startButton.waitComponentEnabled(); 136 137 int interimProgress = progressBar.getValue(); 138 139 // Check that progress par has Stopped and Start Button Disabled 140 assertTrue("Progress Bar Stopped " 141 + "(interimProgress, actual value: " + interimProgress + " " 142 + "> progress, actual value: " + progress + ")", 143 interimProgress > progress); 144 assertTrue("Start Button Enabled", startButton.isEnabled()); 145 assertFalse("Stop Button Disabled", stopButton.isEnabled()); 146 } 147 148 // Check progess bar progression and start/stop button disabled/enabled states 149 public void checkCompleteProgress(JFrameOperator frame, JButtonOperator startButton, JButtonOperator stopButton, JProgressBarOperator progressBar) throws Exception { 150 startButton.pushNoBlock(); 151 152 progressBar.waitValue(progressBar.getMaximum()); 153 154 startButton.waitComponentEnabled(); 155 156 assertEquals("Complete Progress", progressBar.getMaximum(), progressBar.getValue()); 157 assertTrue("Start Button Enabled", startButton.isEnabled()); 158 assertFalse("Stop Button Disabled", stopButton.isEnabled()); 159 } 160 161 }