diff --git a/app/src/androidTest/assets/views/HabitFrequencyView/render.png b/app/src/androidTest/assets/views/HabitFrequencyView/render.png new file mode 100644 index 000000000..28c46f5a2 Binary files /dev/null and b/app/src/androidTest/assets/views/HabitFrequencyView/render.png differ diff --git a/app/src/androidTest/assets/views/HabitFrequencyView/renderDataOffset.png b/app/src/androidTest/assets/views/HabitFrequencyView/renderDataOffset.png new file mode 100644 index 000000000..1125e478a Binary files /dev/null and b/app/src/androidTest/assets/views/HabitFrequencyView/renderDataOffset.png differ diff --git a/app/src/androidTest/assets/views/HabitFrequencyView/renderDifferentSize.png b/app/src/androidTest/assets/views/HabitFrequencyView/renderDifferentSize.png new file mode 100644 index 000000000..cb5347b1c Binary files /dev/null and b/app/src/androidTest/assets/views/HabitFrequencyView/renderDifferentSize.png differ diff --git a/app/src/androidTest/java/org/isoron/uhabits/unit/views/HabitFrequencyViewTest.java b/app/src/androidTest/java/org/isoron/uhabits/unit/views/HabitFrequencyViewTest.java new file mode 100644 index 000000000..54f24072d --- /dev/null +++ b/app/src/androidTest/java/org/isoron/uhabits/unit/views/HabitFrequencyViewTest.java @@ -0,0 +1,72 @@ +/* + * 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 org.isoron.uhabits.models.Habit; +import org.isoron.uhabits.unit.HabitFixtures; +import org.isoron.uhabits.views.HabitFrequencyView; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +@SmallTest +public class HabitFrequencyViewTest extends ViewTest +{ + private HabitFrequencyView view; + + @Before + public void setup() + { + super.setup(); + + HabitFixtures.purgeHabits(); + Habit habit = HabitFixtures.createLongHabit(); + + view = new HabitFrequencyView(targetContext); + view.setHabit(habit); + measureView(dpToPixels(300), dpToPixels(100), view); + } + + @Test + public void render() throws Throwable + { + assertRenders(view, "HabitFrequencyView/render.png"); + } + + @Test + public void render_withDifferentSize() throws Throwable + { + measureView(dpToPixels(200), dpToPixels(200), view); + assertRenders(view, "HabitFrequencyView/renderDifferentSize.png"); + } + + @Test + public void render_withDataOffset() throws Throwable + { + view.onScroll(null, null, -dpToPixels(150), 0); + view.invalidate(); + + assertRenders(view, "HabitFrequencyView/renderDataOffset.png"); + } +} diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java b/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java index aca5c4fff..94b34af32 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java @@ -66,12 +66,17 @@ public class HabitFrequencyView extends ScrollableDataView implements HabitDataV private HashMap frequency; private String wdays[]; + public HabitFrequencyView(Context context) + { + super(context); + init(); + } + public HabitFrequencyView(Context context, AttributeSet attrs) { super(context, attrs); this.primaryColor = ColorHelper.palette[7]; this.frequency = new HashMap<>(); - wdays = DateHelper.getShortDayNames(); init(); } @@ -89,6 +94,8 @@ public class HabitFrequencyView extends ScrollableDataView implements HabitDataV createPaints(); createColors(); + wdays = DateHelper.getShortDayNames(); + dfMonth = new SimpleDateFormat("MMM", Locale.getDefault()); dfYear = new SimpleDateFormat("yyyy", Locale.getDefault());