performance/test/qa-functional/src/org/netbeans/performance/uml/menus/MultipleNodeContextMenu.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 
    45 
    46 package org.netbeans.performance.uml.menus;
    47 
    48 import org.netbeans.jellytools.ProjectsTabOperator;
    49 import org.netbeans.jellytools.actions.CloseAllDocumentsAction;
    50 import org.netbeans.jellytools.nodes.Node;
    51 import org.netbeans.jemmy.EventTool;
    52 import org.netbeans.jemmy.operators.ComponentOperator;
    53 import org.netbeans.jemmy.operators.JTreeOperator;
    54 
    55 import javax.swing.tree.TreePath;
    56 import org.netbeans.modules.performance.utilities.CommonUtilities;
    57 import org.netbeans.modules.performance.utilities.PerformanceTestCase;
    58 import org.netbeans.modules.project.ui.test.ProjectSupport;
    59 import org.netbeans.performance.uml.UMLUtilities;
    60 
    61 /**
    62  * Measure UI-RESPONSIVENES and WINDOW_OPENING.
    63  *
    64  * @author rashid@netbeans.org
    65  *
    66  */
    67 public class MultipleNodeContextMenu extends PerformanceTestCase {
    68 
    69     private static String testProjectName = "jEdit-Model";
    70     private static String testDiagramName = "ClassDiagram";
    71     private Node diag;
    72 
    73     /** Creates a new instance of MultipleNodeContextMenu*/
    74     public MultipleNodeContextMenu(String testName) {
    75         super(testName);
    76         //TODO: Adjust expectedTime value
    77         expectedTime = 2000;
    78         WAIT_AFTER_OPEN = 4000;
    79     }
    80 
    81     public MultipleNodeContextMenu(String testName, String performanceDataName) {
    82         super(testName, performanceDataName);
    83         //TODO: Adjust expectedTime value
    84         expectedTime = 2000;
    85         WAIT_AFTER_OPEN = 4000;
    86     }
    87 
    88     @Override
    89     public void initialize() {
    90         log(":: initialize");
    91 
    92         UMLUtilities.waitProjectOpenedScanFinished(CommonUtilities.getProjectsDir() + testProjectName);
    93         new CloseAllDocumentsAction().performAPI();
    94     }
    95 
    96     public void prepare() {
    97         log(":: prepare");
    98         Node pNode = new ProjectsTabOperator().getProjectRootNode(testProjectName);
    99         diag = new Node(pNode, "Model" + "|" + testDiagramName);
   100         diag.select();
   101         new EventTool().waitNoEvent(1000);
   102     }
   103 
   104     public ComponentOperator open() {
   105         log("::open");
   106 
   107         JTreeOperator projectTree = new ProjectsTabOperator().tree();
   108         new EventTool().waitNoEvent(1000);
   109 
   110         TreePath[] arrTreePath;
   111         arrTreePath = new TreePath[110];
   112         for (int i = 0; i < arrTreePath.length; i++) {
   113             arrTreePath[i] = projectTree.getPathForRow(3 + i);
   114         }
   115         log("::after array");
   116         projectTree.callPopupOnPaths(arrTreePath);
   117 
   118         return null;
   119     }
   120 
   121     @Override
   122     protected void shutdown() {
   123         log("::shutdown");
   124         ProjectSupport.closeProject(testProjectName);
   125         new CloseAllDocumentsAction().performAPI();
   126     }
   127 
   128     @Override
   129     public void close() {
   130         log("::close");
   131         new CloseAllDocumentsAction().performAPI();
   132     }
   133 
   134 //    public static void main(java.lang.String[] args) {
   135 //        junit.textui.TestRunner.run(new MultipleNodeContextMenu("measureTime"));
   136 //    }
   137 }