1d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank/* Copyright (C) 2011 The Android Open Source Project.
2d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *
3d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * Licensed under the Apache License, Version 2.0 (the "License");
4d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * you may not use this file except in compliance with the License.
5d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * You may obtain a copy of the License at
6d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *
7d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *      http://www.apache.org/licenses/LICENSE-2.0
8d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *
9d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * Unless required by applicable law or agreed to in writing, software
10d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * distributed under the License is distributed on an "AS IS" BASIS,
11d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * See the License for the specific language governing permissions and
13d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * limitations under the License.
14d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank */
15d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
16d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank/**
17d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * You can run this entire test case with:
18d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *   runtest -c com.android.exchange.adapter.AttachmentLoaderTests exchange
19d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank */
20d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blankpackage com.android.exchange.adapter;
21d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
22d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blankimport android.test.AndroidTestCase;
23d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blankimport android.test.suitebuilder.annotation.SmallTest;
24d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
25d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank@SmallTest
26d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blankpublic class AttachmentLoaderTests extends AndroidTestCase {
27d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    private static final String TEST_LOCATION =
28d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        "Inbox/FW:%204G%20Netbook%20|%20Now%20Available%20for%20Order.EML/image012.jpg";
29d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
30d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    public void testEncodeForExchange2003() {
31d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        assertEquals("abc", AttachmentLoader.encodeForExchange2003("abc"));
32d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        // We don't encode the four characters after abc
33d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        assertEquals("abc_:/.", AttachmentLoader.encodeForExchange2003("abc_:/."));
34d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        // We don't re-encode escaped characters
35d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        assertEquals("%20%33", AttachmentLoader.encodeForExchange2003("%20%33"));
36d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        // Test with the location that failed in use
37d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        assertEquals(TEST_LOCATION.replace("|", "%7C"),
38d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank                AttachmentLoader.encodeForExchange2003(TEST_LOCATION));
39d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    }
40d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank}
41