| ///******************************************************************************* |
| // * Copyright (c) 2005, 2006 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.ui.tests.performance; |
| // |
| //import java.io.ByteArrayInputStream; |
| //import java.io.ByteArrayOutputStream; |
| //import java.io.IOException; |
| //import java.net.URL; |
| //import java.util.zip.ZipEntry; |
| //import java.util.zip.ZipInputStream; |
| //import junit.framework.Assert; |
| //import org.eclipse.core.resources.IFile; |
| //import org.eclipse.core.resources.IProject; |
| //import org.eclipse.core.resources.ResourcesPlugin; |
| //import org.eclipse.core.runtime.CoreException; |
| //import org.eclipse.core.runtime.NullProgressMonitor; |
| //import org.eclipse.core.runtime.Platform; |
| //import org.eclipse.test.performance.PerformanceTestCase; |
| //import org.eclipse.ui.IViewPart; |
| //import org.eclipse.ui.IWorkbenchPage; |
| //import org.eclipse.ui.PartInitException; |
| //import org.eclipse.ui.PlatformUI; |
| //import org.eclipse.ui.views.navigator.ResourceNavigator; |
| //import org.osgi.framework.Bundle; |
| // |
| ///** |
| // * This class/test was originally written for WTP bug 106158, and adapted to a |
| // * generic "platform" test case, since some of the problem was due to bug |
| // * 107121 |
| // * |
| // * Thanks for Jeffrey Liu (jeffliu@ca.ibm.com) who wrote the test for WTP. |
| // * |
| // * And, thanks to Eric Glass <ericglass@maximus.com> for opening bug 106158 |
| // * (100% CPU for over 3 minutes opening a directory in the Navigator view with |
| // * over 2000 HTML files) https://bugs.eclipse.org/bugs/show_bug.cgi?id=106158 |
| // * and for providing 2500 "generic" HTML files for the original test case in |
| // * WTP. |
| // * |
| // * modified by David Williams for platform level test that does not depend on |
| // * WTP or, for that matter, any meaningful content type. The content type |
| // * assumed there is designed simply to "take a while" to complete, if asked |
| // * for its properties. |
| // * |
| // * Note, since this test companion "ContentDescriberForTestsOnly", simply uses |
| // * "sleep" to simulate computations, it only effects Elapsed Time (not CPU |
| // * Time). |
| // * |
| // */ |
| //public class OpenNavigatorFolderTest extends PerformanceTestCase { |
| // /* |
| // * performance testcase for bug 106158 |
| // * https://bugs.eclipse.org/bugs/show_bug.cgi?id=106158 |
| // */ |
| // public void testOpenNavigatorFolder() { |
| // IProject project = createProject("testViewAndContentTypeProject"); |
| // Bundle bundle = Platform.getBundle("org.eclipse.ui.tests"); |
| // URL url = bundle.getEntry("data/testContentType.zip"); |
| // ZipInputStream zis = null; |
| // try { |
| // zis = new ZipInputStream(url.openStream()); |
| // ZipEntry entry = zis.getNextEntry(); |
| // while (entry != null) { |
| // ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
| // try { |
| // byte[] b = new byte[2048]; |
| // int read = zis.read(b); |
| // while (read != -1) { |
| // baos.write(b, 0, read); |
| // read = zis.read(b); |
| // } |
| // } |
| // catch (IOException e) { |
| // Assert.fail(e.getMessage()); |
| // } |
| // finally { |
| // try { |
| // baos.close(); |
| // } |
| // catch (IOException e) { |
| // Assert.fail(e.getMessage()); |
| // } |
| // } |
| // IFile file = project.getFile(entry.getName()); |
| // ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); |
| // try { |
| // if (!file.exists()) |
| // file.create(bais, true, new NullProgressMonitor()); |
| // else |
| // file.setContents(bais, true, false, new NullProgressMonitor()); |
| // } |
| // catch (CoreException e) { |
| // Assert.fail(e.getMessage()); |
| // } |
| // finally { |
| // try { |
| // bais.close(); |
| // } |
| // catch (IOException e) { |
| // Assert.fail(e.getMessage()); |
| // } |
| // } |
| // entry = zis.getNextEntry(); |
| // } |
| // } |
| // catch (IOException e) { |
| // Assert.fail(e.getMessage()); |
| // } |
| // finally { |
| // try { |
| // if (zis != null) { |
| // zis.close(); |
| // } |
| // } |
| // catch (IOException e) { |
| // Assert.fail(e.getMessage()); |
| // } |
| // } |
| // startMeasuring(); |
| // IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); |
| // IViewPart view = null; |
| // try { |
| // view = activePage.showView("org.eclipse.ui.views.ResourceNavigator"); |
| // } |
| // catch (PartInitException e) { |
| // Assert.fail(e.getMessage()); |
| // } |
| // ResourceNavigator navigatorView = null; |
| // try { |
| // navigatorView = (ResourceNavigator) view; |
| // } |
| // catch (ClassCastException e) { |
| // Assert.fail(e.getMessage()); |
| // } |
| // navigatorView.getTreeViewer().expandAll(); |
| // stopMeasuring(); |
| // commitMeasurements(); |
| // assertPerformance(); |
| // } |
| // |
| // private IProject createProject(String name) { |
| // IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name); |
| // if (!project.exists()) { |
| // try { |
| // project.create(new NullProgressMonitor()); |
| // project.open(new NullProgressMonitor()); |
| // } |
| // catch (CoreException e) { |
| // Assert.fail(e.getMessage()); |
| // } |
| // } |
| // return project; |
| // } |
| //} |