1/* 2 * Copyright (C) 2008 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.email.activity.setup; 18 19import android.content.ContentUris; 20import android.content.Context; 21import android.content.Intent; 22import android.net.Uri; 23import android.test.ActivityUnitTestCase; 24import android.test.suitebuilder.annotation.SmallTest; 25import android.view.View; 26 27import com.android.email.R; 28import com.android.emailcommon.provider.Account; 29import com.android.emailcommon.provider.HostAuth; 30 31import java.net.URISyntaxException; 32import java.util.HashSet; 33 34/** 35 * This is a series of unit tests for the AccountSetupAccountType class. 36 * You can run this entire test case with: 37 * runtest -c com.android.email.activity.setup.AccountSetupAccountTypeTests email 38 */ 39@SmallTest 40public class AccountSetupAccountTypeTests 41 extends ActivityUnitTestCase<AccountSetupAccountType> { 42 43 Context mContext; 44 private HashSet<Account> mAccounts = new HashSet<Account>(); 45 46 public AccountSetupAccountTypeTests() { 47 super(AccountSetupAccountType.class); 48 } 49 50 @Override 51 protected void setUp() throws Exception { 52 super.setUp(); 53 mContext = this.getInstrumentation().getTargetContext(); 54 } 55 56 /** 57 * Delete any dummy accounts we set up for this test 58 */ 59 @Override 60 protected void tearDown() throws Exception { 61 for (Account account : mAccounts) { 62 Uri uri = ContentUris.withAppendedId(Account.CONTENT_URI, account.mId); 63 mContext.getContentResolver().delete(uri, null, null); 64 } 65 66 // must call last because it scrubs member variables 67 super.tearDown(); 68 } 69 70 /** 71 * Confirm that EAS is presented, when supported. 72 */ 73 public void testEasOffered() throws URISyntaxException { 74 createTestAccount("scheme1"); 75 AccountSetupAccountType activity = startActivity(getTestIntent(), null, null); 76 View exchangeButton = activity.findViewById(R.id.exchange); 77 78 int expected = View.GONE; // Default is hidden 79 //EXCHANGE-REMOVE-SECTION-START 80 expected = View.VISIBLE; // Will be visible if supported. 81 //EXCHANGE-REMOVE-SECTION-END 82 83 assertEquals(expected, exchangeButton.getVisibility()); 84 } 85 86 /** 87 * Create a dummy account with minimal fields 88 */ 89 private Account createTestAccount(String scheme) throws URISyntaxException { 90 Account account = new Account(); 91 HostAuth auth = account.getOrCreateHostAuthRecv(mContext); 92 HostAuth.setHostAuthFromString(auth, scheme + "://user:pass@server.com:123"); 93 account.save(mContext); 94 mAccounts.add(account); 95 SetupData.init(SetupData.FLOW_MODE_NORMAL, account); 96 return account; 97 } 98 99 /** 100 * Create an intent with the Account in it 101 */ 102 private Intent getTestIntent() { 103 return new Intent(Intent.ACTION_MAIN); 104 } 105 106} 107