This mostly aims to make the Geary.Attachment and ImapDB.Attachment objects usable more generally for managing attachments, allowing these to be instantiated once, persisted, and then reused, rather than going through a number of representations (GMime, SQlite, Geary) and having to be saved and re-loaded. * src/engine/api/geary-attachment.vala (Attachment): Remove id property and allow both file and filesize properties to be set after instances are constructed. Update call sites. * src/engine/api/geary-email.vala (Email): Remove get_attachment_by_id since it unused. * src/engine/imap-db/imap-db-attachment.vala (Attachment): Chase Geary.Attachment API changes, move object-specific persistence code into methods on the actual object class itself and modernise a bit. Rename static methods to be a bit more terse. Update call sites and add unit tests. * src/engine/imap-db/imap-db-folder.vala (Folder): Rather than saving attachments to the db then reloading them to add them to their email objects, just instantiate Attachment instances once, save and then add them. * src/engine/imap-db/imap-db-gc.vala (GC): Replace custom SQL with existing accessor for listing attachments. * src/engine/util/util-stream.vala (MimeOutputStream): New adaptor class for GMime streams to GIO output streams.
70 lines
2.6 KiB
Vala
70 lines
2.6 KiB
Vala
/*
|
|
* Copyright 2016-2017 Michael Gratton <mike@vee.net>
|
|
*
|
|
* This software is licensed under the GNU Lesser General Public License
|
|
* (version 2.1 or later). See the COPYING file in this distribution.
|
|
*/
|
|
|
|
int main(string[] args) {
|
|
/*
|
|
* Initialise all the things.
|
|
*/
|
|
|
|
Test.init(ref args);
|
|
|
|
Geary.RFC822.init();
|
|
Geary.HTML.init();
|
|
Geary.Logging.init();
|
|
|
|
/*
|
|
* Hook up all tests into appropriate suites
|
|
*/
|
|
|
|
TestSuite engine = new TestSuite("engine");
|
|
|
|
engine.add_suite(new Geary.AttachmentTest().get_suite());
|
|
engine.add_suite(new Geary.EngineTest().get_suite());
|
|
engine.add_suite(new Geary.IdleManagerTest().get_suite());
|
|
engine.add_suite(new Geary.TimeoutManagerTest().get_suite());
|
|
engine.add_suite(new Geary.App.ConversationTest().get_suite());
|
|
engine.add_suite(new Geary.App.ConversationSetTest().get_suite());
|
|
// Depends on ConversationTest and ConversationSetTest passing
|
|
engine.add_suite(new Geary.App.ConversationMonitorTest().get_suite());
|
|
engine.add_suite(new Geary.Db.DatabaseTest().get_suite());
|
|
engine.add_suite(new Geary.Db.VersionedDatabaseTest().get_suite());
|
|
engine.add_suite(new Geary.HTML.UtilTest().get_suite());
|
|
engine.add_suite(new Geary.Imap.DeserializerTest().get_suite());
|
|
engine.add_suite(new Geary.Imap.CreateCommandTest().get_suite());
|
|
engine.add_suite(new Geary.Imap.NamespaceResponseTest().get_suite());
|
|
engine.add_suite(new Geary.ImapDB.AttachmentTest().get_suite());
|
|
engine.add_suite(new Geary.ImapDB.AttachmentIoTest().get_suite());
|
|
engine.add_suite(new Geary.ImapDB.DatabaseTest().get_suite());
|
|
engine.add_suite(new Geary.ImapEngine.AccountProcessorTest().get_suite());
|
|
engine.add_suite(new Geary.Inet.Test().get_suite());
|
|
engine.add_suite(new Geary.JS.Test().get_suite());
|
|
engine.add_suite(new Geary.Mime.ContentTypeTest().get_suite());
|
|
engine.add_suite(new Geary.RFC822.MailboxAddressTest().get_suite());
|
|
engine.add_suite(new Geary.RFC822.MailboxAddressesTest().get_suite());
|
|
engine.add_suite(new Geary.RFC822.MessageTest().get_suite());
|
|
engine.add_suite(new Geary.RFC822.MessageDataTest().get_suite());
|
|
engine.add_suite(new Geary.RFC822.Utils.Test().get_suite());
|
|
engine.add_suite(new Geary.String.Test().get_suite());
|
|
|
|
/*
|
|
* Run the tests
|
|
*/
|
|
TestSuite root = TestSuite.get_root();
|
|
root.add_suite(engine);
|
|
|
|
MainLoop loop = new MainLoop ();
|
|
|
|
int ret = -1;
|
|
Idle.add(() => {
|
|
ret = Test.run();
|
|
loop.quit();
|
|
return false;
|
|
});
|
|
|
|
loop.run();
|
|
return ret;
|
|
}
|