Index: trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandlerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandlerTest.java	(revision 10944)
+++ trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandlerTest.java	(revision 10944)
@@ -0,0 +1,72 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.datatransfer;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Collections;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.CopyAction;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link OsmTransferHandler} class.
+ */
+public class OsmTransferHandlerTest {
+    /**
+     * Prefs to use OSM primitives
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().projection().commands();
+
+    private final OsmTransferHandler transferHandler = new OsmTransferHandler();
+
+    /**
+     * Test of {@link OsmTransferHandler#pasteOn} method
+     */
+    @Test
+    public void testPasteOn() {
+        DataSet ds1 = new DataSet();
+        Node n1 = new Node(new LatLon(43, 1));
+        ds1.addPrimitive(n1);
+        OsmDataLayer source = new OsmDataLayer(ds1, "source", null);
+
+        CopyAction.copy(source, Collections.singleton(n1));
+
+        DataSet ds2 = new DataSet();
+        OsmDataLayer target = new OsmDataLayer(ds2, "target", null);
+
+        transferHandler.pasteOn(target, null);
+        assertTrue(n1.getCoor().equalsEpsilon(ds2.getNodes().iterator().next().getCoor()));
+
+        ds2.clear();
+        assertTrue(ds2.getNodes().isEmpty());
+
+        LatLon pos = new LatLon(55, -5);
+        transferHandler.pasteOn(target, Main.getProjection().latlon2eastNorth(pos));
+        assertTrue(pos.equalsEpsilon(ds2.getNodes().iterator().next().getCoor()));
+    }
+
+    /**
+     * Test of {@link OsmTransferHandler#pasteTags} method
+     */
+    @Test
+    public void testPasteTags() {
+        Node n = new Node(LatLon.ZERO);
+
+        ClipboardUtils.copyString("test=ok");
+        transferHandler.pasteTags(Collections.singleton(n));
+
+        assertEquals("ok", n.get("test"));
+    }
+}
