14199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa/* 24199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Copyright (C) 2009 The Android Open Source Project 34199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * 44199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Licensed under the Apache License, Version 2.0 (the "License"); 54199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * you may not use this file except in compliance with the License. 64199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * You may obtain a copy of the License at 74199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * 84199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * http://www.apache.org/licenses/LICENSE-2.0 94199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * 104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Unless required by applicable law or agreed to in writing, software 114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * distributed under the License is distributed on an "AS IS" BASIS, 124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * See the License for the specific language governing permissions and 144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * limitations under the License. 154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 16677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawapackage com.android.vcard.tests.testutils; 174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.content.ContentValues; 194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.test.AndroidTestCase; 204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport com.android.vcard.VCardConfig; 22677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawaimport com.android.vcard.tests.testutils.VCardVerifier; 234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa/** 254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * BaseClass for vCard unit tests with utility classes. 264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Please do not add each unit test here. 274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 28677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawapublic abstract class VCardTestsBase extends AndroidTestCase { 294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public static final int V21 = VCardConfig.VCARD_TYPE_V21_GENERIC; 304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public static final int V30 = VCardConfig.VCARD_TYPE_V30_GENERIC; 314560bdde6dd75cca49fc55b58aafb5d416b88ca3Daisuke Miyakawa public static final int V40 = VCardConfig.VCARD_TYPE_V40_GENERIC; 324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa // Do not modify these during tests. 344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa protected final ContentValues mContentValuesForQP; 354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa protected final ContentValues mContentValuesForSJis; 364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa protected final ContentValues mContentValuesForUtf8; 374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa protected final ContentValues mContentValuesForQPAndSJis; 384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa protected final ContentValues mContentValuesForQPAndUtf8; 394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa protected final ContentValues mContentValuesForBase64V21; 404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa protected final ContentValues mContentValuesForBase64V30; 414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa protected VCardVerifier mVerifier; 43677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa /** 44677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa * true when we shouldn't call {@link VCardVerifier#verify()}. 45677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa */ 464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa private boolean mSkipVerification; 474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public VCardTestsBase() { 494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa super(); 504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa // Not using constants in vCard code since it may be wrong. 514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForQP = new ContentValues(); 524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForQP.put("ENCODING", "QUOTED-PRINTABLE"); 534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForSJis = new ContentValues(); 544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForSJis.put("CHARSET", "SHIFT_JIS"); 554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForUtf8 = new ContentValues(); 564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForUtf8.put("CHARSET", "UTF-8"); 574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForQPAndSJis = new ContentValues(); 584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForQPAndSJis.put("ENCODING", "QUOTED-PRINTABLE"); 594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForQPAndSJis.put("CHARSET", "SHIFT_JIS"); 604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForQPAndUtf8 = new ContentValues(); 614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForQPAndUtf8.put("ENCODING", "QUOTED-PRINTABLE"); 624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForQPAndUtf8.put("CHARSET", "UTF-8"); 634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForBase64V21 = new ContentValues(); 644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForBase64V21.put("ENCODING", "BASE64"); 654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForBase64V30 = new ContentValues(); 664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mContentValuesForBase64V30.put("ENCODING", "b"); 674199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa @Override 704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa public void testAndroidTestCaseSetupProperly() { 714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa super.testAndroidTestCaseSetupProperly(); 724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mSkipVerification = true; 734199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 75677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa /** 76677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa * Calls super's {@link #setUp()} and prepares {@link VCardVerifier}. We call 77677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa * {@link VCardVerifier#verify()} on {@link #tearDown()}. 78677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa */ 794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa @Override 80677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa public final void setUp() throws Exception{ 814199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa super.setUp(); 824199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier = new VCardVerifier(this); 834199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mSkipVerification = false; 844199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 854199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 86677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa /** 87677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa * Calls super's {@link #tearDown()} and {@link VCardVerifier#verify()}. 88677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa */ 894199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa @Override 90677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa public final void tearDown() throws Exception { 91677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa // We don't want to forget to call verify() as it makes unit test successful silently even 92677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa // when it shouldn't be, while each test case tends become so large to manage and sometimes 93677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa // we had forgotten to call the method. That is why we override setUp()/tearDown() here. 944199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa if (!mSkipVerification) { 954199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa mVerifier.verify(); 964199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 97677ef21613a9d35053ec098444832ce4125a847eDaisuke Miyakawa super.tearDown(); 984199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa } 994199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa} 100