Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Keller2012-08-17 14:45:04 +0000
committerMarkus Keller2012-08-17 14:45:04 +0000
commitaffab046bc89be3c0c7d0859ab1e9048d27f099f (patch)
treeb64c39a020287036b81837bcbf301d7aa3c7cb62
parent9947195fa51547ed3a4664f2d6f3d852ddf551f7 (diff)
downloadeclipse.platform.text-affab046bc89be3c0c7d0859ab1e9048d27f099f.tar.gz
eclipse.platform.text-affab046bc89be3c0c7d0859ab1e9048d27f099f.tar.xz
eclipse.platform.text-affab046bc89be3c0c7d0859ab1e9048d27f099f.zip
Bug 379026: Test failures on GTK because workbench window doesn't have focus
On failure on GTK, store a screenshot in ../../results/html/
-rw-r--r--org.eclipse.ui.workbench.texteditor.tests/src/org/eclipse/ui/workbench/texteditor/tests/FindReplaceDialogTest.java33
1 files changed, 29 insertions, 4 deletions
diff --git a/org.eclipse.ui.workbench.texteditor.tests/src/org/eclipse/ui/workbench/texteditor/tests/FindReplaceDialogTest.java b/org.eclipse.ui.workbench.texteditor.tests/src/org/eclipse/ui/workbench/texteditor/tests/FindReplaceDialogTest.java
index f1138971d15..0dfe6585b9e 100644
--- a/org.eclipse.ui.workbench.texteditor.tests/src/org/eclipse/ui/workbench/texteditor/tests/FindReplaceDialogTest.java
+++ b/org.eclipse.ui.workbench.texteditor.tests/src/org/eclipse/ui/workbench/texteditor/tests/FindReplaceDialogTest.java
@@ -11,7 +11,6 @@
package org.eclipse.ui.workbench.texteditor.tests;
import java.io.File;
-import java.util.Arrays;
import java.util.ResourceBundle;
import junit.framework.Test;
@@ -19,12 +18,18 @@ import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.ImageLoader;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.core.runtime.Path;
+
import org.eclipse.text.tests.Accessor;
import org.eclipse.jface.util.Util;
@@ -191,9 +196,7 @@ public class FindReplaceDialogTest extends TestCase {
runEventQueue();
Shell shell= ((Shell)fFindReplaceDialog.get("fActiveShell"));
if (shell == null && Util.isGtk())
- fail("this test does not work on GTK unless the runtime workbench has focus\n" +
- "current dir: " + new File("").getAbsoluteFile() + "\n" +
- "current dir contents: " + Arrays.asList(new File("").getAbsoluteFile().listFiles()));
+ fail("this test does not work on GTK unless the runtime workbench has focus. Screenshot: " + takeScreenshot());
assertTrue(findField.isFocusControl());
@@ -211,6 +214,28 @@ public class FindReplaceDialogTest extends TestCase {
runEventQueue();
assertTrue(allScopeBox.isFocusControl());
}
+
+ private String takeScreenshot() {
+ File eclipseDir= new File("").getAbsoluteFile(); // eclipse-testing/test-eclipse/eclipse
+ File resultsHtmlDir= new File(eclipseDir, "../../results/html/").getAbsoluteFile();
+
+ // Take a screenshot:
+ Display display= Display.getDefault();
+ GC gc = new GC(display);
+ final Image image = new Image(display, display.getBounds());
+ gc.copyArea(image, 0, 0);
+ gc.dispose();
+
+ resultsHtmlDir.mkdirs();
+ String filename = new Path(resultsHtmlDir.getAbsolutePath()).append(
+ "FindReplaceDialogTest." + getName() + ".png").toOSString();
+ ImageLoader loader = new ImageLoader();
+ loader.data = new ImageData[] { image.getImageData() };
+ loader.save(filename, SWT.IMAGE_PNG);
+ System.err.println("Screenshot saved to: " + filename);
+ image.dispose();
+ return filename;
+ }
public void testFocusNotChangedWhenButtonMnemonicPressed() {
openTextViewerAndFindReplaceDialog();

Back to the top