Index: /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 11101)
+++ /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 11102)
@@ -294,5 +294,5 @@
 
         switch (ed.showDialog().getValue()) {
-            case 1: ta.copyToClippboard(); break;
+            case 1: ta.copyToClipboard(); break;
             case 2: BugReportSender.reportBug(reportHeader); break;
             default: // Do nothing
Index: /trunk/src/org/openstreetmap/josm/tools/bugreport/BugReportDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/bugreport/BugReportDialog.java	(revision 11101)
+++ /trunk/src/org/openstreetmap/josm/tools/bugreport/BugReportDialog.java	(revision 11102)
@@ -111,5 +111,5 @@
         panel.add(new UrlLabel(Main.getJOSMWebsite() + "/newticket"), GBC.std().fill(GBC.HORIZONTAL));
         JButton copy = new JButton("Copy to clipboard");
-        copy.addActionListener(e -> textPanel.copyToClippboard());
+        copy.addActionListener(e -> textPanel.copyToClipboard());
         panel.add(copy, GBC.eol().anchor(GBC.EAST));
         content.add(panel, GBC.eop().fill());
Index: /trunk/src/org/openstreetmap/josm/tools/bugreport/DebugTextDisplay.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/bugreport/DebugTextDisplay.java	(revision 11101)
+++ /trunk/src/org/openstreetmap/josm/tools/bugreport/DebugTextDisplay.java	(revision 11102)
@@ -65,6 +65,7 @@
      * Copies the debug text to the clipboard. This includes the code tags for trac.
      * @return <code>true</code> if copy was successful
+     * @since 11102 (typo)
      */
-    public boolean copyToClippboard() {
+    public boolean copyToClipboard() {
         return ClipboardUtils.copyString(String.format(CODE_PATTERN, text));
     }
Index: /trunk/test/unit/org/openstreetmap/josm/TestUtils.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/TestUtils.java	(revision 11101)
+++ /trunk/test/unit/org/openstreetmap/josm/TestUtils.java	(revision 11102)
@@ -10,7 +10,10 @@
 import java.io.InputStream;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Comparator;
 
+import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmUtils;
 import org.openstreetmap.josm.data.osm.Relation;
@@ -245,3 +248,22 @@
         return relation;
     }
+
+    /**
+     * Creates a new empty command.
+     * @return a new empty command
+     */
+    public static Command newCommand() {
+        return new Command() {
+            @Override
+            public String getDescriptionText() {
+                return "";
+            }
+
+            @Override
+            public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted,
+                    Collection<OsmPrimitive> added) {
+                // Do nothing
+            }
+        };
+    }
 }
Index: /trunk/test/unit/org/openstreetmap/josm/gui/conflict/pair/ConflictResolverTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/conflict/pair/ConflictResolverTest.java	(revision 11102)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/conflict/pair/ConflictResolverTest.java	(revision 11102)
@@ -0,0 +1,83 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.conflict.pair;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.conflict.Conflict;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link ConflictResolver} class.
+ */
+public class ConflictResolverTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
+
+    /**
+     * Unit test of {@link ConflictResolver#buildResolveCommand} - empty case.
+     */
+    @Test
+    public void testBuildResolveCommandEmpty() {
+        assertNotNull(new ConflictResolver().buildResolveCommand());
+    }
+
+    /**
+     * Unit test of {@link ConflictResolver#buildResolveCommand} - node case.
+     */
+    @Test
+    public void testBuildResolveCommandNode() {
+        ConflictResolver resolver = new ConflictResolver();
+        Node n1 = new Node(LatLon.SOUTH_POLE);
+        n1.put("source", "my");
+        Node n2 = new Node(LatLon.NORTH_POLE);
+        n2.put("source", "theirs");
+        resolver.populate(new Conflict<>(n1, n2));
+        resolver.decideRemaining(MergeDecisionType.KEEP_MINE);
+        assertFalse(((SequenceCommand) resolver.buildResolveCommand()).getChildren().isEmpty());
+    }
+
+    /**
+     * Unit test of {@link ConflictResolver#buildResolveCommand} - way case.
+     */
+    @Test
+    public void testBuildResolveCommandWay() {
+        ConflictResolver resolver = new ConflictResolver();
+        Way w1 = new Way();
+        w1.put("source", "my");
+        Way w2 = new Way();
+        w2.put("source", "theirs");
+        resolver.populate(new Conflict<>(w1, w2));
+        resolver.decideRemaining(MergeDecisionType.KEEP_MINE);
+        assertFalse(((SequenceCommand) resolver.buildResolveCommand()).getChildren().isEmpty());
+    }
+
+    /**
+     * Unit test of {@link ConflictResolver#buildResolveCommand} - relation case.
+     */
+    @Test
+    public void testBuildResolveCommandRelation() {
+        ConflictResolver resolver = new ConflictResolver();
+        Relation r1 = new Relation();
+        r1.put("source", "my");
+        Relation r2 = new Relation();
+        r2.put("source", "theirs");
+        resolver.populate(new Conflict<>(r1, r2));
+        resolver.decideRemaining(MergeDecisionType.KEEP_MINE);
+        assertFalse(((SequenceCommand) resolver.buildResolveCommand()).getChildren().isEmpty());
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/CommandStackDialogTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/CommandStackDialogTest.java	(revision 11101)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/CommandStackDialogTest.java	(revision 11102)
@@ -7,4 +7,9 @@
 import org.junit.Rule;
 import org.junit.Test;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.TestUtils;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -24,8 +29,8 @@
 
     /**
-     * Unit test of {@link CommandStackDialog} class.
+     * Unit test of {@link CommandStackDialog} class - empty case.
      */
     @Test
-    public void testCommandStackDialog() {
+    public void testCommandStackDialogEmpty() {
         CommandStackDialog dlg = new CommandStackDialog();
         dlg.showDialog();
@@ -34,3 +39,31 @@
         assertFalse(dlg.isVisible());
     }
+
+    /**
+     * Unit test of {@link CommandStackDialog} class - not empty case.
+     */
+    @Test
+    public void testCommandStackDialogNotEmpty() {
+        OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
+        Main.getLayerManager().addLayer(layer);
+        try {
+            Command cmd1 = TestUtils.newCommand();
+            Command cmd2 = TestUtils.newCommand();
+            Main.main.undoRedo.add(cmd1);
+            Main.main.undoRedo.add(cmd2);
+            Main.main.undoRedo.undo(1);
+
+            assertFalse(Main.main.undoRedo.commands.isEmpty());
+            assertFalse(Main.main.undoRedo.redoCommands.isEmpty());
+
+            CommandStackDialog dlg = new CommandStackDialog();
+            dlg.showDialog();
+            assertTrue(dlg.isVisible());
+            dlg.hideDialog();
+            assertFalse(dlg.isVisible());
+        } finally {
+            Main.main.undoRedo.clean();
+            Main.getLayerManager().removeLayer(layer);
+        }
+    }
 }
Index: /trunk/test/unit/org/openstreetmap/josm/io/auth/CredentialsAgentExceptionTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/auth/CredentialsAgentExceptionTest.java	(revision 11102)
+++ /trunk/test/unit/org/openstreetmap/josm/io/auth/CredentialsAgentExceptionTest.java	(revision 11102)
@@ -0,0 +1,37 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.io.auth;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link CredentialsAgentException} class.
+ */
+public class CredentialsAgentExceptionTest {
+
+    /**
+     * Setup test
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of {@code CredentialsAgentException#CredentialsAgentException}
+     */
+    @Test
+    public void testCredentialsAgentException() {
+        String msg = "test1";
+        Exception cause = new Exception("test2");
+        assertEquals(msg, new CredentialsAgentException(msg).getMessage());
+        assertEquals(cause, new CredentialsAgentException(cause).getCause());
+        CredentialsAgentException exc = new CredentialsAgentException(msg, cause);
+        assertEquals(msg, exc.getMessage());
+        assertEquals(cause, exc.getCause());
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/tools/bugreport/DebugTextDisplayTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/bugreport/DebugTextDisplayTest.java	(revision 11102)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/bugreport/DebugTextDisplayTest.java	(revision 11102)
@@ -0,0 +1,40 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.tools.bugreport;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit test of {@link DebugTextDisplay} class.
+ */
+public class DebugTextDisplayTest {
+    /**
+     * Setup test
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
+
+    /**
+     * Test {@link DebugTextDisplay#getCodeText}
+     */
+    @Test
+    public void testGetCodeText() {
+        assertEquals("test", new DebugTextDisplay("test").getCodeText());
+    }
+
+    /**
+     * Test {@link DebugTextDisplay#copyToClipboard}
+     */
+    @Test
+    public void testCopyToClipboard() {
+        new DebugTextDisplay("copy").copyToClipboard();
+        assertEquals(String.format("{{{%ncopy%n}}}"), ClipboardUtils.getClipboardStringContent());
+    }
+}
