diff --git a/app/src/androidTest/assets/views/HabitStreakView/render.png b/app/src/androidTest/assets/views/HabitStreakView/render.png new file mode 100644 index 000000000..365231bff Binary files /dev/null and b/app/src/androidTest/assets/views/HabitStreakView/render.png differ diff --git a/app/src/androidTest/assets/views/HabitStreakView/renderSmallSize.png b/app/src/androidTest/assets/views/HabitStreakView/renderSmallSize.png new file mode 100644 index 000000000..eaa0ca53e Binary files /dev/null and b/app/src/androidTest/assets/views/HabitStreakView/renderSmallSize.png differ diff --git a/app/src/androidTest/java/org/isoron/uhabits/unit/views/HabitStreakViewTest.java b/app/src/androidTest/java/org/isoron/uhabits/unit/views/HabitStreakViewTest.java new file mode 100644 index 000000000..44699a276 --- /dev/null +++ b/app/src/androidTest/java/org/isoron/uhabits/unit/views/HabitStreakViewTest.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2016 Álinson Santos Xavier + * + * This file is part of Loop Habit Tracker. + * + * Loop Habit Tracker is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * Loop Habit Tracker is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +package org.isoron.uhabits.unit.views; + +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.SmallTest; +import android.util.Log; + +import org.isoron.uhabits.models.Habit; +import org.isoron.uhabits.unit.HabitFixtures; +import org.isoron.uhabits.views.HabitStreakView; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +@SmallTest +public class HabitStreakViewTest extends ViewTest +{ + private HabitStreakView view; + + @Before + public void setup() + { + super.setup(); + + HabitFixtures.purgeHabits(); + Habit habit = HabitFixtures.createLongHabit(); + + view = new HabitStreakView(targetContext); + view.setHabit(habit); + measureView(dpToPixels(300), dpToPixels(100), view); + } + + @Test + public void render() throws Throwable + { + assertRenders(view, "HabitStreakView/render.png"); + } + + @Test + public void render_withSmallSize() throws Throwable + { + measureView(dpToPixels(100), dpToPixels(100), view); + assertRenders(view, "HabitStreakView/renderSmallSize.png"); + } +} diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java b/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java index 95083a564..e3f1692e1 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java @@ -62,11 +62,16 @@ public class HabitStreakView extends View implements HabitDataView private boolean shouldShowLabels; private int maxStreakCount; + public HabitStreakView(Context context) + { + super(context); + init(); + } + public HabitStreakView(Context context, AttributeSet attrs) { super(context, attrs); this.primaryColor = ColorHelper.palette[7]; - streaks = Collections.emptyList(); init(); } @@ -83,6 +88,8 @@ public class HabitStreakView extends View implements HabitDataView createPaints(); createColors(); + streaks = Collections.emptyList(); + dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM); dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); rect = new RectF();