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