1c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam/* 2c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * Copyright (C) 2015 The Android Open Source Project 3c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * 4c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * Licensed under the Apache License, Version 2.0 (the "License"); 5c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * you may not use this file except in compliance with the License. 6c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * You may obtain a copy of the License at 7c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * 8c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * http://www.apache.org/licenses/LICENSE-2.0 9c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * 10c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * Unless required by applicable law or agreed to in writing, software 11c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * distributed under the License is distributed on an "AS IS" BASIS, 12c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * See the License for the specific language governing permissions and 14c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam * limitations under the License. 15c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam */ 16c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam 17c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lampackage com.android.setupwizardlib.test; 18c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam 192614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport static org.junit.Assert.assertSame; 202614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport static org.junit.Assert.assertTrue; 212614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam 228d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lamimport android.content.Context; 23c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lamimport android.graphics.drawable.ShapeDrawable; 242614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport android.support.test.InstrumentationRegistry; 252614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport android.support.test.filters.SmallTest; 262614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport android.support.test.runner.AndroidJUnit4; 27c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam 28c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lamimport com.android.setupwizardlib.view.StatusBarBackgroundLayout; 29c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam 302614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport org.junit.Test; 312614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport org.junit.runner.RunWith; 322614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam 332614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam@RunWith(AndroidJUnit4.class) 342614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam@SmallTest 352614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lampublic class StatusBarBackgroundLayoutTest { 36c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam 372614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 38c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam public void testSetStatusBarBackground() { 392614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam final StatusBarBackgroundLayout layout = new StatusBarBackgroundLayout( 402614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam InstrumentationRegistry.getContext()); 41c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam final ShapeDrawable drawable = new ShapeDrawable(); 42c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam layout.setStatusBarBackground(drawable); 43c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam assertSame("Status bar background drawable should be same as set", 44c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam drawable, layout.getStatusBarBackground()); 45c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam } 468d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam 472614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam @Test 488d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam public void testAttachedToWindow() { 498d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam // Attaching to window should request apply window inset 508d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { 518d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam final TestStatusBarBackgroundLayout layout = 522614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam new TestStatusBarBackgroundLayout(InstrumentationRegistry.getContext()); 538d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam layout.mRequestApplyInsets = false; 548d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam layout.onAttachedToWindow(); 558d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam 568d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam assertTrue("Attaching to window should apply window inset", layout.mRequestApplyInsets); 578d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam } 588d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam } 598d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam 608d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam private static class TestStatusBarBackgroundLayout extends StatusBarBackgroundLayout { 618d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam 628d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam boolean mRequestApplyInsets = false; 638d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam 648d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam TestStatusBarBackgroundLayout(Context context) { 658d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam super(context); 668d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam } 678d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam 688d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam @Override 698d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam public void onAttachedToWindow() { 708d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam super.onAttachedToWindow(); 718d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam } 728d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam 738d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam @Override 748d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam public void requestApplyInsets() { 758d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam super.requestApplyInsets(); 768d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam mRequestApplyInsets = true; 778d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam } 788d5326358e2f2a48847b65223c21071647c0f7e5Maurice Lam } 79c3eebe9f664af4b77e5948a14bf266b25dc25cc8Maurice Lam} 80