Repository: flex-sdk Updated Branches: refs/heads/develop 1040357f6 -> 56abc7db2
FLEX-35260 Now in the unit test we're also verifying areCoordinatesOverAHeaderView(). Currently fails (for point "b"). Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/9e2620e5 Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/9e2620e5 Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/9e2620e5 Branch: refs/heads/develop Commit: 9e2620e5bc2b08567fc33f16116f30d4b0e054f0 Parents: f985937 Author: Mihai Chira <mih...@apache.org> Authored: Tue Mar 14 13:46:27 2017 +0100 Committer: Mihai Chira <mih...@apache.org> Committed: Tue Mar 14 13:46:27 2017 +0100 ---------------------------------------------------------------------- .../GridHeaderViewLayout_FLEX_35260_Tests.as | 63 ++++++++++++++------ 1 file changed, 44 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/9e2620e5/frameworks/projects/spark/tests/spark/components/gridClasses/GridHeaderViewLayout_FLEX_35260_Tests.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/spark/tests/spark/components/gridClasses/GridHeaderViewLayout_FLEX_35260_Tests.as b/frameworks/projects/spark/tests/spark/components/gridClasses/GridHeaderViewLayout_FLEX_35260_Tests.as index 925ea0c..55421f4 100644 --- a/frameworks/projects/spark/tests/spark/components/gridClasses/GridHeaderViewLayout_FLEX_35260_Tests.as +++ b/frameworks/projects/spark/tests/spark/components/gridClasses/GridHeaderViewLayout_FLEX_35260_Tests.as @@ -89,6 +89,7 @@ package spark.components.gridClasses { private var _keyRectangles:Array; private var _keyPoints:Array; + //@TODO add cases with horizontal scroll, and also with fixed columns public static var dimensions:Array = [/*x, y, width, header padding left, header padding top, [column widths] */ [[10, 0, 300, 5, 0, [25, 150]]], [[0, 0, 300, 5, 0, [25, 150]]] @@ -124,20 +125,7 @@ package spark.components.gridClasses { _keyPoints = null; } - /*[Ignore] - [Test] - public function test_global_coordinates_over_header_view(globalPoint:Array, expectedHeaderIndex:int):void - { - //given - var pointOverAHeaderView:Boolean = expectedHeaderIndex != -1; - - //when - var doesHeaderContainThisPoint:Boolean = _sut.areCoordinatesOverAHeaderView(new Point(globalPoint[0], globalPoint[1])); - - //then - assertEquals(pointOverAHeaderView, doesHeaderContainThisPoint); - } - + /* [Ignore] [Test] public function test_column_index(globalPoint:Array, expectedColumnIndex:int):void @@ -196,14 +184,21 @@ package spark.components.gridClasses { { for (var i:int = 0; i < directions.length; i++) { + //given + var pointToTest:Point = getAdjacentPoint(_keyPoints[pointName], directions[i]); + //when - var adjacentPoint:Point = getAdjacentPoint(_keyPoints[pointName], directions[i]); - var expectedHeaderIndex:int = getHeaderIndexAssumption(adjacentPoint); - var actualHeaderIndex:int = getHeaderIndexAtGlobalPoint(adjacentPoint); + var expectedHeaderIndex:int = getHeaderIndexAssumption(pointToTest); + var actualHeaderIndex:int = getHeaderIndexAtGlobalPoint(pointToTest); + const errorMessageHeaderIndex:String = getHeaderIndexErrorMessage(pointName, directions[i], pointToTest, expectedHeaderIndex, actualHeaderIndex); + + var shouldBeContainedInHeader:Boolean = getHeaderContainsPointAssumption(pointToTest); + var actuallyContainedInHeader:Boolean = _sut.areCoordinatesOverAHeaderView(pointToTest); + const errorMessageHeaderContainsPoint:String = getHeaderContainsPointErrorMessage(pointName, directions[i], pointToTest, shouldBeContainedInHeader, actuallyContainedInHeader); //then - const errorMessage:String = getHeaderIndexErrorMessage(pointName, directions[i], adjacentPoint, expectedHeaderIndex, actualHeaderIndex); - assertEquals(errorMessage, expectedHeaderIndex, actualHeaderIndex); + assertEquals(errorMessageHeaderIndex, expectedHeaderIndex, actualHeaderIndex); + assertEquals(errorMessageHeaderContainsPoint, shouldBeContainedInHeader, actuallyContainedInHeader); } } } @@ -217,12 +212,26 @@ package spark.components.gridClasses { + "\n DEBUG INFO: headerRectangles=" + headerRectangles); } + private function getHeaderContainsPointErrorMessage(pointName:String, direction:Matrix, transformedPoint:Point, shouldBeContainedInHeader:Boolean, isActuallyContainedInHeader:Boolean):String + { + return "The point " + pointName + " transformed with Matrix " + direction + " (resulting in " + transformedPoint + ") should be " + + (shouldBeContainedInHeader ? "within " : "outside ") + "header bounds" + + " but was mistakenly found to be " + + (isActuallyContainedInHeader ? "within" : "outside") + + "\n DEBUG INFO: headerRectangle=" + headerRectangle; + } + private function getHeaderIndexAtGlobalPoint(globalPoint:Point):int { var localPoint:Point = _sut.globalToLocal(globalPoint); return _sut.getHeaderIndexAt(localPoint.x, localPoint.y); } + private function getHeaderContainsPointAssumption(point:Point):Boolean + { + return rectangleContainsPoint(headerRectangle, point); + } + private function getHeaderIndexAssumption(point:Point):int { return getIndexOfHeaderRectangleWhichContainsPoint(point, headerRectangles); @@ -290,10 +299,16 @@ package spark.components.gridClasses { var keyRectangles:Array = []; keyRectangles["headerRectangles"] = generateHeaderRectangles(keyPoints, dimensions); + keyRectangles["headerRectangle"] = generateVisibleHeaderRectangle(keyPoints, dimensions); return keyRectangles; } + private function generateVisibleHeaderRectangle(keyPoints:Array, dimensions:Array):Rectangle + { + const topLeftCorner:Point = keyPoints["b"]; + return new Rectangle(topLeftCorner.x, topLeftCorner.y, getHeaderWidthFromKeyPoints(keyPoints), getHeaderHeightFromKeyPoints(keyPoints)); + } private function generateHeaderRectangles(keyPoints:Array, dimensions:Array):Array { var headerRectangles:Array = []; @@ -319,6 +334,11 @@ package spark.components.gridClasses { return _keyRectangles["headerRectangles"]; } + private function get headerRectangle():Rectangle + { + return _keyRectangles["headerRectangle"] as Rectangle; + } + private function getColumnWidthFromKeyPoints(keyPoints:Array, columnIndex:int):Number { //we're assuming columnIndex has a valid value @@ -361,6 +381,11 @@ package spark.components.gridClasses { return Point(keyPoints["h"]).y - Point(keyPoints["e"]).y; } + private function getHeaderWidthFromKeyPoints(keyPoints:Array):Number + { + return Point(keyPoints["e"]).x - Point(keyPoints["b"]).x; + } + private function getColumnWidths(dimensions:Array):Array { return dimensions[5];