diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_DashArray_DashOffset_Thickness.png index 373b66f44e00..cb880639ad02 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_FillColorWithStrokeColor_Shadow.png index 23a4ae64a5d0..f80fea00a4e3 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_HeightAndWidth.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_HeightAndWidth.png new file mode 100644 index 000000000000..97144de115c6 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_StrokeColor_Thickness.png index a0ed65c1d4c5..0eb566e80bf3 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Ellipse_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_DashArray_DashOffset_Thickness.png index c02dcceb6277..7af8f8c22fde 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeColor_Shadow.png similarity index 99% rename from src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_FillColorWithStrokeColor_Shadow.png rename to src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeColor_Shadow.png index f11f0cf48c06..7c38a9fabfe1 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeColor_Thickness.png index 2ce5d4f921e9..3dd99dd8d728 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeLineCap_Flat.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeLineCap_Flat.png new file mode 100644 index 000000000000..df58704bf8a5 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeLineCap_Flat.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeLineCap_Round.png new file mode 100644 index 000000000000..7410059ed4dc Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeLineCap_Square.png new file mode 100644 index 000000000000..3bcc8a7e8ebe Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Line_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_Fill.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_Fill.png new file mode 100644 index 000000000000..1aa9da3b9492 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_Fill.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_None.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_None.png new file mode 100644 index 000000000000..8107352d6560 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_None.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_Uniform.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_Uniform.png new file mode 100644 index 000000000000..9c2a8b311eaa Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_Uniform.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_UniformToFill.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_UniformToFill.png new file mode 100644 index 000000000000..612f821b0a9d Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Aspect_UniformToFill.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_DashArray_DashOffset_Thickness.png index 628444325ec8..a2934dd65edd 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_FillColorWithStrokeColor_Shadow.png index 668b60cf2d9f..c5847aaf2e32 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_PathData_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_PathData_Thickness.png new file mode 100644 index 000000000000..91bfbabd9af3 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_PathData_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Points_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Points_Thickness.png deleted file mode 100644 index 8f411b2b9e49..000000000000 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_Points_Thickness.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeColor_Thickness.png index 7efe1567cdc0..77455dae3ac9 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineCap_Round.png new file mode 100644 index 000000000000..40dd2f7c83dc Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineCap_Square.png new file mode 100644 index 000000000000..6d757cf7c0e4 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..30a0f4ed0469 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..91b19dae36de Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Path_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_DashArray_DashOffset_Thickness.png index bf7f3515b5fc..5a3d7061db8a 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_FillColorWithStrokeColor_Shadow.png deleted file mode 100644 index 95cf444a8697..000000000000 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_FillColorWithStrokeColor_Shadow.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_Points_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_Points_Thickness.png index c5993d7e1109..25e5d650fcab 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_Points_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_Points_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_DashArray_DashOffset_Thickness.png index 0886bd8ca181..dec44b4ae933 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_FillColorWithStrokeColor_Shadow.png index 20161c751d63..8eeec27c10f8 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_FillRule_Nonzero.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_FillRule_Nonzero.png new file mode 100644 index 000000000000..33cf20e08ccd Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_FillRule_Nonzero.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_Pentagon.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_Pentagon.png new file mode 100644 index 000000000000..c80753989d83 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_Pentagon.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_StrokeColor_Thickness.png index 7a577fe02b76..2ef468ec6ebf 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..77f997c93002 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..8ae2d70afcc1 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polygon_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_FillRule_Nonzero.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_FillRule_Nonzero.png new file mode 100644 index 000000000000..8d2ef0194f9d Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_FillRule_Nonzero.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeColor_DashArray_Thickness.png similarity index 100% rename from src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_StrokeColor_DashArray_Thickness.png rename to src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeColor_DashArray_Thickness.png diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeColor_Shadow.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeColor_Shadow.png new file mode 100644 index 000000000000..997a43912049 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeColor_Thickness.png similarity index 100% rename from src/Controls/tests/TestCases.Android.Tests/snapshots/android/PolyLine_StrokeColor_Thickness.png rename to src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeColor_Thickness.png diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineCap_Round.png new file mode 100644 index 000000000000..72239520ae6d Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineCap_Square.png new file mode 100644 index 000000000000..13f56f7f8e84 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..cf7832349093 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..3d452f9fc685 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Polyline_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_DashArray_DashOffset_Thickness.png index 84f4af1c8f90..0a57dd5ad9dc 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_FillColorWithStrokeColor_Shadow.png index 9f80a2625386..5daea2059b5a 100644 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_HeightAndWidth.png new file mode 100644 index 000000000000..edf3098ab25e Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_XAndYRadius.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_XAndYRadius.png new file mode 100644 index 000000000000..9e46fed94e6d Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Rectangle_XAndYRadius.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_CornerRadius.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_CornerRadius.png new file mode 100644 index 000000000000..13c3a86b2336 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_CornerRadius.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_DashArray_DashOffset_Thickness.png new file mode 100644 index 000000000000..85179b06186c Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_FillColorWithStrokeColor_Shadow.png new file mode 100644 index 000000000000..630485ccf6ec Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_HeightAndWidth.png new file mode 100644 index 000000000000..1c4d725460bf Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_StrokeColor_DashArray_Thickness.png new file mode 100644 index 000000000000..1a7d9cc35188 Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_StrokeColor_Thickness.png new file mode 100644 index 000000000000..e33dc7c1959a Binary files /dev/null and b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/RoundRectangle_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Shape_Polygon_Pentagon.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Shape_Polygon_Pentagon.png deleted file mode 100644 index 5fc478be4495..000000000000 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Shape_Polygon_Pentagon.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Shape_Rectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Shape_Rectangle_HeightAndWidth.png deleted file mode 100644 index bca295bdd37a..000000000000 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Shape_Rectangle_HeightAndWidth.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Shape_Rectangle_XAndYRadius.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Shape_Rectangle_XAndYRadius.png deleted file mode 100644 index f4b1cfb1583a..000000000000 Binary files a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/Shape_Rectangle_XAndYRadius.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/EnumToBoolConverter.cs b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/EnumToBoolConverter.cs index c11a27dae42c..ea0ed7e6757c 100644 --- a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/EnumToBoolConverter.cs +++ b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/EnumToBoolConverter.cs @@ -26,4 +26,4 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu } return Binding.DoNothing; } -} \ No newline at end of file +} diff --git a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapeConverters.cs b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapeConverters.cs deleted file mode 100644 index 5bcc8da8cce5..000000000000 --- a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapeConverters.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System.Globalization; -using Microsoft.Maui.Controls.Shapes; - - -namespace Maui.Controls.Sample; - -public class StringToPointCollectionConverter : IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is string pointsString && !string.IsNullOrWhiteSpace(pointsString)) - { - var points = new PointCollection(); - var pointPairs = pointsString.Split(' '); - - foreach (var pointPair in pointPairs) - { - var coords = pointPair.Split(','); - if (coords.Length == 2 && - double.TryParse(coords[0], out double x) && - double.TryParse(coords[1], out double y)) - { - points.Add(new Point(x, y)); - } - } - return points; - } - return new PointCollection(); - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is PointCollection points) - { - var pointStrings = new List(); - foreach (Point point in points) - { - pointStrings.Add($"{point.X},{point.Y}"); - } - return string.Join(" ", pointStrings); - } - return string.Empty; - } -} - -public class StringToPathGeometryConverter : IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is string pathData && !string.IsNullOrWhiteSpace(pathData)) - { - try - { - return (Geometry)new PathGeometryConverter().ConvertFromInvariantString(pathData); - } - catch - { - // Return a simple default path if parsing fails - return (Geometry)new PathGeometryConverter().ConvertFromInvariantString("M 10,100 L 100,100"); - } - } - return (Geometry)new PathGeometryConverter().ConvertFromInvariantString("M 10,100 L 100,100"); - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return value?.ToString() ?? string.Empty; - } -} - -public class StringToDoubleCollectionConverter : IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is string dashArray && !string.IsNullOrWhiteSpace(dashArray)) - { - var collection = new DoubleCollection(); - var values = dashArray.Split(','); - - foreach (var val in values) - { - if (double.TryParse(val.Trim(), out double dashValue)) - { - collection.Add(dashValue); - } - } - return collection; - } - return new DoubleCollection(); - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is DoubleCollection collection) - { - return string.Join(",", collection); - } - return string.Empty; - } -} - diff --git a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesControlPage.xaml b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesControlPage.xaml index 5200d508d0ad..7db8480314ac 100644 --- a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesControlPage.xaml +++ b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesControlPage.xaml @@ -16,113 +16,133 @@ - - - - - - - - - - - - + + + + + + - - + + - - + + - - + + - - + + - - - - - + + - \ No newline at end of file + diff --git a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesControlPage.xaml.cs b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesControlPage.xaml.cs index 1c454ede187a..e511a091659c 100644 --- a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesControlPage.xaml.cs +++ b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesControlPage.xaml.cs @@ -23,7 +23,8 @@ public ShapesControlMainPage(ShapesViewModel viewModel) private async void NavigateToOptionsPage_Clicked(object sender, EventArgs e) { - BindingContext = _viewModel = new ShapesViewModel(); + // Reset to defaults before each options visit so every test starts from a known state. + _viewModel.ResetToDefaults(); await Navigation.PushAsync(new ShapesOptionsPage(_viewModel)); } -} \ No newline at end of file +} diff --git a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesOptionsPage.xaml b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesOptionsPage.xaml index a18ebd7a0c30..9d0d4c0e072f 100644 --- a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesOptionsPage.xaml +++ b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesOptionsPage.xaml @@ -11,440 +11,461 @@ Clicked="ApplyButton_Clicked" AutomationId="Apply"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - \ No newline at end of file + Text="{Binding PathData, Mode=TwoWay}" + VerticalOptions="Center" + Placeholder="Enter path data (e.g., M 10,100 C 10,300 300,-160 300,100)" + WidthRequest="200" + AutomationId="PathDataEntry"/> + + + + + + diff --git a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesOptionsPage.xaml.cs b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesOptionsPage.xaml.cs index 4506f64ad347..7bd4aaff0222 100644 --- a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesOptionsPage.xaml.cs +++ b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesOptionsPage.xaml.cs @@ -1,3 +1,5 @@ +using Microsoft.Maui.Controls.Shapes; + namespace Maui.Controls.Sample; public partial class ShapesOptionsPage : ContentPage @@ -25,36 +27,13 @@ private void OnShapeTypeChanged(object sender, CheckedChangedEventArgs e) } private void UpdatePropertySectionVisibility(ShapeType shapeType) { - // Hide all property sections first - RectanglePropertiesSection.IsVisible = false; - EllipsePropertiesSection.IsVisible = false; - LinePropertiesSection.IsVisible = false; - PolygonPropertiesSection.IsVisible = false; - PolylinePropertiesSection.IsVisible = false; - PathPropertiesSection.IsVisible = false; - - // Show the relevant property section - switch (shapeType) - { - case ShapeType.Rectangle: - RectanglePropertiesSection.IsVisible = true; - break; - case ShapeType.Ellipse: - EllipsePropertiesSection.IsVisible = true; - break; - case ShapeType.Line: - LinePropertiesSection.IsVisible = true; - break; - case ShapeType.Polygon: - PolygonPropertiesSection.IsVisible = true; - break; - case ShapeType.Polyline: - PolylinePropertiesSection.IsVisible = true; - break; - case ShapeType.Path: - PathPropertiesSection.IsVisible = true; - break; - } + RectanglePropertiesSection.IsVisible = shapeType == ShapeType.Rectangle; + RoundRectanglePropertiesSection.IsVisible = shapeType == ShapeType.RoundRectangle; + EllipsePropertiesSection.IsVisible = shapeType == ShapeType.Ellipse; + LinePropertiesSection.IsVisible = shapeType == ShapeType.Line; + PolygonPropertiesSection.IsVisible = shapeType == ShapeType.Polygon; + PolylinePropertiesSection.IsVisible = shapeType == ShapeType.Polyline; + PathPropertiesSection.IsVisible = shapeType == ShapeType.Path; } private void OnFillColorChanged(object sender, CheckedChangedEventArgs e) @@ -64,7 +43,6 @@ private void OnFillColorChanged(object sender, CheckedChangedEventArgs e) if (colorName.ToLower(System.Globalization.CultureInfo.InvariantCulture) == "none") { _viewModel.HasFillColor = false; - _viewModel.FillColor = null; } else { @@ -84,11 +62,47 @@ private void OnStrokeColorChanged(object sender, CheckedChangedEventArgs e) } } - private Microsoft.Maui.Graphics.Color GetColorByName(string colorName) + private void OnAspectChanged(object sender, CheckedChangedEventArgs e) + { + if (e.Value && sender is RadioButton radioButton && radioButton.Content is string aspectName) + { + if (Enum.TryParse(aspectName, out var aspect)) + _viewModel.Aspect = aspect; + } + } + + private void OnStrokeLineCapChanged(object sender, CheckedChangedEventArgs e) + { + if (e.Value && sender is RadioButton radioButton && radioButton.Content is string capName) + { + if (Enum.TryParse(capName, out var cap)) + _viewModel.StrokeLineCap = cap; + } + } + + private void OnStrokeLineJoinChanged(object sender, CheckedChangedEventArgs e) + { + if (e.Value && sender is RadioButton radioButton && radioButton.Content is string joinName) + { + if (Enum.TryParse(joinName, out var join)) + _viewModel.StrokeLineJoin = join; + } + } + + private void OnFillRuleChanged(object sender, CheckedChangedEventArgs e) + { + if (e.Value && sender is RadioButton radioButton && radioButton.Content is string fillRuleName) + { + if (Enum.TryParse(fillRuleName, out var fillRule)) + _viewModel.FillRule = fillRule; + } + } + + private static Microsoft.Maui.Graphics.Color GetColorByName(string colorName) { return colorName.ToLower(System.Globalization.CultureInfo.InvariantCulture) switch { - "red" => Colors.Red, + "red" => Microsoft.Maui.Graphics.Colors.Red, "blue" => Microsoft.Maui.Graphics.Colors.Blue, "green" => Microsoft.Maui.Graphics.Colors.Green, "yellow" => Microsoft.Maui.Graphics.Colors.Yellow, @@ -108,4 +122,4 @@ private void ApplyButton_Clicked(object sender, EventArgs e) { Navigation.PopAsync(); } -} \ No newline at end of file +} diff --git a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesViewModel.cs b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesViewModel.cs index fbdbc7537374..13296a978d45 100644 --- a/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesViewModel.cs +++ b/src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shapes/ShapesViewModel.cs @@ -1,4 +1,5 @@ using System.ComponentModel; +using System.Globalization; using System.Runtime.CompilerServices; using Microsoft.Maui.Controls.Shapes; @@ -8,6 +9,7 @@ public enum ShapeType { Line, Rectangle, + RoundRectangle, Polygon, Polyline, Ellipse, @@ -22,11 +24,37 @@ public class ShapesViewModel : INotifyPropertyChanged private double _strokeThickness = 1.0; private double _width = 300; private double _height = 150; - private FlowDirection _flowDirection = FlowDirection.LeftToRight; private bool _hasShadow = false; private Shadow _boxShadow = null; - private PathGeometryConverter _pathGeometryConverter = new PathGeometryConverter(); + private readonly PathGeometryConverter _pathGeometryConverter = new PathGeometryConverter(); + public void ResetToDefaults() + { + SelectedShapeType = ShapeType.Rectangle; + FillColor = null; + HasFillColor = false; + StrokeColor = Colors.Black; + StrokeThickness = 1.0; + Width = 300; + Height = 150; + HasShadow = false; + StrokeDashArray = "0,0"; + StrokeDashOffset = 0; + Aspect = Stretch.None; + StrokeLineCap = PenLineCap.Flat; + StrokeLineJoin = PenLineJoin.Miter; + FillRule = FillRule.EvenOdd; + CornerRadius = 0; + RadiusX = 0; + RadiusY = 0; + X1 = 0; + Y1 = 0; + X2 = 280; + Y2 = 0; + Points = "100,20 170,75 100,130 30,75"; + PolylinePoints = "50,100 100,50 150,100 200,50 250,100"; + PathData = "M 10,84 C 10,84 40,15 100,55 C 160,15 190,84 190,84 C 190,84 100,135 100,135 C 100,135 10,84 10,84 Z"; + } public bool HasShadow { get => _hasShadow; @@ -61,19 +89,6 @@ private set } } } - public FlowDirection FlowDirection - { - get => _flowDirection; - set - { - if (_flowDirection != value) - { - _flowDirection = value; - OnPropertyChanged(); - } - } - } - public ShapeType SelectedShapeType { get => _selectedShapeType; @@ -95,7 +110,7 @@ public bool HasFillColor { if (!value) { - _fillColor = null; + FillColor = null; } } } @@ -145,6 +160,41 @@ public double StrokeDashOffset set => SetProperty(ref _strokeDashOffset, value); } + private Stretch _aspect = Stretch.None; + public Stretch Aspect + { + get => _aspect; + set => SetProperty(ref _aspect, value); + } + + private FillRule _fillRule = FillRule.EvenOdd; + public FillRule FillRule + { + get => _fillRule; + set => SetProperty(ref _fillRule, value); + } + + private PenLineCap _strokeLineCap = PenLineCap.Flat; + public PenLineCap StrokeLineCap + { + get => _strokeLineCap; + set => SetProperty(ref _strokeLineCap, value); + } + + private PenLineJoin _strokeLineJoin = PenLineJoin.Miter; + public PenLineJoin StrokeLineJoin + { + get => _strokeLineJoin; + set => SetProperty(ref _strokeLineJoin, value); + } + + private double _cornerRadius = 0; + public double CornerRadius + { + get => _cornerRadius; + set => SetProperty(ref _cornerRadius, value); + } + private double _radiusX = 0; public double RadiusX { @@ -173,7 +223,7 @@ public double Y1 set => SetProperty(ref _y1, value); } - private double _x2 = 0; + private double _x2 = 280; public double X2 { get => _x2; @@ -188,7 +238,7 @@ public double Y2 } // Polygon/Polyline Points - private string _points = "100,50 150,100 100,150 50,100"; + private string _points = "100,20 170,75 100,130 30,75"; public string Points { get => _points; @@ -216,7 +266,7 @@ public string PolylinePoints } // Path Data - private string _pathData = "M 10,100 L 100,100 100,50Z"; + private string _pathData = "M 10,84 C 10,84 40,15 100,55 C 160,15 190,84 190,84 C 190,84 100,135 100,135 C 100,135 10,84 10,84 Z"; public string PathData { @@ -231,50 +281,26 @@ public string PathData } // Computed properties for proper data types - public PointCollection PolygonPointCollection - { - get - { - var points = new PointCollection(); - if (!string.IsNullOrWhiteSpace(_points)) - { - var pointPairs = _points.Split(' '); - foreach (var pointPair in pointPairs) - { - var coords = pointPair.Split(','); - if (coords.Length == 2 && - double.TryParse(coords[0], out double x) && - double.TryParse(coords[1], out double y)) - { - points.Add(new Point(x, y)); - } - } - } - return points; - } - } + public PointCollection PolygonPointCollection => ParsePointCollection(_points); - public PointCollection PolylinePointCollection + public PointCollection PolylinePointCollection => ParsePointCollection(_polylinePoints); + + static PointCollection ParsePointCollection(string input) { - get + var points = new PointCollection(); + if (string.IsNullOrWhiteSpace(input)) + return points; + foreach (var pair in input.Split(' ')) { - var points = new PointCollection(); - if (!string.IsNullOrWhiteSpace(_polylinePoints)) + var coords = pair.Split(','); + if (coords.Length == 2 && + double.TryParse(coords[0], NumberStyles.Float, CultureInfo.InvariantCulture, out double x) && + double.TryParse(coords[1], NumberStyles.Float, CultureInfo.InvariantCulture, out double y)) { - var pointPairs = _polylinePoints.Split(' '); - foreach (var pointPair in pointPairs) - { - var coords = pointPair.Split(','); - if (coords.Length == 2 && - double.TryParse(coords[0], out double x) && - double.TryParse(coords[1], out double y)) - { - points.Add(new Point(x, y)); - } - } + points.Add(new Point(x, y)); } - return points; } + return points; } public DoubleCollection StrokeDashCollection @@ -308,9 +334,9 @@ public Geometry PathGeometry return (Geometry)_pathGeometryConverter.ConvertFromInvariantString(_pathData); } } - catch + catch (Exception ex) { - // Return a simple default path if parsing fails + System.Diagnostics.Debug.WriteLine($"PathGeometry parse failed: {ex.Message}"); } return (Geometry)_pathGeometryConverter.ConvertFromInvariantString("M 10,100 L 100,100"); } diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Ellipse_HeightAndWidth.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Ellipse_HeightAndWidth.png new file mode 100644 index 000000000000..2f39684e138f Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Ellipse_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_DashArray_DashOffset_Thickness.png index bd4b7999a938..21d61b35aa9c 100644 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_FillColorWithStrokeColor_Shadow.png deleted file mode 100644 index 63df5f6c2b01..000000000000 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_FillColorWithStrokeColor_Shadow.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeColor_Shadow.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeColor_Shadow.png new file mode 100644 index 000000000000..dbde6f4c5d1a Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeColor_Thickness.png index e4540bb12c7c..d245dcc62a37 100644 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeLineCap_Flat.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeLineCap_Flat.png new file mode 100644 index 000000000000..28ad80bbf5fd Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeLineCap_Flat.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeLineCap_Round.png new file mode 100644 index 000000000000..903853cf2a65 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeLineCap_Square.png new file mode 100644 index 000000000000..aa7a2ccafec8 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Line_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_DashArray_DashOffset_Thickness.png index a44457b039bc..9b651b88868e 100644 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_FillColorWithStrokeColor_Shadow.png index 8f66fe98668c..2604435992f5 100644 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_Points_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_Points_Thickness.png deleted file mode 100644 index 9b50d9dcfe87..000000000000 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_Points_Thickness.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeColor_Thickness.png index 5b879d92f789..a64ad6785acb 100644 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineCap_Round.png new file mode 100644 index 000000000000..8de8bede1621 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineCap_Square.png new file mode 100644 index 000000000000..57aecd79aab4 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..9c8e0152469d Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..545e5de6c443 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Path_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_DashArray_DashOffset_Thickness.png deleted file mode 100644 index 1b1c7bccc4dd..000000000000 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_DashArray_DashOffset_Thickness.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_FillColorWithStrokeColor_Shadow.png deleted file mode 100644 index 34b7b4111e05..000000000000 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_FillColorWithStrokeColor_Shadow.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_Points_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_Points_Thickness.png deleted file mode 100644 index b84313c2e345..000000000000 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_Points_Thickness.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_DashArray_DashOffset_Thickness.png index de44bb3d8a77..082da8beae63 100644 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_FillColorWithStrokeColor_Shadow.png index 3c8713b4a7f7..82db5a20b98f 100644 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_FillRule_Nonzero.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_FillRule_Nonzero.png new file mode 100644 index 000000000000..0b9805b326d9 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_FillRule_Nonzero.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_Pentagon.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_Pentagon.png new file mode 100644 index 000000000000..b64078e7639e Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_Pentagon.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_StrokeColor_Thickness.png index 644f1187610b..9f26b22a2393 100644 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..ff07b99f9f4d Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..3bbba48ba647 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polygon_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_DashArray_DashOffset_Thickness.png new file mode 100644 index 000000000000..037ba996444e Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_FillRule_Nonzero.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_FillRule_Nonzero.png new file mode 100644 index 000000000000..f8d78df24b2b Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_FillRule_Nonzero.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_Points_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_Points_Thickness.png new file mode 100644 index 000000000000..40d76ab57806 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_Points_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeColor_DashArray_Thickness.png similarity index 100% rename from src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_StrokeColor_DashArray_Thickness.png rename to src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeColor_DashArray_Thickness.png diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeColor_Shadow.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeColor_Shadow.png new file mode 100644 index 000000000000..21ad8146ad75 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeColor_Thickness.png similarity index 100% rename from src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/PolyLine_StrokeColor_Thickness.png rename to src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeColor_Thickness.png diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineCap_Round.png new file mode 100644 index 000000000000..37a5f366fbc1 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineCap_Square.png new file mode 100644 index 000000000000..c8154b7aa9b7 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..8917718e2cee Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..c10bcb2ea623 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Polyline_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Rectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Rectangle_HeightAndWidth.png new file mode 100644 index 000000000000..b919749adc24 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Rectangle_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Rectangle_XAndYRadius.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Rectangle_XAndYRadius.png new file mode 100644 index 000000000000..b260d121b95e Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Rectangle_XAndYRadius.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_CornerRadius.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_CornerRadius.png new file mode 100644 index 000000000000..a894aa559754 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_CornerRadius.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_DashArray_DashOffset_Thickness.png new file mode 100644 index 000000000000..48fb1ed5dae0 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_FillColorWithStrokeColor_Shadow.png new file mode 100644 index 000000000000..ce390449042f Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_HeightAndWidth.png new file mode 100644 index 000000000000..d7279c6efa98 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_StrokeColor_DashArray_Thickness.png new file mode 100644 index 000000000000..87717bbe81e3 Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_StrokeColor_Thickness.png new file mode 100644 index 000000000000..6dc1bb88b5ba Binary files /dev/null and b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/RoundRectangle_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Shape_Polygon_Pentagon.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Shape_Polygon_Pentagon.png deleted file mode 100644 index 0df26f8b4636..000000000000 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Shape_Polygon_Pentagon.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Shape_Rectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Shape_Rectangle_HeightAndWidth.png deleted file mode 100644 index 0e728c4b4457..000000000000 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Shape_Rectangle_HeightAndWidth.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Shape_Rectangle_XAndYRadius.png b/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Shape_Rectangle_XAndYRadius.png deleted file mode 100644 index 83690aafbade..000000000000 Binary files a/src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/Shape_Rectangle_XAndYRadius.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs index 09f4cec1f931..c6d83d169954 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShapesFeatureTests.cs @@ -2,9 +2,9 @@ using UITest.Appium; using UITest.Core; - namespace Microsoft.Maui.TestCases.Tests; +[Category(UITestCategories.Shape)] public class ShapesFeatureTests : _GalleryUITest { public const string ShapesFeatureMatrix = "Shapes Feature Matrix"; @@ -25,8 +25,7 @@ public void VerifyShapeScreenshot() } #if TEST_FAILS_ON_WINDOWS //For more information see: https://github.com/dotnet/maui/issues/29812 - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(1)] public void Rectangle_FillColorWithStrokeColor_Shadow() { App.WaitForElement("Options"); @@ -47,8 +46,7 @@ public void Rectangle_FillColorWithStrokeColor_Shadow() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(2)] public void Ellipse_FillColorWithStrokeColor_Shadow() { App.WaitForElement("Options"); @@ -72,9 +70,8 @@ public void Ellipse_FillColorWithStrokeColor_Shadow() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] - public void Line_FillColorWithStrokeColor_Shadow() + [Test, Order(3)] + public void Line_StrokeColor_Shadow() { App.WaitForElement("Options"); App.Tap("Options"); @@ -114,8 +111,7 @@ public void Line_FillColorWithStrokeColor_Shadow() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(4)] public void Polygon_FillColorWithStrokeColor_Shadow() { App.WaitForElement("Options"); @@ -139,15 +135,14 @@ public void Polygon_FillColorWithStrokeColor_Shadow() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] - public void PolyLine_FillColorWithStrokeColor_Shadow() + [Test, Order(5)] + public void Polyline_StrokeColor_Shadow() { App.WaitForElement("Options"); App.Tap("Options"); - App.WaitForElement("PolyLineRadioButton"); - App.Tap("PolyLineRadioButton"); + App.WaitForElement("PolylineRadioButton"); + App.Tap("PolylineRadioButton"); App.WaitForElement("StrokeColorRedRadioButton"); App.Tap("StrokeColorRedRadioButton"); @@ -157,12 +152,10 @@ public void PolyLine_FillColorWithStrokeColor_Shadow() App.WaitForElement("Apply"); App.Tap("Apply"); - VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(6)] public void Path_FillColorWithStrokeColor_Shadow() { App.WaitForElement("Options"); @@ -171,6 +164,33 @@ public void Path_FillColorWithStrokeColor_Shadow() App.WaitForElement("PathRadioButton"); App.Tap("PathRadioButton"); + App.WaitForElement("FillColorBlueRadioButton"); + App.Tap("FillColorBlueRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("ShadowCheckBox"); + App.Tap("ShadowCheckBox"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(30)] + public void RoundRectangle_FillColorWithStrokeColor_Shadow() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("RoundRectangleRadioButton"); + App.Tap("RoundRectangleRadioButton"); + + App.WaitForElement("FillColorBlueRadioButton"); + App.Tap("FillColorBlueRadioButton"); + App.WaitForElement("StrokeColorRedRadioButton"); App.Tap("StrokeColorRedRadioButton"); @@ -184,8 +204,7 @@ public void Path_FillColorWithStrokeColor_Shadow() } #endif - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(7)] public void Rectangle_DashArray_DashOffset_Thickness() { App.WaitForElement("Options"); @@ -212,8 +231,7 @@ public void Rectangle_DashArray_DashOffset_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(8)] public void Ellipse_DashArray_DashOffset_Thickness() { App.WaitForElement("Options"); @@ -243,15 +261,14 @@ public void Ellipse_DashArray_DashOffset_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] - public void PolyLine_DashArray_DashOffset_Thickness() + [Test, Order(9)] + public void Polyline_DashArray_DashOffset_Thickness() { App.WaitForElement("Options"); App.Tap("Options"); - App.WaitForElement("PolyLineRadioButton"); - App.Tap("PolyLineRadioButton"); + App.WaitForElement("PolylineRadioButton"); + App.Tap("PolylineRadioButton"); App.WaitForElement("StrokeThicknessEntry"); App.Tap("StrokeThicknessEntry"); @@ -274,8 +291,7 @@ public void PolyLine_DashArray_DashOffset_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(10)] public void Polygon_DashArray_DashOffset_Thickness() { App.WaitForElement("Options"); @@ -305,8 +321,7 @@ public void Polygon_DashArray_DashOffset_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(11)] public void Path_DashArray_DashOffset_Thickness() { App.WaitForElement("Options"); @@ -328,7 +343,7 @@ public void Path_DashArray_DashOffset_Thickness() App.WaitForElement("StrokeDashOffsetEntry"); App.Tap("StrokeDashOffsetEntry"); App.ClearText("StrokeDashOffsetEntry"); - App.EnterText("StrokeDashOffsetEntry", "5"); + App.EnterText("StrokeDashOffsetEntry", "3"); App.WaitForElement("Apply"); App.Tap("Apply"); @@ -336,8 +351,7 @@ public void Path_DashArray_DashOffset_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(12)] public void Line_DashArray_DashOffset_Thickness() { App.WaitForElement("Options"); @@ -387,9 +401,8 @@ public void Line_DashArray_DashOffset_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] - public void Path_Points_Thickness() + [Test, Order(13)] + public void Path_PathData_Thickness() { App.WaitForElement("Options"); App.Tap("Options"); @@ -413,25 +426,24 @@ public void Path_Points_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] - public void PolyLine_Points_Thickness() + [Test, Order(14)] + public void Polyline_Points_Thickness() { App.WaitForElement("Options"); App.Tap("Options"); - App.WaitForElement("PolyLineRadioButton"); - App.Tap("PolyLineRadioButton"); + App.WaitForElement("PolylineRadioButton"); + App.Tap("PolylineRadioButton"); App.WaitForElement("StrokeThicknessEntry"); App.Tap("StrokeThicknessEntry"); App.ClearText("StrokeThicknessEntry"); App.EnterText("StrokeThicknessEntry", "4"); - App.WaitForElement("PolyLinePointsEntry"); - App.Tap("PolyLinePointsEntry"); - App.ClearText("PolyLinePointsEntry"); - App.EnterText("PolyLinePointsEntry", "0,0 10,30 15,0 18,60 23,30 35,30 40,0 43,60 48,30 100,30"); + App.WaitForElement("PolylinePointsEntry"); + App.Tap("PolylinePointsEntry"); + App.ClearText("PolylinePointsEntry"); + App.EnterText("PolylinePointsEntry", "10,15 20,45 25,15 28,75 33,45 45,45 50,15 53,75 58,45 110,45"); App.WaitForElement("Apply"); App.Tap("Apply"); @@ -439,9 +451,8 @@ public void PolyLine_Points_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] - public void Shape_Polygon_Pentagon() + [Test, Order(15)] + public void Polygon_Pentagon() { App.WaitForElement("Options"); App.Tap("Options"); @@ -464,9 +475,8 @@ public void Shape_Polygon_Pentagon() } - [Test] - [Category(UITestCategories.Shape)] - public void Shape_Rectangle_XAndYRadius() + [Test, Order(16)] + public void Rectangle_XAndYRadius() { App.WaitForElement("Options"); App.Tap("Options"); @@ -492,9 +502,8 @@ public void Shape_Rectangle_XAndYRadius() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] - public void Shape_Rectangle_HeightAndWidth() + [Test, Order(17)] + public void Rectangle_HeightAndWidth() { App.WaitForElement("Options"); App.Tap("Options"); @@ -515,8 +524,7 @@ public void Shape_Rectangle_HeightAndWidth() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(18)] public void Rectangle_StrokeColor_Thickness() { App.WaitForElement("Options"); @@ -536,8 +544,7 @@ public void Rectangle_StrokeColor_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(19)] public void Ellipse_StrokeColor_Thickness() { App.WaitForElement("Options"); @@ -562,8 +569,8 @@ public void Ellipse_StrokeColor_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + + [Test, Order(20)] public void Line_StrokeColor_Thickness() { App.WaitForElement("Options"); @@ -602,8 +609,8 @@ public void Line_StrokeColor_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + + [Test, Order(21)] public void Polygon_StrokeColor_Thickness() { App.WaitForElement("Options"); @@ -628,15 +635,15 @@ public void Polygon_StrokeColor_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] - public void PolyLine_StrokeColor_Thickness() + + [Test, Order(22)] + public void Polyline_StrokeColor_Thickness() { App.WaitForElement("Options"); App.Tap("Options"); - App.WaitForElement("PolyLineRadioButton"); - App.Tap("PolyLineRadioButton"); + App.WaitForElement("PolylineRadioButton"); + App.Tap("PolylineRadioButton"); App.WaitForElement("StrokeColorRedRadioButton"); App.Tap("StrokeColorRedRadioButton"); @@ -652,8 +659,7 @@ public void PolyLine_StrokeColor_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(23)] public void Path_StrokeColor_Thickness() { App.WaitForElement("Options"); @@ -676,8 +682,7 @@ public void Path_StrokeColor_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(24)] public void Rectangle_StrokeColor_DashArray_Thickness() { App.WaitForElement("Options"); @@ -702,8 +707,7 @@ public void Rectangle_StrokeColor_DashArray_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + [Test, Order(25)] public void Ellipse_StrokeColor_DashArray_Thickness() { App.WaitForElement("Options"); @@ -730,8 +734,8 @@ public void Ellipse_StrokeColor_DashArray_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + + [Test, Order(26)] public void Line_StrokeColor_DashArray_Thickness() { App.WaitForElement("Options"); @@ -778,8 +782,8 @@ public void Line_StrokeColor_DashArray_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + + [Test, Order(27)] public void Polygon_StrokeColor_DashArray_Thickness() { App.WaitForElement("Options"); @@ -806,15 +810,15 @@ public void Polygon_StrokeColor_DashArray_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] - public void PolyLine_StrokeColor_DashArray_Thickness() + + [Test, Order(28)] + public void Polyline_StrokeColor_DashArray_Thickness() { App.WaitForElement("Options"); App.Tap("Options"); - App.WaitForElement("PolyLineRadioButton"); - App.Tap("PolyLineRadioButton"); + App.WaitForElement("PolylineRadioButton"); + App.Tap("PolylineRadioButton"); App.WaitForElement("StrokeColorRedRadioButton"); App.Tap("StrokeColorRedRadioButton"); @@ -834,8 +838,8 @@ public void PolyLine_StrokeColor_DashArray_Thickness() VerifyShapeScreenshot(); } - [Test] - [Category(UITestCategories.Shape)] + + [Test, Order(29)] public void Path_StrokeColor_DashArray_Thickness() { App.WaitForElement("Options"); @@ -863,4 +867,734 @@ public void Path_StrokeColor_DashArray_Thickness() VerifyShapeScreenshot(); } + [Test, Order(31)] + public void RoundRectangle_CornerRadius() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("RoundRectangleRadioButton"); + App.Tap("RoundRectangleRadioButton"); + + App.WaitForElement("FillColorBlueRadioButton"); + App.Tap("FillColorBlueRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "3"); + + App.WaitForElement("CornerRadiusEntry"); + App.Tap("CornerRadiusEntry"); + App.ClearText("CornerRadiusEntry"); + App.EnterText("CornerRadiusEntry", "30"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(32)] + public void RoundRectangle_DashArray_DashOffset_Thickness() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("RoundRectangleRadioButton"); + App.Tap("RoundRectangleRadioButton"); + + App.WaitForElement("CornerRadiusEntry"); + App.Tap("CornerRadiusEntry"); + App.ClearText("CornerRadiusEntry"); + App.EnterText("CornerRadiusEntry", "20"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "5"); + + App.WaitForElement("StrokeDashArrayEntry"); + App.Tap("StrokeDashArrayEntry"); + App.ClearText("StrokeDashArrayEntry"); + App.EnterText("StrokeDashArrayEntry", "5,2"); + + App.WaitForElement("StrokeDashOffsetEntry"); + App.Tap("StrokeDashOffsetEntry"); + App.ClearText("StrokeDashOffsetEntry"); + App.EnterText("StrokeDashOffsetEntry", "5"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(33)] + public void Line_StrokeLineCap_Round() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("LineRadioButton"); + App.Tap("LineRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "12"); + + App.WaitForElement("StrokeLineCapRoundRadioButton"); + App.Tap("StrokeLineCapRoundRadioButton"); + + App.WaitForElement("X1Entry"); + App.Tap("X1Entry"); + App.ClearText("X1Entry"); + App.EnterText("X1Entry", "50"); + + App.WaitForElement("Y1Entry"); + App.Tap("Y1Entry"); + App.ClearText("Y1Entry"); + App.EnterText("Y1Entry", "100"); + + App.WaitForElement("X2Entry"); + App.Tap("X2Entry"); + App.ClearText("X2Entry"); + App.EnterText("X2Entry", "250"); + + App.WaitForElement("Y2Entry"); + App.Tap("Y2Entry"); + App.ClearText("Y2Entry"); + App.EnterText("Y2Entry", "100"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(34)] + public void Line_StrokeLineCap_Square() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("LineRadioButton"); + App.Tap("LineRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "12"); + + App.WaitForElement("StrokeLineCapSquareRadioButton"); + App.Tap("StrokeLineCapSquareRadioButton"); + + App.WaitForElement("X1Entry"); + App.Tap("X1Entry"); + App.ClearText("X1Entry"); + App.EnterText("X1Entry", "50"); + + App.WaitForElement("Y1Entry"); + App.Tap("Y1Entry"); + App.ClearText("Y1Entry"); + App.EnterText("Y1Entry", "100"); + + App.WaitForElement("X2Entry"); + App.Tap("X2Entry"); + App.ClearText("X2Entry"); + App.EnterText("X2Entry", "250"); + + App.WaitForElement("Y2Entry"); + App.Tap("Y2Entry"); + App.ClearText("Y2Entry"); + App.EnterText("Y2Entry", "100"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(35)] + public void Polyline_StrokeLineJoin_Round() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PolylineRadioButton"); + App.Tap("PolylineRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "20"); + + App.WaitForElement("StrokeLineJoinRoundRadioButton"); + App.Tap("StrokeLineJoinRoundRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(36)] + public void Polyline_StrokeLineJoin_Bevel() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PolylineRadioButton"); + App.Tap("PolylineRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "20"); + + App.WaitForElement("StrokeLineJoinBevelRadioButton"); + App.Tap("StrokeLineJoinBevelRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(37)] + public void Path_Aspect_Uniform() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PathRadioButton"); + App.Tap("PathRadioButton"); + + App.WaitForElement("FillColorBlueRadioButton"); + App.Tap("FillColorBlueRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("AspectUniformRadioButton"); + App.Tap("AspectUniformRadioButton"); + + App.WaitForElement("PathDataEntry"); + App.Tap("PathDataEntry"); + App.ClearText("PathDataEntry"); + App.EnterText("PathDataEntry", "M 10,100 C 10,100 40,-20 100,50 C 160,-20 190,100 190,100 C 190,100 100,190 100,190 C 100,190 10,100 10,100 Z"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(38)] + public void Path_Aspect_Fill() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PathRadioButton"); + App.Tap("PathRadioButton"); + + App.WaitForElement("FillColorBlueRadioButton"); + App.Tap("FillColorBlueRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("AspectFillRadioButton"); + App.Tap("AspectFillRadioButton"); + + App.WaitForElement("PathDataEntry"); + App.Tap("PathDataEntry"); + App.ClearText("PathDataEntry"); + App.EnterText("PathDataEntry", "M 10,100 C 10,100 40,-20 100,50 C 160,-20 190,100 190,100 C 190,100 100,190 100,190 C 100,190 10,100 10,100 Z"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(39)] + public void Path_Aspect_UniformToFill() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PathRadioButton"); + App.Tap("PathRadioButton"); + + App.WaitForElement("FillColorBlueRadioButton"); + App.Tap("FillColorBlueRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("AspectUniformToFillRadioButton"); + App.Tap("AspectUniformToFillRadioButton"); + + App.WaitForElement("PathDataEntry"); + App.Tap("PathDataEntry"); + App.ClearText("PathDataEntry"); + App.EnterText("PathDataEntry", "M 10,100 C 10,100 40,-20 100,50 C 160,-20 190,100 190,100 C 190,100 100,190 100,190 C 100,190 10,100 10,100 Z"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(40)] + public void RoundRectangle_HeightAndWidth() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("RoundRectangleRadioButton"); + App.Tap("RoundRectangleRadioButton"); + + App.WaitForElement("RoundRectangleHeightEntry"); + App.Tap("RoundRectangleHeightEntry"); + App.ClearText("RoundRectangleHeightEntry"); + App.EnterText("RoundRectangleHeightEntry", "100"); + + App.WaitForElement("RoundRectangleWidthEntry"); + App.Tap("RoundRectangleWidthEntry"); + App.ClearText("RoundRectangleWidthEntry"); + App.EnterText("RoundRectangleWidthEntry", "200"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(41)] + public void Ellipse_HeightAndWidth() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("EllipseRadioButton"); + App.Tap("EllipseRadioButton"); + + App.WaitForElement("EllipseHeightEntry"); + App.Tap("EllipseHeightEntry"); + App.ClearText("EllipseHeightEntry"); + App.EnterText("EllipseHeightEntry", "80"); + + App.WaitForElement("EllipseWidthEntry"); + App.Tap("EllipseWidthEntry"); + App.ClearText("EllipseWidthEntry"); + App.EnterText("EllipseWidthEntry", "220"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(42)] + public void RoundRectangle_StrokeColor_Thickness() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("RoundRectangleRadioButton"); + App.Tap("RoundRectangleRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "5"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(43)] + public void RoundRectangle_StrokeColor_DashArray_Thickness() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("RoundRectangleRadioButton"); + App.Tap("RoundRectangleRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeDashArrayEntry"); + App.Tap("StrokeDashArrayEntry"); + App.ClearText("StrokeDashArrayEntry"); + App.EnterText("StrokeDashArrayEntry", "5,2"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "5"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(44)] + public void Line_StrokeLineCap_Flat() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("LineRadioButton"); + App.Tap("LineRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "12"); + + App.WaitForElement("StrokeLineCapFlatRadioButton"); + App.Tap("StrokeLineCapFlatRadioButton"); + + App.WaitForElement("X1Entry"); + App.Tap("X1Entry"); + App.ClearText("X1Entry"); + App.EnterText("X1Entry", "50"); + + App.WaitForElement("Y1Entry"); + App.Tap("Y1Entry"); + App.ClearText("Y1Entry"); + App.EnterText("Y1Entry", "100"); + + App.WaitForElement("X2Entry"); + App.Tap("X2Entry"); + App.ClearText("X2Entry"); + App.EnterText("X2Entry", "250"); + + App.WaitForElement("Y2Entry"); + App.Tap("Y2Entry"); + App.ClearText("Y2Entry"); + App.EnterText("Y2Entry", "100"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(45)] + public void Polyline_StrokeLineCap_Round() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PolylineRadioButton"); + App.Tap("PolylineRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "12"); + + App.WaitForElement("StrokeLineCapRoundRadioButton"); + App.Tap("StrokeLineCapRoundRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(46)] + public void Polyline_StrokeLineCap_Square() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PolylineRadioButton"); + App.Tap("PolylineRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "12"); + + App.WaitForElement("StrokeLineCapSquareRadioButton"); + App.Tap("StrokeLineCapSquareRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(47)] + public void Path_StrokeLineCap_Round() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PathRadioButton"); + App.Tap("PathRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "8"); + + App.WaitForElement("StrokeLineCapRoundRadioButton"); + App.Tap("StrokeLineCapRoundRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(48)] + public void Path_StrokeLineCap_Square() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PathRadioButton"); + App.Tap("PathRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "8"); + + App.WaitForElement("StrokeLineCapSquareRadioButton"); + App.Tap("StrokeLineCapSquareRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(49)] + public void Polygon_StrokeLineJoin_Round() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PolygonRadioButton"); + App.Tap("PolygonRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "20"); + + App.WaitForElement("StrokeLineJoinRoundRadioButton"); + App.Tap("StrokeLineJoinRoundRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(50)] + public void Polygon_StrokeLineJoin_Bevel() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PolygonRadioButton"); + App.Tap("PolygonRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "20"); + + App.WaitForElement("StrokeLineJoinBevelRadioButton"); + App.Tap("StrokeLineJoinBevelRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(51)] + public void Path_StrokeLineJoin_Round() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PathRadioButton"); + App.Tap("PathRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "20"); + + App.WaitForElement("StrokeLineJoinRoundRadioButton"); + App.Tap("StrokeLineJoinRoundRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(52)] + public void Path_StrokeLineJoin_Bevel() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PathRadioButton"); + App.Tap("PathRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("StrokeThicknessEntry"); + App.Tap("StrokeThicknessEntry"); + App.ClearText("StrokeThicknessEntry"); + App.EnterText("StrokeThicknessEntry", "20"); + + App.WaitForElement("StrokeLineJoinBevelRadioButton"); + App.Tap("StrokeLineJoinBevelRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(53)] + public void Polygon_FillRule_Nonzero() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PolygonRadioButton"); + App.Tap("PolygonRadioButton"); + + App.WaitForElement("FillColorBlueRadioButton"); + App.Tap("FillColorBlueRadioButton"); + + App.WaitForElement("PolygonPointsEntry"); + App.Tap("PolygonPointsEntry"); + App.ClearText("PolygonPointsEntry"); + App.EnterText("PolygonPointsEntry", "150,15 60,135 210,58 90,58 240,135"); + + App.WaitForElement("FillRuleNonzeroRadioButton"); + App.Tap("FillRuleNonzeroRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + + [Test, Order(54)] + public void Polyline_FillRule_Nonzero() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PolylineRadioButton"); + App.Tap("PolylineRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("FillColorBlueRadioButton"); + App.Tap("FillColorBlueRadioButton"); + + App.WaitForElement("FillRuleNonzeroRadioButton"); + App.Tap("FillRuleNonzeroRadioButton"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + [Test, Order(55)] + public void Path_Aspect_None() + { + App.WaitForElement("Options"); + App.Tap("Options"); + + App.WaitForElement("PathRadioButton"); + App.Tap("PathRadioButton"); + + App.WaitForElement("FillColorBlueRadioButton"); + App.Tap("FillColorBlueRadioButton"); + + App.WaitForElement("StrokeColorRedRadioButton"); + App.Tap("StrokeColorRedRadioButton"); + + App.WaitForElement("AspectNoneRadioButton"); + App.Tap("AspectNoneRadioButton"); + + App.WaitForElement("PathDataEntry"); + App.Tap("PathDataEntry"); + App.ClearText("PathDataEntry"); + App.EnterText("PathDataEntry", "M 10,100 C 10,100 40,-20 100,50 C 160,-20 190,100 190,100 C 190,100 100,190 100,190 C 100,190 10,100 10,100 Z"); + + App.WaitForElement("Apply"); + App.Tap("Apply"); + + VerifyShapeScreenshot(); + } + } diff --git a/src/Controls/tests/TestCases.Shared.Tests/UITest.cs b/src/Controls/tests/TestCases.Shared.Tests/UITest.cs index ff5ebffc306e..7bee4d3aa903 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/UITest.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/UITest.cs @@ -23,7 +23,7 @@ namespace Microsoft.Maui.TestCases.Tests #endif public abstract class UITest : UITestBase { - string _defaultiOSVersion = "18.5"; + string _defaultiOSVersion = "26.0"; protected const int SetupMaxRetries = 1; protected const int InstrumentationCrashMaxRetries = 1; @@ -91,17 +91,17 @@ public override IConfig GetTestConfig() config.SetProperty("Headless", bool.Parse(Environment.GetEnvironmentVariable("HEADLESS") ?? "false")); break; case TestDevice.iOS: - string udid = Environment.GetEnvironmentVariable("DEVICE_UDID") ?? ""; + string udid = Environment.GetEnvironmentVariable("DEVICE_UDID") ?? "923A5CD6-992C-4D03-ABD4-1EEA6F183433"; if (!string.IsNullOrEmpty(udid)) { config.SetProperty("Udid", udid); } else - { + { config.SetProperty("DeviceName", Environment.GetEnvironmentVariable("DEVICE_NAME") ?? "iPhone Xs"); config.SetProperty("PlatformVersion", Environment.GetEnvironmentVariable("PLATFORM_VERSION") ?? _defaultiOSVersion); } - + config.SetProperty("Headless", bool.Parse(Environment.GetEnvironmentVariable("HEADLESS") ?? "false")); break; case TestDevice.Mac: @@ -165,7 +165,7 @@ public override void LaunchAppWithTest() { App.LaunchApp(); } - + /// /// Verifies the screenshots and returns an exception in case of failure. /// @@ -261,14 +261,14 @@ public void VerifyScreenshot( ) { retryDelay ??= TimeSpan.FromMilliseconds(500); - + // If retryTimeout is specified, keep retrying until timeout expires // Otherwise, just retry once (backward compatible behavior) if (retryTimeout.HasValue) { var stopwatch = System.Diagnostics.Stopwatch.StartNew(); Exception? lastException = null; - + while (stopwatch.Elapsed < retryTimeout.Value) { try @@ -285,7 +285,7 @@ public void VerifyScreenshot( } } } - + // Final attempt after timeout try { @@ -560,7 +560,7 @@ protected virtual void TryToResetTestState() { Reset(); } - + protected override void FixtureSetup() { int retries = 0; diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Ellipse_HeightAndWidth.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Ellipse_HeightAndWidth.png new file mode 100644 index 000000000000..ed8cb8a68357 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Ellipse_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Line_StrokeLineCap_Flat.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Line_StrokeLineCap_Flat.png new file mode 100644 index 000000000000..a96e0e14fb4c Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Line_StrokeLineCap_Flat.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Line_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Line_StrokeLineCap_Round.png new file mode 100644 index 000000000000..db50420acfce Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Line_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Line_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Line_StrokeLineCap_Square.png new file mode 100644 index 000000000000..2eb9e56898a9 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Line_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_Fill.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_Fill.png new file mode 100644 index 000000000000..a2d0bbcef316 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_Fill.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_None.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_None.png new file mode 100644 index 000000000000..ac0c554cb56a Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_None.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_Uniform.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_Uniform.png new file mode 100644 index 000000000000..4c1e01318090 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_Uniform.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_UniformToFill.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_UniformToFill.png new file mode 100644 index 000000000000..57c8c3f021d0 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Aspect_UniformToFill.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_DashArray_DashOffset_Thickness.png index a38d97ef9e6c..8470ee1c1b26 100644 Binary files a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_PathData_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_PathData_Thickness.png new file mode 100644 index 000000000000..73222f47434c Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_PathData_Thickness.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Points_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Points_Thickness.png deleted file mode 100644 index 132468ac4e42..000000000000 Binary files a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_Points_Thickness.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeColor_Thickness.png index 625e6b36b5a8..1d871b5c054f 100644 Binary files a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineCap_Round.png new file mode 100644 index 000000000000..86b220fad6bb Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineCap_Square.png new file mode 100644 index 000000000000..4b07bd96c5ed Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..3cd59bd8a97c Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..6bfcc51f50ae Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Path_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/PolyLine_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/PolyLine_DashArray_DashOffset_Thickness.png deleted file mode 100644 index 8ccee3b88c09..000000000000 Binary files a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/PolyLine_DashArray_DashOffset_Thickness.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/PolyLine_Points_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/PolyLine_Points_Thickness.png deleted file mode 100644 index d011d9c6f274..000000000000 Binary files a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/PolyLine_Points_Thickness.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_DashArray_DashOffset_Thickness.png index 72694fc8f67d..3c1df15701ac 100644 Binary files a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_FillRule_Nonzero.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_FillRule_Nonzero.png new file mode 100644 index 000000000000..fe8bcffb1d3b Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_FillRule_Nonzero.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_Pentagon.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_Pentagon.png new file mode 100644 index 000000000000..2650cf51a086 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_Pentagon.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_StrokeColor_Thickness.png index 795ba9fac93d..cdd98569d831 100644 Binary files a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..4e37b7e73603 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..38ae31bc1c07 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polygon_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_DashArray_DashOffset_Thickness.png new file mode 100644 index 000000000000..851b637132b5 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_FillRule_Nonzero.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_FillRule_Nonzero.png new file mode 100644 index 000000000000..6158eab6918d Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_FillRule_Nonzero.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_Points_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_Points_Thickness.png new file mode 100644 index 000000000000..616b4c3f2f25 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_Points_Thickness.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/PolyLine_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeColor_DashArray_Thickness.png similarity index 100% rename from src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/PolyLine_StrokeColor_DashArray_Thickness.png rename to src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeColor_DashArray_Thickness.png diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/PolyLine_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeColor_Thickness.png similarity index 100% rename from src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/PolyLine_StrokeColor_Thickness.png rename to src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeColor_Thickness.png diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineCap_Round.png new file mode 100644 index 000000000000..88f112ae1260 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineCap_Square.png new file mode 100644 index 000000000000..0e1c58c6d324 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..94ff74925900 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..2cf0ce472759 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Polyline_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Rectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Rectangle_HeightAndWidth.png new file mode 100644 index 000000000000..d813c40671f7 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Rectangle_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Rectangle_XAndYRadius.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Rectangle_XAndYRadius.png new file mode 100644 index 000000000000..65b75a636264 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Rectangle_XAndYRadius.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_CornerRadius.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_CornerRadius.png new file mode 100644 index 000000000000..196c4c062cb7 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_CornerRadius.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_DashArray_DashOffset_Thickness.png new file mode 100644 index 000000000000..97d7020dc475 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_HeightAndWidth.png new file mode 100644 index 000000000000..6570013d3fa6 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_StrokeColor_DashArray_Thickness.png new file mode 100644 index 000000000000..2ff4ffbeec2f Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_StrokeColor_Thickness.png new file mode 100644 index 000000000000..60d1e15513b6 Binary files /dev/null and b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/RoundRectangle_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Shape_Polygon_Pentagon.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Shape_Polygon_Pentagon.png deleted file mode 100644 index e9b4675e1d50..000000000000 Binary files a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Shape_Polygon_Pentagon.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Shape_Rectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Shape_Rectangle_HeightAndWidth.png deleted file mode 100644 index 03b92a10bc3f..000000000000 Binary files a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Shape_Rectangle_HeightAndWidth.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Shape_Rectangle_XAndYRadius.png b/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Shape_Rectangle_XAndYRadius.png deleted file mode 100644 index 8cb4001a67cc..000000000000 Binary files a/src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/Shape_Rectangle_XAndYRadius.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_DashArray_DashOffset_Thickness.png index bfb21ab19c24..dbf4365f0843 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_FillColorWithStrokeColor_Shadow.png index 52f180dda758..36c8fd5663bc 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_HeightAndWidth.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_HeightAndWidth.png new file mode 100644 index 000000000000..b1b6dfd2fab2 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_StrokeColor_DashArray_Thickness.png index 8be902b8085e..3941f0db8df1 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_StrokeColor_DashArray_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_StrokeColor_Thickness.png index 0f04b66818fe..28750ca2814c 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Ellipse_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_DashArray_DashOffset_Thickness.png index 475b84400e8b..ab6d33f6a324 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_FillColorWithStrokeColor_Shadow.png deleted file mode 100644 index 0e0a1eb4d68e..000000000000 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_FillColorWithStrokeColor_Shadow.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_DashArray_Thickness.png index 2ed05d3684ad..11ec2e458722 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_DashArray_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_Shadow.png new file mode 100644 index 000000000000..b94a401257e3 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_Thickness.png index f6dd0cd7c0b5..e828f07bb968 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeLineCap_Flat.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeLineCap_Flat.png new file mode 100644 index 000000000000..8bde3812ba11 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeLineCap_Flat.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeLineCap_Round.png new file mode 100644 index 000000000000..c5988d98dff1 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeLineCap_Square.png new file mode 100644 index 000000000000..e231e5923d69 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Line_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_Fill.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_Fill.png new file mode 100644 index 000000000000..d98378e70975 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_Fill.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_None.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_None.png new file mode 100644 index 000000000000..a56b8737dce3 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_None.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_Uniform.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_Uniform.png new file mode 100644 index 000000000000..380691daf834 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_Uniform.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_UniformToFill.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_UniformToFill.png new file mode 100644 index 000000000000..c587371d436d Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Aspect_UniformToFill.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_DashArray_DashOffset_Thickness.png index eed471ccbc87..ae7282bd96fc 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_FillColorWithStrokeColor_Shadow.png index aad311eabb74..f2c4db7498f7 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_PathData_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_PathData_Thickness.png new file mode 100644 index 000000000000..f40152ee07fa Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_PathData_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Points_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Points_Thickness.png deleted file mode 100644 index 0ab0e933bb4c..000000000000 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_Points_Thickness.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeColor_DashArray_Thickness.png index 4c01c3c3fbb5..71cdd39a5bab 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeColor_DashArray_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeColor_Thickness.png index 7472e6fd68f3..7a3caca523c3 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineCap_Round.png new file mode 100644 index 000000000000..dcaec4dcc07c Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineCap_Square.png new file mode 100644 index 000000000000..07f013b52b50 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..1229ac57dcae Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..8343a6a37bcb Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Path_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_DashArray_DashOffset_Thickness.png index e3d2b7472990..d2e841e5e8b0 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_FillColorWithStrokeColor_Shadow.png deleted file mode 100644 index 79ee93384e33..000000000000 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_FillColorWithStrokeColor_Shadow.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_Points_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_Points_Thickness.png index f09df8e8e816..5c0d54914ca3 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_Points_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_Points_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_StrokeColor_DashArray_Thickness.png index 0e744d3d34e4..553a372f60aa 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_StrokeColor_DashArray_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_StrokeColor_Thickness.png index 8d9c97e4e65e..ebe74b47ecd7 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/PolyLine_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_DashArray_DashOffset_Thickness.png index 162e5787e753..f19f99477944 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_FillColorWithStrokeColor_Shadow.png index 99f5388d436c..430f5fbbaaf7 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_FillRule_Nonzero.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_FillRule_Nonzero.png new file mode 100644 index 000000000000..cecebec882fd Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_FillRule_Nonzero.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_Pentagon.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_Pentagon.png new file mode 100644 index 000000000000..f8092270a2db Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_Pentagon.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeColor_DashArray_Thickness.png index 3e5e62630a4e..81968da7e6b4 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeColor_DashArray_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeColor_Thickness.png index 6b519b59ca66..b9ce30a59cd2 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..b9507a8145c7 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..d899888b2358 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polygon_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_FillRule_Nonzero.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_FillRule_Nonzero.png new file mode 100644 index 000000000000..6282071194d0 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_FillRule_Nonzero.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeColor_Shadow.png new file mode 100644 index 000000000000..63de40c79b7b Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineCap_Round.png new file mode 100644 index 000000000000..25519d7ab286 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineCap_Square.png new file mode 100644 index 000000000000..a36ce30448b3 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..7266d04bcb4f Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..4bdf6014c0eb Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Polyline_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_DashArray_DashOffset_Thickness.png index 2312eee44f80..56cfc08bfd6e 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_FillColorWithStrokeColor_Shadow.png index 8ee01ff93108..aefb5c5f1e0e 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_HeightAndWidth.png new file mode 100644 index 000000000000..01e05198f803 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_StrokeColor_DashArray_Thickness.png index 2a0e462fb66b..01ae7b5bb405 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_StrokeColor_DashArray_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_StrokeColor_Thickness.png index 246d737fa2b6..68f82fc75c3a 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_XAndYRadius.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_XAndYRadius.png new file mode 100644 index 000000000000..827dbbc406ad Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Rectangle_XAndYRadius.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_CornerRadius.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_CornerRadius.png new file mode 100644 index 000000000000..a91b5864c005 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_CornerRadius.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_DashArray_DashOffset_Thickness.png new file mode 100644 index 000000000000..1822eaec6f02 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_FillColorWithStrokeColor_Shadow.png new file mode 100644 index 000000000000..aeda1f4939f0 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_HeightAndWidth.png new file mode 100644 index 000000000000..ca607d5ac03f Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_StrokeColor_DashArray_Thickness.png new file mode 100644 index 000000000000..03123e71877e Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_StrokeColor_Thickness.png new file mode 100644 index 000000000000..e2876bb0910b Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/RoundRectangle_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Shape_Rectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Shape_Rectangle_HeightAndWidth.png deleted file mode 100644 index 4bb77b970a8a..000000000000 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Shape_Rectangle_HeightAndWidth.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Shape_Rectangle_XAndYRadius.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Shape_Rectangle_XAndYRadius.png deleted file mode 100644 index 81a0b3b8cb81..000000000000 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/Shape_Rectangle_XAndYRadius.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_DashArray_DashOffset_Thickness.png index bdf91dc0721c..08ff223c18af 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_FillColorWithStrokeColor_Shadow.png index 4e54c96caf2c..1c400ab3fc76 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_HeightAndWidth.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_HeightAndWidth.png new file mode 100644 index 000000000000..11e6717f9953 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_StrokeColor_Thickness.png index 83bbfb73312b..a69d939af13d 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Ellipse_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_DashArray_DashOffset_Thickness.png index be6557ab5abd..34d26cdbb6e2 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_FillColorWithStrokeColor_Shadow.png deleted file mode 100644 index 91a5bd12c029..000000000000 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_FillColorWithStrokeColor_Shadow.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeColor_Shadow.png new file mode 100644 index 000000000000..de93a50f1eab Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeColor_Thickness.png index c931827e35eb..6d7fee663942 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Shape_Rectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeLineCap_Flat.png similarity index 87% rename from src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Shape_Rectangle_HeightAndWidth.png rename to src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeLineCap_Flat.png index b73980427723..b0719e9098b2 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Shape_Rectangle_HeightAndWidth.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeLineCap_Flat.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeLineCap_Round.png new file mode 100644 index 000000000000..0cedb13fea77 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeLineCap_Square.png new file mode 100644 index 000000000000..10c6e61fffb9 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Line_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_Fill.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_Fill.png new file mode 100644 index 000000000000..e1bfc42960aa Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_Fill.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_None.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_None.png new file mode 100644 index 000000000000..a9129a7a68c8 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_None.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_Uniform.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_Uniform.png new file mode 100644 index 000000000000..261e0d070695 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_Uniform.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_UniformToFill.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_UniformToFill.png new file mode 100644 index 000000000000..ad46322b9691 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Aspect_UniformToFill.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_DashArray_DashOffset_Thickness.png index 41d42ffadc2d..c4a495007b7d 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_FillColorWithStrokeColor_Shadow.png index 577389cd2e16..5d8a54a14e67 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_PathData_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_PathData_Thickness.png new file mode 100644 index 000000000000..5011e194a022 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_PathData_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Points_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Points_Thickness.png deleted file mode 100644 index 4a68aac87ec4..000000000000 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_Points_Thickness.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeColor_Thickness.png index ab91a0e0b3b3..c7aa3bcc03c7 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineCap_Round.png new file mode 100644 index 000000000000..d7e67c2d1c54 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineCap_Square.png new file mode 100644 index 000000000000..7d61d4ada6dd Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..30648879201e Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..a02e593b7380 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Path_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_DashArray_DashOffset_Thickness.png index 93902f4ca168..9132f2928487 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_FillColorWithStrokeColor_Shadow.png deleted file mode 100644 index 2ae6030abc20..000000000000 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_FillColorWithStrokeColor_Shadow.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_Points_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_Points_Thickness.png index 487c7f289ce3..21802eb5a4c3 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_Points_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_Points_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_DashArray_DashOffset_Thickness.png index 80b0b8ac48e8..3a4ce07fc751 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_FillColorWithStrokeColor_Shadow.png index d4712c0837f2..29f385f88469 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_FillRule_Nonzero.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_FillRule_Nonzero.png new file mode 100644 index 000000000000..9613614c0cf0 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_FillRule_Nonzero.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_Pentagon.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_Pentagon.png new file mode 100644 index 000000000000..cbd352d02539 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_Pentagon.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_StrokeColor_Thickness.png index d02b8853aa80..12e03a84d917 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_StrokeColor_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..f9af303e70aa Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..0da770924b61 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polygon_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_FillRule_Nonzero.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_FillRule_Nonzero.png new file mode 100644 index 000000000000..48c824fd8855 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_FillRule_Nonzero.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeColor_DashArray_Thickness.png similarity index 100% rename from src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_StrokeColor_DashArray_Thickness.png rename to src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeColor_DashArray_Thickness.png diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeColor_Shadow.png new file mode 100644 index 000000000000..11192ca397b3 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeColor_Thickness.png similarity index 100% rename from src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/PolyLine_StrokeColor_Thickness.png rename to src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeColor_Thickness.png diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineCap_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineCap_Round.png new file mode 100644 index 000000000000..b44b94c4e590 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineCap_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineCap_Square.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineCap_Square.png new file mode 100644 index 000000000000..53ad89956a9a Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineCap_Square.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineJoin_Bevel.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineJoin_Bevel.png new file mode 100644 index 000000000000..c89c8d8ab7a7 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineJoin_Bevel.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineJoin_Round.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineJoin_Round.png new file mode 100644 index 000000000000..337b44288560 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Polyline_StrokeLineJoin_Round.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_DashArray_DashOffset_Thickness.png index 87956fe0b2d9..448a551d8315 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_DashArray_DashOffset_Thickness.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_FillColorWithStrokeColor_Shadow.png index 97b5922b6d1d..2f0452e0f29b 100644 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_FillColorWithStrokeColor_Shadow.png and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_HeightAndWidth.png new file mode 100644 index 000000000000..e2303ec17973 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_XAndYRadius.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_XAndYRadius.png new file mode 100644 index 000000000000..75a43023546c Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Rectangle_XAndYRadius.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_CornerRadius.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_CornerRadius.png new file mode 100644 index 000000000000..16e461e4d77a Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_CornerRadius.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_DashArray_DashOffset_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_DashArray_DashOffset_Thickness.png new file mode 100644 index 000000000000..c037cad20109 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_DashArray_DashOffset_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_FillColorWithStrokeColor_Shadow.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_FillColorWithStrokeColor_Shadow.png new file mode 100644 index 000000000000..702f7660626b Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_FillColorWithStrokeColor_Shadow.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_HeightAndWidth.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_HeightAndWidth.png new file mode 100644 index 000000000000..db370c7d5361 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_HeightAndWidth.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_StrokeColor_DashArray_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_StrokeColor_DashArray_Thickness.png new file mode 100644 index 000000000000..5c8a0b80af31 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_StrokeColor_DashArray_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_StrokeColor_Thickness.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_StrokeColor_Thickness.png new file mode 100644 index 000000000000..2fbc307def85 Binary files /dev/null and b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/RoundRectangle_StrokeColor_Thickness.png differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Shape_Polygon_Pentagon.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Shape_Polygon_Pentagon.png deleted file mode 100644 index 77f2734c7a2c..000000000000 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Shape_Polygon_Pentagon.png and /dev/null differ diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Shape_Rectangle_XAndYRadius.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Shape_Rectangle_XAndYRadius.png deleted file mode 100644 index 2f37405b9724..000000000000 Binary files a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/Shape_Rectangle_XAndYRadius.png and /dev/null differ