summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGirish Moturu <gmoturu@google.com>2017-05-11 10:02:04 +0530
committerGirish Moturu <gmoturu@google.com>2017-08-10 11:12:32 -0700
commit672af0ddeb6cee46740d131f60473c0733754b81 (patch)
tree2bdd9f9c82dfebef65a31b3fd1d7a138620950d7
parentafd0ad43555fda4808de6e9dc35717a0fe11fcba (diff)
downloadconnectivity-672af0ddeb6cee46740d131f60473c0733754b81.tar.gz
Code for starting UID app
CHERRY PICKED CHANGES FROM AOSP UID de-race automation requires an app to be launched, verify the internet connectivity after launching. The following code needs to be compiled to generate an APK which acts as an app Bug: 38189852 Test: Reproduced and verified the bug fix in MR1 and OC Change-Id: I6ed247cc6335d3b6be56ece97789076e9c4b4765
-rw-r--r--UID/Android.mk30
-rw-r--r--UID/AndroidManifest.xml41
-rw-r--r--UID/res/values/strings.xml22
-rw-r--r--UID/res/values/styles.xml33
-rw-r--r--UID/src/com/android/tests/connectivity/uid/ConnectivityTestActivity.java81
5 files changed, 207 insertions, 0 deletions
diff --git a/UID/Android.mk b/UID/Android.mk
new file mode 100644
index 0000000..19851f6
--- /dev/null
+++ b/UID/Android.mk
@@ -0,0 +1,30 @@
+#
+## Copyright (C) 2017 Google, Inc.
+#
+## 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.
+#
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_PACKAGE_NAME := ConnectivityUIDTest
+LOCAL_CERTIFICATE := platform
+LOCAL_DEX_PREOPT := false
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+
+LOCAL_PRIVILEGED_MODULE := true
+LOCAL_PROGUARD_ENABLED := disabled
+
+include $(BUILD_PACKAGE)
diff --git a/UID/AndroidManifest.xml b/UID/AndroidManifest.xml
new file mode 100644
index 0000000..0baa509
--- /dev/null
+++ b/UID/AndroidManifest.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2017 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.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.connectivity.uid"
+ android:versionCode="3"
+ android:versionName="3.0" >
+
+ <uses-sdk
+ android:minSdkVersion="19"
+ android:targetSdkVersion="26" />
+
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+
+ <application
+ android:allowBackup="true"
+ android:label="@string/app_name"
+ android:theme="@style/AppTheme" >
+ <!-- Dummy activity -->
+ <activity
+ android:name="com.android.tests.connectivity.uid.ConnectivityTestActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:label="@string/app_name" >
+ </activity>
+ </application>
+
+</manifest>
diff --git a/UID/res/values/strings.xml b/UID/res/values/strings.xml
new file mode 100644
index 0000000..9f0cf32
--- /dev/null
+++ b/UID/res/values/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2017 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.
+-->
+<resources>
+
+ <string name="app_name">ConnectivityUIDTest</string>
+ <string name="settings">Settings</string>
+
+</resources>
diff --git a/UID/res/values/styles.xml b/UID/res/values/styles.xml
new file mode 100644
index 0000000..2847191
--- /dev/null
+++ b/UID/res/values/styles.xml
@@ -0,0 +1,33 @@
+<!--
+ Copyright 2017 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.
+-->
+<resources>
+
+ <!--
+ Base application theme for API 14+. This theme completely replaces
+ AppBaseTheme from BOTH res/values/styles.xml and
+ res/values-v11/styles.xml on API 14+ devices.
+ -->
+ <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
+ <!-- API 14 theme customizations can go here. -->
+ </style>
+
+ <!-- Application theme. -->
+ <style name="AppTheme" parent="AppBaseTheme">
+ <!-- All customizations that are NOT specific to a particular API-level can go here. -->
+ </style>
+
+
+</resources>
diff --git a/UID/src/com/android/tests/connectivity/uid/ConnectivityTestActivity.java b/UID/src/com/android/tests/connectivity/uid/ConnectivityTestActivity.java
new file mode 100644
index 0000000..49c6c14
--- /dev/null
+++ b/UID/src/com/android/tests/connectivity/uid/ConnectivityTestActivity.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2017 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.tests.connectivity.uid;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.os.Bundle;
+import android.os.StrictMode;
+import android.util.Log;
+import java.io.*;
+import java.lang.Thread;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+public class ConnectivityTestActivity extends Activity {
+
+ ConnectivityManager connectivityManager;
+ NetworkInfo netInfo;
+ public static final String TAG = "ConnectivityUIDTest";
+ private static final String RESULT = "result";
+
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ StrictMode.ThreadPolicy policy =
+ new StrictMode.ThreadPolicy.Builder().permitAll().build();
+ StrictMode.setThreadPolicy(policy);
+ }
+
+ public void onResume() {
+ super.onResume();
+ boolean conn = checkNow(this.getApplicationContext());
+ Intent returnIntent = new Intent();
+ returnIntent.putExtra(RESULT, conn);
+ setResult(RESULT_OK, returnIntent);
+ finish();
+ }
+
+ public boolean checkNow(Context con) {
+ try{
+ connectivityManager = (ConnectivityManager)
+ con.getSystemService(Context.CONNECTIVITY_SERVICE);
+ netInfo = connectivityManager.getActiveNetworkInfo();
+ return netInfo.isConnected() && httpRequest();
+ } catch(Exception e) {
+ Log.e(TAG, "CheckConnectivity exception: ", e);
+ }
+
+ return false;
+ }
+
+ private boolean httpRequest() throws IOException {
+ URL targetURL = new URL("http://www.google.com/generate_204");
+ HttpURLConnection urlConnection = null;
+ try {
+ urlConnection = (HttpURLConnection) targetURL.openConnection();
+ urlConnection.connect();
+ int respCode = urlConnection.getResponseCode();
+ return (respCode == 204);
+ } catch (IOException e) {
+ Log.e(TAG, "Checkconnectivity exception: ", e);
+ }
+ return false;
+ }
+}