|
@@ -20,18 +20,18 @@ public class SetRelativeLayoutTests {
|
|
|
};
|
|
|
|
|
|
// Default layout style is Computed
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.Null (view.X);
|
|
|
Assert.Null (view.Y);
|
|
|
|
|
|
view.BeginInit(); view.EndInit();
|
|
|
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.Null (view.X);
|
|
|
Assert.Null (view.Y);
|
|
|
|
|
|
- view.SetRelativeLayout(new Rect(5, 5, 10, 10));
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ view.SetRelativeLayout (new Rect (5, 5, 10, 10));
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.Null (view.X);
|
|
|
Assert.Null (view.Y);
|
|
|
|
|
@@ -50,18 +50,18 @@ public class SetRelativeLayoutTests {
|
|
|
};
|
|
|
|
|
|
// Default layout style is Computed
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.NotNull (view.X);
|
|
|
Assert.NotNull (view.Y);
|
|
|
|
|
|
view.BeginInit (); view.EndInit ();
|
|
|
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.NotNull (view.X);
|
|
|
Assert.NotNull (view.Y);
|
|
|
|
|
|
view.SetRelativeLayout (new Rect (5, 5, 10, 10));
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.NotNull (view.X);
|
|
|
Assert.NotNull (view.Y);
|
|
|
|
|
@@ -78,17 +78,17 @@ public class SetRelativeLayoutTests {
|
|
|
};
|
|
|
|
|
|
// Default layout style is Computed
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.Null (view.Width);
|
|
|
Assert.Null (view.Height);
|
|
|
view.BeginInit (); view.EndInit ();
|
|
|
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.Null (view.Width);
|
|
|
Assert.Null (view.Height);
|
|
|
|
|
|
view.SetRelativeLayout (new Rect (5, 5, 10, 10));
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.Null (view.Width);
|
|
|
Assert.Null (view.Height);
|
|
|
|
|
@@ -118,17 +118,17 @@ public class SetRelativeLayoutTests {
|
|
|
};
|
|
|
|
|
|
// Default layout style is Computed
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.NotNull (view.Width);
|
|
|
Assert.NotNull (view.Height);
|
|
|
view.BeginInit (); view.EndInit ();
|
|
|
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.NotNull (view.Width);
|
|
|
Assert.NotNull (view.Height);
|
|
|
|
|
|
view.SetRelativeLayout (new Rect (5, 5, 10, 10));
|
|
|
- Assert.Equal (view.LayoutStyle, LayoutStyle.Computed);
|
|
|
+ Assert.Equal (LayoutStyle.Computed, view.LayoutStyle);
|
|
|
Assert.NotNull (view.Width);
|
|
|
Assert.NotNull (view.Height);
|
|
|
|
|
@@ -139,6 +139,93 @@ public class SetRelativeLayoutTests {
|
|
|
Assert.Equal (expectedDim, view.Frame.Height);
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void Fill_Pos_Within_Bounds ()
|
|
|
+ {
|
|
|
+ var screen = new Rect (0, 0, 80, 25);
|
|
|
+ var view = new View () {
|
|
|
+ X = 1,
|
|
|
+ Y = 1,
|
|
|
+ Width = 5,
|
|
|
+ Height = 4
|
|
|
+ };
|
|
|
+
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (1, view.Frame.X);
|
|
|
+ Assert.Equal (1, view.Frame.Y);
|
|
|
+ Assert.Equal (5, view.Frame.Width);
|
|
|
+ Assert.Equal (4, view.Frame.Height);
|
|
|
+
|
|
|
+ view.Width = 80;
|
|
|
+ view.Height = 25;
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (1, view.Frame.X);
|
|
|
+ Assert.Equal (1, view.Frame.Y);
|
|
|
+ Assert.Equal (80, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ view.Width = Dim.Fill ();
|
|
|
+ view.Height = Dim.Fill ();
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (1, view.Frame.X);
|
|
|
+ Assert.Equal (1, view.Frame.Y);
|
|
|
+ Assert.Equal (79, view.Frame.Width); // proof (80 - 1)
|
|
|
+ Assert.Equal (24, view.Frame.Height); // proof (25 - 1)
|
|
|
+
|
|
|
+ view.X = 79;
|
|
|
+ view.Width = Dim.Fill ();
|
|
|
+ view.Height = Dim.Fill ();
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (79, view.Frame.X);
|
|
|
+ Assert.Equal (1, view.Frame.Y);
|
|
|
+ Assert.Equal (1, view.Frame.Width); // proof (80 - 79)
|
|
|
+ Assert.Equal (24, view.Frame.Height);
|
|
|
+
|
|
|
+ view.X = 80;
|
|
|
+ view.Width = Dim.Fill ();
|
|
|
+ view.Height = Dim.Fill ();
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (80, view.Frame.X);
|
|
|
+ Assert.Equal (1, view.Frame.Y);
|
|
|
+ Assert.Equal (0, view.Frame.Width); // proof (80 - 80)
|
|
|
+ Assert.Equal (24, view.Frame.Height);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void FIll_Pos_Outside_Bounds ()
|
|
|
+ {
|
|
|
+ var screen = new Rect (0, 0, 80, 25);
|
|
|
+ var view = new View () {
|
|
|
+ X = 90, // outside of screen +10
|
|
|
+ Y = -10, // outside of screen -10
|
|
|
+ Width = 15,
|
|
|
+ Height = 15
|
|
|
+ };
|
|
|
+
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (90, view.Frame.X);
|
|
|
+ Assert.Equal (-10, view.Frame.Y);
|
|
|
+ Assert.Equal (15, view.Frame.Width);
|
|
|
+ Assert.Equal (15, view.Frame.Height);
|
|
|
+
|
|
|
+ // prove Width=Height= same as screen size
|
|
|
+ view.Width = 80;
|
|
|
+ view.Height = 25;
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (90, view.Frame.X);
|
|
|
+ Assert.Equal (-10, view.Frame.Y);
|
|
|
+ Assert.Equal (80, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ view.Width = Dim.Fill ();
|
|
|
+ view.Height = Dim.Fill ();
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (90, view.Frame.X);
|
|
|
+ Assert.Equal (-10, view.Frame.Y);
|
|
|
+ Assert.Equal (0, view.Frame.Width); // proof: 15x15 view is placed beyond right side of screen, so fill width is 0
|
|
|
+ Assert.Equal (35, view.Frame.Height); // proof: 15x15 view is placed beyond top of screen 10 rows, screen is 25 rows. so fill height is 25 + 10 = 35
|
|
|
+ }
|
|
|
+
|
|
|
[Fact]
|
|
|
public void PosCombine_PosCenter_Minus_Absolute ()
|
|
|
{
|
|
@@ -148,31 +235,114 @@ public class SetRelativeLayoutTests {
|
|
|
|
|
|
var screen = new Rect (0, 0, 80, 25);
|
|
|
var view = new View () {
|
|
|
- X = Pos.Center () - 41, // ((80 / 2) - (5 / 2)) - 41 = (40 - 2 - 41) = -3
|
|
|
- Y = Pos.Center () - 13, // ((25 / 2) - (4 / 2)) - 13 = (12 - 2 - 13) = -3
|
|
|
- Width = 5,
|
|
|
- Height = 4
|
|
|
+ X = Pos.Center () - 41, // -2 off left edge of screen
|
|
|
+ Y = Pos.Center () - 13, // -1 off top edge of screen
|
|
|
+ Width = 1,
|
|
|
+ Height = 1
|
|
|
};
|
|
|
|
|
|
view.SetRelativeLayout (screen);
|
|
|
- Assert.Equal (-21, view.Frame.X); // BUGBUG: Should be -3
|
|
|
- Assert.Equal (-7, view.Frame.Y); // BUGBUG: Should be -3
|
|
|
+ Assert.Equal (-2, view.Frame.X); // proof: 1x1 view centered in 80x25 screen has x of 39, so -41 is -2
|
|
|
+ Assert.Equal (-1, view.Frame.Y); // proof: 1x1 view centered in 80x25 screen has y of 12, so -13 is -1
|
|
|
+
|
|
|
+ view.Width = 80;
|
|
|
+ view.Height = 25;
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (-41, view.Frame.X);
|
|
|
+ Assert.Equal (-13, view.Frame.Y);
|
|
|
+ Assert.Equal (80, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ view.Width = Dim.Fill ();
|
|
|
+ view.Height = Dim.Fill ();
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (-41, view.Frame.X);
|
|
|
+ Assert.Equal (-13, view.Frame.Y);
|
|
|
+ Assert.Equal (121, view.Frame.Width); // 121 = screen.Width - (-Center - 41)
|
|
|
+ Assert.Equal (38, view.Frame.Height);
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void FIll_And_PosCenter ()
|
|
|
+ {
|
|
|
+ var screen = new Rect (0, 0, 80, 25);
|
|
|
+ var view = new View () {
|
|
|
+ X = Pos.Center (),
|
|
|
+ Y = Pos.Center (),
|
|
|
+ Width = Dim.Fill(),
|
|
|
+ Height = Dim.Fill()
|
|
|
+ };
|
|
|
+
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (0, view.Frame.X);
|
|
|
+ Assert.Equal (0, view.Frame.Y);
|
|
|
+ Assert.Equal (80, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ view.X = Pos.Center () + 1;
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (1, view.Frame.X);
|
|
|
+ Assert.Equal (0, view.Frame.Y);
|
|
|
+ Assert.Equal (79, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ view.X = Pos.Center () + 79;
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (79, view.Frame.X);
|
|
|
+ Assert.Equal (0, view.Frame.Y);
|
|
|
+ Assert.Equal (1, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ view.X = Pos.Center () + 80;
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (80, view.Frame.X);
|
|
|
+ Assert.Equal (0, view.Frame.Y);
|
|
|
+ Assert.Equal (0, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ view.X = Pos.Center () - 1;
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (-1, view.Frame.X);
|
|
|
+ Assert.Equal (0, view.Frame.Y);
|
|
|
+ Assert.Equal (81, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ view.X = Pos.Center () - 2; // Fill means all the way to right. So width will be 82. (dim gets calc'd before pos).
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (-2, view.Frame.X);
|
|
|
+ Assert.Equal (0, view.Frame.Y);
|
|
|
+ Assert.Equal (82, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ view.X = Pos.Center () - 3; // Fill means all the way to right. So width will be 83. (dim gets calc'd before pos).
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (-3, view.Frame.X);
|
|
|
+ Assert.Equal (0, view.Frame.Y);
|
|
|
+ Assert.Equal (83, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ view.X = Pos.Center () - 41; // Fill means all the way to right. So width will be . (dim gets calc'd before pos).
|
|
|
+ view.SetRelativeLayout (screen);
|
|
|
+ Assert.Equal (-41, view.Frame.X);
|
|
|
+ Assert.Equal (0, view.Frame.Y);
|
|
|
+ Assert.Equal (121, view.Frame.Width);
|
|
|
+ Assert.Equal (25, view.Frame.Height);
|
|
|
+
|
|
|
+ }
|
|
|
[Fact]
|
|
|
public void PosCombine_PosCenter_Plus_Absolute ()
|
|
|
{
|
|
|
var screen = new Rect (0, 0, 80, 25);
|
|
|
var view = new View () {
|
|
|
- X = Pos.Center () + 41, // ((80 / 2) - (5 / 2)) + 41 = (40 - 2 + 41) = 79
|
|
|
+ X = Pos.Center () + 41, // ((80 / 2) - (5 / 2)) + 41 = (40 - 3 + 41) = 78
|
|
|
Y = Pos.Center () + 13, // ((25 / 2) - (4 / 2)) + 13 = (12 - 2 + 13) = 23
|
|
|
Width = 5,
|
|
|
Height = 4
|
|
|
};
|
|
|
|
|
|
view.SetRelativeLayout (screen);
|
|
|
- Assert.Equal (79, view.Frame.X); // BUGBUG: Should be 79
|
|
|
- Assert.Equal (23, view.Frame.Y); // BUGBUG: Should be 23
|
|
|
+ Assert.Equal (78, view.Frame.X);
|
|
|
+ Assert.Equal (23, view.Frame.Y);
|
|
|
}
|
|
|
|
|
|
[Fact] [TestRespondersDisposed]
|