[gnote] Fix creating note from template
- From: Aurimas Černius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Fix creating note from template
- Date: Mon, 13 Apr 2020 14:32:39 +0000 (UTC)
commit f1ef128d335d690d8cf9a5acf466fd58790be558
Author: Aurimas Černius <aurisc4 gmail com>
Date: Mon Apr 13 17:30:21 2020 +0300
Fix creating note from template
src/notemanagerbase.cpp | 5 +++++
src/test/unit/notemanagerutests.cpp | 45 +++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+)
---
diff --git a/src/notemanagerbase.cpp b/src/notemanagerbase.cpp
index 82f08d11..772e1270 100644
--- a/src/notemanagerbase.cpp
+++ b/src/notemanagerbase.cpp
@@ -305,6 +305,11 @@ NoteBase::Ptr NoteManagerBase::create_note(Glib::ustring title, Glib::ustring bo
Glib::ustring content;
if(body.empty()) {
+ auto template_note = find_template_note();
+ if(template_note) {
+ return create_note_from_template(title, template_note, guid);
+ }
+
// Use a simple "Describe..." body and highlight
// it so it can be easily overwritten
content = get_note_template_content(title);
diff --git a/src/test/unit/notemanagerutests.cpp b/src/test/unit/notemanagerutests.cpp
index 5e759b0c..2d671925 100644
--- a/src/test/unit/notemanagerutests.cpp
+++ b/src/test/unit/notemanagerutests.cpp
@@ -43,6 +43,13 @@ SUITE(NoteManager)
char *notes_dir = g_mkdtemp(notes_dir_tmpl);
return notes_dir;
}
+
+ gnote::NoteBase::Ptr create_template_note()
+ {
+ auto templ = manager.get_or_create_template_note();
+ templ->set_xml_content(Glib::ustring::compose("<note-content><note-title>%1</note-title>\n\ntest
template content</note-content>", templ->get_title()));
+ return templ;
+ }
};
@@ -84,6 +91,14 @@ SUITE(NoteManager)
CHECK_EQUAL(2, manager.get_notes().size());
}
+ TEST_FIXTURE(Fixture, create_no_args_from_template)
+ {
+ auto templ = create_template_note();
+ auto note = manager.create();
+ CHECK_EQUAL("New Note 1", note->get_title());
+ CHECK(note->data().text().find("test template content") != Glib::ustring::npos);
+ }
+
TEST_FIXTURE(Fixture, create_with_title)
{
auto note = manager.create("test");
@@ -92,6 +107,15 @@ SUITE(NoteManager)
CHECK_EQUAL(1, manager.get_notes().size());
}
+ TEST_FIXTURE(Fixture, create_with_title_from_template)
+ {
+ auto templ = create_template_note();
+ auto note = manager.create("test");
+ CHECK_EQUAL("test", note->get_title());
+ CHECK(note->data().text().find("test template content") != Glib::ustring::npos);
+ CHECK_EQUAL(2, manager.get_notes().size());
+ }
+
TEST_FIXTURE(Fixture, create_with_text_content)
{
auto note = manager.create("test\ntest content");
@@ -100,6 +124,15 @@ SUITE(NoteManager)
CHECK_EQUAL(1, manager.get_notes().size());
}
+ TEST_FIXTURE(Fixture, create_with_text_content_having_template)
+ {
+ auto templ = create_template_note();
+ auto note = manager.create("test\ntest content");
+ CHECK_EQUAL("test", note->get_title());
+ CHECK(note->data().text().find("test content") != Glib::ustring::npos);
+ CHECK_EQUAL(2, manager.get_notes().size());
+ }
+
TEST_FIXTURE(Fixture, create_and_find)
{
manager.create();
@@ -131,6 +164,18 @@ SUITE(NoteManager)
CHECK_EQUAL(note, other);
}
+ TEST_FIXTURE(Fixture, create_with_guid_from_template)
+ {
+ auto templ = create_template_note();
+ auto note = manager.create_with_guid("test", "93b3f3ef-9eea-4cdc-9f78-76af1629987a");
+ CHECK_EQUAL("test", note->get_title());
+ CHECK(note->data().text().find("test template content") != Glib::ustring::npos);
+ CHECK_EQUAL("93b3f3ef-9eea-4cdc-9f78-76af1629987a", note->id());
+ CHECK_EQUAL("note://gnote/93b3f3ef-9eea-4cdc-9f78-76af1629987a", note->uri());
+ CHECK_EQUAL(2, manager.get_notes().size());
+ auto other = manager.find_by_uri("note://gnote/93b3f3ef-9eea-4cdc-9f78-76af1629987a");
+ CHECK_EQUAL(note, other);
+ }
TEST_FIXTURE(Fixture, create_with_guid_multiline_title)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]