1706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings/* 2706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * Copyright (C) 2012 The Android Open Source Project 3706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * 4706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * Licensed under the Apache License, Version 2.0 (the "License"); 5706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * you may not use this file except in compliance with the License. 6706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * You may obtain a copy of the License at 7706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * 8706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * http://www.apache.org/licenses/LICENSE-2.0 9706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * 10706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * Unless required by applicable law or agreed to in writing, software 11706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * distributed under the License is distributed on an "AS IS" BASIS, 12706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * See the License for the specific language governing permissions and 14706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * limitations under the License. 15706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings */ 16706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 17706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich canningspackage android.content.pm; 18706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 19706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich canningsimport android.content.pm.ManifestDigest; 20706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich canningsimport android.content.pm.VerificationParams; 21706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich canningsimport android.net.Uri; 22706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich canningsimport android.os.Parcel; 23706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich canningsimport android.test.AndroidTestCase; 24706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 25706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings/** 26706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * Tests the android.content.pm.VerificationParams class 27706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * 28706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * To test run: 29706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings * ./development/testrunner/runtest.py frameworks-core -c android.content.pm.VerificationParamsTest 30706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings */ 31706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich canningspublic class VerificationParamsTest extends AndroidTestCase { 32706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 33706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings private final static String VERIFICATION_URI_STRING = "http://verification.uri/path"; 34706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings private final static String ORIGINATING_URI_STRING = "http://originating.uri/path"; 35706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings private final static String REFERRER_STRING = "http://referrer.uri/path"; 36706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings private final static byte[] DIGEST_BYTES = "fake digest".getBytes(); 3713d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings private final static int INSTALLER_UID = 42; 38706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 39706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings private final static Uri VERIFICATION_URI = Uri.parse(VERIFICATION_URI_STRING); 40706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings private final static Uri ORIGINATING_URI = Uri.parse(ORIGINATING_URI_STRING); 41706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings private final static Uri REFERRER = Uri.parse(REFERRER_STRING); 42706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 4337d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver private final static int ORIGINATING_UID = 10042; 4437d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver 45706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings private final static ManifestDigest MANIFEST_DIGEST = new ManifestDigest(DIGEST_BYTES); 46706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 47706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testParcel() throws Exception { 48706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams expected = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 4937d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 50706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 51706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings Parcel parcel = Parcel.obtain(); 52706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings expected.writeToParcel(parcel, 0); 53706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings parcel.setDataPosition(0); 54706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 55706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams actual = VerificationParams.CREATOR.createFromParcel(parcel); 56706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 57706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertEquals(VERIFICATION_URI, actual.getVerificationURI()); 58706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 59706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertEquals(ORIGINATING_URI, actual.getOriginatingURI()); 60706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 61706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertEquals(REFERRER, actual.getReferrer()); 62706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 6337d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver assertEquals(ORIGINATING_UID, actual.getOriginatingUid()); 6437d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver 65706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertEquals(MANIFEST_DIGEST, actual.getManifestDigest()); 66706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 67706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 68706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testEquals_Success() throws Exception { 69706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 7037d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 71706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 72706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params2 = new VerificationParams( 73706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), 7437d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES)); 75706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 76706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertEquals(params1, params2); 77706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 78706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 79706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testEquals_VerificationUri_Failure() throws Exception { 80706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 8137d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 82706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 83706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params2 = new VerificationParams( 84706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings Uri.parse("http://a.different.uri/"), Uri.parse(ORIGINATING_URI_STRING), 8537d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES)); 86706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 87706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertFalse(params1.equals(params2)); 88706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 89706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 90706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testEquals_OriginatingUri_Failure() throws Exception { 91706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 9237d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 93706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 94706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params2 = new VerificationParams( 95706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings Uri.parse(VERIFICATION_URI_STRING), Uri.parse("http://a.different.uri/"), 9637d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES)); 97706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 98706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertFalse(params1.equals(params2)); 99706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 100706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 101706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testEquals_Referrer_Failure() throws Exception { 102706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 10337d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 10437d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver 10537d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver VerificationParams params2 = new VerificationParams( 10637d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), 10737d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse("http://a.different.uri/"), ORIGINATING_UID, 10837d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver new ManifestDigest(DIGEST_BYTES)); 10937d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver 11037d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver assertFalse(params1.equals(params2)); 11137d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver } 11237d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver 11337d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver public void testEquals_Originating_Uid_Failure() throws Exception { 11437d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 11537d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 116706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 117706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params2 = new VerificationParams( 118706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), 11937d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), 12345, new ManifestDigest(DIGEST_BYTES)); 120706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 121706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertFalse(params1.equals(params2)); 122706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 123706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 124706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testEquals_ManifestDigest_Failure() throws Exception { 125706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 12637d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 127706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 128706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params2 = new VerificationParams( 129706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), 13037d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), ORIGINATING_UID, 13137d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver new ManifestDigest("a different digest".getBytes())); 132706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 133706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertFalse(params1.equals(params2)); 134706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 135706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 13613d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings public void testEquals_InstallerUid_Failure() throws Exception { 13713d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 13837d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 13913d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings 14013d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings VerificationParams params2 = new VerificationParams( 14113d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), 14237d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES)); 14313d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings params2.setInstallerUid(INSTALLER_UID); 14413d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings 14513d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings assertFalse(params1.equals(params2)); 14613d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings } 14713d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings 148706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testHashCode_Success() throws Exception { 149706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 15037d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 151706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 152706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params2 = new VerificationParams( 153706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), 15437d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES)); 155706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 156706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertEquals(params1.hashCode(), params2.hashCode()); 157706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 158706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 159706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testHashCode_VerificationUri_Failure() throws Exception { 160706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 16137d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 162706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 163706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params2 = new VerificationParams(null, Uri.parse(ORIGINATING_URI_STRING), 16437d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES)); 165706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 166706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertFalse(params1.hashCode() == params2.hashCode()); 167706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 168706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 169706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testHashCode_OriginatingUri_Failure() throws Exception { 170706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 17137d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 172706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 173706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params2 = new VerificationParams( 174706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings Uri.parse(VERIFICATION_URI_STRING), Uri.parse("http://a.different.uri/"), 17537d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES)); 176706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 177706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertFalse(params1.hashCode() == params2.hashCode()); 178706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 179706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 180706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testHashCode_Referrer_Failure() throws Exception { 181706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 18237d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 183706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 184706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params2 = new VerificationParams( 185706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), null, 18637d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES)); 18737d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver 18837d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver assertFalse(params1.hashCode() == params2.hashCode()); 18937d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver } 19037d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver 19137d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver public void testHashCode_Originating_Uid_Failure() throws Exception { 19237d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 19337d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 19437d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver 19537d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver VerificationParams params2 = new VerificationParams( 19637d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), 19737d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), 12345, new ManifestDigest(DIGEST_BYTES)); 198706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 199706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertFalse(params1.hashCode() == params2.hashCode()); 200706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 201706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 202706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings public void testHashCode_ManifestDigest_Failure() throws Exception { 203706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 20437d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 205706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 206706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings VerificationParams params2 = new VerificationParams( 207706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), 20837d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), ORIGINATING_UID, 20937d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver new ManifestDigest("a different digest".getBytes())); 210706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings 211706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings assertFalse(params1.hashCode() == params2.hashCode()); 212706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings } 21313d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings 21413d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings public void testHashCode_InstallerUid_Failure() throws Exception { 21513d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI, 21637d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver REFERRER, ORIGINATING_UID, MANIFEST_DIGEST); 21713d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings 21813d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings VerificationParams params2 = new VerificationParams( 21913d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), 22037d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver Uri.parse(REFERRER_STRING), ORIGINATING_UID, 22137d83a3caf138e35fa1a355787d20c351f6b37a6Ben Gruver new ManifestDigest("a different digest".getBytes())); 22213d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings params2.setInstallerUid(INSTALLER_UID); 22313d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings 22413d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings assertFalse(params1.hashCode() == params2.hashCode()); 22513d428e8306d1bb1a3017045bc5d2f76edec32dfrich cannings } 226706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings} 227