diff options
Diffstat (limited to 'OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/TestHelpers.java')
-rw-r--r-- | OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/TestHelpers.java | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/TestHelpers.java b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/TestHelpers.java new file mode 100644 index 000000000..4c058940b --- /dev/null +++ b/OpenKeychain/src/androidTest/java/org/sufficientlysecure/keychain/TestHelpers.java @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2015 Vincent Breitmoser <look@my.amazin.horse> + * + * This program 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. + * + * This program 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 <http://www.gnu.org/licenses/>. + */ + +package org.sufficientlysecure.keychain; + + +import java.util.Random; + +import android.content.Context; +import android.support.annotation.StringRes; + +import org.hamcrest.CoreMatchers; +import org.sufficientlysecure.keychain.pgp.UncachedKeyRing; +import org.sufficientlysecure.keychain.pgp.UncachedKeyRing.IteratorWithIOThrow; +import org.sufficientlysecure.keychain.provider.ProviderHelper; +import org.sufficientlysecure.keychain.ui.util.Notify.Style; +import org.sufficientlysecure.keychain.util.ProgressScaler; + +import static android.support.test.InstrumentationRegistry.getInstrumentation; +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.assertion.ViewAssertions.matches; +import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; +import static android.support.test.espresso.matcher.ViewMatchers.withClassName; +import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static org.sufficientlysecure.keychain.matcher.CustomMatchers.withSnackbarLineColor; + + +public class TestHelpers { + + + public static void checkSnackbar(Style style, @StringRes Integer text) { + + onView(withClassName(CoreMatchers.endsWith("Snackbar"))) + .check(matches(withSnackbarLineColor(style.mLineColor))); + + if (text != null) { + onView(withClassName(CoreMatchers.endsWith("Snackbar"))) + .check(matches(hasDescendant(withText(text)))); + } + + } + + + static void importKeysFromResource(Context context, String name) throws Exception { + IteratorWithIOThrow<UncachedKeyRing> stream = UncachedKeyRing.fromStream( + getInstrumentation().getContext().getAssets().open(name)); + + ProviderHelper helper = new ProviderHelper(context); + while(stream.hasNext()) { + UncachedKeyRing ring = stream.next(); + if (ring.isSecret()) { + helper.saveSecretKeyRing(ring, new ProgressScaler()); + } else { + helper.savePublicKeyRing(ring, new ProgressScaler()); + } + } + + } + + public static String randomString(int min, int max) { + String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()-_="; + Random r = new Random(); + StringBuilder passbuilder = new StringBuilder(); + // 5% chance for an empty string + for(int i = 0, j = r.nextInt(max)+min; i < j; i++) { + passbuilder.append(chars.charAt(r.nextInt(chars.length()))); + } + return passbuilder.toString(); + } + + +} |