Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5a00e3af authored by Lucas Lin's avatar Lucas Lin Committed by Automerger Merge Worker
Browse files

Merge changes I06ab0f2d,I8b146aa1 am: 67ba0bc2 am: c4432db9

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1596513

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ieff3c3cc14319782e264ed9b4a287b5581e6da90
parents e5d40c19 c4432db9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -52,12 +52,12 @@ public final class UidRange implements Parcelable {

    /** Returns the smallest user Id which is contained in this UidRange */
    public int getStartUser() {
        return start / PER_USER_RANGE;
        return UserHandle.getUserHandleForUid(start).getIdentifier();
    }

    /** Returns the largest user Id which is contained in this UidRange */
    public int getEndUser() {
        return stop / PER_USER_RANGE;
        return UserHandle.getUserHandleForUid(stop).getIdentifier();
    }

    public boolean contains(int uid) {
+113 −0
Original line number Diff line number Diff line
@@ -16,11 +16,25 @@

package android.net;

import static android.os.UserHandle.MIN_SECONDARY_USER_ID;
import static android.os.UserHandle.SYSTEM;
import static android.os.UserHandle.USER_SYSTEM;
import static android.os.UserHandle.getUid;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import android.os.Build;
import android.os.UserHandle;

import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;

import com.android.testutils.DevSdkIgnoreRule;
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

@@ -33,6 +47,9 @@ public class UidRangeTest {
     * UidRangeParcel objects.
     */

    @Rule
    public final DevSdkIgnoreRule mIgnoreRule = new DevSdkIgnoreRule();

    @Test
    public void testSingleItemUidRangeAllowed() {
        new UidRange(123, 123);
@@ -64,4 +81,33 @@ public class UidRangeTest {
        } catch (IllegalArgumentException expected) {
        }
    }

    @Test
    public void testGetStartAndEndUser() throws Exception {
        final UidRange uidRangeOfPrimaryUser = new UidRange(
                getUid(USER_SYSTEM, 10000), getUid(USER_SYSTEM, 10100));
        final UidRange uidRangeOfSecondaryUser = new UidRange(
                getUid(MIN_SECONDARY_USER_ID, 10000), getUid(MIN_SECONDARY_USER_ID, 10100));
        assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getStartUser());
        assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getEndUser());
        assertEquals(MIN_SECONDARY_USER_ID, uidRangeOfSecondaryUser.getStartUser());
        assertEquals(MIN_SECONDARY_USER_ID, uidRangeOfSecondaryUser.getEndUser());

        final UidRange uidRangeForDifferentUsers = new UidRange(
                getUid(USER_SYSTEM, 10000), getUid(MIN_SECONDARY_USER_ID, 10100));
        assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getStartUser());
        assertEquals(MIN_SECONDARY_USER_ID, uidRangeOfSecondaryUser.getEndUser());
    }

    @Test @IgnoreUpTo(Build.VERSION_CODES.R)
    public void testCreateForUser() throws Exception {
        final UidRange uidRangeOfPrimaryUser = UidRange.createForUser(SYSTEM);
        final UidRange uidRangeOfSecondaryUser = UidRange.createForUser(
                UserHandle.of(USER_SYSTEM + 1));
        assertTrue(uidRangeOfPrimaryUser.stop < uidRangeOfSecondaryUser.start);
        assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getStartUser());
        assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getEndUser());
        assertEquals(USER_SYSTEM + 1, uidRangeOfSecondaryUser.getStartUser());
        assertEquals(USER_SYSTEM + 1, uidRangeOfSecondaryUser.getEndUser());
    }
}