blob: 132ab08059b8864151769643610d4b0847d9f391 [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.dynamicplugins;
import java.util.Iterator;
import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
import org.eclipse.ui.views.markers.internal.FieldMarkerGroup;
import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
import org.eclipse.ui.views.markers.internal.ProblemFilter;
/**
* Test the loading and unloading of the marker support components.
*
* @since 3.2
*/
public class MarkerSupportTests extends DynamicTestCase {
public static final String FILTER1 = "filter1";
public static final String FILTER2 = "filter2";
public static final String FILTER3 = "filter3";
public static final String DYNAMIC_CATEGORY = "dynamicCategory";
static final String DYNAMIC_PROBLEM_MARKER = "org.eclipse.ui.tests.dynamicTestMarker";
static final String PROBLEM_MARKER = "org.eclipse.core.resources.problemmarker";
/**
* @param testName
*/
public MarkerSupportTests(String testName) {
super(testName);
}
public void testFilters() {
assertFalse(hasFilter(FILTER1));
assertFalse(hasFilter(FILTER2));
assertFalse(hasFilter(FILTER3));
getBundle();
assertTrue(hasFilter(FILTER1));
assertTrue(hasFilter(FILTER2));
assertTrue(hasFilter(FILTER3));
removeBundle();
assertFalse(hasFilter(FILTER1));
assertFalse(hasFilter(FILTER2));
assertFalse(hasFilter(FILTER3));
}
public void testMarkerGroup() {
assertFalse(hasMarkerGroup());
getBundle();
assertTrue(hasMarkerGroup());
removeBundle();
assertFalse(hasMarkerGroup());
}
public void testCategories() {
assertFalse(hasCategory());
getBundle();
assertTrue(hasCategory());
removeBundle();
assertFalse(hasCategory());
}
public void testHierarchies() {
assertFalse(hasHierarchy());
getBundle();
assertTrue(hasHierarchy());
removeBundle();
assertFalse(hasHierarchy());
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
*/
protected String getMarkerClass() {
return "org.eclipse.ui.dynamic.markerSupport.DynamicTestsSubCategoryProvider";
}
/**
* Return whether or not there is a hierarchy for the dynamic type or if it
* is using the default.
*
* @return
*/
private boolean hasHierarchy() {
return MarkerSupportRegistry.getInstance().getSorterFor(
DYNAMIC_PROBLEM_MARKER) != MarkerSupportRegistry.getInstance()
.getSorterFor(PROBLEM_MARKER);
}
private boolean hasMarkerGroup() {
Iterator groups = MarkerSupportRegistry.getInstance()
.getMarkerGroups().iterator();
while (groups.hasNext()) {
FieldMarkerGroup element = (FieldMarkerGroup) groups.next();
if(element.getDescription().equals("Dynamic Test Grouping"))
return true;
}
return false;
}
/**
* Return whether or not there is a filter for the dynamic category
*
* @return
*/
private boolean hasCategory() {
return MarkerSupportRegistry.getInstance().getCategory(
DYNAMIC_PROBLEM_MARKER) != null;
}
/**
* Return whether or not there is a filter for id.
*
* @param id
* @return
*/
private boolean hasFilter(String id) {
Iterator filters = MarkerSupportRegistry.getInstance()
.getRegisteredFilters().iterator();
while (filters.hasNext()) {
ProblemFilter filter = (ProblemFilter) filters.next();
if (id.equals(filter.getId()))
return true;
}
return false;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
*/
protected String getExtensionId() {
return "newProblemFilter.testDynamicFilterAddition";
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
*/
protected String getExtensionPoint() {
return MarkerSupportRegistry.MARKER_SUPPORT;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
*/
protected String getInstallLocation() {
return "data/org.eclipse.newMarkerSupport";
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getDeclaringNamespace()
*/
protected String getDeclaringNamespace() {
return IDEWorkbenchPlugin.IDE_WORKBENCH;
}
}