aboutsummaryrefslogtreecommitdiff
path: root/tests/common/src/com/android/tv/testing/utils/Utils.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/common/src/com/android/tv/testing/utils/Utils.java')
-rw-r--r--tests/common/src/com/android/tv/testing/utils/Utils.java119
1 files changed, 119 insertions, 0 deletions
diff --git a/tests/common/src/com/android/tv/testing/utils/Utils.java b/tests/common/src/com/android/tv/testing/utils/Utils.java
new file mode 100644
index 00000000..a116db0b
--- /dev/null
+++ b/tests/common/src/com/android/tv/testing/utils/Utils.java
@@ -0,0 +1,119 @@
+/*
+ * 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.
+ */
+
+package com.android.tv.testing.utils;
+
+import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.pm.ServiceInfo;
+import android.content.res.Resources;
+import android.media.tv.TvInputInfo;
+import android.media.tv.TvInputManager;
+import android.net.Uri;
+import android.util.Log;
+import com.android.tv.common.CommonConstants;
+import com.android.tv.common.util.CommonUtils;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+import java.util.Random;
+
+/**
+ * An utility class for testing.
+ *
+ * @see CommonUtils#isRunningInTest
+ */
+public final class Utils {
+ private static final String TAG = "Utils";
+
+ private static final long DEFAULT_RANDOM_SEED = getSeed();
+
+ public static String getUriStringForResource(Context context, int resId) {
+ if (resId == 0) {
+ return "";
+ }
+ Resources res = context.getResources();
+ return new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
+ .authority(res.getResourcePackageName(resId))
+ .path(res.getResourceTypeName(resId))
+ .appendPath(res.getResourceEntryName(resId))
+ .build()
+ .toString();
+ }
+
+ public static void copy(InputStream is, OutputStream os) throws IOException {
+ byte[] buffer = new byte[1024];
+ int len;
+ while ((len = is.read(buffer)) != -1) {
+ os.write(buffer, 0, len);
+ }
+ }
+
+ public static String getServiceNameFromInputId(Context context, String inputId) {
+ TvInputManager tim = (TvInputManager) context.getSystemService(Context.TV_INPUT_SERVICE);
+ for (TvInputInfo info : tim.getTvInputList()) {
+ if (info.getId().equals(inputId)) {
+ return info.getServiceInfo().name;
+ }
+ }
+ return null;
+ }
+
+ public static String getInputIdFromComponentName(Context context, ComponentName name) {
+ TvInputManager tim = (TvInputManager) context.getSystemService(Context.TV_INPUT_SERVICE);
+ for (TvInputInfo info : tim.getTvInputList()) {
+ ServiceInfo si = info.getServiceInfo();
+ if (new ComponentName(si.packageName, si.name).equals(name)) {
+ return info.getId();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return the Random class which is needed to make random data for testing. Default seed of the
+ * random is today's date.
+ */
+ public static Random createTestRandom() {
+ return new Random(DEFAULT_RANDOM_SEED);
+ }
+
+ private static long getSeed() {
+ // Set random seed as the date to track failed test data easily.
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd", Locale.getDefault());
+ String today = dateFormat.format(new Date());
+ Log.d(TAG, "Today's random seed is " + today);
+ return Long.valueOf(today);
+ }
+
+ /** Checks whether TvActivity is enabled or not. */
+ public static boolean isTvActivityEnabled(Context context) {
+ PackageManager pm = context.getPackageManager();
+ ComponentName name =
+ new ComponentName(CommonConstants.BASE_PACKAGE, "com.android.tv.TvActivity");
+ int enabled = pm.getComponentEnabledSetting(name);
+ return enabled == PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+ || enabled == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
+ }
+
+ private Utils() {}
+}