You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ha...@apache.org on 2016/08/04 05:29:31 UTC
[02/15] git commit: [flex-asjs] [refs/heads/refactor-sprite] - [Test]
Added swf-side unit tests for BinaryData changes (these also currently pass
when mocked in the browser for the js version)
[Test] Added swf-side unit tests for BinaryData changes (these also currently pass when mocked in the browser for the js version)
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/8a9b91b4
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/8a9b91b4
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/8a9b91b4
Branch: refs/heads/refactor-sprite
Commit: 8a9b91b4bb3e8d56590546455704631de16bcdac
Parents: 641301b
Author: greg-dove <gr...@gmail.com>
Authored: Fri Jul 22 20:03:03 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Fri Jul 22 20:03:03 2016 +1200
----------------------------------------------------------------------
.../test/flex/FlexUnitFlexJSApplication.mxml | 7 +-
.../flex/flexUnitTests/BinaryDataTesterTest.as | 308 +++++++++++++++++++
.../src/test/flex/flexUnitTests/CoreTester.as | 28 ++
.../src/test/flex/flexUnitTests/StrandTester.as | 27 --
4 files changed, 340 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a9b91b4/frameworks/projects/Core/src/test/flex/FlexUnitFlexJSApplication.mxml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/test/flex/FlexUnitFlexJSApplication.mxml b/frameworks/projects/Core/src/test/flex/FlexUnitFlexJSApplication.mxml
index a97b086..db99af7 100644
--- a/frameworks/projects/Core/src/test/flex/FlexUnitFlexJSApplication.mxml
+++ b/frameworks/projects/Core/src/test/flex/FlexUnitFlexJSApplication.mxml
@@ -24,8 +24,8 @@ limitations under the License.
>
<fx:Script>
<![CDATA[
- import flexUnitTests.StrandTesterTest;
- import flexUnitTests.StrandTester;
+
+ import flexUnitTests.CoreTester;
import org.flexunit.listeners.CIListener;
import org.flexunit.runner.FlexUnitCore;
@@ -34,7 +34,8 @@ limitations under the License.
{
var core : FlexUnitCore = new FlexUnitCore();
core.addListener(new CIListener());
- core.run(StrandTester);
+ core.run(CoreTester);
+
}
]]>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a9b91b4/frameworks/projects/Core/src/test/flex/flexUnitTests/BinaryDataTesterTest.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/test/flex/flexUnitTests/BinaryDataTesterTest.as b/frameworks/projects/Core/src/test/flex/flexUnitTests/BinaryDataTesterTest.as
new file mode 100644
index 0000000..0fe68ce
--- /dev/null
+++ b/frameworks/projects/Core/src/test/flex/flexUnitTests/BinaryDataTesterTest.as
@@ -0,0 +1,308 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package flexUnitTests {
+
+
+ import org.apache.flex.utils.Endian;
+ import flexunit.framework.Assert;
+ import org.apache.flex.utils.BinaryData
+
+
+ public class BinaryDataTesterTest {
+
+ [Before]
+ public function setUp():void {
+ }
+
+ [After]
+ public function tearDown():void {
+ }
+
+ [BeforeClass]
+ public static function setUpBeforeClass():void {
+ }
+
+ [AfterClass]
+ public static function tearDownAfterClass():void {
+ }
+
+
+ [Test]
+ public function testBasicPositionAndLength():void {
+ var ba:BinaryData = new BinaryData();
+
+ Assert.assertEquals("new Instance, position", ba.position, 0);
+ Assert.assertEquals("new Instance, length", ba.length, 0);
+
+ ba.position = 100;
+ Assert.assertEquals("position change, position", ba.position, 100);
+ Assert.assertEquals("position change, length", ba.length, 0);
+
+ ba.length = 100;
+ Assert.assertEquals("length change, position", ba.position, 100);
+ Assert.assertEquals("length change, length", ba.length, 100);
+
+ ba.length = 50;
+ Assert.assertEquals("length change, position", ba.position, 50);
+ Assert.assertEquals("length change, length", ba.length, 50);
+ }
+
+ [Test]
+ public function testAdvancedPositionAndLength():void {
+ var ba:BinaryData = new BinaryData();
+
+ ba.position = 100;
+ ba.length = 100;
+
+ ba.writeByteAt(49, 255);
+ Assert.assertEquals("writeByteAt does not affect position", ba.position, 100);
+ Assert.assertEquals("writeByteAt (internal) does not affect length", ba.length, 100);
+
+ ba.readByteAt(48);
+ Assert.assertEquals("readByteAt does not affect position", ba.position, 100);
+ Assert.assertEquals("readByteAt does not affect length", ba.length, 100);
+
+ ba.writeByteAt(199, 255);
+ Assert.assertEquals("writeByteAt (beyond length) does affect length", ba.length, 200);
+ Assert.assertEquals("writeByteAt (beyond length) does not affect position", ba.position, 100);
+
+ }
+
+
+ [Test]
+ public function testUTFWritePosition():void {
+ var ba:BinaryData = new BinaryData();
+ ba.writeUTF('This is a test');
+ //writeUTF
+ Assert.assertEquals("basic post-writeUTF position", ba.position, 16);
+ ba = new BinaryData();
+ ba.writeUTFBytes('This is a test');
+ //writeUTFBytes
+ Assert.assertEquals("basic post-writeUTFBytes position", ba.position, 14);
+
+ //overlapping
+ ba.position = 5;
+ ba.writeUTFBytes('This is a test');
+ Assert.assertEquals("Advanced post-writeUTFBytes position (overlap)", ba.position, 19);
+
+ }
+
+ [Test]
+ public function testBooleanRoundTripping():void {
+ var ba:BinaryData = new BinaryData();
+ ba.writeBoolean(true);
+ ba.writeBoolean(false);
+ ba.position = 0;
+ Assert.assertTrue(ba.readBoolean());
+ Assert.assertFalse(ba.readBoolean());
+ }
+
+ [Test]
+ public function testByteRoundTripping():void {
+ var ba:BinaryData = new BinaryData();
+ ba.writeByte(255);
+ ba.writeByte(-257);
+ ba.writeByte(-50);
+ ba.writeByte(50);
+ ba.position = 0;
+
+
+ Assert.assertEquals("Error testing post writeByte/readByte roundtripping", ba.readByte(), -1);
+ Assert.assertEquals("Error testing post writeByte/readByte roundtripping", ba.readByte(), -1);
+ Assert.assertEquals("Error testing post writeByte/readByte roundtripping", ba.readByte(), -50);
+ Assert.assertEquals("Error testing post writeByte/readByte roundtripping", ba.readByte(), 50);
+ }
+
+
+ [Test]
+ public function testUnsignedByteRoundTripping():void {
+ var ba:BinaryData = new BinaryData();
+ ba.writeByte(255);
+ ba.writeByte(-257);
+ ba.writeByte(-50);
+ ba.writeByte(50);
+ ba.position = 0;
+ //check read values
+ Assert.assertEquals("Error testing post writeByte/readByte roundtripping", ba.readUnsignedByte(), 255);
+ Assert.assertEquals("Error testing post writeByte/readByte roundtripping", ba.readUnsignedByte(), 255);
+ Assert.assertEquals("Error testing post writeByte/readByte roundtripping", ba.readUnsignedByte(), 206);
+ Assert.assertEquals("Error testing post writeByte/readByte roundtripping", ba.readUnsignedByte(), 50);
+ }
+
+
+ [Test]
+ public function testBasicEndian():void {
+ var defaultEndian:String = Endian.defaultEndian;
+ //check we have a decisive default
+ Assert.assertTrue(defaultEndian != null && defaultEndian != Endian.UNKNOWN_ENDIAN);
+ var alternateEndian:String = (defaultEndian == Endian.BIG_ENDIAN) ? Endian.LITTLE_ENDIAN : Endian.BIG_ENDIAN;
+
+ var ba:BinaryData = new BinaryData();
+ var expected:Object = {};
+ expected[Endian.BIG_ENDIAN] = 1718379896;
+ expected[Endian.LITTLE_ENDIAN] = 2019912806;
+ var bytes:Array = [102, 108, 101, 120];
+ for each(var byte:uint in bytes) ba.writeByte(byte);
+ ba.position = 0;
+
+ Assert.assertEquals("testing endian:" + defaultEndian, ba.readUnsignedInt(), expected[defaultEndian]);
+
+ ba.position = 0;
+ ba.endian = alternateEndian;
+ Assert.assertEquals("testing endian:" + alternateEndian, ba.readUnsignedInt(), expected[alternateEndian]);
+ }
+
+ [Test]
+ public function testShortRoundTripping():void {
+ var ba:BinaryData = new BinaryData();
+ ba.writeShort(255);
+ ba.writeShort(-50);
+ ba.writeShort(50);
+ ba.position = 0;
+
+ Assert.assertEquals("Error testing post writeShort/readShort roundtripping", ba.length, 6);
+ Assert.assertEquals("Error testing post writeShort/readShort roundtripping", ba.readShort(), 255);
+ Assert.assertEquals("Error testing post writeShort/readShort roundtripping", ba.readShort(), -50);
+ Assert.assertEquals("Error testing post writeShort/readShort roundtripping", ba.readShort(), 50);
+ }
+
+
+ [Test]
+ public function testcShortRoundTripping():void {
+ var ba:BinaryData = new BinaryData();
+ ba.writeShort(255);
+ ba.writeShort(-50);
+ ba.writeShort(50);
+ ba.position = 0;
+
+ Assert.assertEquals("Error testing post unsigned writeShort/readShort roundtripping", ba.length, 6);
+ Assert.assertEquals("Error testing post unsigned writeShort/readShort roundtripping", ba.readUnsignedShort(), 255);
+ Assert.assertEquals("Error testing post unsigned writeShort/readShort roundtripping", ba.readUnsignedShort(), 65486);
+ Assert.assertEquals("Error testing post unsigned writeShort/readShort roundtripping", ba.readUnsignedShort(), 50);
+ }
+
+ [Test]
+ public function testIntRoundTripping():void {
+ var ba:BinaryData = new BinaryData();
+ ba.writeInt(65536);
+ ba.writeInt(-50);
+ ba.writeInt(50);
+ ba.position = 0;
+
+ Assert.assertEquals("Error testing post writeInt/readInt roundtripping", ba.length, 12);
+ Assert.assertEquals("Error testing post writeInt/readInt roundtripping", ba.readInt(), 65536);
+ Assert.assertEquals("Error testing post writeInt/readInt roundtripping", ba.readInt(), -50);
+ Assert.assertEquals("Error testing post writeInt/readInt roundtripping", ba.readInt(), 50);
+ }
+
+
+ [Test]
+ public function testUnsignedIntRoundTripping():void {
+ var ba:BinaryData = new BinaryData();
+ ba.writeUnsignedInt(65536);
+ ba.writeUnsignedInt(-50);
+ ba.writeUnsignedInt(50);
+ ba.position = 0;
+
+ Assert.assertEquals("Error testing post writeInt/readInt roundtripping", ba.length, 12);
+ Assert.assertEquals("Error testing post writeInt/readInt roundtripping", ba.readUnsignedInt(), 65536);
+ Assert.assertEquals("Error testing post writeInt/readInt roundtripping", ba.readUnsignedInt(), 4294967246);
+ Assert.assertEquals("Error testing post writeInt/readInt roundtripping", ba.readUnsignedInt(), 50);
+ }
+
+ [Test]
+ public function testFloatRoundTripping():void {
+ var ba:BinaryData = new BinaryData();
+
+ ba.writeFloat(86.54);
+ ba.writeFloat(-50.5);
+ ba.writeFloat(0);
+ ba.position = 0;
+
+ Assert.assertEquals("Error testing post writeFloat/readFloat roundtripping", ba.length, 12);
+
+ //check bytes to account for precision loss between double and float comparisons
+ var expected:Array = [66, 173, 20, 123];
+ if (ba.endian == Endian.LITTLE_ENDIAN) expected = expected.reverse();
+
+ for (var i:int = 0; i < 4; i++) {
+ Assert.assertEquals("Error testing post writeFloat/readFloat roundtripping", ba.readUnsignedByte(), expected[i]);
+ }
+
+
+ Assert.assertEquals("Error testing post writeFloat/readFloat roundtripping", ba.readFloat(), -50.5);
+ Assert.assertEquals("Error testing post writeFloat/readFloat roundtripping", ba.readFloat(), 0);
+ }
+
+
+ [Test]
+ public function testDoubleRoundTripping():void {
+ var ba:BinaryData = new BinaryData();
+ ba.writeDouble(86.54);
+ ba.writeDouble(-50.5);
+ ba.writeDouble(0);
+ ba.position = 0;
+
+ Assert.assertEquals("Error testing post writeDouble/readDouble roundtripping", ba.length, 24);
+ Assert.assertEquals("Error testing post writeDouble/readDouble roundtripping", ba.readDouble(), 86.54);
+ Assert.assertEquals("Error testing post writeDouble/readDouble roundtripping", ba.readDouble(), -50.5);
+ Assert.assertEquals("Error testing post writeDouble/readDouble roundtripping", ba.readDouble(), 0);
+ }
+
+
+ [Test]
+ public function testWriteBytes():void {
+ var ba:BinaryData = new BinaryData();
+ for (var i:int = 0; i < 50; i++) ba.writeByte(i);
+
+
+ var newBa:BinaryData = new BinaryData();
+ newBa.writeBytes(ba);
+
+ Assert.assertEquals("BinaryData writeBytes: length", 50, newBa.length);
+ Assert.assertEquals("BinaryData writeBytes: position", 50, newBa.position);
+
+ for (i = 0; i < 50; i++) {
+ Assert.assertEquals("BinaryData writeBytes: content check", i, newBa.array[i]);
+ }
+
+ newBa = new BinaryData();
+
+ }
+
+ [Test]
+ public function testReadBytes():void {
+ var ba:BinaryData = new BinaryData();
+ for (var i:int = 0; i < 50; i++) ba.writeByte(i);
+ ba.position = 0;
+ var newBa:BinaryData = new BinaryData();
+
+ ba.readBytes(newBa, 5, 10);
+ Assert.assertEquals("BinaryData readBytes: position", 10, ba.position);
+ Assert.assertEquals("BinaryData readBytes: length", 15, newBa.length);
+ Assert.assertEquals("BinaryData readBytes: position", 0, newBa.position);
+ var expected:Array = [0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+ for (i = 5; i < 15; i++) {
+ Assert.assertEquals("BinaryData readBytes: content check", expected[i], newBa.array[i]);
+ }
+ }
+
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a9b91b4/frameworks/projects/Core/src/test/flex/flexUnitTests/CoreTester.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/test/flex/flexUnitTests/CoreTester.as b/frameworks/projects/Core/src/test/flex/flexUnitTests/CoreTester.as
new file mode 100644
index 0000000..098a6a9
--- /dev/null
+++ b/frameworks/projects/Core/src/test/flex/flexUnitTests/CoreTester.as
@@ -0,0 +1,28 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package flexUnitTests
+{
+ [Suite]
+ [RunWith("org.flexunit.runners.Suite")]
+ public class CoreTester
+ {
+ public var strandTesterTest:StrandTesterTest;
+ public var binaryDataTesterTest:BinaryDataTesterTest;
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a9b91b4/frameworks/projects/Core/src/test/flex/flexUnitTests/StrandTester.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/test/flex/flexUnitTests/StrandTester.as b/frameworks/projects/Core/src/test/flex/flexUnitTests/StrandTester.as
deleted file mode 100644
index 06d673b..0000000
--- a/frameworks/projects/Core/src/test/flex/flexUnitTests/StrandTester.as
+++ /dev/null
@@ -1,27 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// Licensed to the Apache Software Foundation (ASF) under one or more
-// contributor license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership.
-// The ASF licenses this file to You under the Apache License, Version 2.0
-// (the "License"); you may not use this file except in compliance with
-// the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package flexUnitTests
-{
- [Suite]
- [RunWith("org.flexunit.runners.Suite")]
- public class StrandTester
- {
- public var strandTesterTest:StrandTesterTest;
- }
-}