Home | History | Annotate | Download | only in email
      1 /*
      2  * Copyright (C) 2011 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of 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,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.email;
     18 
     19 import com.android.emailcommon.provider.EmailContent.MailboxColumns;
     20 import com.android.emailcommon.provider.Mailbox;
     21 
     22 import android.content.Context;
     23 import android.database.Cursor;
     24 import android.database.MatrixCursor;
     25 import android.graphics.drawable.Drawable;
     26 import android.test.AndroidTestCase;
     27 
     28 import java.util.HashSet;
     29 import java.util.Set;
     30 
     31 public class FolderPropertiesTests extends AndroidTestCase {
     32 
     33     private static Cursor buildCursor(String[] columns, Object... values) {
     34         MatrixCursor c = new MatrixCursor(columns, 1);
     35         c.addRow(values);
     36         c.moveToFirst();
     37         return c;
     38     }
     39 
     40     /**
     41      * Tests of the syncronization of array and types of the display folder names
     42      */
     43     public void testGetDisplayName() {
     44         Context context = getContext();
     45         FolderProperties fp = FolderProperties.getInstance(context);
     46 
     47         assertEquals(
     48                     context.getString(R.string.mailbox_name_display_inbox),
     49                         fp.getDisplayName(Mailbox.TYPE_INBOX, 0, "ignored"));
     50 
     51         assertEquals(
     52                 "*name*",
     53                 fp.getDisplayName(Mailbox.TYPE_MAIL, 0, "*name*"));
     54 
     55         assertEquals(
     56                 "*name2*",
     57                 fp.getDisplayName(Mailbox.TYPE_PARENT, 0, "*name2*"));
     58 
     59         assertEquals(
     60                 context.getString(R.string.mailbox_name_display_drafts),
     61                 fp.getDisplayName(Mailbox.TYPE_DRAFTS, 0, "ignored"));
     62 
     63         assertEquals(
     64                 context.getString(R.string.mailbox_name_display_outbox),
     65                 fp.getDisplayName(Mailbox.TYPE_OUTBOX, 0, "ignored"));
     66 
     67         assertEquals(
     68                 context.getString(R.string.mailbox_name_display_sent),
     69                 fp.getDisplayName(Mailbox.TYPE_SENT, 0, "ignored"));
     70 
     71         assertEquals(
     72                 context.getString(R.string.mailbox_name_display_trash),
     73                 fp.getDisplayName(Mailbox.TYPE_TRASH, 0, "ignored"));
     74 
     75         assertEquals(
     76                 context.getString(R.string.mailbox_name_display_junk),
     77                 fp.getDisplayName(Mailbox.TYPE_JUNK, 0, "ignored"));
     78 
     79         // Testing illegal index
     80         assertEquals(
     81                 "some name",
     82                 fp.getDisplayName(8, 12345678890L, "some name"));
     83 
     84 
     85         // Combined mailboxes
     86         assertEquals(
     87                 context.getString(R.string.account_folder_list_summary_inbox),
     88                 fp.getDisplayName(0, Mailbox.QUERY_ALL_INBOXES, "ignored"));
     89         assertEquals(
     90                 context.getString(R.string.account_folder_list_summary_starred),
     91                 fp.getDisplayName(0, Mailbox.QUERY_ALL_FAVORITES, "ignored"));
     92         assertEquals(
     93                 context.getString(R.string.account_folder_list_summary_drafts),
     94                 fp.getDisplayName(0, Mailbox.QUERY_ALL_DRAFTS, "ignored"));
     95         assertEquals(
     96                 context.getString(R.string.account_folder_list_summary_outbox),
     97                 fp.getDisplayName(0, Mailbox.QUERY_ALL_OUTBOX, "ignored"));
     98     }
     99 
    100     public void testGetDisplayNameWithCursor() {
    101         Context context = getContext();
    102         FolderProperties fp = FolderProperties.getInstance(context);
    103         String[] columns = new String[] {MailboxColumns.ID, MailboxColumns.TYPE,
    104                 MailboxColumns.DISPLAY_NAME};
    105 
    106         assertEquals(
    107                 context.getString(R.string.mailbox_name_display_inbox),
    108                 fp.getDisplayName(buildCursor(columns, 1, Mailbox.TYPE_INBOX, "ignored"))
    109                 );
    110 
    111         assertEquals(
    112                 "name",
    113                 fp.getDisplayName(buildCursor(columns, 1, Mailbox.TYPE_MAIL, "name"))
    114                 );
    115     }
    116 
    117     /**
    118      * Confirm that all of the special icons are available and unique
    119      */
    120     public void testSpecialIcons() {
    121         FolderProperties fp = FolderProperties.getInstance(mContext);
    122 
    123         // Make sure they're available
    124         Drawable inbox = fp.getIcon(Mailbox.TYPE_INBOX, -1, 0);
    125         Drawable mail = fp.getIcon(Mailbox.TYPE_MAIL, -1, 0);
    126         Drawable parent = fp.getIcon(Mailbox.TYPE_PARENT, -1, 0);
    127         Drawable drafts = fp.getIcon(Mailbox.TYPE_DRAFTS, -1, 0);
    128         Drawable outbox = fp.getIcon(Mailbox.TYPE_OUTBOX, -1, 0);
    129         Drawable sent = fp.getIcon(Mailbox.TYPE_SENT, -1, 0);
    130         Drawable trash = fp.getIcon(Mailbox.TYPE_TRASH, -1, 0);
    131         Drawable junk = fp.getIcon(Mailbox.TYPE_JUNK, -1, 0);
    132 
    133         // Make sure they're unique
    134         Set<Drawable> set = new HashSet<Drawable>();
    135         set.add(inbox);
    136         set.add(parent);
    137         set.add(drafts);
    138         set.add(outbox);
    139         set.add(sent);
    140         set.add(trash);
    141         set.add(junk);
    142         assertEquals(7, set.size());
    143 
    144         assertNull(mail);
    145     }
    146 
    147     public void testGetMessageCountWithCursor() {
    148         Context context = getContext();
    149         FolderProperties fp = FolderProperties.getInstance(context);
    150         String[] columns = new String[] {MailboxColumns.TYPE, MailboxColumns.UNREAD_COUNT,
    151                 MailboxColumns.MESSAGE_COUNT};
    152 
    153         assertEquals(
    154                 1,
    155                 fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_INBOX, 1, 2))
    156                 );
    157         assertEquals(
    158                 1,
    159                 fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_MAIL, 1, 2))
    160                 );
    161 
    162         assertEquals(
    163                 2,
    164                 fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_DRAFTS, 1, 2))
    165                 );
    166         assertEquals(
    167                 2,
    168                 fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_OUTBOX, 1, 2))
    169                 );
    170 
    171         assertEquals(
    172                 0,
    173                 fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_TRASH, 1, 2))
    174                 );
    175 
    176         assertEquals(
    177                 0,
    178                 fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_SENT, 1, 2))
    179                 );
    180     }
    181 }
    182