/******************************************************************************* | |
* Copyright (c) 2009 by SAP AG, Walldorf. | |
* 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: | |
* SAP AG - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.wst.common.snippets.tests.scenarios; | |
import java.io.BufferedReader; | |
import java.io.ByteArrayInputStream; | |
import java.io.File; | |
import java.io.FileReader; | |
import java.io.IOException; | |
import junit.framework.TestCase; | |
import org.eclipse.core.resources.IFile; | |
import org.eclipse.core.resources.IProject; | |
import org.eclipse.core.resources.ResourcesPlugin; | |
import org.eclipse.core.runtime.NullProgressMonitor; | |
import org.eclipse.gef.palette.PaletteDrawer; | |
import org.eclipse.swt.widgets.Shell; | |
import org.eclipse.ui.IEditorPart; | |
import org.eclipse.ui.PlatformUI; | |
import org.eclipse.ui.ide.IDE; | |
import org.eclipse.wst.common.snippets.core.ISnippetsEntry; | |
import org.eclipse.wst.common.snippets.internal.SnippetsPlugin; | |
import org.eclipse.wst.common.snippets.internal.palette.SnippetPaletteDrawerFactory; | |
import org.eclipse.wst.common.snippets.internal.palette.SnippetPaletteItem; | |
import org.eclipse.wst.common.snippets.internal.palette.SnippetPaletteRoot; | |
import org.eclipse.wst.common.snippets.internal.ui.SnippetsView; | |
import org.eclipse.wst.common.snippets.tests.helpers.ComplexProvider; | |
public class ObjectOrientedSnippetScenario extends TestCase { | |
private IFile file; | |
protected void setUp() throws Exception { | |
super.setUp(); | |
String projectName = System.currentTimeMillis() + ""; | |
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); | |
if (!project.exists()){ | |
project.create(new NullProgressMonitor()); | |
} | |
if (!project.isOpen()){ | |
project.open(new NullProgressMonitor()); | |
} | |
file = project.getFile("testTextSnippet.txt"); | |
if (!file.exists()){ | |
ByteArrayInputStream sr = new ByteArrayInputStream("test Text Snippet Provider".getBytes()); | |
file.create(sr, true, new NullProgressMonitor()); | |
} | |
} | |
public void testSave() throws Exception { | |
SnippetsView view; | |
SnippetPaletteRoot anchor = null; | |
view = (SnippetsView) SnippetsPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(SnippetsPlugin.NAMES.VIEW_ID); | |
if (view == null) { | |
view = (SnippetsView) SnippetsPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(SnippetsPlugin.NAMES.VIEW_ID); | |
} | |
if (view != null) { | |
anchor = view.getRoot(); | |
} | |
Shell activeShell = SnippetsPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell();//Display.getDefault().getActiveShell(); | |
assertNotNull(activeShell); | |
PaletteDrawer drawer = (PaletteDrawer) new SnippetPaletteDrawerFactory().createNewEntry(activeShell, anchor); | |
drawer.setLabel("testName"); | |
ComplexProvider provider = new ComplexProvider(); | |
IEditorPart openEditor = IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), file); | |
provider.setEditor(openEditor); | |
SnippetPaletteItem createSnippet = provider.createSnippet(drawer); | |
assertNotNull(createSnippet); | |
File f = new File (createSnippet.getStorageLocation().toOSString()); | |
assertTrue(f.exists()); | |
assertEquals(1, f.list().length); | |
assertEquals(ComplexProvider.TEST_TXT, f.listFiles()[0].getName()); | |
assertEquals(ComplexProvider.TESTING.trim(), getContents(f.listFiles()[0]).trim()); | |
} | |
public void testProviderBasedSourceType() throws Exception { | |
SnippetsView view; | |
SnippetPaletteRoot anchor = null; | |
view = (SnippetsView) SnippetsPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(SnippetsPlugin.NAMES.VIEW_ID); | |
if (view == null) { | |
view = (SnippetsView) SnippetsPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(SnippetsPlugin.NAMES.VIEW_ID); | |
} | |
if (view != null) { | |
anchor = view.getRoot(); | |
} | |
Shell activeShell = SnippetsPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell();//Display.getDefault().getActiveShell(); | |
assertNotNull(activeShell); | |
PaletteDrawer drawer = (PaletteDrawer) new SnippetPaletteDrawerFactory().createNewEntry(activeShell, anchor); | |
drawer.setLabel(getName()); | |
ComplexProvider provider = new ComplexProvider(); | |
IEditorPart openEditor = IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), file); | |
provider.setEditor(openEditor); | |
SnippetPaletteItem createSnippet = provider.createSnippet(drawer); | |
assertNotNull(createSnippet); | |
File f = new File (createSnippet.getStorageLocation().toOSString()); | |
assertTrue(f.exists()); | |
assertEquals(1, f.list().length); | |
assertEquals(ComplexProvider.TEST_TXT, f.listFiles()[0].getName()); | |
assertEquals(ComplexProvider.TESTING.trim(), getContents(f.listFiles()[0]).trim()); | |
assertEquals(ISnippetsEntry.SNIPPET_SOURCE_USER, createSnippet.getSourceType()); | |
} | |
public String getContents(File aFile) { | |
StringBuffer contents = new StringBuffer(); | |
try { | |
BufferedReader input = new BufferedReader(new FileReader(aFile)); | |
try { | |
String line = null; //not declared within while loop | |
while (( line = input.readLine()) != null){ | |
contents.append(line); | |
contents.append(System.getProperty("line.separator")); | |
} | |
} | |
finally { | |
input.close(); | |
} | |
} | |
catch (IOException ex){ | |
ex.printStackTrace(); | |
} | |
return contents.toString(); | |
} | |
} |