partial void SyncNotes(NSObject sender) { var dest_manifest_path = Path.Combine(settings.syncURL, "manifest.xml"); SyncManifest dest_manifest; if (!File.Exists(dest_manifest_path)) { using (var output = new FileStream(dest_manifest_path, FileMode.Create)) { SyncManifest.Write(new SyncManifest(), output); } } using (var input = new FileStream(dest_manifest_path, FileMode.Open)) { dest_manifest = SyncManifest.Read(input); } var dest_storage = new DiskStorage(settings.syncURL); var dest_engine = new Engine(dest_storage); var client = new FilesystemSyncClient(NoteEngine, manifestTracker.Manifest); var server = new FilesystemSyncServer(dest_engine, dest_manifest); var sync_manager = new SyncManager(client, server); sync_manager.DoSync(); RefreshNotesWindowController(); // write back the dest manifest using (var output = new FileStream(dest_manifest_path, FileMode.Create)) { SyncManifest.Write(dest_manifest, output); } }
public void RetrieveAnArchivedVersionOfANote() { FirstSyncForBothSides(); Tomboy.Note first_note = clientEngineOne.GetNotes().Values.First(); DTONote first_note_dto = first_note.ToDTONote(); var new_title = "Some other title"; var old_title = first_note_dto.Title; var new_text = "Some new text"; var old_text = first_note_dto.Text; first_note.Title = new_title; first_note.Text = new_text; clientEngineOne.SaveNote(first_note); var sync_manager = new SyncManager(syncClientOne, syncServer); sync_manager.DoSync(); var client = testServer.GetJsonClient(); var url = GetNoteHistoryUrl(first_note.Guid); var resp = client.Get <NoteHistoryResponse> (url); var rev = resp.Versions[0].Revision; url = GetArchivedNoteUrl(first_note.Guid, rev); var note = client.Get <DTONote> (url); Assert.AreEqual(old_text, note.Text); Assert.AreEqual(old_title, note.Title); Assert.AreEqual(first_note_dto.Tags, note.Tags); }
public void NoteArchiveDoesHonorTheIncludeTextParameter() { FirstSyncForBothSides(); Tomboy.Note first_note = clientEngineOne.GetNotes().Values.First(); first_note.Title = "different"; clientEngineOne.SaveNote(first_note); var sync_manager = new SyncManager(syncClientOne, syncServer); sync_manager.DoSync(); var client = testServer.GetJsonClient(); var url = GetNoteHistoryUrl(first_note.Guid); var resp = client.Get <NoteHistoryResponse> (url + "?include_text=false"); foreach (var archived_note in resp.Versions) { Assert.AreEqual("", archived_note.Note.Text); } resp = client.Get <NoteHistoryResponse> (url + "?include_text=true"); foreach (var archived_note in resp.Versions) { Assert.AreNotEqual("", archived_note.Note.Text); } }
public void NoteHistoryIsPresentWithOneNoteAfterChange() { FirstSyncForBothSides(); var first_note = clientEngineOne.GetNotes().Values.First(); var new_title = "Some other title"; var old_title = first_note.Title; first_note.Title = new_title; clientEngineOne.SaveNote(first_note); var sync_manager = new SyncManager(syncClientOne, syncServer); sync_manager.DoSync(); var client = testServer.GetJsonClient(); var url = GetNoteHistoryUrl(first_note.Guid); var resp = client.Get <NoteHistoryResponse> (url); Assert.AreEqual(1, resp.Versions.Length); Assert.AreEqual(1, resp.Versions[0].Revision); Assert.AreEqual(old_title, resp.Versions[0].Note.Title); }
public void DeletedNoteShowsUpInNoteArchive() { FirstSyncForBothSides(); // now, lets delete a note from the client var deleted_note = clientEngineOne.GetNotes().First().Value; clientEngineOne.DeleteNote(deleted_note); clientManifestOne.NoteDeletions.Add(deleted_note.Guid, deleted_note.Title); var sync_manager = new SyncManager(syncClientOne, syncServer); sync_manager.DoSync(); var client = testServer.GetJsonClient(); var url = testServer.ListenUrl + new GetNoteArchiveRequest() { Username = RainyTestServer.TEST_USER }.ToUrl("GET"); var resp = client.Get <NoteArchiveResponse> (url); Assert.That(resp.Guids.Contains(deleted_note.Guid)); }
public void NoteArchiveContainsNoteDataButNoText() { FirstSyncForBothSides(); // now, lets delete a note from the client var first_note = clientEngineOne.GetNotes().First().Value; first_note.Title = "different"; clientEngineOne.SaveNote(first_note); var sync_manager = new SyncManager(syncClientOne, syncServer); sync_manager.DoSync(); var client = testServer.GetJsonClient(); var url = testServer.ListenUrl + new GetNoteArchiveRequest() { Username = RainyTestServer.TEST_USER }.ToUrl("GET"); var resp = client.Get <NoteArchiveResponse> (url); Assert.AreEqual("", resp.Notes[0].Text); }