tests: Add test for reading AMF0 objects

This commit is contained in:
EmperorBale 2021-08-28 17:32:06 -07:00 committed by Mike Welsh
parent e7a723f250
commit 84a7b3d148
5 changed files with 108 additions and 0 deletions

View File

@ -479,6 +479,7 @@ swf_tests! {
(as3_get_qualified_class_name, "avm2/get_qualified_class_name", 1), (as3_get_qualified_class_name, "avm2/get_qualified_class_name", 1),
(as3_get_qualified_super_class_name, "avm2/get_qualified_super_class_name", 1), (as3_get_qualified_super_class_name, "avm2/get_qualified_super_class_name", 1),
(as3_bytearray_readobject_amf3, "avm2/bytearray_readobject_amf3", 1), (as3_bytearray_readobject_amf3, "avm2/bytearray_readobject_amf3", 1),
(as3_bytearray_readobject_amf0, "avm2/bytearray_readobject_amf0", 1),
(as3_array_constr, "avm2/array_constr", 1), (as3_array_constr, "avm2/array_constr", 1),
(as3_array_access, "avm2/array_access", 1), (as3_array_access, "avm2/array_access", 1),
(as3_array_storage, "avm2/array_storage", 1), (as3_array_storage, "avm2/array_storage", 1),

View File

@ -0,0 +1,57 @@
package
{
import flash.utils.ByteArray;
public class Test
{
var TESTS = [
[6], // UNDEFINED
[5], // NULL
[1,0], // FALSE
[1,1], // TRUE
[0,63,240,0,0,0,0,0,0], // INTEGER
[0,63,241,153,153,153,153,153,154], // NUMBER
[0,127,240,0,0,0,0,0,0], // INFINITY
[0,255,240,0,0,0,0,0,0], // NEG INFINITY
[0,255,248,0,0,0,0,0,0], // NAN
[2,0,4,116,101,115,116], // STRING
[8,0,0,0,2,0,1,48,0,63,240,0,0,0,0,0,0,0,1,49,0,64,0,0,0,0,0,0,0,0,0,9], // DENSE ARRAY
[8,0,0,0,9,0,1,48,0,63,240,0,0,0,0,0,0,0,1,49,0,64,0,0,0,0,0,0,0,0,1,56,0,64,8,0,0,0,0,0,0,0,0,9], // ARRAY WITH HOLES
[8,0,0,0,2,0,1,48,0,63,240,0,0,0,0,0,0,0,1,49,0,64,0,0,0,0,0,0,0,0,5,104,101,108,108,111,0,64,8,0,0,0,0,0,0,0,0,9], // ARRAY WITH ELEMENTS
[8,0,0,0,9,0,1,48,0,63,240,0,0,0,0,0,0,0,1,49,0,64,0,0,0,0,0,0,0,0,1,56,0,64,16,0,0,0,0,0,0,0,5,104,101,108,108,111,0,64,8,0,0,0,0,0,0,0,0,9], // ARRAY WITH HOLES AND ELEMENTS
[8,0,0,0,3,0,1,48,8,0,0,0,2,0,1,48,0,63,240,0,0,0,0,0,0,0,1,49,0,64,0,0,0,0,0,0,0,0,0,9,0,1,49,8,0,0,0,2,0,1,48,0,64,8,0,0,0,0,0,0,0,1,49,0,64,16,0,0,0,0,0,0,0,0,9,0,1,50,8,0,0,0,2,0,1,48,0,64,20,0,0,0,0,0,0,0,1,49,8,0,0,0,2,0,1,48,0,64,24,0,0,0,0,0,0,0,1,49,0,64,28,0,0,0,0,0,0,0,0,9,0,0,9,0,0,9], // MULTI DIMENSIONAL ARRAY
[3,0,4,116,101,115,116,2,0,5,104,101,108,108,111,0,0,9] // OBJECT
];
public function testToObject(arr)
{
var ba = new ByteArray();
ba.objectEncoding = "AMF0";
for (var i = 0; i < arr.length; i++)
{
ba.writeByte(arr[i]);
}
ba.position = 0;
return ba.readObject();
}
public function Test()
{
for (var i = 0; i < TESTS.length; i++)
{
var obj = testToObject(TESTS[i]);
trace(obj);
if (obj is Object)
{
trace("showing props:");
for (var prop in obj)
{
if (! (prop is int))
{
trace(prop);
trace(obj[prop])
}
}
trace("done showing props");
}
}
}
}
}

View File

@ -0,0 +1,50 @@
undefined
null
false
showing props:
done showing props
true
showing props:
done showing props
1
showing props:
done showing props
1.1
showing props:
done showing props
Infinity
showing props:
done showing props
-Infinity
showing props:
done showing props
NaN
showing props:
done showing props
test
showing props:
done showing props
1,2
showing props:
done showing props
1,2,,,,,,,3
showing props:
done showing props
1,2
showing props:
hello
3
done showing props
1,2,,,,,,,4
showing props:
hello
3
done showing props
1,2,3,4,5,6,7
showing props:
done showing props
[object Object]
showing props:
test
hello
done showing props