OSDN Git Service

Fix ViewCaptureTest, Bitmap.sameAs
authorChris Craik <ccraik@google.com>
Fri, 16 Dec 2016 23:22:31 +0000 (15:22 -0800)
committerChris Craik <ccraik@google.com>
Fri, 16 Dec 2016 23:48:32 +0000 (15:48 -0800)
Bug: 33702897
Test: tests added to android.graphics.cts.BitmapTest, all passing

Change-Id: I41b06114929df3c0c9bf826c721a29630e8c5098

core/jni/android/graphics/Bitmap.cpp
core/tests/coretests/src/android/view/ViewCaptureTest.java

index 673cf86..d33d20b 100755 (executable)
@@ -1127,8 +1127,7 @@ static void Bitmap_copyPixelsFromBuffer(JNIEnv* env, jobject,
     }
 }
 
-static jboolean Bitmap_sameAs(JNIEnv* env, jobject, jlong bm0Handle,
-                              jlong bm1Handle) {
+static jboolean Bitmap_sameAs(JNIEnv* env, jobject, jlong bm0Handle, jlong bm1Handle) {
     SkBitmap bm0;
     SkBitmap bm1;
 
@@ -1144,11 +1143,11 @@ static jboolean Bitmap_sameAs(JNIEnv* env, jobject, jlong bm0Handle,
 
     bitmap0->bitmap().getSkBitmap(&bm0);
     bitmap1->bitmap().getSkBitmap(&bm1);
-    if (bm0.width() != bm1.width() ||
-        bm0.height() != bm1.height() ||
-        bm0.colorType() != bm1.colorType() ||
-        bm0.alphaType() != bm1.alphaType() ||
-        bm0.colorSpace() != bm1.colorSpace()) {
+    if (bm0.width() != bm1.width()
+            || bm0.height() != bm1.height()
+            || bm0.colorType() != bm1.colorType()
+            || bm0.alphaType() != bm1.alphaType()
+            || !SkColorSpace::Equals(bm0.colorSpace(), bm1.colorSpace())) {
         return JNI_FALSE;
     }
 
index 15cfe23..1b4d4a2 100644 (file)
@@ -16,6 +16,8 @@
 
 package android.view;
 
+import static org.junit.Assert.assertTrue;
+
 import android.app.Activity;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -32,8 +34,6 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import static org.junit.Assert.assertTrue;
-
 @RunWith(AndroidJUnit4.class)
 public class ViewCaptureTest {
 
@@ -70,6 +70,7 @@ public class ViewCaptureTest {
 
     private void testCreateSnapshot(boolean skipChildren, int goldenResId) {
         Bitmap result = mViewToCapture.createSnapshot(Bitmap.Config.ARGB_8888, 0, skipChildren);
+        result.setHasAlpha(false); // resource will have no alpha, since content is opaque
         Bitmap golden = BitmapFactory.decodeResource(mActivity.getResources(), goldenResId);
         assertTrue(golden.sameAs(result));
     }