Index: /trunk/test/unit/org/openstreetmap/josm/TestUtils.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/TestUtils.java	(revision 17148)
+++ /trunk/test/unit/org/openstreetmap/josm/TestUtils.java	(revision 17149)
@@ -34,4 +34,5 @@
 import java.util.stream.Stream;
 
+import org.junit.Assert;
 import org.junit.Assume;
 import org.openstreetmap.josm.command.Command;
@@ -540,4 +541,14 @@
 
     /**
+     * Replaces {@linkplain System#lineSeparator() system dependent line separators} with {@code \n}
+     * and calls {@link Assert#assertEquals(java.lang.Object, java.lang.Object)}.
+     * @param expected expected value
+     * @param actual the value to check against <code>expected</code>
+     */
+    public static void assertEqualsNewline(String expected, String actual) {
+        assertEquals(expected, actual.replace(System.lineSeparator(), "\n"));
+    }
+
+    /**
      * Waits until any asynchronous operations launched by the test on the EDT or worker threads have
      * (almost certainly) completed.
Index: /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialogTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialogTest.java	(revision 17148)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialogTest.java	(revision 17149)
@@ -2,6 +2,6 @@
 package org.openstreetmap.josm.gui.dialogs;
 
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.openstreetmap.josm.TestUtils.assertEqualsNewline;
 
 import java.util.ArrayList;
@@ -68,5 +68,5 @@
     public void testBuildDataText() {
         DataSet ds = new DataSet();
-        assertEquals("", InspectPrimitiveDialog.buildDataText(ds, new ArrayList<>(ds.allPrimitives())));
+        assertEqualsNewline("", InspectPrimitiveDialog.buildDataText(ds, new ArrayList<>(ds.allPrimitives())));
         final Way way = new Way();
         way.addNode(new Node(new LatLon(47.2687921, 11.390525)));
@@ -83,5 +83,5 @@
         ds.addPrimitive(way);
         way.addNode(way.firstNode()); // close way
-        assertEquals(
+        assertEqualsNewline(
             "Way: 1\n" +
                 "  Data Set: "+Integer.toHexString(ds.hashCode())+"\n" +
@@ -110,7 +110,7 @@
     public void testBuildListOfEditorsText() {
         DataSet ds = new DataSet();
-        assertEquals("0 users last edited the selection:\n\n", InspectPrimitiveDialog.buildListOfEditorsText(ds.allPrimitives()));
+        assertEqualsNewline("0 users last edited the selection:\n\n", InspectPrimitiveDialog.buildListOfEditorsText(ds.allPrimitives()));
         ds.addPrimitive(new Node(LatLon.ZERO));
-        assertEquals("0 users last edited the selection:\n\n", InspectPrimitiveDialog.buildListOfEditorsText(ds.allPrimitives()));
+        assertEqualsNewline("0 users last edited the selection:\n\n", InspectPrimitiveDialog.buildListOfEditorsText(ds.allPrimitives()));
         Node n = new Node(LatLon.ZERO);
         n.setUser(User.getAnonymous());
@@ -119,5 +119,5 @@
         n.setUser(User.getAnonymous());
         ds.addPrimitive(n);
-        assertEquals(
+        assertEqualsNewline(
                 "1 user last edited the selection:\n" +
                 "\n" +
@@ -153,5 +153,5 @@
         try {
             MainApplication.getLayerManager().addLayer(layer);
-            assertEquals("", InspectPrimitiveDialog.buildMapPaintText());
+            assertEqualsNewline("", InspectPrimitiveDialog.buildMapPaintText());
             Node n = new Node(LatLon.ZERO);
             n.setUser(User.getAnonymous());
@@ -159,10 +159,10 @@
             ds.addSelected(n);
             String text = InspectPrimitiveDialog.buildMapPaintText().replaceAll("@(\\p{XDigit})+", "");
-            assertEquals(baseText, text);
+            assertEqualsNewline(baseText, text);
             n = new Node(LatLon.ZERO);
             n.setUser(User.getAnonymous());
             ds.addPrimitive(n);
             ds.addSelected(n);
-            assertEquals(baseText + baseText + "The 2 selected objects have identical style caches.\n",
+            assertEqualsNewline(baseText + baseText + "The 2 selected objects have identical style caches.\n",
                     InspectPrimitiveDialog.buildMapPaintText().replaceAll("@(\\p{XDigit})+", ""));
         } finally {
Index: /trunk/test/unit/org/openstreetmap/josm/io/GpxWriterTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/GpxWriterTest.java	(revision 17148)
+++ /trunk/test/unit/org/openstreetmap/josm/io/GpxWriterTest.java	(revision 17149)
@@ -2,10 +2,9 @@
 package org.openstreetmap.josm.io;
 
-import static org.junit.Assert.assertEquals;
+import static org.openstreetmap.josm.TestUtils.assertEqualsNewline;
 
 import java.awt.Color;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
 import java.time.Month;
@@ -51,15 +50,15 @@
             writer.write(gpx);
         }
-        assertEquals(String.format("<?xml version='1.0' encoding='UTF-8'?>%n" +
-                "<gpx version=\"1.1\" creator=\"JOSM GPX export\" xmlns=\"http://www.topografix.com/GPX/1/1\"%n" +
-                "    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"%n" +
-                "    xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd\">%n" +
-                "  <metadata>%n" +
-                "    <bounds minlat=\"0.0\" minlon=\"0.0\" maxlat=\"0.0\" maxlon=\"0.0\"/>%n" +
-                "  </metadata>%n" +
-                "  <wpt lat=\"0.0\" lon=\"0.0\">%n" +
+        assertEqualsNewline("<?xml version='1.0' encoding='UTF-8'?>\n" +
+                "<gpx version=\"1.1\" creator=\"JOSM GPX export\" xmlns=\"http://www.topografix.com/GPX/1/1\"\n" +
+                "    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
+                "    xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd\">\n" +
+                "  <metadata>\n" +
+                "    <bounds minlat=\"0.0\" minlon=\"0.0\" maxlat=\"0.0\" maxlon=\"0.0\"/>\n" +
+                "  </metadata>\n" +
+                "  <wpt lat=\"0.0\" lon=\"0.0\">\n" +
                 atts +
-                "  </wpt>%n" +
-                "</gpx>"), baos.toString(StandardCharsets.UTF_8.name()));
+                "  </wpt>\n" +
+                "</gpx>", baos.toString());
     }
 
@@ -73,5 +72,5 @@
         testSingleWaypoint(
                 w -> w.put(GpxConstants.PT_TIME, Date.from(LocalDate.of(2018, Month.AUGUST, 2).atStartOfDay(ZoneOffset.UTC).toInstant())),
-                "    <time>2018-08-02T00:00:00Z</time>%n");
+                "    <time>2018-08-02T00:00:00Z</time>\n");
     }
 
@@ -90,8 +89,8 @@
                     w.put(GpxConstants.PT_PDOP, 1.2);
                 },
-                "    <sat>16</sat>%n" +
-                "    <hdop>0.7</hdop>%n" +
-                "    <vdop>0.9</vdop>%n" +
-                "    <pdop>1.2</pdop>%n");
+                "    <sat>16</sat>\n" +
+                "    <hdop>0.7</hdop>\n" +
+                "    <vdop>0.9</vdop>\n" +
+                "    <pdop>1.2</pdop>\n");
     }
 
@@ -134,5 +133,5 @@
 
         writer.write(data);
-        assertEquals("<?xml version='1.0' encoding='UTF-8'?>\n" +
+        assertEqualsNewline("<?xml version='1.0' encoding='UTF-8'?>\n" +
                 "<gpx version=\"1.1\" creator=\"JOSM GPX export\" xmlns=\"http://www.topografix.com/GPX/1/1\"\n" +
                 "    xmlns:knownprefix=\"http://example.com/URI\"\n" +
@@ -171,5 +170,5 @@
         baos.reset();
         writer.write(data, GpxConstants.ColorFormat.GPXX, true);
-        assertEquals("<?xml version='1.0' encoding='UTF-8'?>\n" +
+        assertEqualsNewline("<?xml version='1.0' encoding='UTF-8'?>\n" +
                 "<gpx version=\"1.1\" creator=\"JOSM GPX export\" xmlns=\"http://www.topografix.com/GPX/1/1\"\n" +
                 "    xmlns:knownprefix=\"http://example.com/URI\"\n" +
@@ -210,5 +209,5 @@
         baos.reset();
         writer.write(data, null, false);
-        assertEquals("<?xml version='1.0' encoding='UTF-8'?>\n" +
+        assertEqualsNewline("<?xml version='1.0' encoding='UTF-8'?>\n" +
                 "<gpx version=\"1.1\" creator=\"JOSM GPX export\" xmlns=\"http://www.topografix.com/GPX/1/1\"\n" +
                 "    xmlns:knownprefix=\"http://example.com/URI\"\n" +
@@ -243,5 +242,5 @@
         // being hidden, even if they don't actually have to be converted
         // (GPXD -> convertColor() -> GPXX -> hide() -> null -> show() -> GPXX)
-        assertEquals("<?xml version='1.0' encoding='UTF-8'?>\n" +
+        assertEqualsNewline("<?xml version='1.0' encoding='UTF-8'?>\n" +
                 "<gpx version=\"1.1\" creator=\"JOSM GPX export\" xmlns=\"http://www.topografix.com/GPX/1/1\"\n" +
                 "    xmlns:knownprefix=\"http://example.com/URI\"\n" +
