Index: tests/PictureShaderTest.cpp |
diff --git a/tests/PictureShaderTest.cpp b/tests/PictureShaderTest.cpp |
index 8d933db6003b1e9dcb3809ce9f86e3a6c29e1227..113f4f86eeacb669f62304a36ea4b3d6d08538ad 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); |
} |