Index: trunk/test/unit/org/openstreetmap/josm/gui/io/SaveLayerInfoTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/io/SaveLayerInfoTest.java	(revision 9753)
+++ trunk/test/unit/org/openstreetmap/josm/gui/io/SaveLayerInfoTest.java	(revision 9753)
@@ -0,0 +1,42 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.io;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.io.File;
+
+import org.junit.Test;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.layer.AbstractModifiableLayer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+
+/**
+ * Unit tests of {@link SaveLayerInfo} class.
+ */
+public class SaveLayerInfoTest {
+
+    /**
+     * Test of {@link SaveLayerInfo} class - null case.
+     */
+    @Test(expected = IllegalArgumentException.class)
+    public void testSaveLayerInfoNull() {
+        new SaveLayerInfo(null);
+    }
+
+    /**
+     * Test of {@link SaveLayerInfo} class - nominal case.
+     */
+    @Test
+    public void testSaveLayerInfoNominal() {
+        File file = new File("test");
+        String name = "layername";
+        AbstractModifiableLayer layer = new OsmDataLayer(new DataSet(), name, file);
+        SaveLayerInfo sli = new SaveLayerInfo(layer);
+        assertEquals(file, sli.getFile());
+        assertEquals(layer, sli.getLayer());
+        assertEquals(name, sli.getName());
+        assertNull(sli.getSaveState());
+        assertNull(sli.getUploadState());
+    }
+}
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImagesTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImagesTest.java	(revision 9749)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImagesTest.java	(revision 9753)
@@ -77,6 +77,9 @@
     }
 
+    /**
+     * Unit test of {@link CorrelateGpxWithImages.Timezone#formatTimezone}.
+     */
     @Test
-    public void testFormatTimezone() throws Exception {
+    public void testFormatTimezone() {
         assertEquals("+1:00", new CorrelateGpxWithImages.Timezone(1).formatTimezone());
         assertEquals("+6:30", new CorrelateGpxWithImages.Timezone(6.5).formatTimezone());
@@ -86,4 +89,8 @@
     }
 
+    /**
+     * Unit test of {@link CorrelateGpxWithImages.Timezone#parseTimezone}.
+     * @throws ParseException in case of parsing error
+     */
     @Test
     public void testParseTimezone() throws ParseException {
@@ -94,6 +101,9 @@
     }
 
+    /**
+     * Unit test of {@link CorrelateGpxWithImages.Offset#formatOffset}.
+     */
     @Test
-    public void testFormatOffest() throws ParseException {
+    public void testFormatOffset() {
         assertEquals("0", CorrelateGpxWithImages.Offset.seconds(0).formatOffset());
         assertEquals("123", CorrelateGpxWithImages.Offset.seconds(123).formatOffset());
@@ -106,4 +116,8 @@
     }
 
+    /**
+     * Unit test of {@link CorrelateGpxWithImages.Offset#parseOffset}.
+     * @throws ParseException in case of parsing error
+     */
     @Test
     public void testParseOffest() throws ParseException {
@@ -117,6 +131,9 @@
     }
 
+    /**
+     * Unit test of {@link CorrelateGpxWithImages.Offset#splitOutTimezone}.
+     */
     @Test
-    public void testSplitOutTimezone() throws Exception {
+    public void testSplitOutTimezone() {
         assertEquals("+1:00", CorrelateGpxWithImages.Offset.seconds(3602).splitOutTimezone().a.formatTimezone());
         assertEquals("2", CorrelateGpxWithImages.Offset.seconds(3602).splitOutTimezone().b.formatOffset());
Index: trunk/test/unit/org/openstreetmap/josm/io/session/SessionReaderTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/session/SessionReaderTest.java	(revision 9749)
+++ trunk/test/unit/org/openstreetmap/josm/io/session/SessionReaderTest.java	(revision 9753)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.gui.layer.ImageryLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.NoteLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
@@ -129,3 +130,18 @@
         assertEquals(image.getDy(), -56.78, 1e-9);
     }
+
+    /**
+     * Tests to read a .joz file containing notes.
+     * @throws IOException if any I/O error occurs
+     * @throws IllegalDataException is the test file is considered as invalid
+     */
+    @Test
+    public void testReadNotes() throws IOException, IllegalDataException {
+        final List<Layer> layers = testRead("notes.joz");
+        assertSame(layers.size(), 1);
+        assertTrue(layers.get(0) instanceof NoteLayer);
+        final NoteLayer layer = (NoteLayer) layers.get(0);
+        assertEquals("Notes", layer.getName());
+        assertEquals(174, layer.getNoteData().getNotes().size());
+    }
 }
Index: trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 9749)
+++ trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 9753)
@@ -19,8 +19,10 @@
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.data.imagery.ImageryInfo;
+import org.openstreetmap.josm.data.notes.Note;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.ImageryLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.NoteLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.TMSLayer;
@@ -139,4 +141,8 @@
     }
 
+    private NoteLayer createNoteLayer() {
+        return new NoteLayer(Arrays.asList(new Note(LatLon.ZERO)), "layer name");
+    }
+
     /**
      * Tests to write an empty .jos file.
@@ -204,3 +210,12 @@
         testWrite(Collections.singletonList(layer), true);
     }
+
+    /**
+     * Tests to write a .joz file containing a note layer.
+     */
+    @Test
+    public void testWriteNoteLayer() {
+        final Layer layer = createNoteLayer();
+        testWrite(Collections.singletonList(layer), true);
+    }
 }
