Bug 519328 - [All] Add "Bug Snippets" folder to org.eclipse.swt.tests
project

Adding an initial snippet for Bug 212416.

Change-Id: Ia77ce9997d3c4075cd58606974029905ce70327e
Signed-off-by: Leo Ufimtsev <lufimtse@redhat.com>
diff --git a/tests/org.eclipse.swt.tests/.classpath b/tests/org.eclipse.swt.tests/.classpath
index da01b5c..110579a 100644
--- a/tests/org.eclipse.swt.tests/.classpath
+++ b/tests/org.eclipse.swt.tests/.classpath
@@ -4,5 +4,6 @@
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="JUnit Tests"/>
 	<classpathentry kind="src" path="data"/>
+	<classpathentry kind="src" path="BugSnippets"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/tests/org.eclipse.swt.tests/BugSnippets/Bug497705_BrowserDragDetect.java b/tests/org.eclipse.swt.tests/BugSnippets/Bug497705_BrowserDragDetect.java
new file mode 100644
index 0000000..1af84a4
--- /dev/null
+++ b/tests/org.eclipse.swt.tests/BugSnippets/Bug497705_BrowserDragDetect.java
@@ -0,0 +1,89 @@
+
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DragSource;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.DragSourceListener;
+import org.eclipse.swt.dnd.DropTarget;
+import org.eclipse.swt.dnd.DropTargetAdapter;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+
+
+/**
+ * Title: Browser does not send DragDetect
+ * How to run: Run snippet. Try to drag text from the browser (left), onto Label (right)
+ * Expected results: "Drag started" should be printed in the console.
+ * Actual results: Nothing is printed in console. DragSource has no impact on browser.
+ * GTK version(s): all
+ *
+ * This snippet has been adopted from Snippet78
+ */
+public class Bug497705_BrowserDragDetect {
+
+	public static void main (String [] args) {
+		Display display = new Display ();
+		final Shell shell = new Shell (display);
+		shell.setLayout(new FillLayout());
+		final Browser b = new Browser (shell, SWT.BORDER);
+		b.setText ("TEXT");
+		final Label label2 = new Label (shell, SWT.BORDER);
+		setDrag (b); //doesn't seem to have an effect.
+		setDrop (label2);
+		shell.setSize (200, 200);
+		shell.open ();
+		while (!shell.isDisposed ()) {
+			if (!display.readAndDispatch ()) display.sleep ();
+		}
+		display.dispose ();
+	}
+
+	public static void setDrag(final Browser browser) {
+
+		Transfer[] types = new Transfer[] {TextTransfer.getInstance()};
+		int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
+
+		final DragSource source = new DragSource (browser, operations);
+		source.setTransfer(types);
+		source.addDragListener (new DragSourceListener () {
+			@Override
+			public void dragStart(DragSourceEvent event) {
+				event.doit = (browser.getText ().length () != 0);
+				System.out.println("Drag started"); //not ran.
+			}
+			@Override
+			public void dragSetData (DragSourceEvent event) {
+				event.data = browser.getText ();
+			}
+			@Override
+			public void dragFinished(DragSourceEvent event) {
+				if (event.detail == DND.DROP_MOVE)
+					browser.setText ("");
+			}
+		});
+	}
+
+	public static void setDrop (final Label label) {
+		Transfer[] types = new Transfer[] {TextTransfer.getInstance()};
+		int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
+		DropTarget target = new DropTarget(label, operations);
+		target.setTransfer(types);
+		target.addDropListener (new DropTargetAdapter() {
+			@Override
+			public void drop(DropTargetEvent event) {
+				if (event.data == null) {
+					event.detail = DND.DROP_NONE;
+					return;
+				}
+				label.setText ((String) event.data);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.swt.tests/BugSnippets/BugTemplate.java b/tests/org.eclipse.swt.tests/BugSnippets/BugTemplate.java
new file mode 100644
index 0000000..7249499
--- /dev/null
+++ b/tests/org.eclipse.swt.tests/BugSnippets/BugTemplate.java
@@ -0,0 +1,29 @@
+
+
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+
+
+/**
+ * Description:
+ * Steps to reproduce:
+ * Expected results:
+ * Actual results:
+ */
+public class BugTemplate {
+
+	public static void main (String [] args) {
+		Display display = new Display ();
+		final Shell shell = new Shell (display);
+		shell.setLayout(new FillLayout());
+
+
+
+		shell.open ();
+		while (!shell.isDisposed ()) {
+			if (!display.readAndDispatch ()) display.sleep ();
+		}
+		display.dispose ();
+	}
+}