Fix for GrAALinearizingConvexPathRenderer incorrectly drawing non-convex paths
BUG=552080
Review URL: https://codereview.chromium.org/1522973002
diff --git a/tests/IsClosedSingleContourTest.cpp b/tests/IsClosedSingleContourTest.cpp
new file mode 100644
index 0000000..b550998
--- /dev/null
+++ b/tests/IsClosedSingleContourTest.cpp
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#include "Test.h"
+#include "SkPathPriv.h"
+
+DEF_TEST(IsClosedSingleContourTest, reporter) {
+ SkPath p;
+ REPORTER_ASSERT(reporter, !SkPathPriv::IsClosedSingleContour(p));
+
+ p.reset();
+ p.close();
+ REPORTER_ASSERT(reporter, !SkPathPriv::IsClosedSingleContour(p));
+
+ p.reset();
+ p.moveTo(10, 10);
+ p.close();
+ REPORTER_ASSERT(reporter, SkPathPriv::IsClosedSingleContour(p));
+
+ p.reset();
+ p.moveTo(10, 10);
+ p.lineTo(20, 20);
+ p.close();
+ REPORTER_ASSERT(reporter, SkPathPriv::IsClosedSingleContour(p));
+
+ p.reset();
+ p.moveTo(10, 10);
+ p.lineTo(20, 20);
+ p.quadTo(30, 30, 40, 40);
+ p.cubicTo(50, 50, 60, 60, 70, 70);
+ p.conicTo(30, 30, 40, 40, 0.5);
+ p.close();
+ REPORTER_ASSERT(reporter, SkPathPriv::IsClosedSingleContour(p));
+
+ p.reset();
+ p.moveTo(10, 10);
+ p.lineTo(20, 20);
+ p.lineTo(20, 30);
+ REPORTER_ASSERT(reporter, !SkPathPriv::IsClosedSingleContour(p));
+
+ p.reset();
+ p.moveTo(10, 10);
+ p.lineTo(20, 20);
+ p.moveTo(10, 10);
+ p.lineTo(20, 30);
+ p.close();
+ REPORTER_ASSERT(reporter, !SkPathPriv::IsClosedSingleContour(p));
+
+ p.reset();
+ p.moveTo(10, 10);
+ p.lineTo(20, 20);
+ p.close();
+ p.lineTo(20, 30);
+ p.close();
+ REPORTER_ASSERT(reporter, !SkPathPriv::IsClosedSingleContour(p));
+}