Merge "Load regulatory info from /data/misc" into oc-dr1-dev am: f964e8c3b2
am: 9f7227eb59
Change-Id: I2421dba06e793b62ed3abb2dde041b8d0e1f0d29
This commit is contained in:
@@ -16,6 +16,25 @@
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import android.app.Instrumentation;
|
||||
import android.app.UiAutomation;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.graphics.Bitmap;
|
||||
import android.support.test.InstrumentationRegistry;
|
||||
import android.support.test.filters.SmallTest;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
import android.util.Log;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import static android.support.test.espresso.Espresso.onView;
|
||||
import static android.support.test.espresso.assertion.ViewAssertions.matches;
|
||||
import static android.support.test.espresso.matcher.RootMatchers.isDialog;
|
||||
@@ -23,28 +42,19 @@ import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
|
||||
import static android.support.test.espresso.matcher.ViewMatchers.withId;
|
||||
import static junit.framework.Assert.fail;
|
||||
|
||||
import android.app.Instrumentation;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.support.test.InstrumentationRegistry;
|
||||
import android.support.test.filters.SmallTest;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
@SmallTest
|
||||
public class RegulatoryInfoDisplayActivityTest {
|
||||
private static final String TAG = "RegulatoryInfoTest";
|
||||
|
||||
private Instrumentation mInstrumentation;
|
||||
private Intent mRegulatoryInfoIntent;
|
||||
private UiAutomation mUiAutomation;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
mInstrumentation = InstrumentationRegistry.getInstrumentation();
|
||||
mUiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation();
|
||||
mRegulatoryInfoIntent = new Intent("android.settings.SHOW_REGULATORY_INFO")
|
||||
.addCategory(Intent.CATEGORY_DEFAULT)
|
||||
.setPackage(mInstrumentation.getTargetContext().getPackageName());
|
||||
@@ -88,4 +98,55 @@ public class RegulatoryInfoDisplayActivityTest {
|
||||
.check(matches(isDisplayed()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchRegulatoryInfo_withInfoImage_shouldDisplay() throws IOException {
|
||||
// TODO: Remove "setenforce 0" when selinux rules is updated to give read permission for
|
||||
// regulatory info.
|
||||
mUiAutomation.executeShellCommand("setenforce 0");
|
||||
|
||||
final boolean tempFileCreated = ensureRegulatoryInfoImageExists();
|
||||
try {
|
||||
final Context context = mInstrumentation.getTargetContext();
|
||||
final boolean hasRegulatoryInfo = context.getResources()
|
||||
.getBoolean(R.bool.config_show_regulatory_info);
|
||||
|
||||
if (!hasRegulatoryInfo) {
|
||||
return;
|
||||
}
|
||||
// Launch intent
|
||||
mInstrumentation.startActivitySync(mRegulatoryInfoIntent);
|
||||
|
||||
onView(withId(R.id.regulatoryInfo))
|
||||
.inRoot(isDialog())
|
||||
.check(matches(isDisplayed()));
|
||||
} finally {
|
||||
if (tempFileCreated) {
|
||||
final String filename =
|
||||
RegulatoryInfoDisplayActivity.getRegulatoryInfoImageFileName();
|
||||
new File(filename).delete();
|
||||
Log.d(TAG, "Deleting temp file " + filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures regulatory label image exists on disk.
|
||||
*
|
||||
* @return true if a test image is created.
|
||||
*/
|
||||
private boolean ensureRegulatoryInfoImageExists() throws IOException {
|
||||
final String filename = RegulatoryInfoDisplayActivity.getRegulatoryInfoImageFileName();
|
||||
if (new File(filename).exists()) {
|
||||
return false;
|
||||
}
|
||||
Log.d(TAG, "Creating temp file " + filename);
|
||||
final Bitmap bitmap = Bitmap.createBitmap(400 /* width */, 400 /* height */,
|
||||
Bitmap.Config.ARGB_8888);
|
||||
final FileOutputStream out = new FileOutputStream(filename);
|
||||
bitmap.compress(Bitmap.CompressFormat.PNG, 100 /* quality */, out);
|
||||
out.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user