| /****************************************************************************** |
| * Copyright (c) 2006, 2007 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.gmf.tests.runtime.diagram.ui.tools; |
| |
| import java.util.ArrayList; |
| import java.util.Collections; |
| import java.util.List; |
| |
| import junit.framework.Test; |
| import junit.framework.TestSuite; |
| |
| import org.eclipse.gef.EditDomain; |
| import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeConnectionTool; |
| import org.eclipse.gmf.runtime.diagram.ui.type.DiagramNotationType; |
| import org.eclipse.gmf.tests.runtime.diagram.ui.AbstractTestBase; |
| import org.eclipse.gmf.tests.runtime.diagram.ui.util.PresentationTestFixture; |
| import org.eclipse.jface.viewers.StructuredSelection; |
| import org.eclipse.swt.events.MouseEvent; |
| import org.eclipse.swt.widgets.Event; |
| |
| /** |
| * Tests for Connection Tools. |
| * |
| * @author cmahoney |
| */ |
| public class ConnectionToolTests |
| extends AbstractTestBase { |
| |
| public static Test suite() { |
| TestSuite s = new TestSuite(ConnectionToolTests.class); |
| return s; |
| } |
| |
| public ConnectionToolTests(String name) { |
| super(name); |
| } |
| |
| protected void setTestFixture() { |
| testFixture = new PresentationTestFixture(); |
| } |
| |
| protected PresentationTestFixture getFixture() { |
| return (PresentationTestFixture) testFixture; |
| } |
| |
| /** |
| * Test selection of notes where there is currently no focus edit part. |
| */ |
| public void test_doubleClickUnspecifiedTypeConnectionTool() |
| throws Exception { |
| |
| getFixture().openDiagram(); |
| |
| List eps = new ArrayList(2); |
| eps.add(getFixture().createNote()); |
| eps.add(getFixture().createNote()); |
| |
| assertEquals("Notes not created properly.", //$NON-NLS-1$ |
| 2, getDiagramEditPart().getPrimaryEditParts().size()); |
| assertEquals("There shouldn't be any connections yet.", //$NON-NLS-1$ |
| 0, getDiagramEditPart().getConnections().size()); |
| |
| getDiagramEditPart().getViewer().setSelection( |
| new StructuredSelection(eps)); |
| |
| UnspecifiedTypeConnectionTool tool = new UnspecifiedTypeConnectionTool( |
| Collections.singletonList(DiagramNotationType.NOTE_ATTACHMENT)); |
| tool.setEditDomain((EditDomain) getDiagramWorkbenchPart() |
| .getDiagramEditDomain()); |
| tool.activate(); |
| tool.mouseDoubleClick(createMouseEvent(0, 0), getDiagramEditPart() |
| .getViewer()); |
| tool.deactivate(); |
| |
| assertEquals("Connection wasn't created.", //$NON-NLS-1$ |
| 1, getDiagramEditPart().getConnections().size()); |
| } |
| |
| MouseEvent createMouseEvent(int x, int y) { |
| Event e = new Event(); |
| |
| e.widget = getDiagramEditPart().getViewer().getControl(); |
| ; |
| e.display = e.widget.getDisplay(); |
| e.button = 1; // left button |
| e.x = x; |
| e.y = y; |
| |
| return new MouseEvent(e); |
| } |
| |
| } |