diff options
author | Markus Keller | 2012-08-17 14:45:04 +0000 |
---|---|---|
committer | Markus Keller | 2012-08-17 14:45:04 +0000 |
commit | affab046bc89be3c0c7d0859ab1e9048d27f099f (patch) | |
tree | b64c39a020287036b81837bcbf301d7aa3c7cb62 | |
parent | 9947195fa51547ed3a4664f2d6f3d852ddf551f7 (diff) | |
download | eclipse.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.java | 33 |
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(); |