daffa_usman/ResourceTest.java
2024-12-31 09:45:13 +07:00

147 lines
7.1 KiB
Java

package org.aplas.myshop;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import androidx.core.content.ContextCompat;
import java.util.Arrays;
public class ResourceTest extends org.aplas.myshop.ViewTest {
private Resources resource;
public ResourceTest(Resources rsc) {
resource =rsc;
}
public int getResourceId(String name, String type) {
return resource.getIdentifier(name, type, getClass().getPackage().getName());
}
public void testStringResource(String name) {
int resId = getResourceId(name,"string");
testItem(0,resId,"String \'"+name+"\' is not defined in strings.xml of values resource",2);
}
public void testStringResource(String name, String expected) {
int resId = resource.getIdentifier(name, "string", getClass().getPackage().getName());
testItem(0,resId,"String \'"+name+"\' is not defined in strings.xml of values resource",2);
testItem(expected,resource.getString(resId),"Value of string \'"+name+"\' is not valid",1);
}
public void testIntegerResource(String name, int expected) {
int resId = resource.getIdentifier(name, "integer", getClass().getPackage().getName());
testItem(0,resId,"Integer "+name+" id is not exist",2);
testItem(expected,resource.getString(resId),"Integer "+name+" value is not valid",1);
}
public void testStringArrayResource(String name, String[] expected) {
int resId = resource.getIdentifier(name, "array", getClass().getPackage().getName());
testItem(0,resId,"String array \'"+name+"\' is not defined in strings.xml of values resource",2);
String[] str = resource.getStringArray(resId);
testItem(arrayToString(expected),arrayToString(str),"Value of String array \'"+name+"\' is not valid",1);
}
public void testColorResource(Activity activity, String name, String value) {
int resId = resource.getIdentifier(name, "color", getClass().getPackage().getName());
testItem(0,resId,"Color '"+name+"' is not defined in colors.xml of value resource",2);
int clrVal = ContextCompat.getColor(activity, resId);
//testItem(Color.parseColor(value),clrVal,"Color '"+name+"' value should be '"+value+"'",1);
testItem(value.toUpperCase(),getHexColor(clrVal),"Color '"+name+"' value should be '"+value+"'",1);
}
public void testColorArrayResource(String name, String[] expected) {
int resId = resource.getIdentifier(name, "array", getClass().getPackage().getName());
testItem(0,resId,"Color array \'"+name+"\' is not defined in colors.xml of values resource",2);
int[] str = resource.getIntArray(resId);
testItem(arrayToString(expected),colorArrayToString(str),
"Value of Color array \'"+name+"\' is not valid in colors.xml resource",1);
}
public void testFontResource(String name, String expected) {
//int resId = R.font.cambria;
//Typeface font = Typeface.createFromAsset(resource.getAssets(),name);
int resId = resource.getIdentifier(name, "font", getClass().getPackage().getName());
testItem(0,resId,"Font "+name+" id is not exist",2);
testItem(expected,resource.getResourceEntryName(resId),"Font "+name+" value is not valid",1);
}
public void testImgResource(String name) {
int resId = resource.getIdentifier(name, "drawable", getClass().getPackage().getName());
testItem(0,resId,"Image "+name+".(png/jpg) is not exist in drawable resource ",2);
}
public void testImgAnimationResource(String name) {
int resId = resource.getIdentifier(name, "drawable", getClass().getPackage().getName());
testItem(0,resId,"Image animation "+name+".xml is not exist in drawable resource ",2);
}
public void testViewAnimationResource(String name) {
int resId = resource.getIdentifier(name, "anim", getClass().getPackage().getName());
testItem(0,resId,"View animation "+name+".xml is not exist in anim resource ",2);
}
public void testDrawableResource(String name, String expected) {
int resId = resource.getIdentifier(name, "drawable", getClass().getPackage().getName());
testItem(0,resId,"Drawable "+name+" id is not exist",2);
//testItem(expected,resource.getDrawable(resId).,"Drawable "+expected+" value is not valid",1);
}
public void testStyleResource(String name) {
int resId = resource.getIdentifier(name, "style", getClass().getPackage().getName());
testItem(0,resId,"Style '"+name+"' is not exist in styles.xml",2);
}
public void testVideoResource(String name) {
int resId = resource.getIdentifier(name, "raw", getClass().getPackage().getName());
testItem(0,resId,"Video '"+name+".(mp4/mpg)' is not exist in raw folder of resource",2);
}
public void testAppTheme(Activity activity, String name) {
int resId = resource.getIdentifier(name, "style", getClass().getPackage().getName());
testItem(resId,activity.getApplicationInfo().theme,
"Applied theme in AndroidManifest.xml should be \'@style/"+name+"\'",1);
}
public void testAppPermission(Activity activity, String name) {
try {
PackageInfo info = activity.getPackageManager().getPackageInfo(activity.getPackageName(), PackageManager.GET_PERMISSIONS);
String[] permissions = info.requestedPermissions;
testItem(0,permissions.length>0,"Can't find 'uses-permission' in AndroidManifest.xml file",3);
int x = Arrays.asList(permissions).indexOf(name);
testItem(0, x>=0, "AndroidManifest.xml must contain permission value '"+name+"'\n"+
"put <uses-permission android:name=\""+name+"\" /> ",3);
} catch (Exception e) {
testItem(0,0,"Permission value in AndroidManifest.xml error",2);
}
}
public void testAppActivities(Activity activity, String name, String packName) {
//testItem(0,activity.getPackageManager().getLaunchIntentForPackage(packName+"."+name),
// "Activity "+name+" must be LAUNCHER",6);
try {
PackageInfo info = activity.getPackageManager().getPackageInfo(activity.getPackageName(), PackageManager.GET_INTENT_FILTERS);
ActivityInfo[] activities = info.activities;
String res="";
for (int i=0; i<activities.length; i++) {
res+=activities[i].name+"-"+activities[i].applicationInfo.category+"-"+activities[i].processName+"@";
}
testItem(0,0,res,2);
//testItem(0,permissions.length>0,"Can't find 'uses-permission' in AndroidManifest.xml file",3);
//int x = Arrays.asList(permissions).indexOf(name);
//testItem(0, x>=0, "AndroidManifest.xml must contain permission value '"+name+"'\n"+
// "put <uses-permission android:name=\""+name+"\" /> ",3);
} catch (Exception e) {
testItem(0,0,"Permission value in AndroidManifest.xml error"+e.toString(),2);
}
}
}