gir_ffi 0.14.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +21 -0
  3. data/Gemfile +6 -4
  4. data/README.md +4 -4
  5. data/Rakefile +5 -5
  6. data/lib/ffi-glib/array.rb +14 -4
  7. data/lib/ffi-glib/byte_array.rb +7 -2
  8. data/lib/ffi-glib/container_class_methods.rb +1 -1
  9. data/lib/ffi-glib/error.rb +1 -1
  10. data/lib/ffi-glib/hash_table.rb +3 -3
  11. data/lib/ffi-glib/list.rb +1 -1
  12. data/lib/ffi-glib/list_methods.rb +1 -1
  13. data/lib/ffi-glib/main_loop.rb +3 -3
  14. data/lib/ffi-glib/ptr_array.rb +30 -8
  15. data/lib/ffi-glib/s_list.rb +1 -1
  16. data/lib/ffi-glib/variant.rb +1 -1
  17. data/lib/ffi-glib.rb +16 -16
  18. data/lib/ffi-gobject/object.rb +23 -32
  19. data/lib/ffi-gobject/param_spec.rb +1 -1
  20. data/lib/ffi-gobject/ruby_closure.rb +2 -2
  21. data/lib/ffi-gobject/value.rb +37 -28
  22. data/lib/ffi-gobject.rb +13 -13
  23. data/lib/ffi-gobject_introspection/gobject_type_init.rb +2 -2
  24. data/lib/ffi-gobject_introspection/i_arg_info.rb +2 -2
  25. data/lib/ffi-gobject_introspection/i_base_info.rb +27 -17
  26. data/lib/ffi-gobject_introspection/i_callable_info.rb +4 -4
  27. data/lib/ffi-gobject_introspection/i_constant_info.rb +2 -2
  28. data/lib/ffi-gobject_introspection/i_enum_info.rb +1 -0
  29. data/lib/ffi-gobject_introspection/i_field_info.rb +1 -1
  30. data/lib/ffi-gobject_introspection/i_function_info.rb +1 -1
  31. data/lib/ffi-gobject_introspection/i_interface_info.rb +1 -1
  32. data/lib/ffi-gobject_introspection/i_object_info.rb +2 -2
  33. data/lib/ffi-gobject_introspection/i_property_info.rb +2 -2
  34. data/lib/ffi-gobject_introspection/i_repository.rb +9 -6
  35. data/lib/ffi-gobject_introspection/i_struct_info.rb +2 -1
  36. data/lib/ffi-gobject_introspection/i_type_info.rb +13 -7
  37. data/lib/ffi-gobject_introspection/i_unresolved_info.rb +1 -1
  38. data/lib/ffi-gobject_introspection/i_vfunc_info.rb +1 -1
  39. data/lib/ffi-gobject_introspection/lib.rb +30 -19
  40. data/lib/ffi-gobject_introspection/strv.rb +1 -1
  41. data/lib/ffi-gobject_introspection.rb +20 -20
  42. data/lib/gir_ffi/allocation_helper.rb +1 -1
  43. data/lib/gir_ffi/arg_helper.rb +4 -4
  44. data/lib/gir_ffi/{in_out_pointer.rb → array_element_convertor.rb} +16 -23
  45. data/lib/gir_ffi/boolean.rb +1 -1
  46. data/lib/gir_ffi/boxed_base.rb +1 -1
  47. data/lib/gir_ffi/builder.rb +18 -10
  48. data/lib/gir_ffi/builders/argument_builder.rb +17 -17
  49. data/lib/gir_ffi/builders/base_argument_builder.rb +1 -0
  50. data/lib/gir_ffi/builders/base_method_builder.rb +7 -7
  51. data/lib/gir_ffi/builders/base_return_value_builder.rb +1 -1
  52. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  53. data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +5 -5
  54. data/lib/gir_ffi/builders/callback_argument_builder.rb +8 -8
  55. data/lib/gir_ffi/builders/callback_builder.rb +3 -3
  56. data/lib/gir_ffi/builders/callback_return_value_builder.rb +2 -2
  57. data/lib/gir_ffi/builders/closure_argument_builder.rb +1 -1
  58. data/lib/gir_ffi/builders/closure_return_value_builder.rb +1 -1
  59. data/lib/gir_ffi/builders/constant_builder.rb +1 -1
  60. data/lib/gir_ffi/builders/constructor_builder.rb +9 -9
  61. data/lib/gir_ffi/builders/enum_builder.rb +2 -2
  62. data/lib/gir_ffi/builders/field_builder.rb +16 -15
  63. data/lib/gir_ffi/builders/flags_builder.rb +2 -2
  64. data/lib/gir_ffi/builders/full_c_to_ruby_convertor.rb +1 -1
  65. data/lib/gir_ffi/builders/function_builder.rb +11 -5
  66. data/lib/gir_ffi/builders/initializer_builder.rb +3 -3
  67. data/lib/gir_ffi/builders/initializer_return_value_builder.rb +2 -2
  68. data/lib/gir_ffi/builders/interface_builder.rb +2 -2
  69. data/lib/gir_ffi/builders/mapping_method_builder.rb +9 -9
  70. data/lib/gir_ffi/builders/marshalling_method_builder.rb +7 -7
  71. data/lib/gir_ffi/builders/method_template.rb +1 -1
  72. data/lib/gir_ffi/builders/module_builder.rb +4 -6
  73. data/lib/gir_ffi/builders/object_builder.rb +6 -6
  74. data/lib/gir_ffi/builders/property_argument_builder.rb +1 -1
  75. data/lib/gir_ffi/builders/property_builder.rb +13 -12
  76. data/lib/gir_ffi/builders/property_return_value_builder.rb +1 -1
  77. data/lib/gir_ffi/builders/registered_type_builder.rb +14 -5
  78. data/lib/gir_ffi/builders/return_value_builder.rb +4 -4
  79. data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +6 -6
  80. data/lib/gir_ffi/builders/signal_closure_builder.rb +2 -2
  81. data/lib/gir_ffi/builders/struct_builder.rb +4 -4
  82. data/lib/gir_ffi/builders/struct_like.rb +1 -1
  83. data/lib/gir_ffi/builders/type_builder.rb +12 -12
  84. data/lib/gir_ffi/builders/unintrospectable_boxed_builder.rb +2 -2
  85. data/lib/gir_ffi/builders/unintrospectable_builder.rb +2 -2
  86. data/lib/gir_ffi/builders/union_builder.rb +4 -4
  87. data/lib/gir_ffi/builders/user_defined_builder.rb +2 -2
  88. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
  89. data/lib/gir_ffi/builders/vfunc_builder.rb +6 -6
  90. data/lib/gir_ffi/builders/with_layout.rb +2 -2
  91. data/lib/gir_ffi/callback_base.rb +1 -1
  92. data/lib/gir_ffi/class_base.rb +5 -5
  93. data/lib/gir_ffi/core.rb +19 -20
  94. data/lib/gir_ffi/enum_base.rb +1 -1
  95. data/lib/gir_ffi/enum_like_base.rb +2 -2
  96. data/lib/gir_ffi/error_argument_info.rb +2 -2
  97. data/lib/gir_ffi/error_type_info.rb +1 -1
  98. data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
  99. data/lib/gir_ffi/ffi_ext.rb +1 -1
  100. data/lib/gir_ffi/flags_base.rb +1 -1
  101. data/lib/gir_ffi/in_pointer.rb +10 -0
  102. data/lib/gir_ffi/info_ext/full_type_name.rb +3 -3
  103. data/lib/gir_ffi/info_ext/i_arg_info.rb +1 -1
  104. data/lib/gir_ffi/info_ext/i_callable_info.rb +1 -1
  105. data/lib/gir_ffi/info_ext/i_callback_info.rb +1 -1
  106. data/lib/gir_ffi/info_ext/i_field_info.rb +1 -1
  107. data/lib/gir_ffi/info_ext/i_function_info.rb +1 -1
  108. data/lib/gir_ffi/info_ext/i_property_info.rb +2 -2
  109. data/lib/gir_ffi/info_ext/i_registered_type_info.rb +4 -5
  110. data/lib/gir_ffi/info_ext/i_signal_info.rb +7 -3
  111. data/lib/gir_ffi/info_ext/i_type_info.rb +48 -26
  112. data/lib/gir_ffi/info_ext/i_unresolved_info.rb +1 -1
  113. data/lib/gir_ffi/info_ext/i_value_info.rb +2 -2
  114. data/lib/gir_ffi/info_ext/i_vfunc_info.rb +2 -2
  115. data/lib/gir_ffi/info_ext/safe_constant_name.rb +8 -8
  116. data/lib/gir_ffi/info_ext/safe_function_name.rb +2 -2
  117. data/lib/gir_ffi/info_ext.rb +15 -15
  118. data/lib/gir_ffi/interface_base.rb +3 -3
  119. data/lib/gir_ffi/lib_c.rb +1 -1
  120. data/lib/gir_ffi/method_stubber.rb +1 -1
  121. data/lib/gir_ffi/module_base.rb +1 -1
  122. data/lib/gir_ffi/object_base.rb +3 -4
  123. data/lib/gir_ffi/receiver_argument_info.rb +1 -1
  124. data/lib/gir_ffi/receiver_type_info.rb +2 -2
  125. data/lib/gir_ffi/registered_type_base.rb +1 -1
  126. data/lib/gir_ffi/sized_array.rb +4 -2
  127. data/lib/gir_ffi/struct.rb +1 -1
  128. data/lib/gir_ffi/struct_base.rb +1 -1
  129. data/lib/gir_ffi/type_map.rb +2 -23
  130. data/lib/gir_ffi/unintrospectable_boxed_info.rb +2 -2
  131. data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
  132. data/lib/gir_ffi/union.rb +1 -1
  133. data/lib/gir_ffi/union_base.rb +1 -1
  134. data/lib/gir_ffi/user_defined_object_info.rb +6 -2
  135. data/lib/gir_ffi/user_defined_property_info.rb +33 -33
  136. data/lib/gir_ffi/version.rb +1 -1
  137. data/lib/gir_ffi-base/gobject/lib.rb +3 -2
  138. data/lib/gir_ffi-base/gobject.rb +26 -25
  139. data/lib/gir_ffi-base.rb +1 -1
  140. data/lib/gir_ffi.rb +3 -3
  141. data/tasks/test.rake +3 -2
  142. data/test/base_test_helper.rb +16 -9
  143. data/test/ffi-glib/array_test.rb +71 -56
  144. data/test/ffi-glib/byte_array_test.rb +13 -7
  145. data/test/ffi-glib/bytes_test.rb +24 -19
  146. data/test/ffi-glib/closure_test.rb +11 -11
  147. data/test/ffi-glib/destroy_notify_test.rb +6 -6
  148. data/test/ffi-glib/hash_table_test.rb +27 -27
  149. data/test/ffi-glib/list_test.rb +22 -22
  150. data/test/ffi-glib/main_loop_test.rb +12 -12
  151. data/test/ffi-glib/ptr_array_test.rb +39 -39
  152. data/test/ffi-glib/ruby_closure_test.rb +10 -10
  153. data/test/ffi-glib/s_list_test.rb +20 -20
  154. data/test/ffi-glib/strv_test.rb +19 -19
  155. data/test/ffi-glib/variant_test.rb +5 -5
  156. data/test/ffi-gobject/gobject_test.rb +48 -44
  157. data/test/ffi-gobject/object_class_test.rb +8 -8
  158. data/test/ffi-gobject/object_test.rb +49 -67
  159. data/test/ffi-gobject/param_spec_test.rb +12 -12
  160. data/test/ffi-gobject/value_test.rb +145 -125
  161. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +8 -8
  162. data/test/ffi-gobject_introspection/i_base_info_test.rb +15 -16
  163. data/test/ffi-gobject_introspection/i_constant_info_test.rb +9 -13
  164. data/test/ffi-gobject_introspection/i_enum_info_test.rb +7 -7
  165. data/test/ffi-gobject_introspection/i_function_info_test.rb +1 -1
  166. data/test/ffi-gobject_introspection/i_interface_info_test.rb +10 -10
  167. data/test/ffi-gobject_introspection/i_object_info_test.rb +23 -23
  168. data/test/ffi-gobject_introspection/i_property_info_test.rb +19 -19
  169. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +10 -10
  170. data/test/ffi-gobject_introspection/i_repository_test.rb +31 -31
  171. data/test/ffi-gobject_introspection/i_struct_info_test.rb +10 -10
  172. data/test/ffi-gobject_introspection/i_type_info_test.rb +12 -15
  173. data/test/ffi-gobject_introspection/i_union_info_test.rb +7 -7
  174. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +16 -16
  175. data/test/ffi-gobject_introspection/lib_test.rb +3 -3
  176. data/test/ffi-gobject_introspection/strv_test.rb +9 -9
  177. data/test/ffi-gobject_test.rb +44 -44
  178. data/test/gir_ffi/allocation_helper_test.rb +13 -13
  179. data/test/gir_ffi/arg_helper_test.rb +63 -64
  180. data/test/gir_ffi/boolean_test.rb +20 -20
  181. data/test/gir_ffi/boxed_base_test.rb +18 -18
  182. data/test/gir_ffi/builder_test.rb +115 -93
  183. data/test/gir_ffi/builders/argument_builder_test.rb +280 -286
  184. data/test/gir_ffi/builders/base_argument_builder_test.rb +1 -1
  185. data/test/gir_ffi/builders/callback_argument_builder_test.rb +53 -56
  186. data/test/gir_ffi/builders/callback_builder_test.rb +71 -72
  187. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +36 -40
  188. data/test/gir_ffi/builders/constant_builder_test.rb +1 -1
  189. data/test/gir_ffi/builders/constructor_builder_test.rb +10 -10
  190. data/test/gir_ffi/builders/enum_builder_test.rb +10 -10
  191. data/test/gir_ffi/builders/field_builder_test.rb +42 -42
  192. data/test/gir_ffi/builders/function_builder_test.rb +236 -224
  193. data/test/gir_ffi/builders/initializer_builder_test.rb +14 -14
  194. data/test/gir_ffi/builders/interface_builder_test.rb +9 -9
  195. data/test/gir_ffi/builders/module_builder_test.rb +18 -18
  196. data/test/gir_ffi/builders/object_builder_test.rb +38 -38
  197. data/test/gir_ffi/builders/property_builder_test.rb +91 -94
  198. data/test/gir_ffi/builders/registered_type_builder_test.rb +35 -11
  199. data/test/gir_ffi/builders/return_value_builder_test.rb +215 -222
  200. data/test/gir_ffi/builders/signal_closure_builder_test.rb +122 -113
  201. data/test/gir_ffi/builders/struct_builder_test.rb +32 -32
  202. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +8 -14
  203. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +23 -23
  204. data/test/gir_ffi/builders/union_builder_test.rb +12 -15
  205. data/test/gir_ffi/builders/user_defined_builder_test.rb +147 -147
  206. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +40 -40
  207. data/test/gir_ffi/builders/vfunc_builder_test.rb +145 -157
  208. data/test/gir_ffi/callback_base_test.rb +9 -9
  209. data/test/gir_ffi/class_base_test.rb +49 -51
  210. data/test/gir_ffi/core_test.rb +32 -32
  211. data/test/gir_ffi/enum_base_test.rb +19 -19
  212. data/test/gir_ffi/error_type_info_test.rb +23 -23
  213. data/test/gir_ffi/ffi_ext/pointer_test.rb +5 -5
  214. data/test/gir_ffi/g_type_test.rb +11 -11
  215. data/test/gir_ffi/in_pointer_test.rb +70 -50
  216. data/test/gir_ffi/info_ext/i_callable_info_test.rb +5 -5
  217. data/test/gir_ffi/info_ext/i_callback_info_test.rb +4 -4
  218. data/test/gir_ffi/info_ext/i_field_info_test.rb +6 -6
  219. data/test/gir_ffi/info_ext/i_function_info_test.rb +17 -17
  220. data/test/gir_ffi/info_ext/i_signal_info_test.rb +8 -8
  221. data/test/gir_ffi/info_ext/i_type_info_test.rb +229 -215
  222. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +4 -4
  223. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +8 -8
  224. data/test/gir_ffi/info_ext/safe_function_name_test.rb +8 -8
  225. data/test/gir_ffi/interface_base_test.rb +8 -8
  226. data/test/gir_ffi/method_stubber_test.rb +19 -19
  227. data/test/gir_ffi/object_base_test.rb +19 -19
  228. data/test/gir_ffi/object_store_test.rb +13 -13
  229. data/test/gir_ffi/receiver_argument_info_test.rb +15 -15
  230. data/test/gir_ffi/sized_array_test.rb +68 -68
  231. data/test/gir_ffi/struct_base_test.rb +8 -8
  232. data/test/gir_ffi/struct_like_base_test.rb +64 -64
  233. data/test/gir_ffi/type_map_test.rb +6 -6
  234. data/test/gir_ffi/unintrospectable_type_info_test.rb +33 -33
  235. data/test/gir_ffi/union_base_test.rb +8 -8
  236. data/test/gir_ffi/user_defined_object_info_test.rb +34 -34
  237. data/test/gir_ffi/user_defined_property_info_test.rb +16 -16
  238. data/test/gir_ffi/variable_name_generator_test.rb +8 -8
  239. data/test/gir_ffi/version_test.rb +4 -4
  240. data/test/gir_ffi/zero_terminated_test.rb +34 -34
  241. data/test/gir_ffi_test_helper.rb +3 -3
  242. data/test/integration/callback_exceptions_test.rb +17 -21
  243. data/test/integration/derived_classes_test.rb +13 -13
  244. data/test/integration/generated_everything_test.rb +224 -224
  245. data/test/integration/generated_gimarshallingtests_test.rb +1118 -1017
  246. data/test/integration/generated_gio_test.rb +36 -36
  247. data/test/integration/generated_glib_test.rb +4 -6
  248. data/test/integration/generated_gobject_test.rb +43 -35
  249. data/test/integration/generated_gst_test.rb +16 -16
  250. data/test/integration/generated_gtk_source_test.rb +22 -17
  251. data/test/integration/generated_gtop_test.rb +8 -15
  252. data/test/integration/generated_pango_ft2_test.rb +2 -2
  253. data/test/integration/generated_pango_test.rb +4 -4
  254. data/test/integration/generated_regress_test.rb +1809 -1621
  255. data/test/integration/generated_secret_test.rb +8 -11
  256. data/test/integration/generated_utility_test.rb +81 -81
  257. data/test/integration/generated_warnlib_test.rb +13 -19
  258. data/test/integration/method_lookup_test.rb +6 -6
  259. data/test/introspection_test_helper.rb +48 -7
  260. data/test/minitest/stats_plugin.rb +1 -1
  261. metadata +11 -28
  262. data/lib/ffi-glib/array_methods.rb +0 -16
  263. data/test/gir_ffi/in_out_pointer_test.rb +0 -56
@@ -1,27 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  GirFFI.setup :Gio
6
6
 
7
7
  # Tests generated methods and functions in the Gio namespace.
8
- describe 'The generated Gio module' do
9
- describe 'File#new_for_path, a method returning an interface,' do
10
- it 'returns an object of a more specific class' do
11
- file = Gio::File.new_for_path('/')
12
- file.class.registered_ancestors.must_equal [file.class, Gio::File, GObject::Object]
8
+ describe "The generated Gio module" do
9
+ describe "File#new_for_path, a method returning an interface," do
10
+ it "returns an object of a more specific class" do
11
+ file = Gio::File.new_for_path("/")
12
+ _(file.class.registered_ancestors).must_equal [file.class, Gio::File, GObject::Object]
13
13
 
14
14
  refute_instance_of Gio::File, file
15
15
  assert_includes file.class.registered_ancestors, Gio::File
16
16
  end
17
17
  end
18
18
 
19
- describe 'the result of #file_new_from_path' do
19
+ describe "the result of #file_new_from_path" do
20
20
  before do
21
- @it = Gio.file_new_for_path('/')
21
+ @it = Gio.file_new_for_path("/")
22
22
  end
23
23
 
24
- it 'is able to set up a method in a class that is not the first ancestor' do
24
+ it "is able to set up a method in a class that is not the first ancestor" do
25
25
  refute_defines_instance_method @it.class, :get_qdata
26
26
  refute_defines_instance_method Gio::File, :get_qdata
27
27
  assert_defines_instance_method GObject::Object, :get_qdata
@@ -29,88 +29,88 @@ describe 'The generated Gio module' do
29
29
  @it.setup_and_call :get_qdata, 1
30
30
  end
31
31
 
32
- it 'knows its GType' do
32
+ it "knows its GType" do
33
33
  instance_gtype = GObject.type_from_instance @it
34
- @it.class.gtype.must_equal instance_gtype
34
+ _(@it.class.gtype).must_equal instance_gtype
35
35
  end
36
36
  end
37
37
 
38
- describe 'the FileInfo class' do
39
- describe 'an instance' do
38
+ describe "the FileInfo class" do
39
+ describe "an instance" do
40
40
  before do
41
- file = Gio.file_new_for_path('/')
42
- @fileinfo = file.query_info '*', :none, nil
41
+ file = Gio.file_new_for_path("/")
42
+ @fileinfo = file.query_info "*", :none, nil
43
43
  end
44
44
 
45
- it 'has a working #get_attribute_type method' do
46
- type = @fileinfo.get_attribute_type 'standard::display-name'
45
+ it "has a working #get_attribute_type method" do
46
+ type = @fileinfo.get_attribute_type "standard::display-name"
47
47
  assert_equal :string, type
48
48
  end
49
49
  end
50
50
  end
51
51
 
52
- describe 'the action-added signal' do
52
+ describe "the action-added signal" do
53
53
  before do
54
54
  @grp = Gio::SimpleActionGroup.new
55
55
  end
56
56
 
57
57
  it "correctly passes on the string parameter 'action_name'" do
58
58
  a = nil
59
- GObject.signal_connect @grp, 'action-added' do |_grp, action_name, _user_data|
59
+ GObject.signal_connect @grp, "action-added" do |_grp, action_name, _user_data|
60
60
  a = action_name
61
61
  end
62
- GObject.signal_emit @grp, 'action-added', 'foo'
63
- assert_equal 'foo', a
62
+ GObject.signal_emit @grp, "action-added", "foo"
63
+ assert_equal "foo", a
64
64
  end
65
65
  end
66
66
 
67
- describe 'the reply signal' do
67
+ describe "the reply signal" do
68
68
  before do
69
69
  @mo = Gio::MountOperation.new
70
70
  end
71
71
 
72
72
  it "correctly passes on the enum parameter 'result'" do
73
73
  a = nil
74
- GObject.signal_connect @mo, 'reply' do |_mnt, result, _user_data|
74
+ GObject.signal_connect @mo, "reply" do |_mnt, result, _user_data|
75
75
  a = result
76
76
  end
77
- GObject.signal_emit @mo, 'reply', :unhandled
77
+ GObject.signal_emit @mo, "reply", :unhandled
78
78
  assert_equal :unhandled, a
79
79
  end
80
80
  end
81
81
 
82
- describe 'the CharsetConverter class' do
83
- it 'includes two interfaces' do
82
+ describe "the CharsetConverter class" do
83
+ it "includes two interfaces" do
84
84
  klass = Gio::CharsetConverter
85
- klass.included_interfaces.must_equal [Gio::Initable, Gio::Converter]
85
+ _(klass.included_interfaces).must_equal [Gio::Initable, Gio::Converter]
86
86
  end
87
87
 
88
- it 'allows an instance to find the #reset method' do
89
- cnv = Gio::CharsetConverter.new 'utf8', 'utf8'
88
+ it "allows an instance to find the #reset method" do
89
+ cnv = Gio::CharsetConverter.new "utf8", "utf8"
90
90
  cnv.reset
91
91
  pass
92
92
  end
93
93
  end
94
94
 
95
- describe 'the SocketSourceFunc callback' do
96
- it 'can be cast to a native function' do
95
+ describe "the SocketSourceFunc callback" do
96
+ it "can be cast to a native function" do
97
97
  Gio::SocketSourceFunc.new { |*args| p args }.to_native
98
98
  end
99
99
  end
100
100
 
101
- describe 'Gio::SimpleAction' do
102
- let(:simple_action) { Gio::SimpleAction.new('test', 'd') }
101
+ describe "Gio::SimpleAction" do
102
+ let(:simple_action) { Gio::SimpleAction.new("test", "d") }
103
103
 
104
104
  it 'can read the property "state-type" with #get_property' do
105
- simple_action.get_property('state-type').must_be_nil
105
+ _(simple_action.get_property("state-type")).must_be_nil
106
106
  end
107
107
 
108
108
  it 'can read the property "state-type" with #state_type' do
109
- simple_action.state_type.must_be_nil
109
+ _(simple_action.state_type).must_be_nil
110
110
  end
111
111
 
112
112
  it 'cannot write the property "state-type" with #state_type=' do
113
- simple_action.wont_respond_to :state_type=
113
+ _(simple_action).wont_respond_to :state_type=
114
114
  end
115
115
  end
116
116
  end
@@ -1,12 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  # Tests generated classes, methods and functions in the GLib namespace.
6
- describe 'The generated GLib module' do
7
- it 'can auto-generate the GLib::SOURCE_REMOVE constant' do
8
- skip unless get_introspection_data 'GLib', 'SOURCE_REMOVE'
9
-
10
- GLib::SOURCE_REMOVE.must_equal false
6
+ describe "The generated GLib module" do
7
+ it "can auto-generate the GLib::SOURCE_REMOVE constant" do
8
+ _(GLib::SOURCE_REMOVE).must_equal false
11
9
  end
12
10
  end
@@ -1,44 +1,44 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  GirFFI.setup :Regress
6
6
 
7
7
  describe GObject do
8
- describe '.type_interfaces' do
9
- it 'works, showing that returning an array of GType works' do
8
+ describe ".type_interfaces" do
9
+ it "works, showing that returning an array of GType works" do
10
10
  klass = GObject::TypeModule
11
11
  ifcs = GObject.type_interfaces klass.gtype
12
12
  assert_equal 1, ifcs.size
13
13
  end
14
14
  end
15
15
 
16
- describe '.signal_set_va_marshaller' do
17
- it 'can be set up' do
18
- result = GObject.setup_method 'signal_set_va_marshaller'
19
- result.must_equal true
16
+ describe ".signal_set_va_marshaller" do
17
+ it "can be set up" do
18
+ result = GObject.setup_method "signal_set_va_marshaller"
19
+ _(result).must_equal true
20
20
  end
21
21
  end
22
22
 
23
23
  describe GObject::TypeInfo do
24
24
  let(:instance) { GObject::TypeInfo.new }
25
- it 'has a working field setter for class_init' do
25
+ it "has a working field setter for class_init" do
26
26
  instance.class_init = proc do |_object_class, _data|
27
27
  end
28
28
  end
29
29
 
30
- it 'has a working field getter for class_init' do
31
- instance.class_init.must_be_nil
30
+ it "has a working field getter for class_init" do
31
+ _(instance.class_init).must_be_nil
32
32
  instance.class_init = proc do |_object_class, _data|
33
33
  end
34
34
  result = instance.class_init
35
- result.wont_be_nil
36
- result.must_be_instance_of FFI::Function
35
+ _(result).wont_be_nil
36
+ _(result).must_be_instance_of FFI::Function
37
37
  end
38
38
  end
39
39
 
40
40
  describe GObject::TypePlugin do
41
- it 'is implemented as a module' do
41
+ it "is implemented as a module" do
42
42
  mod = GObject::TypePlugin
43
43
  assert_instance_of Module, mod
44
44
  refute_instance_of Class, mod
@@ -46,71 +46,79 @@ describe GObject do
46
46
  end
47
47
 
48
48
  describe GObject::TypeModule do
49
- it 'has the GObject::TypePlugin module as an ancestor' do
49
+ it "has the GObject::TypePlugin module as an ancestor" do
50
50
  klass = GObject::TypeModule
51
51
  assert_includes klass.registered_ancestors, GObject::TypePlugin
52
52
  end
53
53
  end
54
54
 
55
55
  describe GObject::ValueArray do
56
- it 'uses the constructor provided by GObject' do
56
+ it "uses the constructor provided by GObject" do
57
57
  instance = GObject::ValueArray.new 16
58
- instance.n_prealloced.must_equal 16
59
- instance.n_values.must_equal 0
58
+ _(instance.n_prealloced).must_equal 16
59
+ _(instance.n_values).must_equal 0
60
60
  end
61
61
  end
62
62
 
63
63
  describe GObject::SignalQuery do
64
- it 'works' do
64
+ it "works" do
65
65
  GObject::SignalQuery.new
66
66
  pass
67
67
  end
68
68
 
69
- it 'uses the n_params field for the length of param_types' do
70
- field_info = get_field_introspection_data 'GObject', 'SignalQuery', 'param_types'
71
- skip if field_info.field_type.array_length < 0
69
+ it "uses the n_params field for the length of param_types" do
72
70
  gtype = GObject::Object.gtype
73
71
  signals = GObject.signal_list_ids gtype
74
72
  signal_query = GObject.signal_query signals.first
75
- signal_query.n_params.must_equal 1
76
- signal_query.param_types.size.must_equal 1
73
+ _(signal_query.n_params).must_equal 1
74
+ _(signal_query.param_types.size).must_equal 1
77
75
  end
78
76
  end
79
77
 
80
78
  describe GObject::Binding do
81
- it 'is created with GObject::Object#bind_property' do
79
+ it "is created with GObject::Object#bind_property" do
82
80
  source = Regress::TestObj.constructor
83
81
  target = Regress::TestObj.constructor
84
- binding = source.bind_property 'double', target, 'double', :default
85
- binding.must_be_kind_of GObject::Binding
82
+ binding = source.bind_property "double", target, "double", :default
83
+ _(binding).must_be_kind_of GObject::Binding
86
84
  end
87
85
 
88
- describe 'an instance' do
86
+ describe "an instance" do
89
87
  let(:source) { Regress::TestObj.constructor }
90
88
  let(:target) { Regress::TestObj.constructor }
91
- let(:binding) { source.bind_property 'double', target, 'double', :default }
89
+ let(:binding) { source.bind_property "double", target, "double", :default }
92
90
 
93
91
  it 'can read the property "target-property" with #get_property' do
94
- binding.get_property('target-property').must_equal 'double'
92
+ _(binding.get_property("target-property")).must_equal "double"
95
93
  end
96
94
 
97
95
  it 'can read the property "target-property" with #target_property' do
98
- binding.target_property.must_equal 'double'
96
+ _(binding.target_property).must_equal "double"
99
97
  end
100
98
 
101
99
  it 'cannot write the property "target-property" with #target_property=' do
102
- binding.wont_respond_to :target_property=
100
+ _(binding).wont_respond_to :target_property=
103
101
  end
104
102
  end
105
103
  end
106
104
 
107
105
  describe GObject::ParamSpec do
108
- it 'does not have a separate #name field accessor' do
109
- pspec = GObject.param_spec_int('foo', 'foo bar',
110
- 'The Foo Bar Property',
106
+ it "has a generated field accessor for #flags but not #get_flags method" do
107
+ pspec = GObject.param_spec_int("foo", "foo bar",
108
+ "The Foo Bar Property",
111
109
  10, 20, 15,
112
110
  3)
113
- pspec.wont_respond_to :name
111
+ _(pspec).wont_respond_to :get_flags
112
+ _(pspec.method(:flags).original_name).must_equal :flags
113
+ end
114
+
115
+ it "aliases #get_name to #name instead of having a separate field accessor" do
116
+ pspec = GObject.param_spec_int("foo", "foo bar",
117
+ "The Foo Bar Property",
118
+ 10, 20, 15,
119
+ 3)
120
+ _(pspec).must_respond_to :get_name
121
+ _(pspec.method(:name).original_name).must_equal :get_name
114
122
  end
115
123
  end
116
124
  end
@@ -1,34 +1,34 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  GirFFI.setup :Gst
6
6
  Gst.init []
7
7
 
8
8
  # Tests behavior of objects in the generated Gio namespace.
9
- describe 'the generated Gst module' do
10
- describe 'Gst::FakeSink' do
11
- let(:instance) { Gst::ElementFactory.make('fakesink', 'sink') }
9
+ describe "the generated Gst module" do
10
+ describe "Gst::FakeSink" do
11
+ let(:instance) { Gst::ElementFactory.make("fakesink", "sink") }
12
12
 
13
- it 'allows the handoff signal to be connected and emitted' do
13
+ it "allows the handoff signal to be connected and emitted" do
14
14
  a = nil
15
- instance.signal_connect('handoff') { a = 10 }
16
- GObject.signal_emit(instance, 'handoff')
17
- a.must_equal 10
15
+ instance.signal_connect("handoff") { a = 10 }
16
+ GObject.signal_emit(instance, "handoff")
17
+ _(a).must_equal 10
18
18
  end
19
19
 
20
- it 'correctly fetches the name' do
21
- instance.name.must_equal 'sink'
20
+ it "correctly fetches the name" do
21
+ _(instance.name).must_equal "sink"
22
22
  end
23
23
  end
24
24
 
25
- describe 'Gst::AutoAudioSink' do
26
- let(:instance) { Gst::ElementFactory.make('autoaudiosink', 'audiosink') }
25
+ describe "Gst::AutoAudioSink" do
26
+ let(:instance) { Gst::ElementFactory.make("autoaudiosink", "audiosink") }
27
27
 
28
- it 'correctly fetches the name' do
29
- skip 'Audio sink was not created' unless instance
30
- instance.get_name.must_equal 'audiosink'
31
- instance.name.must_equal 'audiosink'
28
+ it "correctly fetches the name" do
29
+ skip "Audio sink was not created" unless instance
30
+ _(instance.get_name).must_equal "audiosink"
31
+ _(instance.name).must_equal "audiosink"
32
32
  end
33
33
  end
34
34
  end
@@ -1,26 +1,31 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
- # Tests behavior of objects in the generated GtkSource namespace.
6
- describe 'The generated GtkSource module' do
7
- before do
8
- begin
9
- GirFFI.setup :GtkSource
10
- rescue RuntimeError
11
- skip 'GtkSource GIR not available'
12
- end
13
- end
5
+ GirFFI.setup :GtkSource
14
6
 
15
- describe 'GtkSource::CompletionContext' do
7
+ # Tests behavior of objects in the generated GtkSource namespace.
8
+ describe "The generated GtkSource module" do
9
+ describe "GtkSource::CompletionContext" do
16
10
  let(:instance) { GtkSource::CompletionContext.new }
17
11
 
18
- it 'allows adding proposals' do
19
- proposals = [
20
- GtkSource::CompletionItem.new('Proposal 1', 'Proposal 1', nil, 'blah 1'),
21
- GtkSource::CompletionItem.new('Proposal 2', 'Proposal 2', nil, 'blah 2'),
22
- GtkSource::CompletionItem.new('Proposal 3', 'Proposal 3', nil, 'blah 3')
23
- ]
12
+ it "allows adding proposals" do
13
+ # Interface changed in GtkSourceView 3.24
14
+ proposals = if GtkSource::CompletionItem.instance_methods.include? :set_label
15
+ Array.new(3) do |i|
16
+ GtkSource::CompletionItem.new.tap do |item|
17
+ item.label = "Proposal #{i}"
18
+ item.text = "Proposal #{i}"
19
+ item.info = "blah #{i}"
20
+ end
21
+ end
22
+ else
23
+ [
24
+ GtkSource::CompletionItem.new("Proposal 1", "Proposal 1", nil, "blah 1"),
25
+ GtkSource::CompletionItem.new("Proposal 2", "Proposal 2", nil, "blah 2"),
26
+ GtkSource::CompletionItem.new("Proposal 3", "Proposal 3", nil, "blah 3")
27
+ ]
28
+ end
24
29
  instance.add_proposals nil, proposals, true
25
30
  end
26
31
  end
@@ -1,29 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
+
5
+ GirFFI.setup :GTop
4
6
 
5
7
  # Tests generated methods and functions in the GTop namespace. This namespace
6
8
  # contains types with bad names, like 'glibtop_cpu'.
7
- describe 'The generated GTop module' do
8
- before do
9
- begin
10
- GirFFI.setup :GTop
11
- rescue RuntimeError
12
- skip 'No GIR data for GTop available'
13
- end
14
- end
15
-
16
- describe 'Glibtop' do
17
- it 'is a valid struct class' do
9
+ describe "The generated GTop module" do
10
+ describe "Glibtop" do
11
+ it "is a valid struct class" do
18
12
  # Superclass is either BoxedBase or StructBase, depending on library
19
13
  # versions. This means StructBase is always one of the ancestors.
20
14
  assert GTop::Glibtop < GirFFI::StructBase
21
15
  end
22
16
 
23
- it 'can be created using Glibtop.init' do
24
- skip unless get_method_introspection_data 'GTop', 'glibtop', 'init'
17
+ it "can be created using Glibtop.init" do
25
18
  instance = GTop::Glibtop.init
26
- instance.must_be_kind_of GTop::Glibtop
19
+ _(instance).must_be_kind_of GTop::Glibtop
27
20
  end
28
21
  end
29
22
  end