1
_("Make sure various combinations of deferGetSet arguments correctly defer getting/setting properties to another object");
2
Cu.import("resource://services-sync/util.js");
5
let base = function() {};
10
set b(val) this.dst.b = val + "!!!"
14
_("get/set a single property");
15
Utils.deferGetSet(base, "dst", "foo");
17
do_check_eq(src.dst.foo, "bar");
18
do_check_eq(src.foo, "bar");
20
_("editing the target also updates the source");
22
do_check_eq(src.dst.foo, "baz");
23
do_check_eq(src.foo, "baz");
25
_("handle multiple properties");
26
Utils.deferGetSet(base, "dst", ["p1", "p2"]);
29
do_check_eq(src.p1, "v1");
30
do_check_eq(src.dst.p1, "v1");
31
do_check_eq(src.p2, "v2");
32
do_check_eq(src.dst.p2, "v2");
34
_("make sure existing getter keeps its functionality");
35
Utils.deferGetSet(base, "dst", "a");
37
do_check_eq(src.dst.a, "not a");
38
do_check_eq(src.a, "a");
40
_("make sure existing setter keeps its functionality");
41
Utils.deferGetSet(base, "dst", "b");
43
do_check_eq(src.dst.b, "b!!!");
44
do_check_eq(src.b, "b!!!");