View tests: use fixed screen density

pull/231/merge
Alinson S. Xavier 8 years ago
parent 96b95edef8
commit 1b97b9040d

@ -78,6 +78,7 @@ public class BaseAndroidTest
targetContext = InstrumentationRegistry.getTargetContext(); targetContext = InstrumentationRegistry.getTargetContext();
testContext = InstrumentationRegistry.getContext(); testContext = InstrumentationRegistry.getContext();
InterfaceUtils.setFixedResolution(2.0f);
DateUtils.setFixedLocalTime(FIXED_LOCAL_TIME); DateUtils.setFixedLocalTime(FIXED_LOCAL_TIME);
setTheme(R.style.AppBaseTheme); setTheme(R.style.AppBaseTheme);
setLocale("en", "US"); setLocale("en", "US");

@ -100,17 +100,18 @@ public class BaseViewTest extends BaseAndroidTest
return view; return view;
} }
protected int dpToPixels(int dp) protected float dpToPixels(int dp)
{ {
return (int) InterfaceUtils.dpToPixels(targetContext, dp); return InterfaceUtils.dpToPixels(targetContext, dp);
} }
protected void measureView(View view, int width, int height) protected void measureView(View view, float width, float height)
{ {
int specWidth = makeMeasureSpec(width, View.MeasureSpec.EXACTLY); int specWidth = makeMeasureSpec((int) width, View.MeasureSpec.EXACTLY);
int specHeight = makeMeasureSpec(height, View.MeasureSpec.EXACTLY); int specHeight = makeMeasureSpec((int) height, View.MeasureSpec.EXACTLY);
view.setLayoutParams(new ViewGroup.LayoutParams(width, height)); view.setLayoutParams(
new ViewGroup.LayoutParams((int) width, (int) height));
view.measure(specWidth, specHeight); view.measure(specWidth, specHeight);
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
} }

@ -21,7 +21,6 @@ package org.isoron.uhabits.activities.common.views;
import android.support.test.runner.*; import android.support.test.runner.*;
import android.test.suitebuilder.annotation.*; import android.test.suitebuilder.annotation.*;
import android.util.*;
import org.isoron.uhabits.*; import org.isoron.uhabits.*;
import org.isoron.uhabits.models.*; import org.isoron.uhabits.models.*;
@ -58,8 +57,6 @@ public class ScoreChartTest extends BaseViewTest
@Test @Test
public void testRender() throws Throwable public void testRender() throws Throwable
{ {
Log.d("HabitScoreViewTest",
String.format("height=%d", dpToPixels(100)));
assertRenders(view, BASE_PATH + "render.png"); assertRenders(view, BASE_PATH + "render.png");
} }

@ -32,6 +32,14 @@ public abstract class InterfaceUtils
{ {
private static Typeface fontAwesome; private static Typeface fontAwesome;
@Nullable
private static Float fixedResolution = null;
public static void setFixedResolution(@Nullable Float f)
{
fixedResolution = f;
}
public static Typeface getFontAwesome(Context context) public static Typeface getFontAwesome(Context context)
{ {
if(fontAwesome == null) fontAwesome = if(fontAwesome == null) fontAwesome =
@ -43,6 +51,8 @@ public abstract class InterfaceUtils
public static float dpToPixels(Context context, float dp) public static float dpToPixels(Context context, float dp)
{ {
if(fixedResolution != null) return dp * fixedResolution;
Resources resources = context.getResources(); Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics(); DisplayMetrics metrics = resources.getDisplayMetrics();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, metrics); return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, metrics);
@ -50,6 +60,8 @@ public abstract class InterfaceUtils
public static float spToPixels(Context context, float sp) public static float spToPixels(Context context, float sp)
{ {
if(fixedResolution != null) return sp * fixedResolution;
Resources resources = context.getResources(); Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics(); DisplayMetrics metrics = resources.getDisplayMetrics();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, metrics); return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, metrics);

Loading…
Cancel
Save