1d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal/* 2ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikas * Copyright 2018 The Android Open Source Project 3d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * 4d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * Licensed under the Apache License, Version 2.0 (the "License"); 5d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * you may not use this file except in compliance with the License. 6d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * You may obtain a copy of the License at 7d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * 8d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * http://www.apache.org/licenses/LICENSE-2.0 9d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * 10d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * Unless required by applicable law or agreed to in writing, software 11d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * distributed under the License is distributed on an "AS IS" BASIS, 12d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * See the License for the specific language governing permissions and 14d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * limitations under the License. 15d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal */ 16d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal 17ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.browser.customtabs; 18d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal 19fa39e2bca1b284ad7c931d9194287770b7b507faAurimas Liutikasimport static org.junit.Assert.assertEquals; 20d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport static org.junit.Assert.assertNotNull; 21d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport static org.junit.Assert.assertTrue; 22d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal 23d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport android.content.ActivityNotFoundException; 24d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport android.content.Intent; 25d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport android.net.Uri; 26d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport android.support.test.filters.SmallTest; 27d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport android.support.test.rule.ActivityTestRule; 28d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport android.support.test.runner.AndroidJUnit4; 2988f23f4c3c9d439cf8b300195962cb9a4e5f3165Aurimas Liutikas 30ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.core.app.BundleCompat; 31d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal 32d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport org.junit.Rule; 33d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport org.junit.Test; 34d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalimport org.junit.runner.RunWith; 35d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal 36d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal/** 37d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal * Tests for TrustedWebUtils. 38d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal */ 39d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal@RunWith(AndroidJUnit4.class) 40d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal@SmallTest 41d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysalpublic class TrustedWebUtilsTest { 42d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal @Rule 43d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal public final ActivityTestRule<TestActivity> mActivityTestRule; 44d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal 45d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal public TrustedWebUtilsTest() { 46fa39e2bca1b284ad7c931d9194287770b7b507faAurimas Liutikas mActivityTestRule = new ActivityTestRule<>(TestActivity.class); 47d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal } 48d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal 49d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal @Test(expected = IllegalArgumentException.class) 50d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal public void testTrustedWebIntentRequiresValidSession() { 51d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build(); 52d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal TrustedWebUtils.launchAsTrustedWebActivity( 53d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal mActivityTestRule.getActivity(), customTabsIntent, Uri.EMPTY); 54d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal } 55d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal 56d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal @Test(expected = ActivityNotFoundException.class) 57d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal public void testTrustedWebIntentContainsRequiredExtra() { 58d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal CustomTabsSession mockSession = CustomTabsSession.createMockSessionForTesting( 59d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal mActivityTestRule.getActivity().getComponentName()); 60d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(mockSession).build(); 61d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal TrustedWebUtils.launchAsTrustedWebActivity( 62d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal mActivityTestRule.getActivity(), customTabsIntent, Uri.EMPTY); 63d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal assertNotNull(BundleCompat.getBinder( 64d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal customTabsIntent.intent.getExtras(), CustomTabsIntent.EXTRA_SESSION)); 65d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal assertEquals(customTabsIntent.intent.getAction(), Intent.ACTION_VIEW); 66d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal assertTrue(customTabsIntent.intent.hasExtra( 67d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal TrustedWebUtils.EXTRA_LAUNCH_AS_TRUSTED_WEB_ACTIVITY)); 68d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal } 69d3a61406d0204250d60c140d435f6848771bc740Yusuf Ozuysal} 70