mirror of
https://gitlab.gnome.org/GNOME/libsecret.git
synced 2024-12-22 12:48:51 +00:00
b72048c920
Allow parallel building and testing by using a single Makefile.am Implement parallel testing using TAP, with various drivers and compilers living in the build/ directory. Fix all sorts of issues that this caused, including builddir != srcdir, leaks in tests and so on. It would have been nice to break out all the above into separate commits ... blush.
70 lines
2.0 KiB
JavaScript
70 lines
2.0 KiB
JavaScript
/*
|
|
* Copyright 2012 Red Hat Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published
|
|
* by the Free Software Foundation; either version 2.1 of the licence or (at
|
|
* your option) any later version.
|
|
*
|
|
* See the included COPYING file for more information.
|
|
*/
|
|
|
|
const Mock = imports.gi.MockService;
|
|
const Secret = imports.gi.Secret;
|
|
const GLib = imports.gi.GLib;
|
|
|
|
const JsUnit = imports.jsUnit;
|
|
const assertEquals = JsUnit.assertEquals;
|
|
const assertRaises = JsUnit.assertRaises;
|
|
const assertTrue = JsUnit.assertTrue;
|
|
|
|
Mock.start("mock-service-normal.py");
|
|
|
|
const STORE_SCHEMA = new Secret.Schema("org.mock.Schema",
|
|
Secret.SchemaFlags.NONE,
|
|
{
|
|
"number": Secret.SchemaAttributeType.INTEGER,
|
|
"string": Secret.SchemaAttributeType.STRING,
|
|
"even": Secret.SchemaAttributeType.BOOLEAN,
|
|
}
|
|
);
|
|
|
|
/* Synchronous */
|
|
|
|
var attributes = { "number": "9", "string": "nine", "even": "false" };
|
|
|
|
var password = Secret.password_lookup_sync (STORE_SCHEMA, attributes, null);
|
|
assertEquals(null, password);
|
|
|
|
var stored = Secret.password_store_sync (STORE_SCHEMA, attributes, Secret.COLLECTION_DEFAULT,
|
|
"The number nine", "999", null);
|
|
assertEquals(true, stored);
|
|
|
|
var password = Secret.password_lookup_sync (STORE_SCHEMA, attributes, null);
|
|
assertEquals("999", password);
|
|
|
|
|
|
/* Asynchronous */
|
|
|
|
var attributes = { "number": "888", "string": "eight", "even": "true" };
|
|
|
|
var password = Secret.password_lookup_sync (STORE_SCHEMA, attributes, null);
|
|
assertEquals(null, password);
|
|
|
|
var loop = new GLib.MainLoop(null, false);
|
|
|
|
Secret.password_store (STORE_SCHEMA, attributes, null, "The number eight", "888",
|
|
null, function(source, result) {
|
|
loop.quit();
|
|
var stored = Secret.password_store_finish(result);
|
|
assertEquals(true, stored);
|
|
});
|
|
|
|
loop.run();
|
|
|
|
var password = Secret.password_lookup_sync (STORE_SCHEMA, attributes, null);
|
|
assertEquals("888", password);
|
|
|
|
Secret.Service.disconnect();
|
|
Mock.stop();
|