109a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla/*
209a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla * Copyright (C) 2016 The Android Open Source Project
309a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla *
409a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla * Licensed under the Apache License, Version 2.0 (the "License");
509a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla * you may not use this file except in compliance with the License.
609a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla * You may obtain a copy of the License at
709a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla *
809a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla *      http://www.apache.org/licenses/LICENSE-2.0
909a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla *
1009a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla * Unless required by applicable law or agreed to in writing, software
1109a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla * distributed under the License is distributed on an "AS IS" BASIS,
1209a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1309a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla * See the License for the specific language governing permissions and
1409a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla * limitations under the License.
1509a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla */
1609a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla
1709a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shuklapackage com.android.server.am;
1809a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla
1909a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shuklaimport android.app.ActivityManager;
2009a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shuklaimport android.app.IActivityManager;
2109a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shuklaimport android.os.ServiceManager;
2209a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shuklaimport android.os.UserHandle;
2309a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shuklaimport android.os.RemoteException;
2409a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shuklaimport android.test.AndroidTestCase;
2509a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla
2609a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shuklaimport java.util.List;
2709a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla
2809a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shuklapublic class ActivityManagerTest extends AndroidTestCase {
2909a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla
3009a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla    IActivityManager service;
3109a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla    @Override
3209a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla    public void setUp() throws Exception {
3309a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla        super.setUp();
34dc589ac82b5fe2063f4cfd94c8ae26d43d5420a0Sudheer Shanka        service = ActivityManager.getService();
3509a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla    }
3609a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla
3709a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla    public void testTaskIdsForRunningUsers() throws RemoteException {
3809a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla        for(int userId : service.getRunningUserIds()) {
3909a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla            testTaskIdsForUser(userId);
4009a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla        }
4109a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla    }
4209a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla
4309a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla    private void testTaskIdsForUser(int userId) throws RemoteException {
4409a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla        List<ActivityManager.RecentTaskInfo> recentTasks = service.getRecentTasks(
45479212cf500193db6f1cf109ee58d72885f60a74Jeff Sharkey                100, 0, userId).getList();
4609a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla        if(recentTasks != null) {
4709a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla            for(ActivityManager.RecentTaskInfo recentTask : recentTasks) {
4809a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla                int taskId = recentTask.persistentId;
4909a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla                assertEquals("The task id " + taskId + " should not belong to user " + userId,
5009a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla                        taskId / UserHandle.PER_USER_RANGE, userId);
5109a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla            }
5209a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla        }
5309a88f5f3e7d4a3bbfce04ac06594ac590c67d27Suprabh Shukla    }
54dc589ac82b5fe2063f4cfd94c8ae26d43d5420a0Sudheer Shanka}
55