17e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki/* 27e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * Copyright (C) 2010 The Android Open Source Project 37e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * 47e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * Licensed under the Apache License, Version 2.0 (the "License"); 57e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * you may not use this file except in compliance with the License. 67e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * You may obtain a copy of the License at 77e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * 87e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * http://www.apache.org/licenses/LICENSE-2.0 97e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * 107e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * Unless required by applicable law or agreed to in writing, software 117e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * distributed under the License is distributed on an "AS IS" BASIS, 127e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * See the License for the specific language governing permissions and 147e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * limitations under the License. 157e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki */ 167e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 177e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukipackage com.android.email.mail.store.imap; 187e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 197e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukiimport static com.android.email.mail.store.imap.ImapTestUtils.*; 207e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 217e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukiimport com.android.email.mail.store.imap.ImapElement; 227e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukiimport com.android.email.mail.store.imap.ImapList; 237e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukiimport com.android.email.mail.store.imap.ImapSimpleString; 247e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukiimport com.android.email.mail.store.imap.ImapString; 257e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 267e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukiimport android.test.suitebuilder.annotation.SmallTest; 277e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 287e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukiimport junit.framework.TestCase; 297e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 307e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki@SmallTest 317e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onukipublic class ImapListTest extends TestCase { 327e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 337e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki /** 347e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * Test for small functions. (isList, isString, isEmpty and size) 357e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki */ 367e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void testBasics() { 377e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki ImapList list = new ImapList(); 387e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 397e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertTrue(list.isList()); 407e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.isString()); 417e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 427e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertTrue(list.isEmpty()); 437e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertEquals(0, list.size()); 447e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 457e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki list.add(STRING_1); 467e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.isEmpty()); 477e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertEquals(1, list.size()); 487e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 497e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki list.add(STRING_2); 507e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertEquals(2, list.size()); 517e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 527e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki list.add(LIST_1); 537e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertEquals(3, list.size()); 547e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 557e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 567e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki /** 577e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki * Test for {@link ImapList#EMPTY}. 587e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki */ 597e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void testEmpty() { 607e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertTrue(ImapList.EMPTY.isEmpty()); 617e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 627e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 637e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void testIs() { 647e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki final ImapString ABC = new ImapSimpleString("AbC"); 657e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki ImapList list = buildList(ImapList.EMPTY, ABC, LIST_1, ImapString.EMPTY); 667e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 677e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(0, "abc")); 687e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(1, "ab")); 697e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertTrue (list.is(1, "abc")); 707e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(2, "abc")); 717e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(3, "abc")); 727e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(4, "abc")); 737e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 747e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(0, "ab", false)); 757e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(1, "ab", false)); 767e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertTrue (list.is(1, "abc", false)); 777e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(2, "ab", false)); 787e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(3, "ab", false)); 797e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(4, "ab", false)); 807e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 817e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(0, "ab", true)); 827e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertTrue (list.is(1, "ab", true)); 837e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertTrue (list.is(1, "abc", true)); 847e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(2, "ab", true)); 857e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(3, "ab", true)); 867e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(4, "ab", true)); 877e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 887e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Make sure null is okay 897e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.is(0, null, false)); 907e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 917e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Make sure won't crash with empty list 927e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(ImapList.EMPTY.is(0, "abc")); 937e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 947e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 957e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void testGetElementOrNone() { 967e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki ImapList list = buildList(ImapList.EMPTY, STRING_1, LIST_1, ImapString.EMPTY); 977e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 987e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapList.EMPTY, list.getElementOrNone(0)); 997e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_1, list.getElementOrNone(1)); 1007e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(LIST_1, list.getElementOrNone(2)); 1017e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapString.EMPTY, list.getElementOrNone(3)); 1027e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapElement.NONE, list.getElementOrNone(4)); // Out of index. 1037e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1047e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Make sure won't crash with empty list 1057e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapElement.NONE, ImapList.EMPTY.getElementOrNone(0)); 1067e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 1077e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1087e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void testGetListOrEmpty() { 1097e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki ImapList list = buildList(ImapList.EMPTY, STRING_1, LIST_1, ImapString.EMPTY); 1107e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1117e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapList.EMPTY, list.getListOrEmpty(0)); 1127e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapList.EMPTY, list.getListOrEmpty(1)); 1137e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(LIST_1, list.getListOrEmpty(2)); 1147e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapList.EMPTY, list.getListOrEmpty(3)); 1157e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapList.EMPTY, list.getListOrEmpty(4)); // Out of index. 1167e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1177e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Make sure won't crash with empty list 1187e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapList.EMPTY, ImapList.EMPTY.getListOrEmpty(0)); 1197e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 1207e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1217e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void testGetStringOrEmpty() { 1227e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki ImapList list = buildList(ImapList.EMPTY, STRING_1, LIST_1, ImapString.EMPTY); 1237e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1247e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapString.EMPTY, list.getStringOrEmpty(0)); 1257e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_1, list.getStringOrEmpty(1)); 1267e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapString.EMPTY, list.getStringOrEmpty(2)); 1277e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapString.EMPTY, list.getStringOrEmpty(3)); 1287e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapString.EMPTY, list.getStringOrEmpty(4)); // Out of index. 1297e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1307e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Make sure won't crash with empty list 1317e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapString.EMPTY, ImapList.EMPTY.getStringOrEmpty(0)); 1327e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 1337e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1347e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void testGetKeyedElementOrNull() { 1357e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki final ImapString K1 = new ImapSimpleString("aBCd"); 1367e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki final ImapString K2 = new ImapSimpleString("Def"); 1377e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki final ImapString K3 = new ImapSimpleString("abC"); 1387e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1397e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki ImapList list = buildList( 1407e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki K1, STRING_1, 1417e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki K2, K3, 1427e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki K3, STRING_2); 1437e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1447e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(null, list.getKeyedElementOrNull("ab", false)); 1457e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_1, list.getKeyedElementOrNull("abcd", false)); 1467e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(K3, list.getKeyedElementOrNull("def", false)); 1477e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_2, list.getKeyedElementOrNull("abc", false)); 1487e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1497e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_1, list.getKeyedElementOrNull("ab", true)); 1507e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_1, list.getKeyedElementOrNull("abcd", true)); 1517e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(K3, list.getKeyedElementOrNull("def", true)); 1527e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_1, list.getKeyedElementOrNull("abc", true)); 1537e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1547e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Make sure null is okay 1557e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(null, list.getKeyedElementOrNull(null, false)); 1567e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1577e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Make sure won't crash with empty list 1587e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertNull(ImapList.EMPTY.getKeyedElementOrNull("ab", false)); 1597e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1607e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Shouldn't crash with a list with an odd number of elements. 1617e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(null, buildList(K1).getKeyedElementOrNull("abcd", false)); 1627e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 1637e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1647e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void getKeyedListOrEmpty() { 1657e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki final ImapString K1 = new ImapSimpleString("Key"); 1667e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki ImapList list = buildList(K1, LIST_1); 1677e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1687e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(LIST_1, list.getKeyedListOrEmpty("key", false)); 1697e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(LIST_1, list.getKeyedListOrEmpty("key", true)); 1707e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapList.EMPTY, list.getKeyedListOrEmpty("ke", false)); 1717e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(LIST_1, list.getKeyedListOrEmpty("ke", true)); 1727e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1737e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapList.EMPTY, list.getKeyedListOrEmpty("ke")); 1747e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(LIST_1, list.getKeyedListOrEmpty("key")); 1757e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 1767e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1777e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void getKeyedStringOrEmpty() { 1787e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki final ImapString K1 = new ImapSimpleString("Key"); 1797e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki ImapList list = buildList(K1, STRING_1); 1807e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1817e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_1, list.getKeyedListOrEmpty("key", false)); 1827e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_1, list.getKeyedListOrEmpty("key", true)); 1837e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapString.EMPTY, list.getKeyedListOrEmpty("ke", false)); 1847e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_1, list.getKeyedListOrEmpty("ke", true)); 1857e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1867e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(ImapString.EMPTY, list.getKeyedListOrEmpty("ke")); 1877e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertElement(STRING_1, list.getKeyedListOrEmpty("key")); 1887e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 1897e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1907e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void testContains() { 1917e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki final ImapString K1 = new ImapSimpleString("aBCd"); 1927e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki final ImapString K2 = new ImapSimpleString("Def"); 1937e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki final ImapString K3 = new ImapSimpleString("abC"); 1947e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1957e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki ImapList list = buildList(K1, K2, K3); 1967e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 1977e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertTrue(list.contains("abc")); 1987e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertTrue(list.contains("abcd")); 1997e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertTrue(list.contains("def")); 2007e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.contains("")); 2017e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.contains("a")); 2027e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.contains(null)); 2037e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 2047e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Make sure null is okay 2057e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(list.contains(null)); 2067e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 2077e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki // Make sure won't crash with empty list 2087e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertFalse(ImapList.EMPTY.contains(null)); 2097e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 2107e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki 2117e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki public void testFlatten() { 2127e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertEquals("[]", ImapList.EMPTY.flatten()); 2137e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertEquals("[aBc]", buildList(STRING_1).flatten()); 2147e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertEquals("[[]]", buildList(ImapList.EMPTY).flatten()); 2157e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki assertEquals("[aBc,[,X y z],aBc]", 2167e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki buildList(STRING_1, buildList(ImapString.EMPTY, STRING_2), STRING_1).flatten()); 2177e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki } 2187e5ba0e1eaee76ab6e6c7ea9362348f660796596Makoto Onuki} 219