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));
+}