/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.email.mail.store.imap; import com.android.email.mail.store.imap.ImapUtility; import android.test.AndroidTestCase; import android.test.MoreAsserts; import libcore.util.EmptyArray; public class ImapUtilityTests extends AndroidTestCase { /** * Tests of the IMAP quoting rules function. */ public void testImapQuote() { // Simple strings should come through with simple quotes assertEquals("\"abcd\"", ImapUtility.imapQuoted("abcd")); // Quoting internal double quotes with \ assertEquals("\"ab\\\"cd\"", ImapUtility.imapQuoted("ab\"cd")); // Quoting internal \ with \\ assertEquals("\"ab\\\\cd\"", ImapUtility.imapQuoted("ab\\cd")); } /** * Test getting elements of an IMAP sequence set. */ public void testGetImapSequenceValues() { String[] expected; String[] actual; // Test valid sets expected = new String[] {"1"}; actual = ImapUtility.getImapSequenceValues("1"); MoreAsserts.assertEquals(expected, actual); expected = new String[] {"1", "3", "2"}; actual = ImapUtility.getImapSequenceValues("1,3,2"); MoreAsserts.assertEquals(expected, actual); expected = new String[] {"4", "5", "6"}; actual = ImapUtility.getImapSequenceValues("4:6"); MoreAsserts.assertEquals(expected, actual); expected = new String[] {"9", "8", "7"}; actual = ImapUtility.getImapSequenceValues("9:7"); MoreAsserts.assertEquals(expected, actual); expected = new String[] {"1", "2", "3", "4", "9", "8", "7"}; actual = ImapUtility.getImapSequenceValues("1,2:4,9:7"); MoreAsserts.assertEquals(expected, actual); // Test partially invalid sets expected = new String[] { "1", "5" }; actual = ImapUtility.getImapSequenceValues("1,x,5"); MoreAsserts.assertEquals(expected, actual); expected = new String[] { "1", "2", "3" }; actual = ImapUtility.getImapSequenceValues("a:d,1:3"); MoreAsserts.assertEquals(expected, actual); // Test invalid sets expected = EmptyArray.STRING; actual = ImapUtility.getImapSequenceValues(""); MoreAsserts.assertEquals(expected, actual); expected = EmptyArray.STRING; actual = ImapUtility.getImapSequenceValues(null); MoreAsserts.assertEquals(expected, actual); expected = EmptyArray.STRING; actual = ImapUtility.getImapSequenceValues("a"); MoreAsserts.assertEquals(expected, actual); expected = EmptyArray.STRING; actual = ImapUtility.getImapSequenceValues("1:x"); MoreAsserts.assertEquals(expected, actual); } /** * Test getting elements of an IMAP range. */ public void testGetImapRangeValues() { String[] expected; String[] actual; // Test valid ranges expected = new String[] {"1", "2", "3"}; actual = ImapUtility.getImapRangeValues("1:3"); MoreAsserts.assertEquals(expected, actual); expected = new String[] {"16", "15", "14"}; actual = ImapUtility.getImapRangeValues("16:14"); MoreAsserts.assertEquals(expected, actual); // Test in-valid ranges expected = EmptyArray.STRING; actual = ImapUtility.getImapRangeValues(""); MoreAsserts.assertEquals(expected, actual); expected = EmptyArray.STRING; actual = ImapUtility.getImapRangeValues(null); MoreAsserts.assertEquals(expected, actual); expected = EmptyArray.STRING; actual = ImapUtility.getImapRangeValues("a"); MoreAsserts.assertEquals(expected, actual); expected = EmptyArray.STRING; actual = ImapUtility.getImapRangeValues("6"); MoreAsserts.assertEquals(expected, actual); expected = EmptyArray.STRING; actual = ImapUtility.getImapRangeValues("1:3,6"); MoreAsserts.assertEquals(expected, actual); expected = EmptyArray.STRING; actual = ImapUtility.getImapRangeValues("1:x"); MoreAsserts.assertEquals(expected, actual); expected = EmptyArray.STRING; actual = ImapUtility.getImapRangeValues("1:*"); MoreAsserts.assertEquals(expected, actual); } }