mobile/android/tests/background/junit3/src/helpers/DBProviderTestCase.java

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 package org.mozilla.gecko.background.helpers;
     6 import java.io.File;
     8 import android.content.ContentProvider;
     9 import android.content.Context;
    10 import android.test.AndroidTestCase;
    11 import android.test.mock.MockContentResolver;
    13 /**
    14  * Because ProviderTestCase2 is unable to handle custom DB paths.
    15  */
    16 public abstract class DBProviderTestCase<T extends ContentProvider> extends
    17     AndroidTestCase {
    19   Class<T> providerClass;
    20   String providerAuthority;
    22   protected File fakeProfileDirectory;
    23   private MockContentResolver resolver;
    24   private T provider;
    26   public DBProviderTestCase(Class<T> providerClass, String providerAuthority) {
    27     this.providerClass = providerClass;
    28     this.providerAuthority = providerAuthority;
    29   }
    31   public T getProvider() {
    32     return provider;
    33   }
    35   public MockContentResolver getMockContentResolver() {
    36     return resolver;
    37   }
    39   protected String getCacheSuffix() {
    40     return this.getClass().getName() + "-" + System.currentTimeMillis();
    41   }
    43   @Override
    44   protected void setUp() throws Exception {
    45     super.setUp();
    47     File cache = getContext().getCacheDir();
    48     fakeProfileDirectory = new File(cache.getAbsolutePath() + getCacheSuffix());
    49     System.out.println("Test: Creating profile directory " + fakeProfileDirectory.getAbsolutePath());
    50     if (!fakeProfileDirectory.mkdir()) {
    51       throw new IllegalStateException("Could not create temporary directory.");
    52     }
    54     final Context context = getContext();
    55     assertNotNull(context);
    56     resolver = new MockContentResolver();
    57     provider = providerClass.newInstance();
    58     provider.attachInfo(context, null);
    59     assertNotNull(provider);
    60     resolver.addProvider(providerAuthority, getProvider());
    61   }
    63   @Override
    64   protected void tearDown() throws Exception {
    65     // We don't check return values.
    66     System.out.println("Test: Cleaning up " + fakeProfileDirectory.getAbsolutePath());
    67     for (File child : fakeProfileDirectory.listFiles()) {
    68       child.delete();
    69     }
    70     fakeProfileDirectory.delete();
    71     super.tearDown();
    72   }
    73 }

mercurial