/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.editor;
import java.io.ByteArrayInputStream;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.python.pydev.editor.codecompletion.revisited.javaintegration.AbstractWorkbenchTestCase;
import org.python.pydev.editorinput.PyOpenEditor;
import com.aptana.shared_core.callbacks.ICallback;
public class PyEditTitleTestWorkbench extends AbstractWorkbenchTestCase {
public static Test suite() {
TestSuite suite = new TestSuite(PyEditTitleTestWorkbench.class.getName());
suite.addTestSuite(PyEditTitleTestWorkbench.class);
if (suite.countTestCases() == 0) {
throw new Error("There are no test cases to run");
} else {
return suite;
}
}
protected void setUp() throws Exception {
//no need for default setup
closeWelcomeView();
}
public void testEditorTitle() throws Exception {
NullProgressMonitor monitor = new NullProgressMonitor();
IProject project = createProject(monitor, "pydev_title_project");
IFile myFile = project.getFile("my_file.py");
myFile.create(new ByteArrayInputStream("".getBytes()), true, monitor);
IFolder folder = project.getFolder("folder");
folder.create(true, true, null);
IFile file2 = folder.getFile("my_file.py");
file2.create(new ByteArrayInputStream("".getBytes()), true, monitor);
project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
PyEdit editor2 = null;
PyEdit editor = null;
try {
editor = (PyEdit) PyOpenEditor.doOpenEditor(myFile);
final PyEdit editorRef = editor;
String partName = editor.getPartName();
assertEquals("my_file", partName);
editor2 = (PyEdit) PyOpenEditor.doOpenEditor(file2);
final PyEdit editor2final = editor2;
//We may wait until 10 seconds for the condition to happen (we must not keep the ui-thread
//otherwise it won't work).
goToManual(10000, new ICallback<Boolean, Object>() {
public Boolean call(Object arg) {
return "my_file (pydev_title_project)".equals(editorRef.getPartName())
&& "my_file (folder)".equals(editor2final.getPartName());
}
});
} finally {
if (editor2 != null) {
editor2.close(false);
}
if (editor != null) {
editor.close(false);
}
}
}
}