blob: 0426a8ae6008cde2ad086f4e2063ec2f07611cb0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 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.wst.sse.core.tests;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import junit.framework.TestCase;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
public class TestUnsupportedContentType extends TestCase {
/**
* Creates a simple project.
*
* @param name
* - the name of the project
* @return
*/
static IProject createSimpleProject(String name) {
IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(name);
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
try {
if (!project.exists())
project.create(description, new NullProgressMonitor());
if (!project.isAccessible())
project.open(new NullProgressMonitor());
}
catch (CoreException e) {
e.printStackTrace();
}
return project;
}
/**
* Verify that attempting to load a model for an unsupported content type
* simply returns null without Exceptions or assertion failures.
*
* @throws CoreException
* @throws IOException
*/
public void testGetForReadWithUnsupported() throws CoreException {
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(getName());
if (!project.isAccessible()) {
project = createSimpleProject(getName());
}
IFile file = project.getFile("testReadFile.js");
file.create(new ByteArrayInputStream("var n = 0;".getBytes()), true, null);
assertTrue("test file not created", file.isAccessible());
try {
IStructuredModel model = StructuredModelManager.getModelManager().getModelForRead(file);
assertNull("model returned even though expected to silently get null", model);
if (model != null)
model.releaseFromRead();
}
catch (Exception e) {
StringWriter out = new StringWriter();
e.printStackTrace(new PrintWriter(out));
fail(out.toString());
}
project.delete(true, null);
}
/**
* Verify that attempting to load a model for an unsupported content type
* simply returns null without Exceptions or assertion failures.
*
* @throws CoreException
* @throws IOException
*/
public void testGetForEditWithUnsupported() throws CoreException {
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(getName());
if (!project.isAccessible()) {
project = createSimpleProject(getName());
}
IFile file = project.getFile("testEditFile.js");
file.create(new ByteArrayInputStream("var n = 0;".getBytes()), true, null);
assertTrue("test file not created", file.isAccessible());
try {
IStructuredModel model = StructuredModelManager.getModelManager().getModelForEdit(file);
assertNull("model returned even though expected to silently get null", model);
if (model != null)
model.releaseFromRead();
}
catch (Exception e) {
StringWriter out = new StringWriter();
e.printStackTrace(new PrintWriter(out));
fail(out.toString());
}
project.delete(true, null);
}
}