Index: trunk/test/unit/org/openstreetmap/josm/gui/preferences/plugin/PluginPreferenceTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/preferences/plugin/PluginPreferenceTest.java	(revision 11973)
+++ trunk/test/unit/org/openstreetmap/josm/gui/preferences/plugin/PluginPreferenceTest.java	(revision 11974)
@@ -17,4 +17,5 @@
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.plugins.PluginDownloadTask;
+import org.openstreetmap.josm.plugins.PluginException;
 import org.openstreetmap.josm.plugins.PluginInformation;
 
@@ -41,4 +42,14 @@
 
     /**
+     * Returns a dummy plugin information.
+     * @return a dummy plugin information
+     * @throws PluginException if an error occurs
+     */
+    public static PluginInformation getDummyPluginInformation() throws PluginException {
+        return new PluginInformation(
+                new File(TestUtils.getTestDataRoot() + "plugin/dummy_plugin.jar"), "dummy_plugin");
+    }
+
+    /**
      * Unit test of {@link PluginPreference#buildDownloadSummary}.
      * @throws Exception if an error occurs
@@ -46,6 +57,5 @@
     @Test
     public void testBuildDownloadSummary() throws Exception {
-        final PluginInformation dummy = new PluginInformation(
-                new File(TestUtils.getTestDataRoot() + "plugin/dummy_plugin.jar"), "dummy_plugin");
+        final PluginInformation dummy = getDummyPluginInformation();
         assertEquals("", PluginPreference.buildDownloadSummary(
                 new PluginDownloadTask(NullProgressMonitor.INSTANCE, Collections.<PluginInformation>emptyList(), "")));
Index: trunk/test/unit/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionManagerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionManagerTest.java	(revision 11974)
+++ trunk/test/unit/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionManagerTest.java	(revision 11974)
@@ -0,0 +1,32 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.tagging.ac;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager.UserInputTag;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+/**
+ * Unit tests of {@link AutoCompletionManager} class.
+ */
+public class AutoCompletionManagerTest {
+
+    /**
+     * Setup rule
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of methods {@link UserInputTag#equals} and {@link UserInputTag#hashCode}.
+     */
+    @Test
+    public void testEqualsContract() {
+        EqualsVerifier.forClass(UserInputTag.class).usingGetClass()
+            .verify();
+    }
+}
Index: trunk/test/unit/org/openstreetmap/josm/io/imagery/WMSImageryTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/imagery/WMSImageryTest.java	(revision 11974)
+++ trunk/test/unit/org/openstreetmap/josm/io/imagery/WMSImageryTest.java	(revision 11974)
@@ -0,0 +1,38 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.io.imagery;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.io.imagery.WMSImagery.WMSGetCapabilitiesException;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link WMSImagery} class.
+ */
+public class WMSImageryTest {
+
+    /**
+     * Setup test
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of {@code WMSImagery.WMSGetCapabilitiesException} class
+     */
+    @Test
+    public void testWMSGetCapabilitiesException() {
+        Exception cause = new Exception("test");
+        WMSGetCapabilitiesException exc = new WMSGetCapabilitiesException(cause, "bar");
+        assertEquals(cause, exc.getCause());
+        assertEquals("bar", exc.getIncomingData());
+        exc = new WMSGetCapabilitiesException("foo", "bar");
+        assertEquals("foo", exc.getMessage());
+        assertEquals("bar", exc.getIncomingData());
+    }
+}
Index: trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTest.java	(revision 11973)
+++ trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTest.java	(revision 11974)
@@ -15,5 +15,7 @@
 import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.preferences.plugin.PluginPreferenceTest;
 import org.openstreetmap.josm.plugins.PluginHandler.DeprecatedPlugin;
+import org.openstreetmap.josm.plugins.PluginHandler.PluginInformationAction;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -84,3 +86,26 @@
         assertFalse(plugins.contains("gpsbabelgui"));
     }
+
+    /**
+     * Unit test of {@link PluginInformationAction} class.
+     * @throws PluginException if an error occurs
+     */
+    @Test
+    public void testPluginInformationAction() throws PluginException {
+        PluginInformationAction action = new PluginInformationAction(PluginPreferenceTest.getDummyPluginInformation());
+        assertEquals(
+                "Ant-Version: Apache Ant 1.9.6\n" +
+                "Author: Don-vip\n" +
+                "Created-By: 1.7.0_91-b02 (Oracle Corporation)\n" +
+                "Manifest-Version: 1.0\n" +
+                "Plugin-Canloadatruntime: true\n" +
+                "Plugin-Class: org.openstreetmap.josm.plugins.fr.epci.EpciPlugin\n" +
+                "Plugin-Date: 2015-11-19T08:21:07.645033Z\n" +
+                "Plugin-Description: Handling of French EPCIs (boundary=local_authority)\n" +
+                "Plugin-Early: true\n" +
+                "Plugin-Link: http://wiki.openstreetmap.org/wiki/FR:JOSM/Fr:Plugin/EPCI-fr\n" +
+                "Plugin-Mainversion: 7001\n" +
+                "Plugin-Version: 31772\n", action.getText());
+        action.actionPerformed(null);
+    }
 }
Index: trunk/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateParserTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateParserTest.java	(revision 11973)
+++ trunk/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateParserTest.java	(revision 11974)
@@ -237,4 +237,23 @@
 
     @Test
+    public void testSetAnd() throws ParseError {
+        TemplateParser parser = new TemplateParser("!{(parent(type=child) type=parent) & (parent type=child subtype=parent) '{name}'}");
+        DatasetFactory ds = new DatasetFactory();
+        Relation parent1 = ds.addRelation(1);
+        parent1.put("type", "parent");
+        parent1.put("subtype", "parent");
+        parent1.put("name", "name_parent1");
+        Node child = ds.addNode(1);
+        child.put("type", "child");
+        parent1.addMember(new RelationMember("", child));
+
+        StringBuilder sb = new StringBuilder();
+        TemplateEntry entry = parser.parse();
+        entry.appendText(sb, child);
+
+        Assert.assertEquals("name_parent1", sb.toString());
+    }
+
+    @Test
     public void testSetOr() throws ParseError {
         TemplateParser parser = new TemplateParser("!{(parent(type=type1) type=parent1) | (parent type=type2 type=parent2) '{name}'}");
