diff options
Diffstat (limited to 'tests/RecorderTest.cpp')
-rw-r--r-- | tests/RecorderTest.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/RecorderTest.cpp b/tests/RecorderTest.cpp index 21a897ca8b..aced54f7a9 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()); +} + |