| /******************************************************************************* |
| * <copyright> |
| * |
| * Copyright (c) 2005, 2011 SAP AG. |
| * 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: |
| * mwenz - Bug 352709 - invalid image provider id crashes diagram editor |
| * |
| * </copyright> |
| * |
| *******************************************************************************/ |
| package org.eclipse.graphiti.bot.tests; |
| |
| import org.eclipse.graphiti.bot.tests.util.ITestConstants; |
| import org.eclipse.graphiti.dt.IDiagramType; |
| import org.eclipse.graphiti.dt.IDiagramTypeProvider; |
| import org.eclipse.graphiti.features.IFeatureProvider; |
| import org.eclipse.graphiti.mm.pictograms.PictogramsPackage; |
| import org.eclipse.graphiti.platform.IDiagramBehavior; |
| import org.eclipse.graphiti.ui.services.GraphitiUi; |
| import org.eclipse.graphiti.ui.services.IExtensionManager; |
| import org.junit.Test; |
| |
| |
| public class ExtensionManagerTest extends AbstractGFTests { |
| |
| @Test |
| public void testInstallation() throws Exception { |
| |
| PictogramsPackage pictogramsPackage = PictogramsPackage.eINSTANCE; |
| assertNotNull("pictograms package not available", pictogramsPackage); |
| |
| IExtensionManager extensionManager = GraphitiUi.getExtensionManager(); |
| assertNotNull("extension manager not available", extensionManager); |
| |
| String[] diagramTypeProviders = extensionManager |
| .getDiagramTypeProviderIds(ITestConstants.DIAGRAM_TYPE_ID_SKETCH); |
| assertTrue("diagram type provider not available", diagramTypeProviders.length > 0); |
| |
| IDiagramTypeProvider dtp = extensionManager.createDiagramTypeProvider(diagramTypeProviders[0]); |
| assertNotNull("diagram type provider couldn't be created", dtp); |
| |
| dtp.init(null, (IDiagramBehavior) null); |
| IFeatureProvider fp = dtp.getFeatureProvider(); |
| assertNotNull("feature provider not available", fp); |
| } |
| |
| @Test |
| public void testCreateDiagramTypeProvider() { |
| // Create a diagram type provider which defines an invalid image provider. The DTP must be created nevertheless. |
| // See Bug 352709 |
| IDiagramTypeProvider diagramTypeProvider = GraphitiUi.getExtensionManager().createDiagramTypeProvider( |
| "org.eclipse.graphiti.ui.tests.dtpWithInvalidImageProvider"); |
| assertNotNull("Diagram type Provider must not be null", diagramTypeProvider); |
| } |
| |
| @Test |
| public void testExtensionManager() { |
| IExtensionManager em = GraphitiUi.getExtensionManager(); |
| |
| IDiagramType sketchDiagramType = null; |
| |
| // check whether the sketch diagram type is registered |
| IDiagramType[] diagramTypes = em.getDiagramTypes(); |
| for (IDiagramType diagramType : diagramTypes) { |
| if (ITestConstants.DIAGRAM_TYPE_ID_SKETCH.equals(diagramType.getId())) { |
| sketchDiagramType = diagramType; |
| break; |
| } |
| } |
| |
| assertNotNull("sketch digram type is not available", sketchDiagramType); |
| |
| // checker whether a provider for the sketch diagram type is registered |
| // - and if yes - instantiate a diagram type provider |
| if (sketchDiagramType != null) { |
| String[] diagramTypeProviderExtensionIds = em.getDiagramTypeProviderIds(sketchDiagramType.getId()); |
| if (diagramTypeProviderExtensionIds != null && diagramTypeProviderExtensionIds.length > 0) { |
| IDiagramTypeProvider dtp = em.createDiagramTypeProvider(diagramTypeProviderExtensionIds[0]); |
| assertNotNull("sketch diagram type provider couldn't be instantiated", dtp); |
| } |
| } |
| } |
| } |