diff options
Diffstat (limited to 'tests/src/com/android/dialer/voicemail/VoicemailArchiveTest.java')
-rw-r--r-- | tests/src/com/android/dialer/voicemail/VoicemailArchiveTest.java | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/tests/src/com/android/dialer/voicemail/VoicemailArchiveTest.java b/tests/src/com/android/dialer/voicemail/VoicemailArchiveTest.java new file mode 100644 index 000000000..8cbd344a2 --- /dev/null +++ b/tests/src/com/android/dialer/voicemail/VoicemailArchiveTest.java @@ -0,0 +1,118 @@ +/* + * Copyright (C) 2016 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.dialer.voicemail; +import android.content.ContentUris; +import android.content.ContentValues; + +import com.android.dialer.R; +import com.android.dialer.database.VoicemailArchiveContract.VoicemailArchive; + +import android.content.res.AssetManager; +import android.test.suitebuilder.annotation.Suppress; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * Unit tests for {@link VoicemailArchiveActivity} and {@link VoicemailArchivePlaybackPresenter}. + */ +public class VoicemailArchiveTest + extends VoicemailActivityInstrumentationTestCase2<VoicemailArchiveActivity> { + + public VoicemailArchiveTest() { + super(VoicemailArchiveActivity.class); + } + + @Override + public void setUp() throws Exception { + super.setUp(); + mPresenter = VoicemailArchivePlaybackPresenter.getInstance(getActivity(), null); + } + + @Override + public void testFetchingVoicemail() throws Throwable { + setUriForRealFileVoicemailEntry(); + setPlaybackViewForPresenter(); + getInstrumentation().runOnMainSync(new Runnable() { + @Override + public void run() { + mPresenter.checkForContent( + new VoicemailPlaybackPresenter.OnContentCheckedListener() { + @Override + public void onContentChecked(boolean hasContent) { + mPresenter.resumePlayback(); + assertEquals(true, mPresenter.isPlaying()); + } + }); + } + }); + } + + @Override + public void testInvalidVoicemailShowsErrorMessage() throws Throwable { + setUriForInvalidVoicemailEntry(); + getInstrumentation().runOnMainSync(new Runnable() { + @Override + public void run() { + mPresenter.checkForContent( + new VoicemailPlaybackPresenter.OnContentCheckedListener() { + @Override + public void onContentChecked(boolean hasContent) { + assertStateTextContains("Couldn't play voicemail"); + } + }); + } + }); + } + + @Override + protected void setUriForInvalidVoicemailEntry() { + assertNull(mVoicemailUri); + ContentValues values = new ContentValues(); + values.put(VoicemailArchive.NUMBER, CONTACT_NUMBER); + values.put(VoicemailArchive.DATE, String.valueOf(System.currentTimeMillis())); + values.put(VoicemailArchive.MIME_TYPE, MIME_TYPE); + values.put(VoicemailArchive._DATA, VOICEMAIL_FILE_LOCATION); + mVoicemailUri = getContentResolver().insert(VoicemailArchive.CONTENT_URI, values); + } + + @Override + protected void setUriForRealFileVoicemailEntry() throws IOException { + assertNull(mVoicemailUri); + ContentValues values = new ContentValues(); + values.put(VoicemailArchive.DATE, String.valueOf(System.currentTimeMillis())); + values.put(VoicemailArchive.NUMBER, CONTACT_NUMBER); + values.put(VoicemailArchive.MIME_TYPE, MIME_TYPE); + values.put(VoicemailArchive.DURATION, 0); + mVoicemailUri = getContentResolver().insert(VoicemailArchive.CONTENT_URI, values); + AssetManager assets = getAssets(); + try (InputStream inputStream = assets.open(TEST_ASSET_NAME); + OutputStream outputStream = getContentResolver().openOutputStream(mVoicemailUri)) { + copyBetweenStreams(inputStream, outputStream); + } + } + + @Override + protected void cleanUpVoicemailUri() { + if (mVoicemailUri != null) { + getContentResolver().delete(VoicemailArchive.CONTENT_URI, + "_ID = ?", new String[] { String.valueOf(ContentUris.parseId(mVoicemailUri)) }); + mVoicemailUri = null; + } + } +} |