public void VerticalStart(int margin)
        {
            var layout = new StackLayout();

            layout.MockBounds(new Rectangle(0, 0, Layout_Width, double.PositiveInfinity));
            var view = new MockView(margin)
            {
                VerticalOptions = LayoutOptions.Start
            };

            layout.Children.Add(view);
            var region = new Rectangle(Region_X, Region_Y, Region_Width, Region_Height);

            Layout.LayoutChildIntoBoundingRegion(view, region);

            var target    = view.Bounds;
            var thickness = margin * 2;

            Assume.That(view.VerticalOptions.Alignment == LayoutAlignment.Start,
                        "view.VerticalOptions.Alignment should be Start");
            Assume.That(view.VerticalOptions.Alignment.ToDouble() == 0,
                        "view.VerticalOptions.Alignment.ToDouble() should be 0");
            Assume.That(view.HorizontalOptions.Alignment == LayoutAlignment.Fill,
                        "view.HorizontalOptions.Alignment should be Fill");

            Assert.AreEqual(Expected_X_Fill_Plus_Margin(margin), target.X, "X");
            Assert.AreEqual(Expected_Y_Fill_Plus_Margin(margin), target.Y, "Y");
            Assert.AreEqual(Expected_Width_Fill_Less_Thickness(thickness), target.Width, "Width");
            Assert.AreEqual(Expected_Height_Start_End, target.Height, "Height");
        }
        public void HorizontalCenter_RTL(int margin)
        {
            var layout = new StackLayout {
                FlowDirection = FlowDirection.RightToLeft
            };

            layout.MockBounds(new Rectangle(0, 0, Layout_Width, double.PositiveInfinity));

            var view = new MockView(margin)
            {
                HorizontalOptions = LayoutOptions.Center
            };

            layout.Children.Add(view);
            var region = new Rectangle(Region_X, Region_Y, Region_Width, Region_Height);

            Layout.LayoutChildIntoBoundingRegion(view, region);

            var target        = view.Bounds;
            var thickness     = margin * 2;
            var center_margin = Math.Ceiling(margin / 2d);

            Assume.That(view.HorizontalOptions.Alignment == LayoutAlignment.Center,
                        "view.HorizontalOptions.Alignment should be Center");
            Assume.That(view.HorizontalOptions.Alignment.ToDouble() == 0.5,
                        "view.HorizontalOptions.Alignment.ToDouble() should be 0.5");
            Assume.That(view.VerticalOptions.Alignment == LayoutAlignment.Fill,
                        "view.VerticalOptions.Alignment should be Fill");

            Assert.AreEqual(Expected_X_Center_RTL_Plus_Margin(0), target.X, "X");
            Assert.AreEqual(Expected_Y_Fill_Plus_Margin(margin), target.Y, "Y");
            Assert.AreEqual(Expected_Width_Start_End, target.Width, "Width");
            Assert.AreEqual(Expected_Height_Fill_Less_Thickness(thickness), target.Height, "Height");
        }
        public void Default_RTL(int margin)
        {
            var layout = new StackLayout {
                FlowDirection = FlowDirection.RightToLeft
            };

            layout.MockBounds(new Rectangle(0, 0, Layout_Width, double.PositiveInfinity));

            var view = new MockView(margin);

            layout.Children.Add(view);

            var region = new Rectangle(Region_X, Region_Y, Region_Width, Region_Height);

            Layout.LayoutChildIntoBoundingRegion(view, region);

            var target    = view.Bounds;
            var thickness = margin * 2;

            Assume.That(view.HorizontalOptions.Alignment == LayoutAlignment.Fill,
                        "view.HorizontalOptions.Alignment should be Fill");
            Assume.That(view.VerticalOptions.Alignment == LayoutAlignment.Fill,
                        "view.VerticalOptions.Alignment should be Fill");

            Assert.AreEqual(Expected_Region_Right, region.Right, "region.Right");
            Assert.AreEqual(Layout_Width, layout.Width, "layout.Width");

            Assert.AreEqual(Expected_X_Fill_RTL_Plus_Margin(margin), target.X, "X");
            Assert.AreEqual(Expected_Y_Fill_Plus_Margin(margin), target.Y, "Y");
            Assert.AreEqual(Expected_Width_Fill_Less_Thickness(thickness), target.Width, "Width");
            Assert.AreEqual(Expected_Height_Fill_Less_Thickness(thickness), target.Height, "Height");
        }
Beispiel #4
0
        public void VerticalEndAndExpand_RTL(int margin)
        {
            var layout = new StackLayout {
                FlowDirection = FlowDirection.RightToLeft
            };

            layout.MockBounds(new Rect(0, 0, Layout_Width, double.PositiveInfinity));
            var view = new MockView(margin)
            {
                VerticalOptions = LayoutOptions.EndAndExpand
            };

            layout.Children.Add(view);
            var region = new Rect(Region_X, Region_Y, Region_Width, Region_Height);

            Compatibility.Layout.LayoutChildIntoBoundingRegion(view, region);

            var target    = view.Bounds;
            var thickness = margin * 2;

            Assume.That(view.VerticalOptions.Alignment == LayoutAlignment.End,
                        "view.VerticalOptions.Alignment should be End");
            Assume.That(view.VerticalOptions.Alignment.ToDouble() == 1,
                        "view.VerticalOptions.Alignment.ToDouble() should be 1");
            Assume.That(view.HorizontalOptions.Alignment == LayoutAlignment.Fill,
                        "view.HorizontalOptions.Alignment should be Fill");

            Assert.AreEqual(Expected_X_Fill_RTL_Plus_Margin(margin), target.X, "X");
            Assert.AreEqual(Expected_Y_End_Less_Margin(margin), target.Y, "Y");
            Assert.AreEqual(Expected_Width_Fill_Less_Thickness(thickness), target.Width, "Width");
            Assert.AreEqual(Expected_Height_Start_End, target.Height, "Height");
        }