[gnome-shell] tests: Add Params.parse() unit tests
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] tests: Add Params.parse() unit tests
- Date: Fri, 5 Jul 2019 20:15:52 +0000 (UTC)
commit 1778adae0d029a53e35c219098def8382040711c
Author: Florian Müllner <fmuellner gnome org>
Date: Fri Jul 5 17:52:37 2019 +0200
tests: Add Params.parse() unit tests
Commit 46874eed0 accidentally changed the behavior of the function in
an incompatible way. Before addressing the actual issue, add a reproducer
to the unit tests to hopefully prevent future breakage.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/615
tests/meson.build | 2 +-
tests/unit/params.js | 32 ++++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletion(-)
---
diff --git a/tests/meson.build b/tests/meson.build
index a6726f7bc..1e84f423c 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -10,7 +10,7 @@ run_test = configure_file(
testenv = environment()
testenv.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data'))
-foreach test : ['insertSorted', 'jsParse', 'markup', 'url']
+foreach test : ['insertSorted', 'jsParse', 'markup', 'params', 'url']
test(test, run_test,
args: 'unit/@0@.js'.format(test),
env: testenv,
diff --git a/tests/unit/params.js b/tests/unit/params.js
new file mode 100644
index 000000000..6ac4cc10c
--- /dev/null
+++ b/tests/unit/params.js
@@ -0,0 +1,32 @@
+const JsUnit = imports.jsUnit;
+const Params = imports.misc.params;
+
+function assertParamsEqual(params, expected) {
+ for (let p in params) {
+ JsUnit.assertTrue(p in expected);
+ JsUnit.assertEquals(params[p], expected[p]);
+ }
+}
+
+let defaults = {
+ foo: 'This is a test',
+ bar: null,
+ baz: 42
+};
+
+assertParamsEqual(
+ Params.parse(null, defaults),
+ defaults);
+
+assertParamsEqual(
+ Params.parse({ bar: 23 }, defaults),
+ { foo: 'This is a test', bar: 23, baz: 42 });
+
+JsUnit.assertRaises(
+ () => {
+ Params.parse({ extraArg: 'quz' }, defaults);
+ });
+
+assertParamsEqual(
+ Params.parse({ extraArg: 'quz' }, defaults, true),
+ { foo: 'This is a test', bar: null, baz: 42, extraArg: 'quz' });
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]