| Index: tests/PathTest.cpp
|
| diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp
|
| index e872b0c839699f307c70f2e3ace1b3c3256da35a..629c8a959d50d46fdeb30ba2340100cf4699f6ba 100644
|
| --- a/tests/PathTest.cpp
|
| +++ b/tests/PathTest.cpp
|
| @@ -3060,6 +3060,52 @@ static void test_addPath(skiatest::Reporter* reporter) {
|
| REPORTER_ASSERT(reporter, p.getBounds() == reverseExpected);
|
| }
|
|
|
| +static void test_addPathMode(skiatest::Reporter* reporter, bool explicitMoveTo, bool extend) {
|
| + SkPath p, q;
|
| + if (explicitMoveTo) {
|
| + p.moveTo(1, 1);
|
| + }
|
| + p.lineTo(1, 2);
|
| + if (explicitMoveTo) {
|
| + q.moveTo(2, 1);
|
| + }
|
| + q.lineTo(2, 2);
|
| + p.addPath(q, extend ? SkPath::kExtend_AddPathMode : SkPath::kAppend_AddPathMode);
|
| + uint8_t verbs[4];
|
| + int verbcount = p.getVerbs(verbs, 4);
|
| + REPORTER_ASSERT(reporter, verbcount == 4);
|
| + REPORTER_ASSERT(reporter, verbs[0] == SkPath::kMove_Verb);
|
| + REPORTER_ASSERT(reporter, verbs[1] == SkPath::kLine_Verb);
|
| + REPORTER_ASSERT(reporter, verbs[2] == (extend ? SkPath::kLine_Verb : SkPath::kMove_Verb));
|
| + REPORTER_ASSERT(reporter, verbs[3] == SkPath::kLine_Verb);
|
| +}
|
| +
|
| +static void test_extendClosedPath(skiatest::Reporter* reporter) {
|
| + SkPath p, q;
|
| + p.moveTo(1, 1);
|
| + p.lineTo(1, 2);
|
| + p.lineTo(2, 2);
|
| + p.close();
|
| + q.moveTo(2, 1);
|
| + q.lineTo(2, 3);
|
| + p.addPath(q, SkPath::kExtend_AddPathMode);
|
| + uint8_t verbs[7];
|
| + int verbcount = p.getVerbs(verbs, 7);
|
| + REPORTER_ASSERT(reporter, verbcount == 7);
|
| + REPORTER_ASSERT(reporter, verbs[0] == SkPath::kMove_Verb);
|
| + REPORTER_ASSERT(reporter, verbs[1] == SkPath::kLine_Verb);
|
| + REPORTER_ASSERT(reporter, verbs[2] == SkPath::kLine_Verb);
|
| + REPORTER_ASSERT(reporter, verbs[3] == SkPath::kClose_Verb);
|
| + REPORTER_ASSERT(reporter, verbs[4] == SkPath::kMove_Verb);
|
| + REPORTER_ASSERT(reporter, verbs[5] == SkPath::kLine_Verb);
|
| + REPORTER_ASSERT(reporter, verbs[6] == SkPath::kLine_Verb);
|
| +
|
| + SkPoint pt;
|
| + REPORTER_ASSERT(reporter, p.getLastPt(&pt));
|
| + REPORTER_ASSERT(reporter, pt == SkPoint::Make(2, 3));
|
| + REPORTER_ASSERT(reporter, p.getPoint(3) == SkPoint::Make(1, 1));
|
| +}
|
| +
|
| static void test_conicTo_special_case(skiatest::Reporter* reporter) {
|
| SkPath p;
|
| p.conicTo(1, 2, 3, 4, -1);
|
| @@ -3377,6 +3423,11 @@ DEF_TEST(Paths, reporter) {
|
| test_arc(reporter);
|
| test_arcTo(reporter);
|
| test_addPath(reporter);
|
| + test_addPathMode(reporter, false, false);
|
| + test_addPathMode(reporter, true, false);
|
| + test_addPathMode(reporter, false, true);
|
| + test_addPathMode(reporter, true, true);
|
| + test_extendClosedPath(reporter);
|
| test_conicTo_special_case(reporter);
|
| test_get_point(reporter);
|
| test_contains(reporter);
|
|
|