You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jm...@apache.org on 2017/12/31 00:03:03 UTC
[12/50] git commit: [flex-sdk] [refs/heads/master] - FLEX-35267
Updated unit test - made it easier to read,
and now we're also testing GridColumnHeaderGroup.containsGlobalCoordinates().
For the test to pass I've improved the logic in GridHeaderViewLayout
FLEX-35267 Updated unit test - made it easier to read, and now we're also testing GridColumnHeaderGroup.containsGlobalCoordinates(). For the test to pass I've improved the logic in GridHeaderViewLayout.getHeaderIndexAt() which, in turn, made a few functions redundant in GridColumnHeaderGroup. All tests currently pass.
Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/a1c61c5c
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/a1c61c5c
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/a1c61c5c
Branch: refs/heads/master
Commit: a1c61c5cfd452cb0a150788e498865763890d112
Parents: 56abc7d
Author: Mihai Chira <mi...@apache.org>
Authored: Wed Mar 29 14:26:51 2017 +0200
Committer: Mihai Chira <mi...@apache.org>
Committed: Wed Mar 29 14:26:51 2017 +0200
----------------------------------------------------------------------
.../GridHeaderViewLayout_FLEX_35260_Tests.as | 84 ++++++++++++++------
1 file changed, 61 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/a1c61c5c/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 1ac5a17..5bc24b4 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
@@ -88,6 +88,7 @@ package spark.components.gridClasses {
private static const directions:Array = [ITSELF, N, NE, E, SE, S, SW, W, NW];
private static const COLUMN_HEADER_RECTANGLES:String = "columnHeaderRectangles";
+ private static const COLUMN_RECTANGLES:String = "columnRectangles";
private static const ENTIRE_HEADER_RECTANGLE:String = "headerRectangle"; //includes padding
private static const MAIN_HEADER_VIEW_RECTANGLE:String = "mainHeaderViewRectangle";
private static const FIXED_HEADER_VIEW_RECTANGLE:String = "fixedHeaderViewRectangle";
@@ -98,11 +99,11 @@ package spark.components.gridClasses {
private var _keyPoints:Array;
//@TODO add cases with horizontal scroll, and also with fixed columns
- //@TODO we probably have to account for paddingTop and paddingBottom as well
public static var dimensions:Array = [
/*x, y, width, header padding left, header padding top, header padding bottom, [column widths] */
- [[10, 0, 300, 5, 0, 5, [25, 150]]],
- [[0, 0, 300, 5, 0, 0, [25, 150]]]
+ [[/*x=*/ 0, /*y=*/ 0, /*width=*/ 300, /*paddingLeft=*/ 5, /*paddingTop=*/ 0, /*paddingBottom=*/ 0, /*columnWidths=*/[25, 150]]],
+ [[/*x=*/ 10, /*y=*/ 0, /*width=*/ 300, /*paddingLeft=*/ 5, /*paddingTop=*/ 0, /*paddingBottom=*/ 5, /*columnWidths=*/[25, 150]]],
+ [[/*x=*/ -5, /*y=*/-100, /*width=*/ 200, /*paddingLeft=*/ 25, /*paddingTop=*/ 12, /*paddingBottom=*/ 5, /*columnWidths=*/[100, 150]]] //horizontal scroll
];
@@ -135,22 +136,6 @@ package spark.components.gridClasses {
_keyPoints = null;
}
- /*
- [Ignore]
- [Test]
- public function test_column_index(globalPoint:Array, expectedColumnIndex:int):void
- {
- //given
- var localPoint:Point = _dataGrid.grid.globalToLocal(new Point(globalPoint[0], globalPoint[1]));
-
- //when
- var columnIndex:int = _dataGrid.grid.getColumnIndexAt(localPoint.x, 0);
-
- //then
- assertEquals(expectedColumnIndex, columnIndex);
- }
-*/
-
[Test(dataProvider="dimensions")]
public function test_with_no_scroll(dimensions:Array):void
@@ -189,6 +174,7 @@ package spark.components.gridClasses {
{
assertThatHeaderContainsPointOrNot(point, pointName, currentTransformation);
assertThatHeaderIndexIsCorrect(point, pointName, currentTransformation);
+ assertThatColumnIndexIsCorrect(point, pointName, currentTransformation);
assertThatCoordinatesOverHeaderViewOrNot(point, pointName, currentTransformation);
}
@@ -227,6 +213,17 @@ package spark.components.gridClasses {
assertEquals(errorMessageHeaderIndex, expectedHeaderIndex, actualHeaderIndex);
}
+ private function assertThatColumnIndexIsCorrect(point:Point, pointName:String, currentTransformation:Matrix):void
+ {
+ //when
+ var expectedColumnIndex:int = getColumnIndexAssumption(point);
+ var actualColumnIndex:int = getColumnIndexAtGlobalPoint(point);
+ const errorMessageColumnIndex:String = getColumnIndexErrorMessage(pointName, currentTransformation, point, expectedColumnIndex, actualColumnIndex);
+
+ //then
+ assertEquals(errorMessageColumnIndex, expectedColumnIndex, actualColumnIndex);
+ }
+
private function getHeaderIndexErrorMessage(pointName:String, direction:Matrix, transformedPoint:Point, expectedColumnHeaderIndex:int, actualColumnHeaderIndex:int):String
{
return "The point " + pointName + " transformed with Matrix " + direction + " (resulting in " + transformedPoint + ") should be "
@@ -236,6 +233,15 @@ package spark.components.gridClasses {
+ "\n DEBUG INFO: headerRectangles=" + columnHeaderRectangles);
}
+ private function getColumnIndexErrorMessage(pointName:String, direction:Matrix, transformedPoint:Point, expectedColumnHeaderIndex:int, actualColumnHeaderIndex:int):String
+ {
+ return "The point " + pointName + " transformed with Matrix " + direction + " (resulting in " + transformedPoint + ") should have its x value "
+ + (expectedColumnHeaderIndex == -1 ? "outside any column bounds" : "within the column with index " + expectedColumnHeaderIndex)
+ + " but was mistakenly found to be "
+ + (actualColumnHeaderIndex == -1 ? "outside any column bounds" : "inside the column with index " + actualColumnHeaderIndex
+ + "\n DEBUG INFO: columnRectangles=" + columnRectangles);
+ }
+
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 "
@@ -260,6 +266,12 @@ package spark.components.gridClasses {
return _sut.getHeaderIndexAt(localPoint.x, localPoint.y);
}
+ private function getColumnIndexAtGlobalPoint(globalPoint:Point):int
+ {
+ var localPoint:Point = _dataGrid.grid.globalToLocal(globalPoint);
+ return _dataGrid.grid.getColumnIndexAt(localPoint.x, localPoint.y);
+ }
+
private function getHeaderShouldContainPointAssumption(point:Point):Boolean
{
return rectangleContainsPoint(entireHeaderRectangle, point);
@@ -277,15 +289,15 @@ package spark.components.gridClasses {
private function getHeaderIndexAssumption(point:Point):int
{
- return getIndexOfHeaderRectangleWhichContainsPoint(point, columnHeaderRectangles);
+ return getIndexOfRectangleWhichContainsPoint(point, columnHeaderRectangles);
}
- private function getAdjacentPoint(point:Point, direction:Matrix):Point
+ private function getColumnIndexAssumption(point:Point):int
{
- return direction.transformPoint(point);
+ return getIndexOfRectangleWhichContainsPoint(point, columnRectangles);
}
- private function getIndexOfHeaderRectangleWhichContainsPoint(point:Point, rectangles:Array):int
+ private function getIndexOfRectangleWhichContainsPoint(point:Point, rectangles:Array):int
{
for (var i:int = 0; i < rectangles.length; i++)
{
@@ -301,6 +313,11 @@ package spark.components.gridClasses {
return rectangle.containsPoint(point);
}
+ private function getAdjacentPoint(point:Point, direction:Matrix):Point
+ {
+ return direction.transformPoint(point);
+ }
+
private function generateKeyPoints(dimensions:Array, grid:DataGrid):Array
{
var keyPoints:Array = [];
@@ -338,6 +355,7 @@ package spark.components.gridClasses {
var keyRectangles:Array = [];
keyRectangles[COLUMN_HEADER_RECTANGLES] = generateHeaderColumnRectangles(keyPoints, dimensions);
+ keyRectangles[COLUMN_RECTANGLES] = generateColumnRectangles(keyPoints, dimensions);
keyRectangles[ENTIRE_HEADER_RECTANGLE] = generateVisibleHeaderRectangle(keyPoints, dimensions);
keyRectangles[MAIN_HEADER_VIEW_RECTANGLE] = generateMainHeaderViewRectangle(keyPoints, dimensions);
keyRectangles[FIXED_HEADER_VIEW_RECTANGLE] = generateFixedHeaderViewRectangle(keyPoints, dimensions);
@@ -390,6 +408,21 @@ package spark.components.gridClasses {
return headerRectangles;
}
+ //Note that the height and y of the rectangles doesn't matter until FLEX-35280 is fixed
+ private function generateColumnRectangles(keyPoints:Array, dimensions:Array):Array
+ {
+ var columnRectangles:Array = [];
+
+ for (var i:int = 0; i < getColumnWidths(dimensions).length; i++)
+ {
+ var topLeft:Point = keyPoints["g" + i];
+ var topRight:Point = keyPoints["g" + (i+1)];
+ columnRectangles.push(new Rectangle(topLeft.x, -10000, topRight.x - topLeft.x, Number.MAX_VALUE));
+ }
+
+ return columnRectangles;
+ }
+
private function forEachPoint(assertThat_:Function):void
{
for (var pointName:String in _keyPoints)
@@ -415,6 +448,11 @@ package spark.components.gridClasses {
return _keyRectangles[COLUMN_HEADER_RECTANGLES];
}
+ private function get columnRectangles():Array
+ {
+ return _keyRectangles[COLUMN_RECTANGLES];
+ }
+
private function get entireHeaderRectangle():Rectangle //includes padding
{
return _keyRectangles[ENTIRE_HEADER_RECTANGLE] as Rectangle;