[gnome-shell] tests: Add Params.parse() unit tests



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]