Empty picture shaders should draw nothing.
BUG=skia:
Review URL: https://codereview.chromium.org/1142053004
diff --git a/tests/PictureShaderTest.cpp b/tests/PictureShaderTest.cpp
index 8d933db..113f4f8 100644
--- a/tests/PictureShaderTest.cpp
+++ b/tests/PictureShaderTest.cpp
@@ -5,22 +5,38 @@
* found in the LICENSE file.
*/
+#include "SkCanvas.h"
#include "SkPicture.h"
#include "SkPictureRecorder.h"
#include "SkShader.h"
#include "Test.h"
// Test that attempting to create a picture shader with a NULL picture or
-// empty picture returns NULL.
+// empty picture returns a shader that draws nothing.
DEF_TEST(PictureShader_empty, reporter) {
- SkShader* shader = SkShader::CreatePictureShader(NULL,
- SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, NULL, NULL);
- REPORTER_ASSERT(reporter, NULL == shader);
+ SkPaint paint;
+
+ SkBitmap bitmap;
+ bitmap.allocN32Pixels(1,1);
+
+ SkCanvas canvas(bitmap);
+ canvas.clear(SK_ColorGREEN);
+
+ SkShader* shader = SkShader::CreatePictureShader(
+ NULL, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, NULL, NULL);
+ paint.setShader(shader)->unref();
+
+ canvas.drawRect(SkRect::MakeWH(1,1), paint);
+ REPORTER_ASSERT(reporter, *bitmap.getAddr32(0,0) == SK_ColorGREEN);
+
SkPictureRecorder factory;
factory.beginRecording(0, 0, NULL, 0);
SkAutoTUnref<SkPicture> picture(factory.endRecording());
- shader = SkShader::CreatePictureShader(picture.get(),
- SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, NULL, NULL);
- REPORTER_ASSERT(reporter, NULL == shader);
+ shader = SkShader::CreatePictureShader(
+ picture.get(), SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, NULL, NULL);
+ paint.setShader(shader)->unref();
+
+ canvas.drawRect(SkRect::MakeWH(1,1), paint);
+ REPORTER_ASSERT(reporter, *bitmap.getAddr32(0,0) == SK_ColorGREEN);
}