geary/test/test-client.vala
Michael Gratton da6ac828bd Move Geary.JS package into client as Util.JS
The only reason it was in the engine was so it could be used by both
the client and the web extension, without worrying about the
webkit2gtk and webkit2gtk_web_extension packages conflicting. However
it didn't really belong there, and added a dependency for the engine
on javascriptcoregtk which doesn't belong. So this fixes all that.
2019-07-21 10:00:32 +10:00

80 lines
2.3 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.
*/
extern const string _INSTALL_PREFIX;
extern const string _BUILD_ROOT_DIR;
extern const string _GSETTINGS_DIR;
int main(string[] args) {
/*
* Set env vars right up front to avoid weird bugs
*/
// Use the memory GSettings DB so we a) always start with default
// values, and b) don't persist any changes made during a test
Environment.set_variable("GSETTINGS_BACKEND", "memory", true);
// Let GSettings know where to find the dev schema
Environment.set_variable("GSETTINGS_SCHEMA_DIR", _GSETTINGS_DIR, true);
/*
* Initialise all the things.
*/
// Ensure things like e.g. GLib's formatting routines uses a
// UTF-8-based locale rather ASCII
GLib.Intl.setlocale(LocaleCategory.ALL, "C.UTF-8");
Gtk.init(ref args);
Test.init(ref args);
Geary.RFC822.init();
Geary.HTML.init();
Geary.Logging.init();
/*
* Hook up all tests into appropriate suites
*/
TestSuite client = new TestSuite("client");
// Keep this before other ClientWebView based tests since it tests
// WebContext init
client.add_suite(new Accounts.ManagerTest().get_suite());
client.add_suite(new ClientWebViewTest().get_suite());
client.add_suite(new ComposerWebViewTest().get_suite());
client.add_suite(new ConfigurationTest().get_suite());
client.add_suite(new GearyApplicationTest().get_suite());
client.add_suite(new Util.Avatar.Test().get_suite());
client.add_suite(new Util.Cache.Test().get_suite());
client.add_suite(new Util.Email.Test().get_suite());
client.add_suite(new Util.JS.Test().get_suite());
TestSuite js = new TestSuite("js");
js.add_suite(new ClientPageStateTest().get_suite());
js.add_suite(new ComposerPageStateTest().get_suite());
js.add_suite(new ConversationPageStateTest().get_suite());
/*
* Run the tests
*/
TestSuite root = TestSuite.get_root();
root.add_suite(client);
root.add_suite(js);
int ret = -1;
Idle.add(() => {
ret = Test.run();
Gtk.main_quit();
return false;
});
Gtk.main();
return ret;
}