KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nextapp > echo2 > testapp > interactive > testscreen > RandomClickTest


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.1
6  *
7  * The contents of this file are subject to the Mozilla Public License Version
8  * 1.1 (the "License"); you may not use this file except in compliance with
9  * the License. You may obtain a copy of the License at
10  * 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 License
14  * for the specific language governing rights and limitations under the
15  * License.
16  *
17  * Alternatively, the contents of this file may be used under the terms of
18  * either the GNU General Public License Version 2 or later (the "GPL"), or
19  * 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 instead
21  * of those above. If you wish to allow use of your version of this file only
22  * under the terms of either the GPL or the LGPL, and not to allow others to
23  * use your version of this file under the terms of the MPL, indicate your
24  * decision by deleting the provisions above and replace them with the notice
25  * and other provisions required by the GPL or the LGPL. If you do not delete
26  * the provisions above, a recipient may use your version of this file under
27  * the terms of any one of the MPL, the GPL or the LGPL.
28  */

29
30 package nextapp.echo2.testapp.interactive.testscreen;
31
32 import nextapp.echo2.app.Button;
33 import nextapp.echo2.app.Column;
34 import nextapp.echo2.app.Extent;
35 import nextapp.echo2.app.Insets;
36 import nextapp.echo2.app.Label;
37 import nextapp.echo2.app.event.ActionEvent;
38 import nextapp.echo2.app.event.ActionListener;
39 import nextapp.echo2.app.layout.SplitPaneLayoutData;
40 import nextapp.echo2.testapp.interactive.InteractiveApp;
41 import nextapp.echo2.testapp.interactive.RandomClick;
42
43 /**
44  * Test to randomly click "n" buttons in InteractiveTest in a single server
45  * interaction. The primary purpose of this test is to ensure proper behavior of
46  * the ServerUpdateManager under extreme conditions.
47  */

48 public class RandomClickTest extends Column {
49
50     /**
51      * Default constructor.
52      */

53     public RandomClickTest() {
54         SplitPaneLayoutData splitPaneLayoutData = new SplitPaneLayoutData();
55         splitPaneLayoutData.setInsets(new Insets(10));
56         setLayoutData(splitPaneLayoutData);
57         
58         setCellSpacing(new Extent(20));
59         
60         add(new Label("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 click
81      */

82     private void addRandomClickButton(final int clickCount) {
83         Button button = new Button("Perform " + clickCount + " Random Click" + (clickCount == 1 ? "" : "s"));
84         button.setStyleName("Default");
85         button.addActionListener(new ActionListener() {
86             public void actionPerformed(ActionEvent e) {
87                 for (int i = 0; i < clickCount; ++i) {
88                     RandomClick.clickRandomButton();
89                 }
90             }
91         });
92         add(button);
93     }
94 }
95
Popular Tags