blob: b2b8c67a1fd1115dc2f269f16ebcba92ea692738 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2007 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.dialogs;
import java.util.*;
import org.eclipse.core.resources.*;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.FilteredResourcesSelectionDialog;
public class UIFilteredResourcesSelectionDialogAuto extends
UIAbstractFilteredResourcesSelectionDialog {
/**
* Checks if content provider displays expected resources from the history.
*
* @throws Exception
*/
public void testReadHistory() throws Exception {
final MockedFilteredResourcesSelectionDialog dialog = createDialog();
dialog.open();
Object[] items = dialog.getHistoryItems();
assertEquals(historyResources.length, items.length);
Set itemsSet = new HashSet(historyResources.length);
itemsSet.addAll(Arrays.asList(items));
for (int i = 0; i < historyResources.length; i++) {
assertEquals(true, itemsSet.contains(historyResources[i]));
}
closeDialog(dialog);
}
private static MockedFilteredResourcesSelectionDialog createDialog() {
final IWorkbenchWindow window = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow();
final Shell parent = window.getShell();
final IContainer input = ResourcesPlugin.getWorkspace().getRoot();
final MockedFilteredResourcesSelectionDialog dialog = new MockedFilteredResourcesSelectionDialog(
parent, true, input, IResource.FILE);
if (dialog.getShell() == null) {
dialog.create();
}
Point testDialogSize = dialog.getShell().getSize();
dialog.setBlockOnOpen(false);
dialog.getShell().setLocation(window.getShell().getSize().x + 1, 0);
dialog.getShell().setSize(testDialogSize);
dialog.getShell().addShellListener(new ShellAdapter() {
public void shellClosed(ShellEvent e) {
e.doit = false;
}
});
return dialog;
}
private static void closeDialog(
MockedFilteredResourcesSelectionDialog dialog) {
if (dialog.getShell() != null) {
dialog.getShell().dispose();
dialog.close();
}
}
private static class MockedFilteredResourcesSelectionDialog extends
FilteredResourcesSelectionDialog {
public MockedFilteredResourcesSelectionDialog(Shell shell,
boolean multi, IContainer container, int typesMask) {
super(shell, multi, container, typesMask);
}
// override protected modifiers ...
public Object[] getHistoryItems() {
return getSelectionHistory().getHistoryItems();
}
}
}