Add CTS verifier test for work status.
Add tests for showing work status icon
and toast to CTS verifier.
Bug: 19539352
Bug: 19531933
Change-Id: I7b33d7e4b776a14f44caca690d9ac9bdea89a4a3
diff --git a/apps/CtsVerifier/AndroidManifest.xml b/apps/CtsVerifier/AndroidManifest.xml
index 4226bf2..a99408f 100644
--- a/apps/CtsVerifier/AndroidManifest.xml
+++ b/apps/CtsVerifier/AndroidManifest.xml
@@ -1337,6 +1337,14 @@
</intent-filter>
</activity>
+ <activity android:name=".managedprovisioning.WorkStatusTestActivity">
+ <intent-filter>
+ <action android:name="com.android.cts.verifier.managedprovisioning.WORK_STATUS_ICON" />
+ <action android:name="com.android.cts.verifier.managedprovisioning.WORK_STATUS_TOAST" />
+ <category android:name="android.intent.category.DEFAULT"></category>
+ </intent-filter>
+ </activity>
+
<activity android:name=".managedprovisioning.WorkNotificationTestActivity">
<intent-filter>
<action android:name="com.android.cts.verifier.managedprovisioning.WORK_NOTIFICATION" />
diff --git a/apps/CtsVerifier/res/drawable/stat_sys_managed_profile_status.xml b/apps/CtsVerifier/res/drawable/stat_sys_managed_profile_status.xml
new file mode 100644
index 0000000..b04059e
--- /dev/null
+++ b/apps/CtsVerifier/res/drawable/stat_sys_managed_profile_status.xml
@@ -0,0 +1,29 @@
+<!--
+Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="23.0dp"
+ android:height="18.0dp"
+ android:viewportWidth="21.0"
+ android:viewportHeight="17.0">
+ <group android:translateX="2.0">
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M9.9,11.6H7v-1.1H2.1v2.8c0,0.8,0.6,1.4,1.4,1.4h9.9c0.8,0,1.4,-0.6,1.4,-1.4v-2.8H9.9V11.6z"/>
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M14.1,4.2h-2.5V3.2l-1.1,-1.1H6.3L5.3,3.2v1H2.8C2,4.2,1.4,4.9,1.4,5.6v2.8c0,0.8,0.6,1.4,1.4,1.4H7V8.8h2.8v1.1h4.2 c0.8,0,1.4,-0.6,1.4,-1.4V5.6C15.5,4.9,14.8,4.2,14.1,4.2z M10.6,4.2H6.3V3.2h4.2V4.2z"/>
+ </group>
+</vector>
diff --git a/apps/CtsVerifier/res/values/strings.xml b/apps/CtsVerifier/res/values/strings.xml
index 9f8f4c1..675188a 100644
--- a/apps/CtsVerifier/res/values/strings.xml
+++ b/apps/CtsVerifier/res/values/strings.xml
@@ -1361,6 +1361,32 @@
Verify that the notification is badged (see sample badge below). Then mark this test accordingly.
</string>
<string name="provisioning_byod_work_notification_title">This is a work notification</string>
+ <string name="provisioning_byod_work_status_icon">Work status icon is displayed</string>
+ <string name="provisioning_byod_work_status_icon_instruction">
+ Verify that the current status bar does not have a work status icon (see sample icon below).
+ \n\n
+ Please press the Go button to launch a work activity.
+ \n\n
+ Verify that the status bar now has a work status icon. Then mark this test accordingly.
+ </string>
+ <string name="provisioning_byod_work_status_icon_activity">
+ Verify that the current status bar has a work status notification.
+ \n\n
+ Please press finish to return to the tests and then mark this test accordingly.
+ </string>
+ <string name="provisioning_byod_work_status_toast">Work status toast is displayed</string>
+ <string name="provisioning_byod_work_status_toast_instruction">
+ Please press the Go button to launch a work activity.
+ \n\n
+ Follow instructions and then return and mark this test accordingly.
+ </string>
+ <string name="provisioning_byod_work_status_toast_activity">
+ Turn off the screen and wait a few seconds then turn on the screen again.
+ \n\n
+ Verify that a toast was displayed saying you are in the work profile.
+ \n\n
+ Please press finish to return to the tests and then mark this test accordingly.
+ </string>
<string name="provisioning_byod_profile_visible_instruction">
Please press the Go button to open the Settings page.
Navigate to Accounts and confirm that:\n
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/ByodFlowTestActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/ByodFlowTestActivity.java
index e41c6d0..112a6e3 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/ByodFlowTestActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/ByodFlowTestActivity.java
@@ -77,6 +77,8 @@
private TestItem mDisableNonMarketTest;
private TestItem mEnableNonMarketTest;
private TestItem mWorkNotificationBadgedTest;
+ private TestItem mWorkStatusBarIconTest;
+ private TestItem mWorkStatusBarToastTest;
private TestItem mAppSettingsVisibleTest;
private TestItem mLocationSettingsVisibleTest;
private TestItem mCredSettingsVisibleTest;
@@ -189,6 +191,21 @@
new Intent(WorkNotificationTestActivity.ACTION_WORK_NOTIFICATION),
R.drawable.ic_corp_icon);
+ Intent workStatusIcon = new Intent(WorkStatusTestActivity.ACTION_WORK_STATUS_ICON);
+ workStatusIcon.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ mWorkStatusBarIconTest = new TestItemWithIcon(this,
+ R.string.provisioning_byod_work_status_icon,
+ R.string.provisioning_byod_work_status_icon_instruction,
+ workStatusIcon,
+ R.drawable.stat_sys_managed_profile_status);
+
+ Intent workStatusToast = new Intent(WorkStatusTestActivity.ACTION_WORK_STATUS_TOAST);
+ workStatusToast.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ mWorkStatusBarToastTest = new TestItem(this,
+ R.string.provisioning_byod_work_status_toast,
+ R.string.provisioning_byod_work_status_toast_instruction,
+ workStatusToast);
+
mDisableNonMarketTest = new TestItem(this, R.string.provisioning_byod_nonmarket_deny,
R.string.provisioning_byod_nonmarket_deny_info,
new Intent(ByodHelperActivity.ACTION_INSTALL_APK)
@@ -246,6 +263,8 @@
// Badge related tests
mTests.add(mWorkAppVisibleTest);
mTests.add(mWorkNotificationBadgedTest);
+ mTests.add(mWorkStatusBarIconTest);
+ mTests.add(mWorkStatusBarToastTest);
// Settings related tests.
mTests.add(mProfileAccountVisibleTest);
@@ -465,6 +484,10 @@
this, WorkNotificationTestActivity.class),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
+ getPackageManager().setComponentEnabledSetting(new ComponentName(
+ this, WorkStatusTestActivity.class),
+ PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
+ PackageManager.DONT_KILL_APP);
}
private void showToast(int messageId) {
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/DeviceAdminTestReceiver.java b/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/DeviceAdminTestReceiver.java
index e95752e..9154307 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/DeviceAdminTestReceiver.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/DeviceAdminTestReceiver.java
@@ -56,6 +56,8 @@
filter.addAction(CrossProfileTestActivity.ACTION_CROSS_PROFILE);
filter.addAction(WorkNotificationTestActivity.ACTION_WORK_NOTIFICATION);
filter.addAction(WorkNotificationTestActivity.ACTION_CLEAR_WORK_NOTIFICATION);
+ filter.addAction(WorkStatusTestActivity.ACTION_WORK_STATUS_TOAST);
+ filter.addAction(WorkStatusTestActivity.ACTION_WORK_STATUS_ICON);
dpm.addCrossProfileIntentFilter(getWho(context), filter,
DevicePolicyManager.FLAG_MANAGED_CAN_ACCESS_PARENT);
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/WorkStatusTestActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/WorkStatusTestActivity.java
new file mode 100644
index 0000000..ee9aa44
--- /dev/null
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/WorkStatusTestActivity.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.cts.verifier.managedprovisioning;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.TextView;
+
+import com.android.cts.verifier.R;
+
+/**
+ * Test activity for work status tests.
+ */
+public class WorkStatusTestActivity extends Activity {
+ public static final String ACTION_WORK_STATUS_ICON
+ = "com.android.cts.verifier.managedprovisioning.WORK_STATUS_ICON";
+ public static final String ACTION_WORK_STATUS_TOAST
+ = "com.android.cts.verifier.managedprovisioning.WORK_STATUS_TOAST";
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.provisioning_cross_profile);
+
+ findViewById(R.id.button_finish).setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ WorkStatusTestActivity.this.finish();
+ }
+ });
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ String action = getIntent().getAction();
+ TextView textView = (TextView) findViewById(R.id.text);
+ if (ACTION_WORK_STATUS_ICON.equals(action)) {
+ textView.setText(R.string.provisioning_byod_work_status_icon_activity);
+ } else if (ACTION_WORK_STATUS_TOAST.equals(action)) {
+ textView.setText(R.string.provisioning_byod_work_status_toast_activity);
+ }
+ }
+}