| Index: tests/RecorderTest.cpp
|
| diff --git a/tests/RecorderTest.cpp b/tests/RecorderTest.cpp
|
| index 21a897ca8b1a5e3b10ec759f758cf7dae8381833..aced54f7a906fa32c56ffc5ee25ad8b10fd8fd1f 100644
|
| --- a/tests/RecorderTest.cpp
|
| +++ b/tests/RecorderTest.cpp
|
| @@ -68,6 +68,20 @@ DEF_TEST(Recorder_CommentGroups, r) {
|
| REPORTER_ASSERT(r, 1 == tally.count<SkRecords::EndCommentGroup>());
|
| }
|
|
|
| +// DrawData is similar to comment groups. It doesn't affect drawing, but
|
| +// it's a pass-through we provide to the client. Again, a simple reg. test.
|
| +DEF_TEST(Recorder_DrawData, r) {
|
| + SkRecord record;
|
| + SkRecorder recorder(&record, 100, 100);
|
| +
|
| + const char* data = "This sure is some data, eh?";
|
| + recorder.drawData(data, strlen(data));
|
| +
|
| + Tally tally;
|
| + tally.apply(record);
|
| + REPORTER_ASSERT(r, 1 == tally.count<SkRecords::DrawData>());
|
| +}
|
| +
|
| // Regression test for leaking refs held by optional arguments.
|
| DEF_TEST(Recorder_RefLeaking, r) {
|
| // We use SaveLayer to test:
|
| @@ -109,3 +123,30 @@ DEF_TEST(Recorder_RefPictures, r) {
|
| // the recorder destructor should have released us (back to unique)
|
| REPORTER_ASSERT(r, pic->unique());
|
| }
|
| +
|
| +DEF_TEST(Recorder_IsDrawingToLayer, r) {
|
| + SkRecord record;
|
| + SkRecorder recorder(&record, 100, 100);
|
| +
|
| + // We'll save, saveLayer, save, and saveLayer, then restore them all,
|
| + // checking that isDrawingToLayer() is correct at each step.
|
| +
|
| + REPORTER_ASSERT(r, !recorder.isDrawingToLayer());
|
| + recorder.save();
|
| + REPORTER_ASSERT(r, !recorder.isDrawingToLayer());
|
| + recorder.saveLayer(NULL, NULL);
|
| + REPORTER_ASSERT(r, recorder.isDrawingToLayer());
|
| + recorder.save();
|
| + REPORTER_ASSERT(r, recorder.isDrawingToLayer());
|
| + recorder.saveLayer(NULL, NULL);
|
| + REPORTER_ASSERT(r, recorder.isDrawingToLayer());
|
| + recorder.restore();
|
| + REPORTER_ASSERT(r, recorder.isDrawingToLayer());
|
| + recorder.restore();
|
| + REPORTER_ASSERT(r, recorder.isDrawingToLayer());
|
| + recorder.restore();
|
| + REPORTER_ASSERT(r, !recorder.isDrawingToLayer());
|
| + recorder.restore();
|
| + REPORTER_ASSERT(r, !recorder.isDrawingToLayer());
|
| +}
|
| +
|
|
|