1cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra/* 2cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * Copyright (C) 2016 The Android Open Source Project 3cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * 4cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * in compliance with the License. You may obtain a copy of the License at 6cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * 7cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * http://www.apache.org/licenses/LICENSE-2.0 8cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * 9cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * Unless required by applicable law or agreed to in writing, software distributed under the License 10cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * or implied. See the License for the specific language governing permissions and limitations under 12cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * the License. 13cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra */ 14cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra 15cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Choprapackage com.android.managedprovisioning.e2eui; 16cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra 17cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopraimport android.app.admin.DevicePolicyManager; 18cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopraimport android.content.Context; 19cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopraimport android.content.Intent; 20cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopraimport android.os.PersistableBundle; 21cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopraimport android.os.UserHandle; 22cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopraimport android.util.Log; 23cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra 24cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra/** 25cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra * Utility functions for end to end tests 26cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra */ 27cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Choprapublic class E2eUiTestUtils { 28cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra private static final String TAG = E2eUiTestUtils.class.getSimpleName(); 29cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra private static final String EXTRAS_BUNDLE_TEST_KEY = "extras_bundle_test_key"; 30cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra 31cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra public static Intent insertProvisioningExtras(Intent intent) { 32cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra PersistableBundle bundle = new PersistableBundle(); 33cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra bundle.putBoolean(EXTRAS_BUNDLE_TEST_KEY, true); 34cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra intent.putExtra(DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE, bundle); 35cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra return intent; 36cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra } 37cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra 38cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra public static boolean verifyProvisioningExtras(Intent intent) { 39cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra PersistableBundle persistableBundle = intent 40cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra .getParcelableExtra(DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE); 41cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra return persistableBundle != null && persistableBundle.getBoolean(EXTRAS_BUNDLE_TEST_KEY); 42cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra } 43cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra 44cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra public static void sendResult(String action, Context context, boolean result) { 45cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra Intent resultBroadcast = new Intent(action); 46cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra resultBroadcast.putExtra(ProvisioningResultListener.EXTRA_RESULT, result); 47cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra context.sendBroadcastAsUser(resultBroadcast, UserHandle.SYSTEM); 48cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra } 49cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra 50cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra public static boolean verifyProfile(Context context, Intent intent, 51cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra DevicePolicyManager dpm) { 52cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra dpm.setProfileEnabled(ManagedProfileAdminReceiver.COMPONENT_NAME); 53cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra final boolean isProfileOwner = dpm.isProfileOwnerApp(context.getPackageName()); 54cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra Log.i(TAG, "isProfileOwner: " + isProfileOwner); 55cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra final boolean verifyProvisioningExtras = verifyProvisioningExtras(intent); 56cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra Log.i(TAG, "verifyProvisioningExtras: " + verifyProvisioningExtras); 57cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra return isProfileOwner && verifyProvisioningExtras; 58cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra } 59cb4628e81cf01fa83b92a68b6313282efc176d48Mahaver Chopra} 60