Release 0.41.92
[vala-gnome.git] / tests / objects / paramspec.vala
bloba519a304ce028659805786f21ea7faa64793a5e8
1 enum FooEnum {
2 FOO = 0,
3 BAR = 42
6 [Flags]
7 enum FooFlag {
8 FOO = 0,
9 BAR = 23
12 struct FooStruct {
13 public int i;
16 class Foo : Object {
17 // default ParamSpec implementations
18 public bool bool_prop { get; set; }
19 public bool bool_prop2 { get; set; default = true; }
20 public char char_prop { get; set; }
21 public char char_prop2 { get; set; default = 'c'; }
22 public double double_prop { get; set; }
23 public double double_prop2 { get; set; default = 3.1415; }
24 public FooEnum enum_prop { get; set; }
25 public FooEnum enum_prop2 { get; set; default = FooEnum.BAR; }
26 public FooFlag flag_prop { get; set; }
27 public FooFlag flag_prop2 { get; set; default = FooFlag.BAR; }
28 public float float_prop { get; set; }
29 public float float_prop2 { get; set; default = 47.11f; }
30 public int int_prop { get; set; }
31 public int int_prop2 { get; set; default = int.MIN; }
32 public int64 int64_prop { get; set; }
33 public int64 int64_prop2 { get; set; default = int64.MIN; }
34 public long long_prop { get; set; }
35 public long long_prop2 { get; set; default = long.MAX; }
36 public Object object_prop { get; set; }
37 public ParamSpec param_prop { get; set; }
38 public void* pointer_prop { get; set; }
39 public string string_prop { get; set; }
40 public string string_prop2 { get; set; default = "foo"; }
41 public uchar uchar_prop { get; set; }
42 public uchar uchar_prop2 { get; set; default = 'u'; }
43 public uint uint_prop { get; set; }
44 public uint uint_prop2 { get; set; default = uint.MAX; }
45 public uint64 uint64_prop { get; set; }
46 public uint64 uint64_prop2 { get; set; default = uint64.MAX; }
47 public ulong ulong_prop { get; set; }
48 public ulong ulong_prop2 { get; set; default = ulong.MAX; }
49 public unichar unichar_prop { get; set; }
50 public Type gtype_prop { get; set; }
51 public Type gtype_prop2 { get; set; default = typeof (string); }
52 //Deprecated public ValueArray value_array_prop { get; set; }
53 public Variant variant_prop { get; set; }
54 public Variant variant_prop2 { get; set; default = new Variant ("as"); }
56 public FooStruct struct_prop { get; set; }
57 public FooStruct struct_prop2 { get; set; default = FooStruct () { i = 4711 }; }
58 public string[] strv_prop { get; set; }
59 public string[] strv_prop2 { get; set; default = { "foo", "bar" }; }
62 void main () {
63 var foo = new Foo ();
64 unowned ObjectClass foo_class = foo.get_class ();
66 assert (foo_class.find_property ("bool-prop") is ParamSpecBoolean);
67 assert (foo.bool_prop2 == true);
68 assert (foo_class.find_property ("char-prop") is ParamSpecChar);
69 assert (foo.char_prop2 == 'c');
70 assert (foo_class.find_property ("double-prop") is ParamSpecDouble);
71 assert (foo.double_prop2 == 3.1415);
72 assert (foo_class.find_property ("enum-prop") is ParamSpecEnum);
73 assert (foo.enum_prop2 == FooEnum.BAR);
74 assert (foo_class.find_property ("flag-prop") is ParamSpecFlags);
75 assert (foo.flag_prop2 == FooFlag.BAR);
76 assert (foo_class.find_property ("float-prop") is ParamSpecFloat);
77 assert (foo.float_prop2 == 47.11f);
78 assert (foo_class.find_property ("int-prop") is ParamSpecInt);
79 assert (foo.int_prop2 == int.MIN);
80 assert (foo_class.find_property ("int64-prop") is ParamSpecInt64);
81 assert (foo.int64_prop2 == int64.MIN);
82 assert (foo_class.find_property ("long-prop") is ParamSpecLong);
83 assert (foo.long_prop2 == long.MAX);
84 assert (foo_class.find_property ("object-prop") is ParamSpecObject);
85 assert (foo_class.find_property ("param-prop") is ParamSpecParam);
86 assert (foo_class.find_property ("pointer-prop") is ParamSpecPointer);
87 assert (foo_class.find_property ("string-prop") is ParamSpecString);
88 assert (foo.string_prop2 == "foo");
89 assert (foo_class.find_property ("uchar-prop") is ParamSpecUChar);
90 assert (foo.uchar_prop2 == 'u');
91 assert (foo_class.find_property ("uint-prop") is ParamSpecUInt);
92 assert (foo.uint_prop2 == uint.MAX);
93 assert (foo_class.find_property ("uint64-prop") is ParamSpecUInt64);
94 assert (foo.uint64_prop2 == uint64.MAX);
95 assert (foo_class.find_property ("ulong-prop") is ParamSpecULong);
96 assert (foo.ulong_prop2 == ulong.MAX);
97 //FIXME? assert (foo_class.find_property ("unichar-prop") is ParamSpecUnichar);
98 assert (foo_class.find_property ("unichar-prop") is ParamSpecUInt);
99 assert (foo_class.find_property ("gtype-prop") is ParamSpecGType);
100 assert (foo.gtype_prop2 == typeof (string));
101 //Deprecated assert (foo_class.find_property ("value-array-prop") is ParamSpecValueArray);
102 assert (foo_class.find_property ("variant-prop") is ParamSpecVariant);
103 assert (foo.variant_prop2.is_of_type (VariantType.STRING_ARRAY));
105 assert (foo_class.find_property ("struct-prop") is ParamSpecBoxed);
106 assert (foo.struct_prop2.i == 4711);
107 assert (foo_class.find_property ("strv-prop") is ParamSpecBoxed);
108 assert (foo.strv_prop2[1] == "bar");