summaryrefslogtreecommitdiff
path: root/library/tests/test-store-password.js
diff options
context:
space:
mode:
Diffstat (limited to 'library/tests/test-store-password.js')
-rw-r--r--library/tests/test-store-password.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/library/tests/test-store-password.js b/library/tests/test-store-password.js
new file mode 100644
index 0000000..254c162
--- /dev/null
+++ b/library/tests/test-store-password.js
@@ -0,0 +1,58 @@
+
+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.new("org.mock.type.Store",
+ 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.new(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);
+
+Mock.stop();