Home | History | Annotate | Download | only in email
      1 /*
      2  * Copyright (C) 2009 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
      5  * use this file except in compliance with the License. You may obtain a copy of
      6  * the License at
      7  *
      8  * http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
     12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     13  * License for the specific language governing permissions and limitations under
     14  * the License.
     15  */
     16 
     17 package com.android.email;
     18 
     19 import android.content.Context;
     20 import android.test.ProviderTestCase2;
     21 import android.test.suitebuilder.annotation.Suppress;
     22 
     23 import com.android.email.provider.ContentCache;
     24 import com.android.email.provider.EmailProvider;
     25 import com.android.emailcommon.provider.EmailContent;
     26 import com.android.emailcommon.provider.Mailbox;
     27 
     28 import java.util.Locale;
     29 
     30 /**
     31  * Tests of the Controller class that depend on the underlying provider.
     32  *
     33  * NOTE:  It would probably make sense to rewrite this using a MockProvider, instead of the
     34  * ProviderTestCase (which is a real provider running on a temp database).  This would be more of
     35  * a true "unit test".
     36  *
     37  * You can run this entire test case with:
     38  *   runtest -c com.android.email.ControllerProviderOpsTests email
     39  */
     40 @Suppress
     41 public class ControllerProviderOpsTests extends ProviderTestCase2<EmailProvider> {
     42     private Context mProviderContext;
     43     private Context mContext;
     44 
     45     public ControllerProviderOpsTests() {
     46         super(EmailProvider.class, EmailContent.AUTHORITY);
     47     }
     48 
     49     @Override
     50     public void setUp() throws Exception {
     51         super.setUp();
     52         mProviderContext = getMockContext();
     53         mContext = getContext();
     54         // Invalidate all caches, since we reset the database for each test
     55         ContentCache.invalidateAllCaches();
     56     }
     57 
     58     @Override
     59     public void tearDown() throws Exception {
     60         super.tearDown();
     61     }
     62 
     63     /**
     64      * These are strings that should not change per locale.
     65      */
     66     public void testGetMailboxServerName() {
     67         try {
     68             Mailbox.getSystemMailboxName(mContext, -1);
     69             fail("Mailbox.getSystemMailboxName(mContext, -1) succeeded without an exception");
     70         } catch (IllegalArgumentException e) {
     71             // we expect an exception, so do nothing
     72         }
     73 
     74         assertEquals("Inbox", Mailbox.getSystemMailboxName(mContext, Mailbox.TYPE_INBOX));
     75         assertEquals("Outbox", Mailbox.getSystemMailboxName(mContext, Mailbox.TYPE_OUTBOX));
     76         assertEquals("Trash", Mailbox.getSystemMailboxName(mContext, Mailbox.TYPE_TRASH));
     77         assertEquals("Sent", Mailbox.getSystemMailboxName(mContext, Mailbox.TYPE_SENT));
     78         assertEquals("Junk", Mailbox.getSystemMailboxName(mContext, Mailbox.TYPE_JUNK));
     79 
     80         // Now try again with translation
     81         Locale savedLocale = Locale.getDefault();
     82         Locale.setDefault(Locale.FRANCE);
     83         assertEquals("Inbox", Mailbox.getSystemMailboxName(mContext, Mailbox.TYPE_INBOX));
     84         assertEquals("Outbox", Mailbox.getSystemMailboxName(mContext, Mailbox.TYPE_OUTBOX));
     85         assertEquals("Trash", Mailbox.getSystemMailboxName(mContext, Mailbox.TYPE_TRASH));
     86         assertEquals("Sent", Mailbox.getSystemMailboxName(mContext, Mailbox.TYPE_SENT));
     87         assertEquals("Junk", Mailbox.getSystemMailboxName(mContext, Mailbox.TYPE_JUNK));
     88         Locale.setDefault(savedLocale);
     89     }
     90 
     91     /**
     92      * TODO: releasing associated data (e.g. attachments, embedded images)
     93      */
     94 }
     95