From 20469789ea17bfc97a65b7517a185ef3fb92bd26 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Wed, 30 Mar 2016 18:41:00 -0400 Subject: [PATCH] Add tests for HabitFrequencyView --- .../views/HabitFrequencyView/render.png | Bin 0 -> 6242 bytes .../HabitFrequencyView/renderDataOffset.png | Bin 0 -> 3994 bytes .../renderDifferentSize.png | Bin 0 -> 11442 bytes .../unit/views/HabitFrequencyViewTest.java | 72 ++++++++++++++++++ .../uhabits/views/HabitFrequencyView.java | 9 ++- 5 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 app/src/androidTest/assets/views/HabitFrequencyView/render.png create mode 100644 app/src/androidTest/assets/views/HabitFrequencyView/renderDataOffset.png create mode 100644 app/src/androidTest/assets/views/HabitFrequencyView/renderDifferentSize.png create mode 100644 app/src/androidTest/java/org/isoron/uhabits/unit/views/HabitFrequencyViewTest.java 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 0000000000000000000000000000000000000000..28c46f5a253326d933e8a7bf26f01c4908927bbc GIT binary patch literal 6242 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cb5347b1ced1f875306d2f5d75e713477b6ad908 GIT binary patch literal 11442 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 X4>DM0mIfX|2B|&PR4RFB7W{tzR^`mB literal 0 HcmV?d00001 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());