1d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng/* 2d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * Copyright 2016, The Android Open Source Project 3d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * 4d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * Licensed under the Apache License, Version 2.0 (the "License"); 5d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * you may not use this file except in compliance with the License. 6d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * You may obtain a copy of the License at 7d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * 8d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * http://www.apache.org/licenses/LICENSE-2.0 9d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * 10d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * Unless required by applicable law or agreed to in writing, software 11d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * distributed under the License is distributed on an "AS IS" BASIS, 12d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * See the License for the specific language governing permissions and 14d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng * limitations under the License. 15d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng */ 16d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngpackage com.android.managedprovisioning.model; 17d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 187079df5a3fb155947004843ee8ec25b36127e3edSteven Ngimport static com.android.managedprovisioning.TestUtils.createTestAdminExtras; 197079df5a3fb155947004843ee8ec25b36127e3edSteven Ng 20d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport android.accounts.Account; 21d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport android.app.admin.DevicePolicyManager; 22d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport android.content.ComponentName; 23d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport android.os.Bundle; 24d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport android.os.Parcel; 25d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport android.os.PersistableBundle; 26d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport android.test.AndroidTestCase; 27d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport android.test.MoreAsserts; 28d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport android.test.suitebuilder.annotation.SmallTest; 29d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 30d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport com.android.managedprovisioning.model.WifiInfo; 31d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport com.android.managedprovisioning.model.PackageDownloadInfo; 32d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 33d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport java.lang.Exception; 34d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngimport java.util.Locale; 35d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 36d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng/** Tests for {@link ProvisioningParams} */ 37d1784bd4d917bb36125e6faf125a2425c343838bSteven Ngpublic class ProvisioningParamsTest extends AndroidTestCase { 38d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_PROVISIONING_ACTION = 39d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE; 40d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 41d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_PACKAGE_NAME = "com.afwsamples.testdpc"; 42d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final ComponentName TEST_COMPONENT_NAME = 43d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng ComponentName.unflattenFromString( 44d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng "com.afwsamples.testdpc/com.afwsamples.testdpc.DeviceAdminReceiver"); 45d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final long TEST_LOCAL_TIME = 1456939524713L; 46d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final Locale TEST_LOCALE = Locale.UK; 47d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_TIME_ZONE = "GMT"; 48d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final Integer TEST_MAIN_COLOR = 65280; 49d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final boolean TEST_STARTED_BY_TRUSTED_SOURCE = true; 50d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final boolean TEST_LEAVE_ALL_SYSTEM_APP_ENABLED = true; 51d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final boolean TEST_SKIP_ENCRYPTION = true; 52d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final boolean TEST_SKIP_USER_SETUP = true; 53d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final Account TEST_ACCOUNT_TO_MIGRATE = 54d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng new Account("user@gmail.com", "com.google"); 55d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 56d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // Wifi info 57d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_SSID = "TestWifi"; 58d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final boolean TEST_HIDDEN = true; 59d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_SECURITY_TYPE = "WPA2"; 60d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_PASSWORD = "GoogleRock"; 61d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_PROXY_HOST = "testhost.com"; 62d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final int TEST_PROXY_PORT = 7689; 63d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_PROXY_BYPASS_HOSTS = "http://host1.com;https://host2.com"; 64d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_PAC_URL = "pac.test.com"; 65d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final WifiInfo TEST_WIFI_INFO = WifiInfo.Builder.builder() 66d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSsid(TEST_SSID) 67d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setHidden(TEST_HIDDEN) 68d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSecurityType(TEST_SECURITY_TYPE) 69d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setPassword(TEST_PASSWORD) 70d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setProxyHost(TEST_PROXY_HOST) 71d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setProxyPort(TEST_PROXY_PORT) 72d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setProxyBypassHosts(TEST_PROXY_BYPASS_HOSTS) 73d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setPacUrl(TEST_PAC_URL) 74d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .build(); 75d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 76d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // Device admin package download info 77d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_DOWNLOAD_LOCATION = 78d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng "http://example/dpc.apk"; 79d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final String TEST_COOKIE_HEADER = 80d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng "Set-Cookie: sessionToken=foobar; Expires=Thu, 18 Feb 2016 23:59:59 GMT"; 81d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final byte[] TEST_PACKAGE_CHECKSUM = new byte[] { '1', '2', '3', '4', '5' }; 82d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final byte[] TEST_SIGNATURE_CHECKSUM = new byte[] { '5', '4', '3', '2', '1' }; 83d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final int TEST_MIN_SUPPORT_VERSION = 17689; 84d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng private static final PackageDownloadInfo TEST_DOWNLOAD_INFO = 85d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng PackageDownloadInfo.Builder.builder() 86d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocation(TEST_DOWNLOAD_LOCATION) 87d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setCookieHeader(TEST_COOKIE_HEADER) 88d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setPackageChecksum(TEST_PACKAGE_CHECKSUM) 89d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSignatureChecksum(TEST_SIGNATURE_CHECKSUM) 90d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setMinVersion(TEST_MIN_SUPPORT_VERSION) 91d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .build(); 92d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 93d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng @SmallTest 94d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng public void testFailToConstructProvisioningParamsWithoutPackageNameOrComponentName() { 95d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // WHEN the ProvisioningParams is constructed by with neither a package name nor a component 96d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // name 97d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng try { 98d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng ProvisioningParams provisioningParams = ProvisioningParams.Builder.builder() 99d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setProvisioningAction(TEST_PROVISIONING_ACTION) 100d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .build(); 101d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng fail("Package name or component name is mandatory."); 102d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng } catch (IllegalArgumentException e) { 103d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // THEN the ProvisioningParams fails to construct. 104d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng } 105d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng } 106d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 107d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng @SmallTest 108d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng public void testFailToConstructProvisioningParamsWithoutProvisioningAction() { 109d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // WHEN the ProvisioningParams is constructed by without a provisioning action. 110d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng try { 111d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng ProvisioningParams provisioningParams = ProvisioningParams.Builder.builder() 112d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminComponentName(TEST_COMPONENT_NAME) 113d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .build(); 114d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng fail("Provisioning action is mandatory"); 115d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng } catch (NullPointerException e) { 116d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // THEN the ProvisioningParams fails to construct. 117d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng } 118d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng } 119d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 120d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng @SmallTest 121d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng public void testEquals() { 122d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // GIVEN 2 ProvisioningParams objects created by the same set of parameters 123d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng ProvisioningParams provisioningParams1 = ProvisioningParams.Builder.builder() 124d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setProvisioningAction(TEST_PROVISIONING_ACTION) 125d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminPackageName(TEST_PACKAGE_NAME) 126d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminComponentName(TEST_COMPONENT_NAME) 127d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminDownloadInfo(TEST_DOWNLOAD_INFO) 128d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocalTime(TEST_LOCAL_TIME) 129d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocale(TEST_LOCALE) 130d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setTimeZone(TEST_TIME_ZONE) 131d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setMainColor(TEST_MAIN_COLOR) 132d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setStartedByTrustedSource(TEST_STARTED_BY_TRUSTED_SOURCE) 133d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLeaveAllSystemAppsEnabled(TEST_LEAVE_ALL_SYSTEM_APP_ENABLED) 134d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSkipEncryption(TEST_SKIP_ENCRYPTION) 135d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSkipUserSetup(TEST_SKIP_USER_SETUP) 136d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setAccountToMigrate(TEST_ACCOUNT_TO_MIGRATE) 137d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setWifiInfo(TEST_WIFI_INFO) 138d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setAdminExtrasBundle(createTestAdminExtras()) 139d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .build(); 140d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng ProvisioningParams provisioningParams2 = ProvisioningParams.Builder.builder() 141d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setProvisioningAction(TEST_PROVISIONING_ACTION) 142d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminPackageName(TEST_PACKAGE_NAME) 143d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminComponentName(TEST_COMPONENT_NAME) 144d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminDownloadInfo(TEST_DOWNLOAD_INFO) 145d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocalTime(TEST_LOCAL_TIME) 146d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocale(TEST_LOCALE) 147d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setTimeZone(TEST_TIME_ZONE) 148d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setMainColor(TEST_MAIN_COLOR) 149d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setStartedByTrustedSource(TEST_STARTED_BY_TRUSTED_SOURCE) 150d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLeaveAllSystemAppsEnabled(TEST_LEAVE_ALL_SYSTEM_APP_ENABLED) 151d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSkipEncryption(TEST_SKIP_ENCRYPTION) 152d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSkipUserSetup(TEST_SKIP_USER_SETUP) 153d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setAccountToMigrate(TEST_ACCOUNT_TO_MIGRATE) 154d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setWifiInfo(TEST_WIFI_INFO) 155d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setAdminExtrasBundle(createTestAdminExtras()) 156d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .build(); 157d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 158d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // WHEN these two objects compare. 159d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // THEN they are the same. 160d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng assertEquals(provisioningParams1, provisioningParams2); 161d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng } 162d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 163d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng @SmallTest 164d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng public void testNotEquals() { 165d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // GIVEN 2 ProvisioningParams objects created by different sets of parameters 166d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng ProvisioningParams provisioningParams1 = ProvisioningParams.Builder.builder() 167d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setProvisioningAction(TEST_PROVISIONING_ACTION) 168d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminPackageName(TEST_PACKAGE_NAME) 169d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminComponentName(TEST_COMPONENT_NAME) 170d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminDownloadInfo(TEST_DOWNLOAD_INFO) 171d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocalTime(TEST_LOCAL_TIME) 172d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocale(TEST_LOCALE) 173d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setTimeZone(TEST_TIME_ZONE) 174d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setMainColor(TEST_MAIN_COLOR) 175d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setStartedByTrustedSource(TEST_STARTED_BY_TRUSTED_SOURCE) 176d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLeaveAllSystemAppsEnabled(TEST_LEAVE_ALL_SYSTEM_APP_ENABLED) 177d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSkipEncryption(TEST_SKIP_ENCRYPTION) 178d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSkipUserSetup(TEST_SKIP_USER_SETUP) 179d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setAccountToMigrate(TEST_ACCOUNT_TO_MIGRATE) 180d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setWifiInfo(TEST_WIFI_INFO) 181d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setAdminExtrasBundle(createTestAdminExtras()) 182d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .build(); 183d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng ProvisioningParams provisioningParams2 = ProvisioningParams.Builder.builder() 184d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setProvisioningAction("different.action") 185d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminPackageName(TEST_PACKAGE_NAME) 186d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminComponentName(TEST_COMPONENT_NAME) 187d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminDownloadInfo(TEST_DOWNLOAD_INFO) 188d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocalTime(TEST_LOCAL_TIME) 189d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocale(TEST_LOCALE) 190d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setTimeZone(TEST_TIME_ZONE) 191d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setMainColor(TEST_MAIN_COLOR) 192d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setStartedByTrustedSource(TEST_STARTED_BY_TRUSTED_SOURCE) 193d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLeaveAllSystemAppsEnabled(TEST_LEAVE_ALL_SYSTEM_APP_ENABLED) 194d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSkipEncryption(TEST_SKIP_ENCRYPTION) 195d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSkipUserSetup(TEST_SKIP_USER_SETUP) 196d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setAccountToMigrate(TEST_ACCOUNT_TO_MIGRATE) 197d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setWifiInfo(TEST_WIFI_INFO) 198d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setAdminExtrasBundle(createTestAdminExtras()) 199d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .build(); 200d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 201d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // WHEN these two objects compare. 202d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // THEN they are not the same. 203d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng MoreAsserts.assertNotEqual(provisioningParams1, provisioningParams2); 204d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng } 205d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 206d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng @SmallTest 207d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng public void testParceable() { 208d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // GIVEN a ProvisioningParams object. 209d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng ProvisioningParams expectedProvisioningParams = ProvisioningParams.Builder.builder() 210d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setProvisioningAction(TEST_PROVISIONING_ACTION) 211d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminPackageName(TEST_PACKAGE_NAME) 212d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminComponentName(TEST_COMPONENT_NAME) 213d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setDeviceAdminDownloadInfo(TEST_DOWNLOAD_INFO) 214d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocalTime(TEST_LOCAL_TIME) 215d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLocale(TEST_LOCALE) 216d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setTimeZone(TEST_TIME_ZONE) 217d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setMainColor(TEST_MAIN_COLOR) 218d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setStartedByTrustedSource(TEST_STARTED_BY_TRUSTED_SOURCE) 219d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setLeaveAllSystemAppsEnabled(TEST_LEAVE_ALL_SYSTEM_APP_ENABLED) 220d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSkipEncryption(TEST_SKIP_ENCRYPTION) 221d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setSkipUserSetup(TEST_SKIP_USER_SETUP) 222d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setAccountToMigrate(TEST_ACCOUNT_TO_MIGRATE) 223d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setWifiInfo(TEST_WIFI_INFO) 224d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .setAdminExtrasBundle(createTestAdminExtras()) 225d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng .build(); 226d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 227d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // WHEN the ProvisioningParams is written to parcel and then read back. 228d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng Parcel parcel = Parcel.obtain(); 229d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng expectedProvisioningParams.writeToParcel(parcel, 0); 230d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng parcel.setDataPosition(0); 231d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng ProvisioningParams actualProvisioningParams = 232d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng ProvisioningParams.CREATOR.createFromParcel(parcel); 233d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng 234d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng // THEN the same ProvisioningParams is obtained. 235d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng assertEquals(expectedProvisioningParams, actualProvisioningParams); 236d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng } 237d1784bd4d917bb36125e6faf125a2425c343838bSteven Ng} 238