From efbf913cc05daf658a9f298e319e85f549f2b122 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Tue, 23 Apr 2024 08:01:15 -0700 Subject: [PATCH] [Impeller] add test case for path that explicitly closes at origin. (flutter/engine#52314) Follow up from https://github.com/flutter/engine/pull/52290#discussion_r1575451249 --- .../flutter/impeller/geometry/path_unittests.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/engine/src/flutter/impeller/geometry/path_unittests.cc b/engine/src/flutter/impeller/geometry/path_unittests.cc index 6015bb264a1..54f6900a0f9 100644 --- a/engine/src/flutter/impeller/geometry/path_unittests.cc +++ b/engine/src/flutter/impeller/geometry/path_unittests.cc @@ -482,6 +482,22 @@ TEST(PathTest, CloseAfterMoveDoesNotAddNewLines) { EXPECT_EQ(path.GetComponentCount(Path::ComponentType::kContour), 2u); } +TEST(PathTest, CloseAtOriginDoesNotAddNewLineSegment) { + PathBuilder builder; + // Create a path that has a current position at the origin when close is + // called. This should not insert a new line segment + auto path = builder.LineTo({10, 0}) + .LineTo({10, 10}) + .LineTo({0, 10}) + .LineTo({0, 0}) + .Close() + .TakePath(); + + EXPECT_EQ(path.GetComponentCount(), 6u); + EXPECT_EQ(path.GetComponentCount(Path::ComponentType::kLinear), 4u); + EXPECT_EQ(path.GetComponentCount(Path::ComponentType::kContour), 2u); +} + TEST(PathTest, CanBeCloned) { PathBuilder builder; builder.MoveTo({10, 10});