Your browser does not support JavaScript and this site utilizes JavaScript to build content and provide links to additional information. You should either enable JavaScript in your browser settings or use a browser that supports JavaScript in order to take full advantage of this site.

1 /* 2 * This file is part of the Echo Web Application Framework (hereinafter "Echo").3 * Copyright (C) 2002-2005 NextApp, Inc.4 *5 * Version: MPL 1.1/GPL 2.0/LGPL 2.16 *7 * The contents of this file are subject to the Mozilla Public License Version8 * 1.1 (the "License"); you may not use this file except in compliance with9 * the License. You may obtain a copy of the License at10 * http://www.mozilla.org/MPL/11 *12 * Software distributed under the License is distributed on an "AS IS" basis,13 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License14 * for the specific language governing rights and limitations under the15 * License.16 *17 * Alternatively, the contents of this file may be used under the terms of18 * either the GNU General Public License Version 2 or later (the "GPL"), or19 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),20 * in which case the provisions of the GPL or the LGPL are applicable instead21 * of those above. If you wish to allow use of your version of this file only22 * under the terms of either the GPL or the LGPL, and not to allow others to23 * use your version of this file under the terms of the MPL, indicate your24 * decision by deleting the provisions above and replace them with the notice25 * and other provisions required by the GPL or the LGPL. If you do not delete26 * the provisions above, a recipient may use your version of this file under27 * the terms of any one of the MPL, the GPL or the LGPL.28 */29 30 package nextapp.echo2.testapp.interactive.testscreen;31 32 importnextapp.echo2.app.Button;33 importnextapp.echo2.app.Column;34 importnextapp.echo2.app.Extent;35 importnextapp.echo2.app.Insets;36 importnextapp.echo2.app.Label;37 importnextapp.echo2.app.event.ActionEvent;38 importnextapp.echo2.app.event.ActionListener;39 importnextapp.echo2.app.layout.SplitPaneLayoutData;40 importnextapp.echo2.testapp.interactive.InteractiveApp;41 importnextapp.echo2.testapp.interactive.RandomClick;42 43 /**44 * Test to randomly click "n" buttons in InteractiveTest in a single server45 * interaction. The primary purpose of this test is to ensure proper behavior of46 * the ServerUpdateManager under extreme conditions.47 */48 publicclass RandomClickTest extendsColumn {49 50 /**51 * Default constructor.52 */53 public RandomClickTest() {54 SplitPaneLayoutData splitPaneLayoutData = newSplitPaneLayoutData();55 splitPaneLayoutData.setInsets(newInsets(10));56 setLayoutData(splitPaneLayoutData);57 58 setCellSpacing(newExtent(20));59 60 add(newLabel("This test will randomly click a number of buttons within this application in a single server interaction. " +61 "The primary purpose of this test is to ensure proper behavior of the ServerUpdateManager. Durations of greater " +62 "than 100 clicks are disabled on the live demo server. Note that the 1,000,000 click test may take one or two " +63 "minutes to complete depending on the performance of the server."));64 65 addRandomClickButton(1);66 addRandomClickButton(10);67 addRandomClickButton(100);68 if (!InteractiveApp.LIVE_DEMO_SERVER) {69 addRandomClickButton(1000);70 addRandomClickButton(10000);71 addRandomClickButton(100000);72 addRandomClickButton(1000000);73 }74 }75 76 /**77 * Adds a test button that will randomly click the specified number of 78 * buttons when invoked.79 * 80 * @param clickCount the number of buttons to click81 */82 privatevoid addRandomClickButton(finalint clickCount) {83 Button button = newButton("Perform " + clickCount + " Random Click" + (clickCount == 1 ? "" : "s"));84 button.setStyleName("Default");85 button.addActionListener(newActionListener() {86 publicvoid actionPerformed(ActionEvent e) {87 for (int i = 0; i < clickCount; ++i) {88 RandomClick.clickRandomButton();89 }90 }91 });92 add(button);93 }94 }95