1package com.android.documentsui.files;
2
3import static junit.framework.Assert.assertEquals;
4import static junit.framework.Assert.assertTrue;
5
6import android.content.Intent;
7import android.content.QuickViewConstants;
8import android.content.pm.PackageManager;
9import android.support.test.filters.SmallTest;
10import android.support.test.runner.AndroidJUnit4;
11
12import com.android.documentsui.testing.TestEnv;
13import com.android.documentsui.testing.TestPackageManager;
14import com.android.documentsui.testing.TestResources;
15
16import org.junit.Before;
17import org.junit.Test;
18import org.junit.runner.RunWith;
19
20import java.util.Arrays;
21import java.util.HashSet;
22import java.util.Set;
23
24@SmallTest
25@RunWith(AndroidJUnit4.class)
26public class QuickViewIntentBuilderTest {
27
28    private PackageManager mPm;
29    private TestEnv mEnv;
30    private TestResources mRes;
31
32    @Before
33    public void setUp() {
34        mPm = TestPackageManager.create();
35        mEnv = TestEnv.create();
36        mRes = TestResources.create();
37
38        mRes.setQuickViewerPackage("com.android.documentsui");
39    }
40
41    @Test
42    public void testSetsNoFeatures_InArchiveDocument() {
43        QuickViewIntentBuilder builder =
44                new QuickViewIntentBuilder(mPm, mRes, TestEnv.FILE_IN_ARCHIVE, mEnv.archiveModel);
45
46        Intent intent = builder.build();
47
48        String[] features = intent.getStringArrayExtra(Intent.EXTRA_QUICK_VIEW_FEATURES);
49        assertEquals(0, features.length);
50    }
51
52    @Test
53    public void testSetsFullFeatures_RegularDocument() {
54        QuickViewIntentBuilder builder =
55                new QuickViewIntentBuilder(mPm, mRes, TestEnv.FILE_JPG, mEnv.model);
56
57        Intent intent = builder.build();
58
59        Set<String> features = new HashSet<>(
60                Arrays.asList(intent.getStringArrayExtra(Intent.EXTRA_QUICK_VIEW_FEATURES)));
61
62        assertEquals("Unexpected features set: " + features, 5, features.size());
63        assertTrue(features.contains(QuickViewConstants.FEATURE_VIEW));
64        assertTrue(features.contains(QuickViewConstants.FEATURE_EDIT));
65        assertTrue(features.contains(QuickViewConstants.FEATURE_SEND));
66        assertTrue(features.contains(QuickViewConstants.FEATURE_DOWNLOAD));
67        assertTrue(features.contains(QuickViewConstants.FEATURE_PRINT));
68    }
69}
70