blob: 0fc8f6b522f21228f8f71400ffd564158361c0dd [file] [log] [blame]
/*******************************************************************************
* 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();
}
}