| Index: tests/RoundRectTest.cpp
|
| diff --git a/tests/RoundRectTest.cpp b/tests/RoundRectTest.cpp
|
| index cff3e8f35ad5bc498390c2ddd992f97db2314549..9920d1013ba81eb69f56f42b03fc67ad84d5ccf0 100644
|
| --- a/tests/RoundRectTest.cpp
|
| +++ b/tests/RoundRectTest.cpp
|
| @@ -54,6 +54,32 @@ static void test_inset(skiatest::Reporter* reporter) {
|
| REPORTER_ASSERT(reporter, rr2.isRect());
|
| }
|
|
|
| +
|
| +static void test_9patch_rrect(skiatest::Reporter* reporter,
|
| + const SkRect& rect,
|
| + SkScalar l, SkScalar t, SkScalar r, SkScalar b,
|
| + bool checkRadii) {
|
| + SkRRect rr;
|
| + rr.setNinePatch(rect, l, t, r, b);
|
| +
|
| + REPORTER_ASSERT(reporter, SkRRect::kNinePatch_Type == rr.type());
|
| + REPORTER_ASSERT(reporter, rr.rect() == rect);
|
| +
|
| + if (checkRadii) {
|
| + // This test doesn't hold if the radii will be rescaled by SkRRect
|
| + SkRect ninePatchRadii = { l, t, r, b };
|
| + SkPoint rquad[4];
|
| + ninePatchRadii.toQuad(rquad);
|
| + for (int i = 0; i < 4; ++i) {
|
| + REPORTER_ASSERT(reporter, rquad[i] == rr.radii((SkRRect::Corner) i));
|
| + }
|
| + }
|
| + SkRRect rr2; // construct the same RR using the most general set function
|
| + SkVector radii[4] = { { l, t }, { r, t }, { r, b }, { l, b } };
|
| + rr2.setRectRadii(rect, radii);
|
| + REPORTER_ASSERT(reporter, rr2 == rr && rr2.getType() == rr.getType());
|
| +}
|
| +
|
| // Test out the basic API entry points
|
| static void test_round_rect_basic(skiatest::Reporter* reporter) {
|
| // Test out initialization methods
|
| @@ -130,24 +156,17 @@ static void test_round_rect_basic(skiatest::Reporter* reporter) {
|
| REPORTER_ASSERT(reporter, rr3_3 == rr3 && rr3_3.getType() == rr3.getType());
|
|
|
| //----
|
| - SkRect ninePatchRadii = { 10, 9, 8, 7 };
|
| -
|
| - SkRRect rr4;
|
| - rr4.setNinePatch(rect, ninePatchRadii.fLeft, ninePatchRadii.fTop, ninePatchRadii.fRight,
|
| - ninePatchRadii.fBottom);
|
| + test_9patch_rrect(reporter, rect, 10, 9, 8, 7, true);
|
|
|
| - REPORTER_ASSERT(reporter, SkRRect::kNinePatch_Type == rr4.type());
|
| - REPORTER_ASSERT(reporter, rr4.rect() == rect);
|
| + {
|
| + // Test out the rrect from skia:3466
|
| + SkRect rect2 = SkRect::MakeLTRB(0.358211994f, 0.755430222f, 0.872866154f, 0.806214333f);
|
|
|
| - SkPoint rquad[4];
|
| - ninePatchRadii.toQuad(rquad);
|
| - for (int i = 0; i < 4; ++i) {
|
| - REPORTER_ASSERT(reporter, rquad[i] == rr4.radii((SkRRect::Corner) i));
|
| + test_9patch_rrect(reporter,
|
| + rect2,
|
| + 0.926942348f, 0.642850280f, 0.529063463f, 0.587844372f,
|
| + false);
|
| }
|
| - SkRRect rr4_2; // construct the same RR using the most general set function
|
| - SkVector rr4_2_radii[4] = { { 10, 9 }, { 8, 9 }, {8, 7 }, { 10, 7 } };
|
| - rr4_2.setRectRadii(rect, rr4_2_radii);
|
| - REPORTER_ASSERT(reporter, rr4_2 == rr4 && rr4_2.getType() == rr4.getType());
|
|
|
| //----
|
| SkPoint radii2[4] = { { 0, 0 }, { 0, 0 }, { 50, 50 }, { 20, 50 } };
|
| @@ -164,8 +183,7 @@ static void test_round_rect_basic(skiatest::Reporter* reporter) {
|
|
|
| // Test out == & !=
|
| REPORTER_ASSERT(reporter, empty != rr3);
|
| - REPORTER_ASSERT(reporter, rr3 != rr4);
|
| - REPORTER_ASSERT(reporter, rr4 != rr5);
|
| + REPORTER_ASSERT(reporter, rr3 != rr5);
|
| }
|
|
|
| // Test out the cases when the RR degenerates to a rect
|
|
|