Home | History | Annotate | Download | only in pm
      1 /*
      2  * Copyright (C) 2012 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.content.pm;
     18 
     19 import android.content.pm.ManifestDigest;
     20 import android.content.pm.VerificationParams;
     21 import android.net.Uri;
     22 import android.os.Parcel;
     23 import android.test.AndroidTestCase;
     24 
     25 /**
     26  * Tests the android.content.pm.VerificationParams class
     27  *
     28  * To test run:
     29  * ./development/testrunner/runtest.py frameworks-core -c android.content.pm.VerificationParamsTest
     30  */
     31 public class VerificationParamsTest extends AndroidTestCase {
     32 
     33     private final static String VERIFICATION_URI_STRING = "http://verification.uri/path";
     34     private final static String ORIGINATING_URI_STRING = "http://originating.uri/path";
     35     private final static String REFERRER_STRING = "http://referrer.uri/path";
     36     private final static byte[] DIGEST_BYTES = "fake digest".getBytes();
     37     private final static int INSTALLER_UID = 42;
     38 
     39     private final static Uri VERIFICATION_URI = Uri.parse(VERIFICATION_URI_STRING);
     40     private final static Uri ORIGINATING_URI = Uri.parse(ORIGINATING_URI_STRING);
     41     private final static Uri REFERRER = Uri.parse(REFERRER_STRING);
     42 
     43     private final static int ORIGINATING_UID = 10042;
     44 
     45     private final static ManifestDigest MANIFEST_DIGEST = new ManifestDigest(DIGEST_BYTES);
     46 
     47     public void testParcel() throws Exception {
     48         VerificationParams expected = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
     49                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
     50 
     51         Parcel parcel = Parcel.obtain();
     52         expected.writeToParcel(parcel, 0);
     53         parcel.setDataPosition(0);
     54 
     55         VerificationParams actual = VerificationParams.CREATOR.createFromParcel(parcel);
     56 
     57         assertEquals(VERIFICATION_URI, actual.getVerificationURI());
     58 
     59         assertEquals(ORIGINATING_URI, actual.getOriginatingURI());
     60 
     61         assertEquals(REFERRER, actual.getReferrer());
     62 
     63         assertEquals(ORIGINATING_UID, actual.getOriginatingUid());
     64 
     65         assertEquals(MANIFEST_DIGEST, actual.getManifestDigest());
     66     }
     67 
     68     public void testEquals_Success() throws Exception {
     69         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
     70                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
     71 
     72         VerificationParams params2 = new VerificationParams(
     73                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING),
     74                 Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES));
     75 
     76         assertEquals(params1, params2);
     77     }
     78 
     79     public void testEquals_VerificationUri_Failure() throws Exception {
     80         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
     81                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
     82 
     83         VerificationParams params2 = new VerificationParams(
     84                 Uri.parse("http://a.different.uri/"), Uri.parse(ORIGINATING_URI_STRING),
     85                 Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES));
     86 
     87         assertFalse(params1.equals(params2));
     88     }
     89 
     90     public void testEquals_OriginatingUri_Failure() throws Exception {
     91         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
     92                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
     93 
     94         VerificationParams params2 = new VerificationParams(
     95                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse("http://a.different.uri/"),
     96                 Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES));
     97 
     98         assertFalse(params1.equals(params2));
     99     }
    100 
    101     public void testEquals_Referrer_Failure() throws Exception {
    102         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    103                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    104 
    105         VerificationParams params2 = new VerificationParams(
    106                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING),
    107                 Uri.parse("http://a.different.uri/"), ORIGINATING_UID,
    108                 new ManifestDigest(DIGEST_BYTES));
    109 
    110         assertFalse(params1.equals(params2));
    111     }
    112 
    113     public void testEquals_Originating_Uid_Failure() throws Exception {
    114         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    115                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    116 
    117         VerificationParams params2 = new VerificationParams(
    118                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING),
    119                 Uri.parse(REFERRER_STRING), 12345, new ManifestDigest(DIGEST_BYTES));
    120 
    121         assertFalse(params1.equals(params2));
    122     }
    123 
    124     public void testEquals_ManifestDigest_Failure() throws Exception {
    125         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    126                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    127 
    128         VerificationParams params2 = new VerificationParams(
    129                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING),
    130                 Uri.parse(REFERRER_STRING), ORIGINATING_UID,
    131                 new ManifestDigest("a different digest".getBytes()));
    132 
    133         assertFalse(params1.equals(params2));
    134     }
    135 
    136     public void testEquals_InstallerUid_Failure() throws Exception {
    137         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    138                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    139 
    140         VerificationParams params2 = new VerificationParams(
    141                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING),
    142                 Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES));
    143         params2.setInstallerUid(INSTALLER_UID);
    144 
    145         assertFalse(params1.equals(params2));
    146     }
    147 
    148     public void testHashCode_Success() throws Exception {
    149         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    150                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    151 
    152         VerificationParams params2 = new VerificationParams(
    153                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING),
    154                 Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES));
    155 
    156         assertEquals(params1.hashCode(), params2.hashCode());
    157     }
    158 
    159     public void testHashCode_VerificationUri_Failure() throws Exception {
    160         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    161                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    162 
    163         VerificationParams params2 = new VerificationParams(null, Uri.parse(ORIGINATING_URI_STRING),
    164                 Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES));
    165 
    166         assertFalse(params1.hashCode() == params2.hashCode());
    167     }
    168 
    169     public void testHashCode_OriginatingUri_Failure() throws Exception {
    170         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    171                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    172 
    173         VerificationParams params2 = new VerificationParams(
    174                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse("http://a.different.uri/"),
    175                 Uri.parse(REFERRER_STRING), ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES));
    176 
    177         assertFalse(params1.hashCode() == params2.hashCode());
    178     }
    179 
    180     public void testHashCode_Referrer_Failure() throws Exception {
    181         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    182                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    183 
    184         VerificationParams params2 = new VerificationParams(
    185                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING), null,
    186                 ORIGINATING_UID, new ManifestDigest(DIGEST_BYTES));
    187 
    188         assertFalse(params1.hashCode() == params2.hashCode());
    189     }
    190 
    191     public void testHashCode_Originating_Uid_Failure() throws Exception {
    192         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    193                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    194 
    195         VerificationParams params2 = new VerificationParams(
    196                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING),
    197                 Uri.parse(REFERRER_STRING), 12345, new ManifestDigest(DIGEST_BYTES));
    198 
    199         assertFalse(params1.hashCode() == params2.hashCode());
    200     }
    201 
    202     public void testHashCode_ManifestDigest_Failure() throws Exception {
    203         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    204                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    205 
    206         VerificationParams params2 = new VerificationParams(
    207                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING),
    208                 Uri.parse(REFERRER_STRING), ORIGINATING_UID,
    209                 new ManifestDigest("a different digest".getBytes()));
    210 
    211         assertFalse(params1.hashCode() == params2.hashCode());
    212     }
    213 
    214     public void testHashCode_InstallerUid_Failure() throws Exception {
    215         VerificationParams params1 = new VerificationParams(VERIFICATION_URI, ORIGINATING_URI,
    216                 REFERRER, ORIGINATING_UID, MANIFEST_DIGEST);
    217 
    218         VerificationParams params2 = new VerificationParams(
    219                 Uri.parse(VERIFICATION_URI_STRING), Uri.parse(ORIGINATING_URI_STRING),
    220                 Uri.parse(REFERRER_STRING), ORIGINATING_UID,
    221                 new ManifestDigest("a different digest".getBytes()));
    222         params2.setInstallerUid(INSTALLER_UID);
    223 
    224         assertFalse(params1.hashCode() == params2.hashCode());
    225     }
    226 }
    227