glib2 2.2.5 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +53 -8
- data/ext/glib2/extconf.rb +1 -1
- data/ext/glib2/glib2.def +8 -0
- data/ext/glib2/rbglib-variant-type.c +296 -0
- data/ext/glib2/rbglib-variant.c +132 -0
- data/ext/glib2/rbglib.c +16 -1
- data/ext/glib2/rbglib.h +18 -7
- data/ext/glib2/rbglib2conversions.h +6 -1
- data/ext/glib2/rbglib_fileutils.c +3 -3
- data/ext/glib2/rbglib_maincontext.c +35 -5
- data/ext/glib2/rbgobj_binding.c +48 -0
- data/ext/glib2/rbgobj_boxed.c +6 -2
- data/ext/glib2/rbgobj_enums.c +55 -12
- data/ext/glib2/rbgobj_flags.c +115 -70
- data/ext/glib2/rbgobj_object.c +91 -77
- data/ext/glib2/rbgobj_type.c +1 -1
- data/ext/glib2/rbgobj_typeinstance.c +8 -2
- data/ext/glib2/rbgobj_value.c +20 -12
- data/ext/glib2/rbgobject.c +2 -0
- data/ext/glib2/rbgobject.h +4 -2
- data/ext/glib2/rbgprivate.h +4 -3
- data/ext/glib2/rbgutil.c +36 -8
- data/ext/glib2/rbgutil.h +3 -1
- data/ext/glib2/rbgutil_list.c +97 -1
- data/ext/glib2/rbgutil_list.h +10 -1
- data/lib/glib2/deprecatable.rb +20 -5
- data/lib/gnome2/rake/native-binary-build-task.rb +1 -1
- data/lib/gnome2/rake/windows-binary-build-task.rb +12 -15
- data/lib/mkmf-gnome2.rb +10 -11
- data/test/test-binding.rb +97 -0
- data/test/test-variant-type.rb +357 -0
- data/test/test_enum.rb +5 -8
- data/test/test_file_utils.rb +30 -8
- data/test/test_source.rb +11 -0
- data/test/test_value.rb +5 -0
- metadata +7 -3
- data/README +0 -40
@@ -163,23 +163,13 @@ class GNOME2WindowsBinaryBuildTask
|
|
163
163
|
end
|
164
164
|
|
165
165
|
def cmake(package)
|
166
|
-
toolchain_cmake_path = "toolchain.cmake"
|
167
|
-
File.open(toolchain_cmake_path, "w") do |toolchain|
|
168
|
-
toolchain.puts(<<-CMAKE)
|
169
|
-
SET(CMAKE_SYSTEM_NAME Windows)
|
170
|
-
SET(MSVC_CXX_ARCHITECTURE_ID #{@package.windows.build_architecture})
|
171
|
-
SET(CMAKE_SYSTEM_PROCESSOR #{@package.windows.build_architecture})
|
172
|
-
|
173
|
-
SET(CMAKE_C_COMPILER #{@package.windows.build_host}-gcc)
|
174
|
-
SET(CMAKE_CXX_COMPILER #{@package.windows.build_host}-g++)
|
175
|
-
SET(CMAKE_RC_COMPILER #{@package.windows.build_host}-windres)
|
176
|
-
|
177
|
-
SET(CMAKE_FIND_ROOT_PATH #{cmake_root_paths.join(" ")})
|
178
|
-
CMAKE
|
179
|
-
end
|
180
166
|
sh("cmake",
|
181
167
|
".",
|
182
|
-
"-
|
168
|
+
"-DCMAKE_INSTALL_PREFIX=#{dist_dir}",
|
169
|
+
"-DCMAKE_SYSTEM_NAME=Windows",
|
170
|
+
"-DCMAKE_SYSTEM_PROCESSOR=#{@package.windows.build_architecture}",
|
171
|
+
"-DCMAKE_C_COMPILER=#{cc(package)}",
|
172
|
+
"-DCMAKE_CXX_COMPILER=#{cxx(package)}",
|
183
173
|
*package.windows.cmake_args) or exit(false)
|
184
174
|
end
|
185
175
|
|
@@ -244,6 +234,13 @@ SET(CMAKE_FIND_ROOT_PATH #{cmake_root_paths.join(" ")})
|
|
244
234
|
cc_command_line.compact.join(" ")
|
245
235
|
end
|
246
236
|
|
237
|
+
def cxx(package)
|
238
|
+
cxx_command_line = [
|
239
|
+
"#{@package.windows.build_host}-g++",
|
240
|
+
]
|
241
|
+
cxx_command_line.compact.join(" ")
|
242
|
+
end
|
243
|
+
|
247
244
|
def cppflags(package)
|
248
245
|
include_paths = package.windows.include_paths
|
249
246
|
if @package.windows.build_dependencies.include?("glib2")
|
data/lib/mkmf-gnome2.rb
CHANGED
@@ -30,7 +30,7 @@ end
|
|
30
30
|
|
31
31
|
def enable_debug_build_flag(flags)
|
32
32
|
if gcc?
|
33
|
-
debug_option_pattern = /(^|\s)
|
33
|
+
debug_option_pattern = /(^|\s)-g\d?(\s|$)/
|
34
34
|
if debug_option_pattern =~ flags
|
35
35
|
flags.gsub(debug_option_pattern, '\\1-g3\\2')
|
36
36
|
else
|
@@ -109,10 +109,13 @@ if ENV['GTK_BASEPATH'] and /cygwin/ !~ RUBY_PLATFORM
|
|
109
109
|
$CFLAGS += " -I#{include_path} "
|
110
110
|
end
|
111
111
|
|
112
|
+
def windows_platform?
|
113
|
+
/cygwin|mingw|mswin/ === RUBY_PLATFORM
|
114
|
+
end
|
115
|
+
|
112
116
|
def setup_windows(target_name, base_dir=nil)
|
113
117
|
checking_for(checking_message("Windows")) do
|
114
|
-
|
115
|
-
when /cygwin|mingw|mswin/
|
118
|
+
if windows_platform?
|
116
119
|
import_library_name = "libruby-#{target_name}.a"
|
117
120
|
$DLDFLAGS << " -Wl,--out-implib=#{import_library_name}"
|
118
121
|
$cleanfiles << import_library_name
|
@@ -189,8 +192,7 @@ def add_depend_package_path(target_name, target_source_dir, target_build_dir)
|
|
189
192
|
$INCFLAGS = "-I#{target_source_dir} #{$INCFLAGS}"
|
190
193
|
end
|
191
194
|
|
192
|
-
|
193
|
-
when /cygwin|mingw|mswin/
|
195
|
+
if windows_platform?
|
194
196
|
target_base_dir = Pathname.new(target_source_dir).parent.parent
|
195
197
|
target_binary_base_dir = target_base_dir + "vendor" + "local"
|
196
198
|
if target_binary_base_dir.exist?
|
@@ -205,8 +207,7 @@ def add_depend_package_path(target_name, target_source_dir, target_build_dir)
|
|
205
207
|
$INCFLAGS = "-I#{target_build_dir} #{$INCFLAGS}"
|
206
208
|
end
|
207
209
|
|
208
|
-
|
209
|
-
when /cygwin|mingw|mswin/
|
210
|
+
if windows_platform?
|
210
211
|
library_base_name = "ruby-#{target_name.gsub(/-/, '_')}"
|
211
212
|
case RUBY_PLATFORM
|
212
213
|
when /cygwin|mingw/
|
@@ -450,12 +451,10 @@ def glib_mkenums(prefix, files, g_type_prefix, include_files, options={})
|
|
450
451
|
end
|
451
452
|
|
452
453
|
def check_cairo(options={})
|
453
|
-
is_windows = (/mingw|cygwin|mswin/ === RUBY_PLATFORM)
|
454
|
-
|
455
454
|
rcairo_source_dir = options[:rcairo_source_dir]
|
456
455
|
if rcairo_source_dir.nil?
|
457
456
|
suffix = nil
|
458
|
-
if
|
457
|
+
if windows_platform?
|
459
458
|
case RUBY_PLATFORM
|
460
459
|
when /\Ax86-mingw/
|
461
460
|
suffix = "win32"
|
@@ -480,7 +479,7 @@ def check_cairo(options={})
|
|
480
479
|
end
|
481
480
|
|
482
481
|
unless rcairo_source_dir.nil?
|
483
|
-
if
|
482
|
+
if windows_platform?
|
484
483
|
options = {}
|
485
484
|
build_dir = "tmp/#{RUBY_PLATFORM}/cairo/#{RUBY_VERSION}"
|
486
485
|
if File.exist?(File.join(rcairo_source_dir, build_dir))
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# Copyright (C) 2015 Ruby-GNOME2 Project Team
|
2
|
+
#
|
3
|
+
# This library is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
5
|
+
# License as published by the Free Software Foundation; either
|
6
|
+
# version 2.1 of the License, or (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This library is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
11
|
+
# Lesser General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU Lesser General Public
|
14
|
+
# License along with this library; if not, write to the Free Software
|
15
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
|
+
|
17
|
+
class TestGLibBinding < Test::Unit::TestCase
|
18
|
+
include GLibTestUtils
|
19
|
+
|
20
|
+
class DataObject < GLib::Object
|
21
|
+
type_register
|
22
|
+
|
23
|
+
install_property(GLib::Param::Int.new("source", # name
|
24
|
+
"Source", # nick
|
25
|
+
"The source data", # blurb
|
26
|
+
0, # min
|
27
|
+
100, # max
|
28
|
+
0, # default
|
29
|
+
GLib::Param::READABLE |
|
30
|
+
GLib::Param::WRITABLE))
|
31
|
+
install_property(GLib::Param::Int.new("target", # name
|
32
|
+
"Target", # nick
|
33
|
+
"The target data", # blurb
|
34
|
+
0, # min
|
35
|
+
100, # max
|
36
|
+
0, # default
|
37
|
+
GLib::Param::READABLE |
|
38
|
+
GLib::Param::WRITABLE))
|
39
|
+
|
40
|
+
attr_reader :source, :target
|
41
|
+
def initialize
|
42
|
+
@source = 0
|
43
|
+
@target = 0
|
44
|
+
super
|
45
|
+
end
|
46
|
+
|
47
|
+
def source=(value)
|
48
|
+
@source = value
|
49
|
+
notify("source")
|
50
|
+
end
|
51
|
+
|
52
|
+
def target=(value)
|
53
|
+
@target = value
|
54
|
+
notify("target")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
setup do
|
59
|
+
only_glib_version(2, 26, 0)
|
60
|
+
end
|
61
|
+
|
62
|
+
setup do
|
63
|
+
@source = DataObject.new
|
64
|
+
@target = DataObject.new
|
65
|
+
@binding = @source.bind_property("source", @target, "target", :default)
|
66
|
+
end
|
67
|
+
|
68
|
+
test "#source" do
|
69
|
+
assert_equal(@source, @binding.source)
|
70
|
+
end
|
71
|
+
|
72
|
+
test "#source_property" do
|
73
|
+
assert_equal("source", @binding.source_property)
|
74
|
+
end
|
75
|
+
|
76
|
+
test "#target" do
|
77
|
+
assert_equal(@target, @binding.target)
|
78
|
+
end
|
79
|
+
|
80
|
+
test "#target_property" do
|
81
|
+
assert_equal("target", @binding.target_property)
|
82
|
+
end
|
83
|
+
|
84
|
+
test "#flags" do
|
85
|
+
assert_equal(GLib::BindingFlags::DEFAULT, @binding.flags)
|
86
|
+
end
|
87
|
+
|
88
|
+
test "#unbind" do
|
89
|
+
only_glib_version(2, 38, 0)
|
90
|
+
assert_equal(0, @target.target)
|
91
|
+
@source.source = 10
|
92
|
+
assert_equal(10, @target.target)
|
93
|
+
@binding.unbind
|
94
|
+
@source.source = 20
|
95
|
+
assert_equal(10, @target.target)
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,357 @@
|
|
1
|
+
# Copyright (C) 2015 Ruby-GNOME2 Project Team
|
2
|
+
#
|
3
|
+
# This library is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
5
|
+
# License as published by the Free Software Foundation; either
|
6
|
+
# version 2.1 of the License, or (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This library is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
11
|
+
# Lesser General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU Lesser General Public
|
14
|
+
# License along with this library; if not, write to the Free Software
|
15
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
|
+
|
17
|
+
class TestGLibVariantType < Test::Unit::TestCase
|
18
|
+
include GLibTestUtils
|
19
|
+
|
20
|
+
sub_test_case "constants" do
|
21
|
+
test "BOOLEAN" do
|
22
|
+
assert_equal("b", GLib::VariantType::BOOLEAN.to_s)
|
23
|
+
end
|
24
|
+
|
25
|
+
test "BYTE" do
|
26
|
+
assert_equal("y", GLib::VariantType::BYTE.to_s)
|
27
|
+
end
|
28
|
+
|
29
|
+
test "INT16" do
|
30
|
+
assert_equal("n", GLib::VariantType::INT16.to_s)
|
31
|
+
end
|
32
|
+
|
33
|
+
test "UINT16" do
|
34
|
+
assert_equal("q", GLib::VariantType::UINT16.to_s)
|
35
|
+
end
|
36
|
+
|
37
|
+
test "INT32" do
|
38
|
+
assert_equal("i", GLib::VariantType::INT32.to_s)
|
39
|
+
end
|
40
|
+
|
41
|
+
test "UINT32" do
|
42
|
+
assert_equal("u", GLib::VariantType::UINT32.to_s)
|
43
|
+
end
|
44
|
+
|
45
|
+
test "INT64" do
|
46
|
+
assert_equal("x", GLib::VariantType::INT64.to_s)
|
47
|
+
end
|
48
|
+
|
49
|
+
test "UINT64" do
|
50
|
+
assert_equal("t", GLib::VariantType::UINT64.to_s)
|
51
|
+
end
|
52
|
+
|
53
|
+
test "HANDLE" do
|
54
|
+
assert_equal("h", GLib::VariantType::HANDLE.to_s)
|
55
|
+
end
|
56
|
+
|
57
|
+
test "DOUBLE" do
|
58
|
+
assert_equal("d", GLib::VariantType::DOUBLE.to_s)
|
59
|
+
end
|
60
|
+
|
61
|
+
test "STRING" do
|
62
|
+
assert_equal("s", GLib::VariantType::STRING.to_s)
|
63
|
+
end
|
64
|
+
|
65
|
+
test "OBJECT_PATH" do
|
66
|
+
assert_equal("o", GLib::VariantType::OBJECT_PATH.to_s)
|
67
|
+
end
|
68
|
+
|
69
|
+
test "SIGNATURE" do
|
70
|
+
assert_equal("g", GLib::VariantType::SIGNATURE.to_s)
|
71
|
+
end
|
72
|
+
|
73
|
+
test "VARIANT" do
|
74
|
+
assert_equal("v", GLib::VariantType::VARIANT.to_s)
|
75
|
+
end
|
76
|
+
|
77
|
+
test "ANY" do
|
78
|
+
assert_equal("*", GLib::VariantType::ANY.to_s)
|
79
|
+
end
|
80
|
+
|
81
|
+
test "BASIC" do
|
82
|
+
assert_equal("?", GLib::VariantType::BASIC.to_s)
|
83
|
+
end
|
84
|
+
|
85
|
+
test "MAYBE" do
|
86
|
+
assert_equal("m*", GLib::VariantType::MAYBE.to_s)
|
87
|
+
end
|
88
|
+
|
89
|
+
test "ARRAY" do
|
90
|
+
assert_equal("a*", GLib::VariantType::ARRAY.to_s)
|
91
|
+
end
|
92
|
+
|
93
|
+
test "TUPLE" do
|
94
|
+
assert_equal("r", GLib::VariantType::TUPLE.to_s)
|
95
|
+
end
|
96
|
+
|
97
|
+
test "UNIT" do
|
98
|
+
assert_equal("()", GLib::VariantType::UNIT.to_s)
|
99
|
+
end
|
100
|
+
|
101
|
+
test "DICT_ENTRY" do
|
102
|
+
assert_equal("{?*}", GLib::VariantType::DICT_ENTRY.to_s)
|
103
|
+
end
|
104
|
+
|
105
|
+
test "DICTIONARY" do
|
106
|
+
assert_equal("a{?*}", GLib::VariantType::DICTIONARY.to_s)
|
107
|
+
end
|
108
|
+
|
109
|
+
test "STRING_ARRAY" do
|
110
|
+
assert_equal("as", GLib::VariantType::STRING_ARRAY.to_s)
|
111
|
+
end
|
112
|
+
|
113
|
+
test "OBJECT_PATH_ARRAY" do
|
114
|
+
assert_equal("ao", GLib::VariantType::OBJECT_PATH_ARRAY.to_s)
|
115
|
+
end
|
116
|
+
|
117
|
+
test "BYTESTRING" do
|
118
|
+
assert_equal("ay", GLib::VariantType::BYTESTRING.to_s)
|
119
|
+
end
|
120
|
+
|
121
|
+
test "BYTESTRING_ARRAY" do
|
122
|
+
assert_equal("aay", GLib::VariantType::BYTESTRING_ARRAY.to_s)
|
123
|
+
end
|
124
|
+
|
125
|
+
test "VARDICT" do
|
126
|
+
assert_equal("a{sv}", GLib::VariantType::VARDICT.to_s)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
sub_test_case ".valid?" do
|
131
|
+
test "valid" do
|
132
|
+
assert do
|
133
|
+
GLib::VariantType.valid?("s")
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
test "invalid" do
|
138
|
+
assert do
|
139
|
+
!GLib::VariantType.valid?("X")
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
sub_test_case ".scan" do
|
145
|
+
test "found" do
|
146
|
+
assert_equal("X", GLib::VariantType.scan("sX"))
|
147
|
+
end
|
148
|
+
|
149
|
+
test "not found" do
|
150
|
+
assert_nil(GLib::VariantType.scan("X"))
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
sub_test_case "#initialize" do
|
155
|
+
test "invalid" do
|
156
|
+
assert_raise(ArgumentError.new("invalid type string: \"X\"")) do
|
157
|
+
GLib::VariantType.new("X")
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
test "#to_s" do
|
163
|
+
variant_type = GLib::VariantType.new("s")
|
164
|
+
assert_equal("s", variant_type.to_s)
|
165
|
+
end
|
166
|
+
|
167
|
+
sub_test_case "#definite?" do
|
168
|
+
test "definite" do
|
169
|
+
variant_type = GLib::VariantType.new("s")
|
170
|
+
assert do
|
171
|
+
variant_type.definite?
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
test "not definite" do
|
176
|
+
variant_type = GLib::VariantType.new("?")
|
177
|
+
assert do
|
178
|
+
!variant_type.definite?
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
sub_test_case "#container?" do
|
184
|
+
test "container" do
|
185
|
+
variant_type = GLib::VariantType.new("a*")
|
186
|
+
assert do
|
187
|
+
variant_type.container?
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
test "not container" do
|
192
|
+
variant_type = GLib::VariantType.new("s")
|
193
|
+
assert do
|
194
|
+
!variant_type.container?
|
195
|
+
end
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
sub_test_case "#basic?" do
|
200
|
+
test "basic" do
|
201
|
+
variant_type = GLib::VariantType.new("s")
|
202
|
+
assert do
|
203
|
+
variant_type.basic?
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
test "not basic" do
|
208
|
+
variant_type = GLib::VariantType.new("as")
|
209
|
+
assert do
|
210
|
+
!variant_type.basic?
|
211
|
+
end
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
sub_test_case "#maybe?" do
|
216
|
+
test "maybe" do
|
217
|
+
variant_type = GLib::VariantType.new("ms")
|
218
|
+
assert do
|
219
|
+
variant_type.maybe?
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
test "not maybe" do
|
224
|
+
variant_type = GLib::VariantType.new("s")
|
225
|
+
assert do
|
226
|
+
!variant_type.maybe?
|
227
|
+
end
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
sub_test_case "#array?" do
|
232
|
+
test "array" do
|
233
|
+
variant_type = GLib::VariantType.new("as")
|
234
|
+
assert do
|
235
|
+
variant_type.array?
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
test "not array" do
|
240
|
+
variant_type = GLib::VariantType.new("s")
|
241
|
+
assert do
|
242
|
+
!variant_type.array?
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
sub_test_case "#tuple?" do
|
248
|
+
test "tuple" do
|
249
|
+
variant_type = GLib::VariantType.new("(s)")
|
250
|
+
assert do
|
251
|
+
variant_type.tuple?
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
test "not tuple" do
|
256
|
+
variant_type = GLib::VariantType.new("s")
|
257
|
+
assert do
|
258
|
+
!variant_type.tuple?
|
259
|
+
end
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
sub_test_case "#dict_entry?" do
|
264
|
+
test "dictionary entry" do
|
265
|
+
variant_type = GLib::VariantType.new("{ss}")
|
266
|
+
assert do
|
267
|
+
variant_type.dict_entry?
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
271
|
+
test "not dictionary entry" do
|
272
|
+
variant_type = GLib::VariantType.new("s")
|
273
|
+
assert do
|
274
|
+
!variant_type.dict_entry?
|
275
|
+
end
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
sub_test_case "#variant?" do
|
280
|
+
test "variant" do
|
281
|
+
variant_type = GLib::VariantType.new("v")
|
282
|
+
assert do
|
283
|
+
variant_type.variant?
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
287
|
+
test "not variant" do
|
288
|
+
variant_type = GLib::VariantType.new("s")
|
289
|
+
assert do
|
290
|
+
!variant_type.variant?
|
291
|
+
end
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
sub_test_case "#==" do
|
296
|
+
test "same" do
|
297
|
+
variant_type = GLib::VariantType.new("s")
|
298
|
+
assert_equal(variant_type,
|
299
|
+
variant_type)
|
300
|
+
end
|
301
|
+
|
302
|
+
test "equivalence" do
|
303
|
+
assert_equal(GLib::VariantType.new("s"),
|
304
|
+
GLib::VariantType.new("s"))
|
305
|
+
end
|
306
|
+
|
307
|
+
test "not VariantType" do
|
308
|
+
assert_not_equal(GLib::VariantType.new("s"),
|
309
|
+
"s")
|
310
|
+
end
|
311
|
+
end
|
312
|
+
|
313
|
+
sub_test_case "#hash and #eql?" do
|
314
|
+
test "Hash key" do
|
315
|
+
hash = {
|
316
|
+
GLib::VariantType.new("s") => :s,
|
317
|
+
}
|
318
|
+
assert_equal(:s, hash[GLib::VariantType.new("s")])
|
319
|
+
end
|
320
|
+
end
|
321
|
+
|
322
|
+
sub_test_case "#is_subtype_of?" do
|
323
|
+
test "subtype" do
|
324
|
+
string = GLib::VariantType.new("s")
|
325
|
+
basic = GLib::VariantType.new("?")
|
326
|
+
assert do
|
327
|
+
string.is_subtype_of?(basic)
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
331
|
+
test "not subtype" do
|
332
|
+
string = GLib::VariantType.new("s")
|
333
|
+
int32 = GLib::VariantType.new("i")
|
334
|
+
assert do
|
335
|
+
!string.is_subtype_of?(int32)
|
336
|
+
end
|
337
|
+
end
|
338
|
+
end
|
339
|
+
|
340
|
+
sub_test_case "#element" do
|
341
|
+
test "array" do
|
342
|
+
assert_equal(GLib::VariantType.new("s"),
|
343
|
+
GLib::VariantType.new("as").element)
|
344
|
+
end
|
345
|
+
|
346
|
+
test "maybe" do
|
347
|
+
assert_equal(GLib::VariantType.new("s"),
|
348
|
+
GLib::VariantType.new("ms").element)
|
349
|
+
end
|
350
|
+
|
351
|
+
test "unexpected" do
|
352
|
+
assert_raise(ArgumentError.new("must be array or maybe type: <s>")) do
|
353
|
+
GLib::VariantType.new("s").element
|
354
|
+
end
|
355
|
+
end
|
356
|
+
end
|
357
|
+
end
|