blob: 5c1617cfe49b2152d2fc629a62c696feb1e9ee1e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.tests.performance;
import java.util.HashSet;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.ui.internal.Workbench;
import org.eclipse.ui.tests.performance.layout.ResizeTest;
import org.eclipse.ui.tests.performance.layout.ViewWidgetFactory;
import org.eclipse.ui.views.IViewDescriptor;
/**
* @since 3.1
*/
public class ViewPerformanceSuite extends TestSuite {
public static final String RESOURCE_NAVIGATOR = "org.eclipse.ui.views.ResourceNavigator";
public static final String BASIC_PATH = "org.eclipse.ui";
public static final String VIEWS_PATTERN = "org.eclipse.ui.views";
// public static final String [] VIEW_IDS = {BASIC_VIEW,
// IPageLayout.ID_RES_NAV, MockViewPart.ID};
/**
* Returns the suite. This is required to use the JUnit Launcher.
*/
public static Test suite() {
return new ViewPerformanceSuite();
}
/**
*
*/
public ViewPerformanceSuite() {
addOpenCloseTests();
addResizeTests();
addTestSuite(OpenNavigatorFolderTest.class);
}
/**
*
*/
private void addOpenCloseTests() {
String[] ids = getAllTestableViewIds();
for (int i = 0; i < ids.length; i++) {
String id = ids[i];
// Use the BASIC_VIEW as the fingerprint test.
// Do not change this as this is an empty view
// and not dependant on other components
addTest(new OpenCloseViewTest(id,
id.equals(RESOURCE_NAVIGATOR) ? BasicPerformanceTest.GLOBAL
: BasicPerformanceTest.NONE));
}
}
private void addResizeTests() {
String[] ids = getAllTestableViewIds();
for (int i = 0; i < ids.length; i++) {
String id = ids[i];
addTest(new ResizeTest(new ViewWidgetFactory(id)));
}
}
public static String[] getAllTestableViewIds() {
HashSet result = new HashSet();
IViewDescriptor[] descriptors = Workbench.getInstance()
.getViewRegistry().getViews();
for (int i = 0; i < descriptors.length; i++) {
IViewDescriptor descriptor = descriptors[i];
String[] categoryPath = descriptor.getCategoryPath();
if (categoryPath == null)
continue;
for (int j = 0; j < categoryPath.length; j++) {
// Only test basic views
if (categoryPath[j].equals(BASIC_PATH)){
if(descriptor.getId().indexOf(VIEWS_PATTERN) >= 0) {
result.add(descriptor.getId());
}}
}
}
return (String[]) result.toArray(new String[result.size()]);
}
}