performance/test/qa-functional/src/org/netbeans/performance/uml/actions/CreateClassDiagramFromMultipleNodes.java
author Jesse Glick <jglick@netbeans.org>
Tue, 28 Jun 2011 16:36:36 -0400
changeset 38 7b6e218ca0af
permissions -rw-r--r--
Moved performance/uml out of main.
     1 /*
     2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     3  *
     4  * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
     5  *
     6  * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
     7  * Other names may be trademarks of their respective owners.
     8  *
     9  * The contents of this file are subject to the terms of either the GNU
    10  * General Public License Version 2 only ("GPL") or the Common
    11  * Development and Distribution License("CDDL") (collectively, the
    12  * "License"). You may not use this file except in compliance with the
    13  * License. You can obtain a copy of the License at
    14  * http://www.netbeans.org/cddl-gplv2.html
    15  * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    16  * specific language governing permissions and limitations under the
    17  * License.  When distributing the software, include this License Header
    18  * Notice in each file and include the License file at
    19  * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
    20  * particular file as subject to the "Classpath" exception as provided
    21  * by Oracle in the GPL Version 2 section of the License file that
    22  * accompanied this code. If applicable, add the following below the
    23  * License Header, with the fields enclosed by brackets [] replaced by
    24  * your own identifying information:
    25  * "Portions Copyrighted [year] [name of copyright owner]"
    26  *
    27  * Contributor(s):
    28  *
    29  * The Original Software is NetBeans. The Initial Developer of the Original
    30  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
    31  * Microsystems, Inc. All Rights Reserved.
    32  *
    33  * If you wish your version of this file to be governed by only the CDDL
    34  * or only the GPL Version 2, indicate your decision by adding
    35  * "[Contributor] elects to include this software in this distribution
    36  * under the [CDDL or GPL Version 2] license." If you do not indicate a
    37  * single choice of license, a recipient has the option to distribute
    38  * your version of this file under either the CDDL, the GPL Version 2 or
    39  * to extend the choice of license to its licensees as provided above.
    40  * However, if you add GPL Version 2 code and therefore, elected the GPL
    41  * Version 2 license, then the option applies only if the new code is
    42  * made subject to such option by the copyright holder.
    43  */
    44 package org.netbeans.performance.uml.actions;
    45 
    46 import java.awt.event.InputEvent;
    47 
    48 
    49 import javax.swing.tree.TreePath;
    50 import org.netbeans.jellytools.ProjectsTabOperator;
    51 import org.netbeans.jellytools.actions.CloseAllDocumentsAction;
    52 import org.netbeans.jellytools.nodes.Node;
    53 import org.netbeans.jellytools.NbDialogOperator;
    54 
    55 
    56 
    57 import org.netbeans.jemmy.operators.JTreeOperator;
    58 import org.netbeans.jemmy.operators.JPopupMenuOperator;
    59 import org.netbeans.jemmy.EventTool;
    60 import org.netbeans.jemmy.operators.ComponentOperator;
    61 import org.netbeans.jemmy.operators.JListOperator;
    62 import org.netbeans.jemmy.operators.JButtonOperator;
    63 import org.netbeans.jemmy.operators.JComboBoxOperator;
    64 import org.netbeans.modules.performance.utilities.CommonUtilities;
    65 import org.netbeans.modules.performance.utilities.PerformanceTestCase;
    66 import org.netbeans.modules.project.ui.test.ProjectSupport;
    67 
    68 /**
    69  * Measure UI-RESPONSIVENES and WINDOW_OPENING.
    70  *
    71  * @author rashid@netbeans.org
    72  *
    73  */
    74 public class CreateClassDiagramFromMultipleNodes extends PerformanceTestCase {
    75 
    76     private static String testProjectName = "jEdit-Model";
    77     private NbDialogOperator create_diag;
    78 
    79     /** Creates a new instance of CreateClassDiagramFromMultipleNodes */
    80     public CreateClassDiagramFromMultipleNodes(String testName) {
    81         super(testName);
    82         expectedTime = 5000;
    83         WAIT_AFTER_OPEN = 4000;
    84     }
    85 
    86     public CreateClassDiagramFromMultipleNodes(String testName, String performanceDataName) {
    87         super(testName, performanceDataName);
    88         expectedTime = 5000;
    89         WAIT_AFTER_OPEN = 4000;
    90     }
    91 
    92     @Override
    93     public void initialize() {
    94         log(":: initialize");
    95         ProjectSupport.openProject(CommonUtilities.getProjectsDir() + testProjectName);
    96     }
    97 
    98     public void prepare() {
    99         log(":: prepare");
   100 
   101         Node pNode = new ProjectsTabOperator().getProjectRootNode(testProjectName);
   102         Node diag1 = new Node(pNode, "Model|org|gjt|sp|jedit|gui|AbbrevEditor");
   103         Node diag2 = new Node(pNode, "Model|org|gjt|sp|jedit|gui|IOProgressMonitor");
   104         JTreeOperator projectTree = new ProjectsTabOperator().tree();
   105 
   106         TreePath path1 = diag1.getTreePath();
   107         TreePath path2 = diag2.getTreePath();
   108 
   109         projectTree.clickOnPath(path1, 1, InputEvent.BUTTON1_MASK);
   110         new EventTool().waitNoEvent(500);
   111         projectTree.clickOnPath(path2, 1, InputEvent.BUTTON1_MASK, InputEvent.SHIFT_MASK);
   112         new EventTool().waitNoEvent(2000);
   113         projectTree.clickOnPath(path2, 1, InputEvent.BUTTON3_MASK);
   114 
   115         log(projectTree.getSelectionCount() + " elements selected");
   116 
   117         JPopupMenuOperator selectMenu = new JPopupMenuOperator();
   118 
   119         selectMenu.pushMenu("Create Diagram From Selected Elements");
   120 
   121         create_diag = new NbDialogOperator("Create New Diagram");
   122         create_diag.move(0, 0);
   123         new EventTool().waitNoEvent(1000);
   124         JListOperator diag_type = new JListOperator(create_diag, 1);
   125         diag_type.selectItem("Class Diagram");
   126         JComboBoxOperator spaceCombo = new JComboBoxOperator(create_diag);
   127         spaceCombo.selectItem("jEdit-Model");
   128     }
   129 
   130     public ComponentOperator open() {
   131         log("::open");
   132 
   133         JButtonOperator finishButton = new JButtonOperator(create_diag, "Finish");
   134         finishButton.push();
   135 
   136         return null;
   137     }
   138 
   139     @Override
   140     protected void shutdown() {
   141         log("::shutdown");
   142         ProjectSupport.closeProject(testProjectName);
   143     }
   144 
   145     @Override
   146     public void close() {
   147         log("::close");
   148         new CloseAllDocumentsAction().performAPI();
   149     }
   150 
   151 //    public static void main(java.lang.String[] args) {
   152 //        junit.textui.TestRunner.run(new CreateClassDiagramFromMultipleNodes("measureTime"));
   153 //    }
   154 }