/* * Copyright (c) 2010-2013, 2016 Eike Stepper (Berlin, Germany) 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: * Martin Fluegge - initial API and implementation */ package org.eclipse.emf.cdo.dawn.tests.bugzillas; import org.eclipse.emf.cdo.dawn.preferences.PreferenceConstants; import org.eclipse.emf.cdo.dawn.tests.AbstractDawnEMFTest; import org.eclipse.emf.cdo.dawn.tests.ui.util.DawnEMFEditorBot; import org.eclipse.emf.cdo.dawn.tests.ui.util.DawnEcoreTestUtil; import org.eclipse.emf.cdo.dawn.tests.ui.util.DawnSWTBotEMFEditor; import org.eclipse.emf.cdo.dawn.tests.ui.util.DawnSWTBotUtil; import org.eclipse.emf.cdo.dawn.util.connection.CDOConnectionUtil; import org.eclipse.emf.cdo.eresource.CDOResource; import org.eclipse.emf.cdo.session.CDOSession; import org.eclipse.emf.cdo.transaction.CDOTransaction; import org.eclipse.emf.cdo.view.CDOView; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EcoreFactory; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor; import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree; import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem; import org.junit.Before; import org.junit.runner.RunWith; /** * @author Martin Fluegge */ @RunWith(SWTBotJunit4ClassRunner.class) public class Bugzilla_333291_Test extends AbstractDawnEMFTest { @Override @Before public void setUp() throws Exception { setBot(new DawnEMFEditorBot()); DawnSWTBotUtil.initTest(getBot()); super.setUp(); } public void testCreateNewDawnEcoreEditor() throws Exception { SWTBotEditor editor = DawnEcoreTestUtil.openNewEcoreEMFEditor("default.ecore", getBot()); assertNotNull(editor); editor.close(); { assertEquals(true, resourceExists("/default.ecore")); } } public void testOpenExistingResource() throws Exception { { CDOSession session = openSession(); CDOTransaction transaction = session.openTransaction(); CDOResource resource = transaction.createResource("/default.ecore"); EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage(); ePackage.setName("myPackage"); ePackage.setNsPrefix("prefix"); ePackage.setNsURI("http://testURI/2010"); resource.getContents().add(ePackage); EClass aClass = EcoreFactory.eINSTANCE.createEClass(); aClass.setName("MyClass"); ePackage.getEClassifiers().add(aClass); transaction.commit(); transaction.close(); session.close(); } CDOConnectionUtil.instance.init(PreferenceConstants.getRepositoryName(), PreferenceConstants.getProtocol(), PreferenceConstants.getServerName()); CDOConnectionUtil.instance.openSession(); DawnSWTBotEMFEditor editor = DawnEcoreTestUtil.openEcoreEMFEditor(URI.createURI("cdo://repo1/default.ecore"), getBot()); assertNotNull(editor); SWTBotTree tree = editor.getSelectionPageTree(); sleep(1000); SWTBotTreeItem treeItem = tree.getTreeItem("cdo://repo1/default.ecore"); treeItem.expand(); SWTBotTreeItem root = treeItem.getItems()[0]; assertEquals("myPackage", root.getText()); root.expand(); SWTBotTreeItem swtBotTreeItem1 = root.getItems()[0]; assertEquals("MyClass", swtBotTreeItem1.getText()); editor.save(); editor.close(); } public void testCreateNewPackage() throws Exception { DawnSWTBotEMFEditor editor = DawnEcoreTestUtil.openNewEcoreEMFEditor("default.ecore", getBot()); assertNotNull(editor); SWTBotTree tree = editor.getSelectionPageTree(); selectFolder(tree.getAllItems(), "", true); editor.clickContextMenu(tree.widget, "EClass"); editor.clickContextMenu(tree.widget, "EData Type"); editor.clickContextMenu(tree.widget, "EAnnotation"); editor.clickContextMenu(tree.widget, "EPackage"); editor.save(); { CDOSession session = openSession(); CDOView view = session.openView(); CDOResource resource = view.getResource("/default.ecore"); EPackage ePackage = (EPackage)resource.getContents().get(0); assertEquals(2, ePackage.getEClassifiers().size()); assertEquals(1, ePackage.getESubpackages().size()); } editor.close(); { assertEquals(true, resourceExists("/default.ecore")); } } }