Added tests in DisplayHashManagerTest
Added some additional logic, so added more tests in CTS
Test: DisplayHashManagerTest
Bug: 155825630
Change-Id: I2b4c0ec425bcb934722177c09dd2e6dda8376621
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/DisplayHashManagerTest.java b/tests/framework/base/windowmanager/src/android/server/wm/DisplayHashManagerTest.java
index ee709ca..93cbaee 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/DisplayHashManagerTest.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/DisplayHashManagerTest.java
@@ -18,11 +18,13 @@
import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_INVALID_BOUNDS;
+import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_INVALID_HASH_ALGORITHM;
import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_NOT_VISIBLE_ON_SCREEN;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import android.app.Activity;
import android.app.Instrumentation;
@@ -258,6 +260,45 @@
assertEquals(DISPLAY_HASH_ERROR_NOT_VISIBLE_ON_SCREEN, errorCode);
}
+ @Test
+ public void testGenerateDisplayHash_InvalidHashAlgorithm() {
+ mInstrumentation.runOnMainSync(() -> {
+ final RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(mTestViewSize.x,
+ mTestViewSize.y);
+ mTestView = new View(mActivity);
+ mTestView.setBackgroundColor(Color.BLUE);
+ mMainView.addView(mTestView, p);
+ mMainView.invalidate();
+ });
+ mInstrumentation.waitForIdleSync();
+
+ mTestView.generateDisplayHash("fake hash", null, mExecutor,
+ mSyncDisplayHashResultCallback);
+ int errorCode = mSyncDisplayHashResultCallback.getError();
+ assertEquals(DISPLAY_HASH_ERROR_INVALID_HASH_ALGORITHM, errorCode);
+ }
+
+ @Test
+ public void testVerifyDisplayHash_InvalidDisplayHash() {
+ mInstrumentation.runOnMainSync(() -> {
+ final RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(mTestViewSize.x,
+ mTestViewSize.y);
+ mTestView = new View(mActivity);
+ mTestView.setBackgroundColor(Color.BLUE);
+ mMainView.addView(mTestView, p);
+ mMainView.invalidate();
+ });
+ mInstrumentation.waitForIdleSync();
+
+ DisplayHash displayHash = generateDisplayHash(null);
+ DisplayHash fakeDisplayHash = new DisplayHash(
+ displayHash.getTimeMillis(), displayHash.getBoundsInWindow(),
+ displayHash.getHashAlgorithm(), new byte[32], displayHash.getHmac());
+ VerifiedDisplayHash verifiedDisplayHash = mDisplayHashManager.verifyDisplayHash(
+ fakeDisplayHash);
+ assertNull(verifiedDisplayHash);
+ }
+
private DisplayHash generateDisplayHash(Rect bounds) {
mTestView.generateDisplayHash(mFirstHashAlgorithm, bounds, mExecutor,
mSyncDisplayHashResultCallback);