Increment text pointer when the width is zero in the subpixel with center and right alignment.

BUG=skia:

Review URL: https://codereview.chromium.org/1438893002
diff --git a/tests/DrawTextTest.cpp b/tests/DrawTextTest.cpp
index 3a96c4f..f2da450 100644
--- a/tests/DrawTextTest.cpp
+++ b/tests/DrawTextTest.cpp
@@ -74,33 +74,38 @@
     create(&drawPosTextBitmap, drawPosTextRect);
     SkCanvas drawPosTextCanvas(drawPosTextBitmap);
 
-    for (float offsetY = 0.0f; offsetY < 1.0f; offsetY += (1.0f / 16.0f)) {
-        for (float offsetX = 0.0f; offsetX < 1.0f; offsetX += (1.0f / 16.0f)) {
-            SkPoint point = SkPoint::Make(25.0f + offsetX,
-                                          25.0f + offsetY);
+    // Two test cases "A" for the normal path through the code, and " " to check the
+    // early return path.
+    const char* cases[] = {"A", " "};
+    for (auto c : cases) {
+        for (float offsetY = 0.0f; offsetY < 1.0f; offsetY += (1.0f / 16.0f)) {
+            for (float offsetX = 0.0f; offsetX < 1.0f; offsetX += (1.0f / 16.0f)) {
+                SkPoint point = SkPoint::Make(25.0f + offsetX,
+                                              25.0f + offsetY);
 
-            for (int align = 0; align < SkPaint::kAlignCount; ++align) {
-                paint.setTextAlign(static_cast<SkPaint::Align>(align));
+                for (int align = 0; align < SkPaint::kAlignCount; ++align) {
+                    paint.setTextAlign(static_cast<SkPaint::Align>(align));
 
-                for (unsigned int flags = 0; flags < (1 << 3); ++flags) {
-                    static const unsigned int antiAliasFlag = 1;
-                    static const unsigned int subpixelFlag = 1 << 1;
-                    static const unsigned int lcdFlag = 1 << 2;
+                    for (unsigned int flags = 0; flags < (1 << 3); ++flags) {
+                        static const unsigned int antiAliasFlag = 1;
+                        static const unsigned int subpixelFlag = 1 << 1;
+                        static const unsigned int lcdFlag = 1 << 2;
 
-                    paint.setAntiAlias(SkToBool(flags & antiAliasFlag));
-                    paint.setSubpixelText(SkToBool(flags & subpixelFlag));
-                    paint.setLCDRenderText(SkToBool(flags & lcdFlag));
+                        paint.setAntiAlias(SkToBool(flags & antiAliasFlag));
+                        paint.setSubpixelText(SkToBool(flags & subpixelFlag));
+                        paint.setLCDRenderText(SkToBool(flags & lcdFlag));
 
-                    // Test: drawText and drawPosText draw the same.
-                    drawBG(&drawTextCanvas);
-                    drawTextCanvas.drawText("A", 1, point.fX, point.fY, paint);
+                        // Test: drawText and drawPosText draw the same.
+                        drawBG(&drawTextCanvas);
+                        drawTextCanvas.drawText(c, 1, point.fX, point.fY, paint);
 
-                    drawBG(&drawPosTextCanvas);
-                    drawPosTextCanvas.drawPosText("A", 1, &point, paint);
+                        drawBG(&drawPosTextCanvas);
+                        drawPosTextCanvas.drawPosText(c, 1, &point, paint);
 
-                    REPORTER_ASSERT(reporter,
-                        compare(drawTextBitmap, drawTextRect,
-                                drawPosTextBitmap, drawPosTextRect));
+                        REPORTER_ASSERT(reporter,
+                                        compare(drawTextBitmap, drawTextRect,
+                                                drawPosTextBitmap, drawPosTextRect));
+                    }
                 }
             }
         }