libsl 0.0.2

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.
data/test/tc_types.rb ADDED
@@ -0,0 +1,342 @@
1
+ require 'test/unit'
2
+ require File.join File.dirname(__FILE__), '..', 'lib', 'types.rb'
3
+
4
+ module LibSL
5
+ class TestTypesBase < Test::Unit::TestCase
6
+ def decode(klass, data)
7
+ klass.decode(data)
8
+ end
9
+
10
+ def encode(obj)
11
+ obj.encode
12
+ end
13
+
14
+ def default_test()
15
+ super.default_test unless self.class.name == "LibSL::TestTypesBase"
16
+ end
17
+ end
18
+
19
+ class TestLLFixed < TestTypesBase
20
+ def test_decode()
21
+ obj, data = LLFixed.decode("abcdefgh", 4)
22
+ assert_equal(LLFixed, obj.class)
23
+ assert_equal("abcd", obj.data)
24
+ assert_equal("efgh", data)
25
+ end
26
+
27
+ def test_encode()
28
+ obj = LLFixed.new("abcd")
29
+ assert_equal("abcd", obj.encode)
30
+ end
31
+ end
32
+
33
+ class TestLLVariable1 < TestTypesBase
34
+ def test_decode()
35
+ obj, data = LLVariable1.decode("\x04abcdefgh")
36
+ assert_equal(LLVariable1, obj.class)
37
+ assert_equal("abcd", obj.data)
38
+ assert_equal("efgh", data)
39
+ end
40
+
41
+ def test_encode()
42
+ obj = LLVariable1.new("abcd")
43
+ assert_equal("\x04abcd", obj.encode)
44
+ end
45
+ end
46
+
47
+ class TestLLVariable2 < TestTypesBase
48
+ def test_decode()
49
+ obj, data = LLVariable2.decode("\x00\x04abcdefgh")
50
+ assert_equal(LLVariable2, obj.class)
51
+ assert_equal("abcd", obj.data)
52
+ assert_equal("efgh", data)
53
+ end
54
+
55
+ def test_encode()
56
+ obj = LLVariable2.new("abcd")
57
+ assert_equal("\x00\x04abcd", obj.encode)
58
+ end
59
+ end
60
+
61
+ class TestLLU8 < TestTypesBase
62
+ def test_decode()
63
+ obj, data = LLU8.decode("\xffabcd")
64
+ assert_equal(LLU8, obj.class)
65
+ assert_equal(0xff, obj.value)
66
+ assert_equal("abcd", data)
67
+ end
68
+
69
+ def test_encode()
70
+ obj = LLU8.new(0xff)
71
+ assert_equal("\xff", obj.encode)
72
+ end
73
+ end
74
+
75
+ class TestLLU16 < TestTypesBase
76
+ def test_decode()
77
+ obj, data = LLU16.decode("\x34\x12abcd")
78
+ assert_equal(LLU16, obj.class)
79
+ assert_equal(0x1234, obj.value)
80
+ assert_equal("abcd", data)
81
+ end
82
+
83
+ def test_encode()
84
+ obj = LLU16.new(0x1234)
85
+ assert_equal("\x34\x12", obj.encode)
86
+ end
87
+ end
88
+
89
+ class TestLLU32 < TestTypesBase
90
+ def test_decode()
91
+ obj, data = LLU32.decode("\x78\x56\x34\x12abcd")
92
+ assert_equal(LLU32, obj.class)
93
+ assert_equal(0x12345678, obj.value)
94
+ assert_equal("abcd", data)
95
+ end
96
+
97
+ def test_encode()
98
+ obj = LLU32.new(0x12345678)
99
+ assert_equal("\x78\x56\x34\x12", obj.encode)
100
+ end
101
+ end
102
+
103
+ class TestLLU64 < TestTypesBase
104
+ def test_decode()
105
+ obj, data = LLU64.decode("\xef\xcd\xab\x90\x78\x56\x34\x12abcd")
106
+ assert_equal(LLU64, obj.class)
107
+ assert_equal(0x1234567890abcdef, obj.value)
108
+ assert_equal("abcd", data)
109
+ end
110
+
111
+ def test_encode()
112
+ obj = LLU64.new(0x1234567890abcdef)
113
+ assert_equal("\xef\xcd\xab\x90\x78\x56\x34\x12", obj.encode)
114
+ end
115
+ end
116
+
117
+ class TestLLS8 < TestTypesBase
118
+ def test_decode()
119
+ obj, data = LLS8.decode("\x80abcd")
120
+ assert_equal(LLS8, obj.class)
121
+ assert_equal(-128, obj.value)
122
+ assert_equal("abcd", data)
123
+ end
124
+
125
+ def test_encode()
126
+ obj = LLS8.new(-128)
127
+ assert_equal("\x80", obj.encode)
128
+ end
129
+ end
130
+
131
+ class TestLLS16 < TestTypesBase
132
+ def test_decode()
133
+ obj, data = LLS16.decode("\x00\x80abcd")
134
+ assert_equal(LLS16, obj.class)
135
+ assert_equal(-0x8000, obj.value)
136
+ assert_equal("abcd", data)
137
+ end
138
+
139
+ def test_encode()
140
+ obj = LLS16.new(-0x8000)
141
+ assert_equal("\x00\x80", obj.encode)
142
+ end
143
+ end
144
+
145
+ class TestLLS32 < TestTypesBase
146
+ def test_decode()
147
+ obj, data = LLS32.decode("\x00\x00\x00\x80abcd")
148
+ assert_equal(LLS32, obj.class)
149
+ assert_equal(-0x80000000, obj.value)
150
+ assert_equal("abcd", data)
151
+ end
152
+
153
+ def test_encode()
154
+ obj = LLS32.new(-0x80000000)
155
+ assert_equal("\x00\x00\x00\x80", obj.encode)
156
+ end
157
+ end
158
+
159
+ class TestLLS64 < TestTypesBase
160
+ def test_decode()
161
+ obj, data = LLS64.decode("\x00\x00\x00\x00\x00\x00\x00\x80abcd")
162
+ assert_equal(LLS64, obj.class)
163
+ assert_equal(-0x8000000000000000, obj.value)
164
+ assert_equal("abcd", data)
165
+ end
166
+
167
+ def test_encode()
168
+ obj = LLS64.new(-0x8000000000000000)
169
+ assert_equal("\x00\x00\x00\x00\x00\x00\x00\x80", obj.encode)
170
+ end
171
+ end
172
+
173
+ class TestLLVector3 < TestTypesBase
174
+ def test_decode()
175
+ obj, data = LLVector3.decode("\x00\x00\x80\x3F\x00\x00\x00\x40\x00\x00\x40\x40abcd")
176
+ assert_equal(LLVector3, obj.class)
177
+ assert_equal(1.0, obj.x)
178
+ assert_equal(2.0, obj.y)
179
+ assert_equal(3.0, obj.z)
180
+ assert_equal("abcd", data)
181
+ end
182
+
183
+ def test_encode()
184
+ obj = LLVector3.new(1, 2, 3)
185
+ assert_equal("\x00\x00\x80\x3F\x00\x00\x00\x40\x00\x00\x40\x40", obj.encode)
186
+ end
187
+ end
188
+
189
+ class TestLLVector3d < TestTypesBase
190
+ def test_decode()
191
+ obj, data = LLVector3d.decode(
192
+ "\x00\x00\x00\x00\x00\x00\xf0\x3f" +
193
+ "\x00\x00\x00\x00\x00\x00\x00\x40" +
194
+ "\x00\x00\x00\x00\x00\x00\x08\x40abcd")
195
+ assert_equal(LLVector3d, obj.class)
196
+ assert_equal(1.0, obj.x)
197
+ assert_equal(2.0, obj.y)
198
+ assert_equal(3.0, obj.z)
199
+ assert_equal("abcd", data)
200
+ end
201
+
202
+ def test_encode()
203
+ obj = LLVector3d.new(1, 2, 3)
204
+ assert_equal(
205
+ "\x00\x00\x00\x00\x00\x00\xf0\x3f" +
206
+ "\x00\x00\x00\x00\x00\x00\x00\x40" +
207
+ "\x00\x00\x00\x00\x00\x00\x08\x40", obj.encode)
208
+ end
209
+ end
210
+
211
+ class TestLLVector4 < TestTypesBase
212
+ def test_decode()
213
+ obj, data = LLVector4.decode("\x00\x00\x80\x3F\x00\x00\x00\x40\x00\x00\x40\x40\x00\x00\x80\x40abcd")
214
+ assert_equal(LLVector4, obj.class)
215
+ assert_equal(1.0, obj.a)
216
+ assert_equal(2.0, obj.b)
217
+ assert_equal(3.0, obj.c)
218
+ assert_equal(4.0, obj.d)
219
+ assert_equal("abcd", data)
220
+ end
221
+
222
+ def test_encode()
223
+ obj = LLVector4.new(1, 2, 3, 4)
224
+ assert_equal("\x00\x00\x80\x3F\x00\x00\x00\x40\x00\x00\x40\x40\x00\x00\x80\x40", obj.encode)
225
+ end
226
+ end
227
+
228
+ class TestLLQuaternion < TestTypesBase
229
+ def test_decode()
230
+ obj, data = LLQuaternion.decode("\x00\x00\x80\x3F\x00\x00\x00\x40\x00\x00\x40\x40abcd")
231
+ assert_equal(LLQuaternion, obj.class)
232
+ assert_equal(1, obj.x)
233
+ assert_equal(2, obj.y)
234
+ assert_equal(3, obj.z)
235
+ assert_equal(0, obj.w)
236
+ assert_equal("abcd", data)
237
+ end
238
+
239
+ def test_encode()
240
+ obj = LLQuaternion.new(1, 2, 3)
241
+ assert_equal("\x00\x00\x80\x3F\x00\x00\x00\x40\x00\x00\x40\x40", obj.encode)
242
+ end
243
+ end
244
+
245
+ class TestLLUUID < TestTypesBase
246
+ def test_decode()
247
+ obj, data = LLUUID.decode(
248
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xffabcd")
249
+ assert_equal(LLUUID, obj.class)
250
+ assert_equal("00112233-4455-6677-8899-AABBCCDDEEFF", obj.to_s)
251
+ assert_equal("abcd", data)
252
+ end
253
+
254
+ def test_encode()
255
+ obj = LLUUID.new("00112233-4455-6677-8899-AABBCCDDEEFF")
256
+ assert_equal("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff", obj.encode)
257
+ end
258
+
259
+ def test_random()
260
+ uuid = LLUUID.new
261
+ assert_equal(36, uuid.to_s.length)
262
+ end
263
+ end
264
+
265
+ class TestLLBool < TestTypesBase
266
+ def test_decode()
267
+ obj, data = LLBool.decode(
268
+ "\x00abcd")
269
+ assert_equal(LLBool, obj.class)
270
+ assert_equal(false, obj.value)
271
+ assert_equal("abcd", data)
272
+ end
273
+
274
+ def test_encode()
275
+ obj = LLBool.new(true)
276
+ assert_equal("\x01", obj.encode)
277
+ end
278
+ end
279
+
280
+ class TestLLIPAddress < TestTypesBase
281
+ def test_decode()
282
+ obj, data = LLIPAddress.decode(
283
+ "\x01\x02\x03\x04abcd")
284
+ assert_equal(LLIPAddress, obj.class)
285
+ assert_equal("1.2.3.4", obj.ip)
286
+ assert_equal("abcd", data)
287
+ end
288
+
289
+ def test_encode()
290
+ obj = LLIPAddress.new("1.2.3.4")
291
+ assert_equal("\x01\x02\x03\x04", obj.encode)
292
+ end
293
+ end
294
+
295
+ class TestLLIPPort < TestTypesBase
296
+ def test_decode()
297
+ obj, data = LLIPPort.decode(
298
+ "\x04\xd2abcd")
299
+ assert_equal(LLIPPort, obj.class)
300
+ assert_equal(1234, obj.port)
301
+ assert_equal("abcd", data)
302
+ end
303
+
304
+ def test_encode()
305
+ obj = LLIPPort.new(1234)
306
+ assert_equal("\x04\xd2", obj.encode)
307
+ end
308
+ end
309
+
310
+ class TestLLPacketNumber < TestTypesBase
311
+ def test_decode()
312
+ obj, data = LLPacketNumber.decode(
313
+ "\xff\xff\x11\x11abcd")
314
+ assert_equal(LLPacketNumber, obj.class)
315
+ assert_equal(0xffff1111, obj.number)
316
+ assert_equal(:low, obj.frequency)
317
+ assert_equal("abcd", data)
318
+ end
319
+
320
+ def test_encode()
321
+ obj = LLPacketNumber.new(0x01)
322
+ assert_equal(:high, obj.frequency)
323
+ assert_equal("\x01", obj.encode)
324
+ end
325
+ end
326
+
327
+ class TestLLSequenceNumber < TestTypesBase
328
+ def test_decode()
329
+ obj, data = LLSequenceNumber.decode(
330
+ "\x11\x22\x33\x44abcd")
331
+ assert_equal(LLSequenceNumber, obj.class)
332
+ assert_equal(0x11223344, obj.number)
333
+ assert_equal(0x11223345, obj.inc)
334
+ assert_equal("abcd", data)
335
+ end
336
+
337
+ def test_encode()
338
+ obj = LLSequenceNumber.new(0x01)
339
+ assert_equal("\x00\x00\x00\x01", obj.encode)
340
+ end
341
+ end
342
+ end
data/test/ts_all.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'test/unit'
2
+ Dir[File.join File.dirname(__FILE__), "**", "*.rb"].each{ |f| require f }
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: libsl
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
11
+ platform: ruby
12
+ authors:
13
+ - Lukas Botsch
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-04-08 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: eventmachine
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 59
30
+ segments:
31
+ - 0
32
+ - 12
33
+ - 10
34
+ version: 0.12.10
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ description: Build SecondLife clients using a simple DSL
38
+ email:
39
+ - lukas.botsch@gmail.com
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ extra_rdoc_files: []
45
+
46
+ files:
47
+ - .gitignore
48
+ - README.md
49
+ - Rakefile
50
+ - VERSION
51
+ - lib/_packets.rb
52
+ - lib/agent.rb
53
+ - lib/client.rb
54
+ - lib/dsl.rb
55
+ - lib/events.rb
56
+ - lib/libsl.rb
57
+ - lib/network.rb
58
+ - lib/packet.rb
59
+ - lib/types.rb
60
+ - libsl.gemspec
61
+ - test/tc_packet.rb
62
+ - test/tc_types.rb
63
+ - test/ts_all.rb
64
+ has_rdoc: true
65
+ homepage: http://github.com/lbotsch/libsl-ruby
66
+ licenses: []
67
+
68
+ post_install_message:
69
+ rdoc_options: []
70
+
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ hash: 3
79
+ segments:
80
+ - 0
81
+ version: "0"
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 23
88
+ segments:
89
+ - 1
90
+ - 3
91
+ - 6
92
+ version: 1.3.6
93
+ requirements: []
94
+
95
+ rubyforge_project: libsl
96
+ rubygems_version: 1.3.7
97
+ signing_key:
98
+ specification_version: 3
99
+ summary: Library for building SecondLife client applications
100
+ test_files: []
101
+