180d3875d306c60da83e547c573427627911f8a99Makoto Onuki/* 280d3875d306c60da83e547c573427627911f8a99Makoto Onuki * Copyright (C) 2011 The Android Open Source Project 380d3875d306c60da83e547c573427627911f8a99Makoto Onuki * 480d3875d306c60da83e547c573427627911f8a99Makoto Onuki * Licensed under the Apache License, Version 2.0 (the "License"); 580d3875d306c60da83e547c573427627911f8a99Makoto Onuki * you may not use this file except in compliance with the License. 680d3875d306c60da83e547c573427627911f8a99Makoto Onuki * You may obtain a copy of the License at 780d3875d306c60da83e547c573427627911f8a99Makoto Onuki * 880d3875d306c60da83e547c573427627911f8a99Makoto Onuki * http://www.apache.org/licenses/LICENSE-2.0 980d3875d306c60da83e547c573427627911f8a99Makoto Onuki * 1080d3875d306c60da83e547c573427627911f8a99Makoto Onuki * Unless required by applicable law or agreed to in writing, software 1180d3875d306c60da83e547c573427627911f8a99Makoto Onuki * distributed under the License is distributed on an "AS IS" BASIS, 1280d3875d306c60da83e547c573427627911f8a99Makoto Onuki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1380d3875d306c60da83e547c573427627911f8a99Makoto Onuki * See the License for the specific language governing permissions and 1480d3875d306c60da83e547c573427627911f8a99Makoto Onuki * limitations under the License. 1580d3875d306c60da83e547c573427627911f8a99Makoto Onuki */ 1680d3875d306c60da83e547c573427627911f8a99Makoto Onuki 1780d3875d306c60da83e547c573427627911f8a99Makoto Onukipackage com.android.email; 1880d3875d306c60da83e547c573427627911f8a99Makoto Onuki 1980d3875d306c60da83e547c573427627911f8a99Makoto Onukiimport com.android.emailcommon.provider.EmailContent.MailboxColumns; 2080d3875d306c60da83e547c573427627911f8a99Makoto Onukiimport com.android.emailcommon.provider.Mailbox; 2180d3875d306c60da83e547c573427627911f8a99Makoto Onuki 2280d3875d306c60da83e547c573427627911f8a99Makoto Onukiimport android.content.Context; 2380d3875d306c60da83e547c573427627911f8a99Makoto Onukiimport android.database.Cursor; 2480d3875d306c60da83e547c573427627911f8a99Makoto Onukiimport android.database.MatrixCursor; 2580d3875d306c60da83e547c573427627911f8a99Makoto Onukiimport android.graphics.drawable.Drawable; 2680d3875d306c60da83e547c573427627911f8a99Makoto Onukiimport android.test.AndroidTestCase; 2780d3875d306c60da83e547c573427627911f8a99Makoto Onuki 2880d3875d306c60da83e547c573427627911f8a99Makoto Onukiimport java.util.HashSet; 2980d3875d306c60da83e547c573427627911f8a99Makoto Onukiimport java.util.Set; 3080d3875d306c60da83e547c573427627911f8a99Makoto Onuki 3180d3875d306c60da83e547c573427627911f8a99Makoto Onukipublic class FolderPropertiesTests extends AndroidTestCase { 3280d3875d306c60da83e547c573427627911f8a99Makoto Onuki 3380d3875d306c60da83e547c573427627911f8a99Makoto Onuki private static Cursor buildCursor(String[] columns, Object... values) { 3480d3875d306c60da83e547c573427627911f8a99Makoto Onuki MatrixCursor c = new MatrixCursor(columns, 1); 3580d3875d306c60da83e547c573427627911f8a99Makoto Onuki c.addRow(values); 3680d3875d306c60da83e547c573427627911f8a99Makoto Onuki c.moveToFirst(); 3780d3875d306c60da83e547c573427627911f8a99Makoto Onuki return c; 3880d3875d306c60da83e547c573427627911f8a99Makoto Onuki } 3980d3875d306c60da83e547c573427627911f8a99Makoto Onuki 4080d3875d306c60da83e547c573427627911f8a99Makoto Onuki /** 4180d3875d306c60da83e547c573427627911f8a99Makoto Onuki * Tests of the syncronization of array and types of the display folder names 4280d3875d306c60da83e547c573427627911f8a99Makoto Onuki */ 4380d3875d306c60da83e547c573427627911f8a99Makoto Onuki public void testGetDisplayName() { 4480d3875d306c60da83e547c573427627911f8a99Makoto Onuki Context context = getContext(); 4580d3875d306c60da83e547c573427627911f8a99Makoto Onuki FolderProperties fp = FolderProperties.getInstance(context); 4680d3875d306c60da83e547c573427627911f8a99Makoto Onuki 4780d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 4880d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.mailbox_name_display_inbox), 4980d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(Mailbox.TYPE_INBOX, 0, "ignored")); 5080d3875d306c60da83e547c573427627911f8a99Makoto Onuki 5180d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 5280d3875d306c60da83e547c573427627911f8a99Makoto Onuki "*name*", 5380d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(Mailbox.TYPE_MAIL, 0, "*name*")); 5480d3875d306c60da83e547c573427627911f8a99Makoto Onuki 5580d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 5680d3875d306c60da83e547c573427627911f8a99Makoto Onuki "*name2*", 5780d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(Mailbox.TYPE_PARENT, 0, "*name2*")); 5880d3875d306c60da83e547c573427627911f8a99Makoto Onuki 5980d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 6080d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.mailbox_name_display_drafts), 6180d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(Mailbox.TYPE_DRAFTS, 0, "ignored")); 6280d3875d306c60da83e547c573427627911f8a99Makoto Onuki 6380d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 6480d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.mailbox_name_display_outbox), 6580d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(Mailbox.TYPE_OUTBOX, 0, "ignored")); 6680d3875d306c60da83e547c573427627911f8a99Makoto Onuki 6780d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 6880d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.mailbox_name_display_sent), 6980d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(Mailbox.TYPE_SENT, 0, "ignored")); 7080d3875d306c60da83e547c573427627911f8a99Makoto Onuki 7180d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 7280d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.mailbox_name_display_trash), 7380d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(Mailbox.TYPE_TRASH, 0, "ignored")); 7480d3875d306c60da83e547c573427627911f8a99Makoto Onuki 7580d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 7680d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.mailbox_name_display_junk), 7780d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(Mailbox.TYPE_JUNK, 0, "ignored")); 7880d3875d306c60da83e547c573427627911f8a99Makoto Onuki 7980d3875d306c60da83e547c573427627911f8a99Makoto Onuki // Testing illegal index 8080d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 8180d3875d306c60da83e547c573427627911f8a99Makoto Onuki "some name", 8280d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(8, 12345678890L, "some name")); 8380d3875d306c60da83e547c573427627911f8a99Makoto Onuki 8480d3875d306c60da83e547c573427627911f8a99Makoto Onuki 8580d3875d306c60da83e547c573427627911f8a99Makoto Onuki // Combined mailboxes 8680d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 8780d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.account_folder_list_summary_inbox), 8880d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(0, Mailbox.QUERY_ALL_INBOXES, "ignored")); 8980d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 9080d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.account_folder_list_summary_starred), 9180d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(0, Mailbox.QUERY_ALL_FAVORITES, "ignored")); 9280d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 9380d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.account_folder_list_summary_drafts), 9480d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(0, Mailbox.QUERY_ALL_DRAFTS, "ignored")); 9580d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 9680d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.account_folder_list_summary_outbox), 9780d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(0, Mailbox.QUERY_ALL_OUTBOX, "ignored")); 9880d3875d306c60da83e547c573427627911f8a99Makoto Onuki } 9980d3875d306c60da83e547c573427627911f8a99Makoto Onuki 10080d3875d306c60da83e547c573427627911f8a99Makoto Onuki public void testGetDisplayNameWithCursor() { 10180d3875d306c60da83e547c573427627911f8a99Makoto Onuki Context context = getContext(); 10280d3875d306c60da83e547c573427627911f8a99Makoto Onuki FolderProperties fp = FolderProperties.getInstance(context); 10380d3875d306c60da83e547c573427627911f8a99Makoto Onuki String[] columns = new String[] {MailboxColumns.ID, MailboxColumns.TYPE, 10480d3875d306c60da83e547c573427627911f8a99Makoto Onuki MailboxColumns.DISPLAY_NAME}; 10580d3875d306c60da83e547c573427627911f8a99Makoto Onuki 10680d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 10780d3875d306c60da83e547c573427627911f8a99Makoto Onuki context.getString(R.string.mailbox_name_display_inbox), 10880d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(buildCursor(columns, 1, Mailbox.TYPE_INBOX, "ignored")) 10980d3875d306c60da83e547c573427627911f8a99Makoto Onuki ); 11080d3875d306c60da83e547c573427627911f8a99Makoto Onuki 11180d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 11280d3875d306c60da83e547c573427627911f8a99Makoto Onuki "name", 11380d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getDisplayName(buildCursor(columns, 1, Mailbox.TYPE_MAIL, "name")) 11480d3875d306c60da83e547c573427627911f8a99Makoto Onuki ); 11580d3875d306c60da83e547c573427627911f8a99Makoto Onuki } 11680d3875d306c60da83e547c573427627911f8a99Makoto Onuki 11780d3875d306c60da83e547c573427627911f8a99Makoto Onuki /** 11880d3875d306c60da83e547c573427627911f8a99Makoto Onuki * Confirm that all of the special icons are available and unique 11980d3875d306c60da83e547c573427627911f8a99Makoto Onuki */ 12080d3875d306c60da83e547c573427627911f8a99Makoto Onuki public void testSpecialIcons() { 12180d3875d306c60da83e547c573427627911f8a99Makoto Onuki FolderProperties fp = FolderProperties.getInstance(mContext); 12280d3875d306c60da83e547c573427627911f8a99Makoto Onuki 12380d3875d306c60da83e547c573427627911f8a99Makoto Onuki // Make sure they're available 12480d3875d306c60da83e547c573427627911f8a99Makoto Onuki Drawable inbox = fp.getIcon(Mailbox.TYPE_INBOX, -1, 0); 12580d3875d306c60da83e547c573427627911f8a99Makoto Onuki Drawable mail = fp.getIcon(Mailbox.TYPE_MAIL, -1, 0); 12680d3875d306c60da83e547c573427627911f8a99Makoto Onuki Drawable parent = fp.getIcon(Mailbox.TYPE_PARENT, -1, 0); 12780d3875d306c60da83e547c573427627911f8a99Makoto Onuki Drawable drafts = fp.getIcon(Mailbox.TYPE_DRAFTS, -1, 0); 12880d3875d306c60da83e547c573427627911f8a99Makoto Onuki Drawable outbox = fp.getIcon(Mailbox.TYPE_OUTBOX, -1, 0); 12980d3875d306c60da83e547c573427627911f8a99Makoto Onuki Drawable sent = fp.getIcon(Mailbox.TYPE_SENT, -1, 0); 13080d3875d306c60da83e547c573427627911f8a99Makoto Onuki Drawable trash = fp.getIcon(Mailbox.TYPE_TRASH, -1, 0); 13180d3875d306c60da83e547c573427627911f8a99Makoto Onuki Drawable junk = fp.getIcon(Mailbox.TYPE_JUNK, -1, 0); 13280d3875d306c60da83e547c573427627911f8a99Makoto Onuki 13380d3875d306c60da83e547c573427627911f8a99Makoto Onuki // Make sure they're unique 13480d3875d306c60da83e547c573427627911f8a99Makoto Onuki Set<Drawable> set = new HashSet<Drawable>(); 13580d3875d306c60da83e547c573427627911f8a99Makoto Onuki set.add(inbox); 13680d3875d306c60da83e547c573427627911f8a99Makoto Onuki set.add(parent); 13780d3875d306c60da83e547c573427627911f8a99Makoto Onuki set.add(drafts); 13880d3875d306c60da83e547c573427627911f8a99Makoto Onuki set.add(outbox); 13980d3875d306c60da83e547c573427627911f8a99Makoto Onuki set.add(sent); 14080d3875d306c60da83e547c573427627911f8a99Makoto Onuki set.add(trash); 14180d3875d306c60da83e547c573427627911f8a99Makoto Onuki set.add(junk); 14280d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals(7, set.size()); 14380d3875d306c60da83e547c573427627911f8a99Makoto Onuki 14480d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertNull(mail); 14580d3875d306c60da83e547c573427627911f8a99Makoto Onuki } 14680d3875d306c60da83e547c573427627911f8a99Makoto Onuki 14780d3875d306c60da83e547c573427627911f8a99Makoto Onuki public void testGetMessageCountWithCursor() { 14880d3875d306c60da83e547c573427627911f8a99Makoto Onuki Context context = getContext(); 14980d3875d306c60da83e547c573427627911f8a99Makoto Onuki FolderProperties fp = FolderProperties.getInstance(context); 15080d3875d306c60da83e547c573427627911f8a99Makoto Onuki String[] columns = new String[] {MailboxColumns.TYPE, MailboxColumns.UNREAD_COUNT, 15180d3875d306c60da83e547c573427627911f8a99Makoto Onuki MailboxColumns.MESSAGE_COUNT}; 15280d3875d306c60da83e547c573427627911f8a99Makoto Onuki 15380d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 15480d3875d306c60da83e547c573427627911f8a99Makoto Onuki 1, 15580d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_INBOX, 1, 2)) 15680d3875d306c60da83e547c573427627911f8a99Makoto Onuki ); 15780d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 15880d3875d306c60da83e547c573427627911f8a99Makoto Onuki 1, 15980d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_MAIL, 1, 2)) 16080d3875d306c60da83e547c573427627911f8a99Makoto Onuki ); 16180d3875d306c60da83e547c573427627911f8a99Makoto Onuki 16280d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 16380d3875d306c60da83e547c573427627911f8a99Makoto Onuki 2, 16480d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_DRAFTS, 1, 2)) 16580d3875d306c60da83e547c573427627911f8a99Makoto Onuki ); 16680d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 16780d3875d306c60da83e547c573427627911f8a99Makoto Onuki 2, 16880d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_OUTBOX, 1, 2)) 16980d3875d306c60da83e547c573427627911f8a99Makoto Onuki ); 17080d3875d306c60da83e547c573427627911f8a99Makoto Onuki 17180d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 17280d3875d306c60da83e547c573427627911f8a99Makoto Onuki 0, 17380d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_TRASH, 1, 2)) 17480d3875d306c60da83e547c573427627911f8a99Makoto Onuki ); 17580d3875d306c60da83e547c573427627911f8a99Makoto Onuki 17680d3875d306c60da83e547c573427627911f8a99Makoto Onuki assertEquals( 17780d3875d306c60da83e547c573427627911f8a99Makoto Onuki 0, 17880d3875d306c60da83e547c573427627911f8a99Makoto Onuki fp.getMessageCount(buildCursor(columns, Mailbox.TYPE_SENT, 1, 2)) 17980d3875d306c60da83e547c573427627911f8a99Makoto Onuki ); 18080d3875d306c60da83e547c573427627911f8a99Makoto Onuki } 18180d3875d306c60da83e547c573427627911f8a99Makoto Onuki} 182