tests: Add some "girparser" tests to increase coverage
[vala-gnome.git] / tests / gir / class.test
blob578c0b82ed9d24bf162bac9808e2f967051c37fd
1 GIR
3 Input:
5 <class name="Foo" c:type="TestFoo" glib:type-name="TestFoo" glib:get-type="test_foo_get_type" glib:type-struct="FooClass" parent="GObject.Object">
6   <implements name="Test.IFoo"/>
7   <method name="method_virtual" c:identifier="test_foo_method_virtual" throws="1">
8     <return-value transfer-ownership="full">
9       <type name="none"/>
10     </return-value>
11   </method>
12   <virtual-method name="method_virtual" invoker="method_virtual" throws="1">
13     <return-value transfer-ownership="full">
14       <type name="none"/>
15     </return-value>
16   </virtual-method>
17   <method name="method_async" c:identifier="test_foo_method_async">
18     <return-value transfer-ownership="none">
19       <type name="none"/>
20     </return-value>
21     <parameters>
22       <parameter name="input" transfer-ownership="none">
23         <type name="utf8" c:type="const gchar*"/>
24       </parameter>
25       <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
26         <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
27       </parameter>
28       <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
29         <type name="gpointer" c:type="void*"/>
30       </parameter>
31     </parameters>
32   </method>
33   <method name="method_finish" c:identifier="test_foo_method_finish" throws="1">
34     <return-value transfer-ownership="full">
35       <type name="none"/>
36     </return-value>
37     <parameters>
38       <parameter name="_res_" transfer-ownership="none">
39         <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
40       </parameter>
41       <parameter name="output" direction="out" transfer-ownership="full">
42         <type name="utf8" c:type="gchar**"/>
43       </parameter>
44     </parameters>
45   </method>
46   <constructor name="new" c:identifier="test_foo_new">
47     <return-value transfer-ownership="full">
48       <type name="Test.Foo" c:type="TestFoo*"/>
49     </return-value>
50   </constructor>
51   <constructor name="bar" c:identifier="test_foo_new_bar">
52     <return-value transfer-ownership="full">
53       <type name="Test.Foo" c:type="TestFoo*"/>
54     </return-value>
55   </constructor>
56   <property name="prop" writable="1" construct="1">
57     <type name="utf8" c:type="gchar*"/>
58   </property>
59   <method name="get_prop" c:identifier="test_foo_get_prop">
60     <return-value transfer-ownership="full">
61       <type name="utf8" c:type="gchar*"/>
62     </return-value>
63   </method>
64   <method name="set_prop" c:identifier="test_foo_set_prop">
65     <return-value transfer-ownership="none">
66       <type name="none"/>
67     </return-value>
68     <parameters>
69       <parameter name="value" transfer-ownership="none">
70         <type name="utf8" c:type="const gchar*"/>
71       </parameter>
72     </parameters>
73   </method>
74   <glib:signal name="sig">
75     <return-value transfer-ownership="full">
76       <type name="none"/>
77     </return-value>
78     <parameters>
79       <parameter name="arg" transfer-ownership="none">
80         <type name="utf8" c:type="const gchar*"/>
81       </parameter>
82     </parameters>
83   </glib:signal>
84 </class>
85 <record name="FooClass" c:type="TestFooClass" glib:is-gtype-struct-for="Foo">
86   <field name="method_virtual">
87     <callback name="method_virtual" c:type="method_virtual" throws="1">
88       <return-value transfer-ownership="full">
89         <type name="none"/>
90       </return-value>
91       <parameters>
92         <parameter name="self" transfer-ownership="none">
93           <type name="Test.Foo" c:type="TestFoo*"/>
94         </parameter>
95       </parameters>
96     </callback>
97   </field>
98 </record>
99 <record name="FooPrivate" c:type="TestFooPrivate" disguised="1"/>
100 <interface name="IFoo" c:type="TestIFoo" glib:type-name="TestIFoo" glib:get-type="test_ifoo_get_type" glib:type-struct="IFooIface">
101   <prerequisite name="GObject.Object"/>
102   <method name="method" c:identifier="test_ifoo_method" throws="1">
103     <return-value transfer-ownership="full">
104       <type name="none"/>
105     </return-value>
106   </method>
107   <virtual-method name="method" invoker="method" throws="1">
108     <return-value transfer-ownership="full">
109       <type name="none"/>
110     </return-value>
111   </virtual-method>
112 </interface>
113 <record name="IFooIface" c:type="TestIFooIface" glib:is-gtype-struct-for="IFoo">
114   <field name="method">
115     <callback name="method" c:type="method" throws="1">
116       <return-value transfer-ownership="full">
117         <type name="none"/>
118       </return-value>
119       <parameters>
120         <parameter name="self" transfer-ownership="none">
121           <type name="Test.IFoo" c:type="TestIFoo*"/>
122         </parameter>
123       </parameters>
124     </callback>
125   </field>
126 </record>
128 Output:
130 [CCode (cheader_filename = "test.h", type_id = "test_foo_get_type ()")]
131 public class Foo : GLib.Object, Test.IFoo {
132         [CCode (has_construct_function = false)]
133         public Foo ();
134         [CCode (cname = "test_foo_new_bar", has_construct_function = false)]
135         public Foo.bar ();
136         public string get_prop ();
137         public async void method_async (string input, out string output) throws GLib.Error;
138         public virtual void method_virtual () throws GLib.Error;
139         public void set_prop (string value);
140         public string prop { owned get; set construct; }
141         public signal void sig (string arg);
143 [CCode (cheader_filename = "test.h", type_id = "test_ifoo_get_type ()")]
144 public interface IFoo : GLib.Object {
145         public abstract void method () throws GLib.Error;