Index: /applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/gui/MapillaryPreferenceSettingTest.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/gui/MapillaryPreferenceSettingTest.java	(revision 31820)
+++ /applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/gui/MapillaryPreferenceSettingTest.java	(revision 31820)
@@ -0,0 +1,57 @@
+package org.openstreetmap.josm.plugins.mapillary.gui;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.lang.reflect.Field;
+
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.junit.Test;
+import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
+import org.openstreetmap.josm.plugins.mapillary.AbstractTest;
+import org.openstreetmap.josm.tools.I18n;
+
+public class MapillaryPreferenceSettingTest extends AbstractTest {
+
+  @Test
+  public void testAddGui() {
+    PreferenceTabbedPane tabs = new PreferenceTabbedPane();
+    tabs.buildGui();
+    int displayTabs = tabs.getDisplayPreference().getTabPane().getTabCount();
+    MapillaryPreferenceSetting setting = new MapillaryPreferenceSetting();
+    setting.addGui(tabs);
+    assertEquals(displayTabs + 1, tabs.getDisplayPreference().getTabPane().getTabCount());
+    assertEquals(tabs.getDisplayPreference(), setting.getTabPreferenceSetting(tabs));
+  }
+
+  @Test
+  public void testLoginLogout() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+    PreferenceTabbedPane tabs = new PreferenceTabbedPane();
+    tabs.buildGui();
+    MapillaryPreferenceSetting setting = new MapillaryPreferenceSetting();
+    setting.addGui(tabs);
+    setting.onLogout();
+
+    assertEquals(I18n.tr("Login"), ((JButton) getPrivateField(setting, "loginButton")).getText());
+    assertEquals(I18n.tr("You are currently not logged in."), ((JLabel) getPrivateField(setting, "loginLabel")).getText());
+    assertFalse(((JPanel) getPrivateField(setting, "loginPanel")).isAncestorOf(((JButton) getPrivateField(setting, "logoutButton"))));
+
+    String username = "TheMapillaryUsername";
+    setting.onLogin(username);
+
+    assertEquals(I18n.tr("Re-Login"), ((JButton) getPrivateField(setting, "loginButton")).getText());
+    assertEquals(I18n.tr("You are logged in as ''{0}''.", username), ((JLabel) getPrivateField(setting, "loginLabel")).getText());
+    assertTrue(((JPanel) getPrivateField(setting, "loginPanel")).isAncestorOf(((JButton) getPrivateField(setting, "logoutButton"))));
+  }
+
+  private Object getPrivateField(MapillaryPreferenceSetting object, String name) throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException {
+    Field field = object.getClass().getDeclaredField(name);
+    field.setAccessible(true);
+    return field.get(object);
+  }
+
+}
Index: /applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/utils/TestUtil.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/utils/TestUtil.java	(revision 31819)
+++ /applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/utils/TestUtil.java	(revision 31820)
@@ -10,4 +10,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.projection.Projections;
+import org.openstreetmap.josm.gui.preferences.ToolbarPreferences;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryLayer;
 import org.openstreetmap.josm.tools.I18n;
@@ -44,4 +45,7 @@
       Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
       isInitialized = true;
+      if (Main.toolbar == null) {
+        Main.toolbar = new ToolbarPreferences();
+      }
     }
   }
