| Index: skia/ext/analysis_canvas_unittest.cc
|
| diff --git a/skia/ext/analysis_canvas_unittest.cc b/skia/ext/analysis_canvas_unittest.cc
|
| index 46c96451b2fd314dfd53c5db16c54ad1a99359f8..6e9f254b7efa5cb03d4defbaebda1aab660ca30e 100644
|
| --- a/skia/ext/analysis_canvas_unittest.cc
|
| +++ b/skia/ext/analysis_canvas_unittest.cc
|
| @@ -454,4 +454,83 @@ TEST(AnalysisCanvasTest, PixelRefsFromPaint) {
|
| }
|
| }
|
|
|
| +TEST(AnalysisCanvasTest, HasText) {
|
| + SkBitmap bitmap;
|
| + bitmap.setConfig(SkBitmap::kNo_Config, 200, 100);
|
| +
|
| + const char* text = "A";
|
| + size_t byteLength = 1;
|
| + SkPoint point = SkPoint::Make(SkIntToScalar(25), SkIntToScalar(25));
|
| + SkPath path;
|
| + path.moveTo(point);
|
| + path.lineTo(SkIntToScalar(75), SkIntToScalar(75));
|
| + SkPaint paint;
|
| + paint.setTextSize(SkIntToScalar(10));
|
| +
|
| + {
|
| + skia::AnalysisDevice device(bitmap);
|
| + skia::AnalysisCanvas canvas(&device);
|
| + // Test after initialization.
|
| + EXPECT_FALSE(canvas.hasText());
|
| + // Test drawing anything other than text.
|
| + canvas.drawRect(SkRect::MakeWH(100, 100), paint);
|
| + EXPECT_FALSE(canvas.hasText());
|
| + }
|
| + {
|
| + // Test SkCanvas::drawText.
|
| + skia::AnalysisDevice device(bitmap);
|
| + skia::AnalysisCanvas canvas(&device);
|
| + canvas.drawText(text, byteLength, point.fX, point.fY, paint);
|
| + EXPECT_TRUE(canvas.hasText());
|
| + }
|
| + {
|
| + // Test SkCanvas::drawPosText.
|
| + skia::AnalysisDevice device(bitmap);
|
| + skia::AnalysisCanvas canvas(&device);
|
| + canvas.drawPosText(text, byteLength, &point, paint);
|
| + EXPECT_TRUE(canvas.hasText());
|
| + }
|
| + {
|
| + // Test SkCanvas::drawPosTextH.
|
| + skia::AnalysisDevice device(bitmap);
|
| + skia::AnalysisCanvas canvas(&device);
|
| + canvas.drawPosTextH(text, byteLength, &point.fX, point.fY, paint);
|
| + EXPECT_TRUE(canvas.hasText());
|
| + }
|
| + {
|
| + // Test SkCanvas::drawTextOnPathHV.
|
| + skia::AnalysisDevice device(bitmap);
|
| + skia::AnalysisCanvas canvas(&device);
|
| + canvas.drawTextOnPathHV(text, byteLength, path, point.fX, point.fY, paint);
|
| + EXPECT_TRUE(canvas.hasText());
|
| + }
|
| + {
|
| + // Test SkCanvas::drawTextOnPath.
|
| + skia::AnalysisDevice device(bitmap);
|
| + skia::AnalysisCanvas canvas(&device);
|
| + canvas.drawTextOnPath(text, byteLength, path, NULL, paint);
|
| + EXPECT_TRUE(canvas.hasText());
|
| + }
|
| + {
|
| + // Text inside clip region.
|
| + skia::AnalysisDevice device(bitmap);
|
| + skia::AnalysisCanvas canvas(&device);
|
| + canvas.clipRect(SkRect::MakeWH(100, 100));
|
| + canvas.drawText(text, byteLength, point.fX, point.fY, paint);
|
| + EXPECT_TRUE(canvas.hasText());
|
| + }
|
| + {
|
| + // Text outside clip region.
|
| + skia::AnalysisDevice device(bitmap);
|
| + skia::AnalysisCanvas canvas(&device);
|
| + canvas.clipRect(SkRect::MakeXYWH(100, 0, 100, 100));
|
| + canvas.drawText(text, byteLength, point.fX, point.fY, paint);
|
| + // Analysis device does not do any clipping.
|
| + // So even when text is outside the clip region,
|
| + // it is marked as having the text.
|
| + // TODO(alokp): We may be able to do some trivial rejection.
|
| + EXPECT_TRUE(canvas.hasText());
|
| + }
|
| +}
|
| +
|
| } // namespace skia
|
|
|