diff --git a/tests/CanvasTest.cpp b/tests/CanvasTest.cpp
index 7128a22..da1fafd 100644
--- a/tests/CanvasTest.cpp
+++ b/tests/CanvasTest.cpp
@@ -9,6 +9,34 @@
 #include "SkBitmap.h"
 #include "SkCanvas.h"
 
+static void test_isDrawingToLayer(skiatest::Reporter* reporter) {
+    SkBitmap bm;
+    bm.setConfig(SkBitmap::kARGB_8888_Config, 256, 256);
+    bm.allocPixels();
+    
+    SkCanvas canvas(bm);
+
+    REPORTER_ASSERT(reporter, !canvas.isDrawingToLayer());
+    canvas.save();
+    REPORTER_ASSERT(reporter, !canvas.isDrawingToLayer());
+    
+    const SkRect* bounds = NULL;    // null means include entire bounds
+    const SkPaint* paint = NULL;
+
+    canvas.saveLayer(bounds, paint);
+    REPORTER_ASSERT(reporter, canvas.isDrawingToLayer());
+    canvas.restore();
+    REPORTER_ASSERT(reporter, !canvas.isDrawingToLayer());
+
+    canvas.saveLayer(bounds, paint);
+    canvas.saveLayer(bounds, paint);
+    REPORTER_ASSERT(reporter, canvas.isDrawingToLayer());
+    canvas.restore();
+    REPORTER_ASSERT(reporter, canvas.isDrawingToLayer());
+    canvas.restore();
+    // now layer count should be 0
+    REPORTER_ASSERT(reporter, !canvas.isDrawingToLayer());
+}
 
 static void TestCanvas(skiatest::Reporter* reporter) {
     SkBitmap bm;
@@ -31,6 +59,8 @@
     // should this pin to 1, or be a no-op, or crash?
     canvas.restoreToCount(0);
     REPORTER_ASSERT(reporter, 1 == canvas.getSaveCount());
+
+    test_isDrawingToLayer(reporter);
 }
 
 #include "TestClassDef.h"
