Index: trunk/test/data/sessions/gpx_markers.jos
===================================================================
--- trunk/test/data/sessions/gpx_markers.jos	(revision 17658)
+++ trunk/test/data/sessions/gpx_markers.jos	(revision 17658)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<josm-session version="0.1">
+    <viewport>
+        <center lat="0.0" lon="0.0"/>
+        <scale meter-per-pixel="10.000000"/>
+    </viewport>
+    <projection>
+        <projection-choice>
+            <id>core:mercator</id>
+            <parameters/>
+        </projection-choice>
+        <code>EPSG:3857</code>
+    </projection>
+    <layers>
+        <layer index="1" name="GPX layer name" type="tracks" version="0.1" visible="true">
+            <file>layers/01/data.gpx</file>
+        </layer>
+        <layer index="2" name="Marker layer name" type="markers" version="0.1" visible="true">
+            <file>layers/02/data.gpx</file>
+        </layer>
+    </layers>
+</josm-session>
Index: trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 17655)
+++ trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 17658)
@@ -4,4 +4,9 @@
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.Collections;
@@ -9,8 +14,10 @@
 import java.util.List;
 import java.util.Map;
+import java.util.zip.ZipFile;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.gpx.GpxData;
@@ -35,4 +42,6 @@
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 /**
  * Unit tests for Session writing.
@@ -99,5 +108,5 @@
     }
 
-    private void testWrite(List<Layer> layers, final boolean zip) throws IOException {
+    private byte[] testWrite(List<Layer> layers, final boolean zip) throws IOException {
         Map<Layer, SessionLayerExporter> exporters = new HashMap<>();
         if (zip) {
@@ -115,4 +124,11 @@
         try {
             sw.write(file);
+            if (!zip) {
+                return null;
+            }
+            try (ZipFile zipFile = new ZipFile(file);
+                 InputStream input = zipFile.getInputStream(zipFile.getEntry("session.jos"))) {
+                return Utils.readBytesFromStream(input);
+            }
         } finally {
             if (file.exists()) {
@@ -213,5 +229,9 @@
     void testWriteGpxAndMarkerJoz() throws IOException {
         GpxLayer gpx = createGpxLayer();
-        testWrite(Arrays.asList(gpx, createMarkerLayer(gpx)), true);
+        byte[] bytes = testWrite(Arrays.asList(gpx, createMarkerLayer(gpx)), true);
+        Path path = Paths.get(TestUtils.getTestDataRoot() + "/sessions/gpx_markers.jos");
+        String expected = new String(Files.readAllBytes(path), StandardCharsets.UTF_8).replace("\r", "");
+        String actual = new String(bytes, StandardCharsets.UTF_8).replace("\r", "");
+        assertEquals(expected, actual);
     }
 
