From a304308869cc5945a0b925a065916b058ee97a49 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Wed, 4 Nov 2015 12:13:41 +0100 Subject: [PATCH] Update version for v2.0.1-beta1 release Improve reliability of UI tests --- app/build.gradle | 4 +++- .../android/test/ui/ExportTransactionsTest.java | 10 +++++++--- .../android/ui/util/widget/CalculatorEditText.java | 12 ++++++++++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index af8b22281..17ec24dc7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,7 +6,7 @@ apply plugin: 'io.fabric' def versionMajor = 2 def versionMinor = 0 def versionPatch = 1 -def versionBuild = 0 +def versionBuild = 1 def buildTime() { def df = new SimpleDateFormat("yyyyMMdd HH:mm 'UTC'") @@ -138,11 +138,13 @@ afterEvaluate { output.eachLine { def serial = it.split("\\s")[0] commandLine "$adb -s $serial shell pm grant $android.productFlavors.development.applicationId android.permission.SET_ANIMATION_SCALE".split(' ') + commandLine "$adb -s $serial shell pm grant $android.productFlavors.development.applicationId android.permission.WRITE_EXTERNAL_STORAGE".split(' ') } } task grantAnimationPermissionProduction(type: Exec, dependsOn: 'installProductionDebug'){ commandLine "$adb -e shell pm grant $android.defaultConfig.applicationId android.permission.SET_ANIMATION_SCALE".split(' ') + commandLine "$adb -e shell pm grant $android.defaultConfig.applicationId android.permission.WRITE_EXTERNAL_STORAGE".split(' ') } // When launching individual tests from Android Studio, it seems that only the assemble tasks // get called directly, not the install* versions diff --git a/app/src/androidTest/java/org/gnucash/android/test/ui/ExportTransactionsTest.java b/app/src/androidTest/java/org/gnucash/android/test/ui/ExportTransactionsTest.java index 1e56a232b..5b51bdce7 100644 --- a/app/src/androidTest/java/org/gnucash/android/test/ui/ExportTransactionsTest.java +++ b/app/src/androidTest/java/org/gnucash/android/test/ui/ExportTransactionsTest.java @@ -17,6 +17,7 @@ package org.gnucash.android.test.ui; import android.Manifest; +import android.app.AlertDialog; import android.content.pm.PackageManager; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; @@ -48,8 +49,10 @@ import org.gnucash.android.ui.account.AccountsActivity; import org.junit.After; import org.junit.Before; +import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runner.RunWith; +import org.junit.runners.MethodSorters; import java.io.File; import java.util.Currency; @@ -68,6 +71,7 @@ import static org.hamcrest.Matchers.allOf; @RunWith(AndroidJUnit4.class) +@FixMethodOrder(MethodSorters.NAME_ASCENDING) public class ExportTransactionsTest extends ActivityInstrumentationTestCase2 { @@ -136,7 +140,7 @@ public void testOfxExport(){ } @Test - public void shouldNotOfferXmlExportInSingleEntryMode(){ + public void whenInSingleEntry_shouldHideXmlExportOption(){ PreferenceManager.getDefaultSharedPreferences(mAcccountsActivity) .edit().putBoolean(mAcccountsActivity.getString(R.string.key_use_double_entry), false) .commit(); @@ -174,7 +178,7 @@ public void testExport(ExportFormat format){ mAcccountsActivity.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 0x23); - onView(withId(android.R.id.button1)).perform(click()); + onView(withId(AlertDialog.BUTTON_POSITIVE)).perform(click()); } } @@ -216,7 +220,7 @@ public void testDeleteTransactionsAfterExport(){ * Does not work on Travis yet */ @Test - public void shouldCreateExportSchedule(){ + public void testShouldCreateExportSchedule(){ DrawerActions.openDrawer(R.id.drawer_layout); onView(withText(R.string.nav_menu_export)).perform(click()); diff --git a/app/src/main/java/org/gnucash/android/ui/util/widget/CalculatorEditText.java b/app/src/main/java/org/gnucash/android/ui/util/widget/CalculatorEditText.java index 7d153a23b..d58de4a4a 100644 --- a/app/src/main/java/org/gnucash/android/ui/util/widget/CalculatorEditText.java +++ b/app/src/main/java/org/gnucash/android/ui/util/widget/CalculatorEditText.java @@ -317,9 +317,17 @@ public boolean isInputModified(){ public BigDecimal getValue(){ evaluate(); String amountString = getCleanString(); - if (amountString.isEmpty() || !amountString.matches("\\d+")) //value should contain atleast one digit + if (amountString.isEmpty()) + return null; + try { //catch any exceptions in the conversion e.g. if a string with only "-" is entered + return new BigDecimal(amountString); + } catch (Exception e){ + String msg = "Error parsing amount string " + amountString + " from CalculatorEditText"; + Log.i(getClass().getSimpleName(), msg, e); + Crashlytics.log(msg); + Crashlytics.logException(e); return null; - return new BigDecimal(amountString); + } } /**