1d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk/*
2d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * Copyright (C) 2017 The Android Open Source Project
3d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk *
4d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * except in compliance with the License. You may obtain a copy of the License at
6d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk *
7d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk *      http://www.apache.org/licenses/LICENSE-2.0
8d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk *
9d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * Unless required by applicable law or agreed to in writing, software distributed under the
10d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * KIND, either express or implied. See the License for the specific language governing
12d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * permissions and limitations under the License.
13d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk */
14d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
15d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkpackage com.android.systemui;
16d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
175b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roosimport static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY;
185b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos
19d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static com.android.systemui.tuner.TunablePadding.FLAG_END;
20d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static com.android.systemui.tuner.TunablePadding.FLAG_START;
21d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
225b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roosimport static org.hamcrest.Matchers.is;
235b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roosimport static org.junit.Assert.assertThat;
24d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.ArgumentMatchers.any;
25d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.ArgumentMatchers.anyInt;
26d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.ArgumentMatchers.anyString;
27d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.ArgumentMatchers.eq;
28d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.mock;
29d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.never;
30d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.spy;
31d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.times;
32d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.verify;
33d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.when;
34d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
35d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport android.app.Fragment;
365b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roosimport android.content.res.Configuration;
37fba8faf5c5f58f115fa3c099da9ef0953b484147Jason Monkimport android.support.test.filters.SmallTest;
38d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport android.testing.AndroidTestingRunner;
39e91f0d05dae79cc8effc5fb2328677c16a46f34eBeverlyimport android.testing.TestableLooper.RunWithLooper;
40d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport android.view.Display;
41d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport android.view.View;
42d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport android.view.WindowManager;
43d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
44d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.R.dimen;
455b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roosimport com.android.systemui.ScreenDecorations.TunablePaddingTagListener;
46d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.fragments.FragmentHostManager;
47d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.fragments.FragmentService;
48d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.statusbar.phone.StatusBar;
49d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.statusbar.phone.StatusBarWindowView;
50d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.tuner.TunablePadding;
51d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.tuner.TunablePadding.TunablePaddingService;
52d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.tuner.TunerService;
53d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
54d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport org.junit.Before;
55d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport org.junit.Test;
56d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport org.junit.runner.RunWith;
57d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
58e91f0d05dae79cc8effc5fb2328677c16a46f34eBeverly@RunWithLooper
59d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk@RunWith(AndroidTestingRunner.class)
60fba8faf5c5f58f115fa3c099da9ef0953b484147Jason Monk@SmallTest
615b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roospublic class ScreenDecorationsTest extends SysuiTestCase {
62d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
635b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    private ScreenDecorations mScreenDecorations;
64d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    private StatusBar mStatusBar;
65d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    private WindowManager mWindowManager;
66d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    private FragmentService mFragmentService;
67d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    private FragmentHostManager mFragmentHostManager;
68d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    private TunerService mTunerService;
69d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    private StatusBarWindowView mView;
70d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    private TunablePaddingService mTunablePaddingService;
71d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
72d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    @Before
73d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    public void setup() {
74d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mStatusBar = mock(StatusBar.class);
75d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mWindowManager = mock(WindowManager.class);
76d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mView = spy(new StatusBarWindowView(mContext, null));
77d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        when(mStatusBar.getStatusBarWindow()).thenReturn(mView);
78c429f690e54db1bdc4631aab7c0191e30ccf1d51Jason Monk        when(mStatusBar.getNavigationBarWindow()).thenReturn(mView);
79d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mContext.putComponent(StatusBar.class, mStatusBar);
80d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
81d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        Display display = mContext.getSystemService(WindowManager.class).getDefaultDisplay();
82d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        when(mWindowManager.getDefaultDisplay()).thenReturn(display);
83d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mContext.addMockSystemService(WindowManager.class, mWindowManager);
84d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
85d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mFragmentService = mDependency.injectMockDependency(FragmentService.class);
86d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mFragmentHostManager = mock(FragmentHostManager.class);
87d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        when(mFragmentService.getFragmentHostManager(any())).thenReturn(mFragmentHostManager);
88d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
89d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mTunerService = mDependency.injectMockDependency(TunerService.class);
90d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
915b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mScreenDecorations = new ScreenDecorations();
925b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mScreenDecorations.mContext = mContext;
935b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mScreenDecorations.mComponents = mContext.getComponents();
94d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
95d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mTunablePaddingService = mDependency.injectMockDependency(TunablePaddingService.class);
96d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    }
97d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
98d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    @Test
995b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    public void testNoRounding_NoCutout() {
1005b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mContext.getOrCreateTestableResources().addOverride(
1015b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos                com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout, false);
102d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius, 0);
103e91f0d05dae79cc8effc5fb2328677c16a46f34eBeverly        mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius_top, 0);
104e91f0d05dae79cc8effc5fb2328677c16a46f34eBeverly        mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius_bottom, 0);
105c429f690e54db1bdc4631aab7c0191e30ccf1d51Jason Monk        mContext.getOrCreateTestableResources()
106c429f690e54db1bdc4631aab7c0191e30ccf1d51Jason Monk                .addOverride(dimen.rounded_corner_content_padding, 0);
107d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
1085b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mScreenDecorations.start();
109d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        // No views added.
110d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        verify(mWindowManager, never()).addView(any(), any());
111d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        // No Fragments watched.
112d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        verify(mFragmentHostManager, never()).addTagListener(any(), any());
113d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        // No Tuners tuned.
114d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        verify(mTunerService, never()).addTunable(any(), any());
115d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    }
116d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
117d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    @Test
118d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    public void testRounding() {
1195b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mContext.getOrCreateTestableResources().addOverride(
1205b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos                com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout, false);
121d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius, 20);
122c429f690e54db1bdc4631aab7c0191e30ccf1d51Jason Monk        mContext.getOrCreateTestableResources()
123c429f690e54db1bdc4631aab7c0191e30ccf1d51Jason Monk                .addOverride(dimen.rounded_corner_content_padding, 20);
124d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
1255b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mScreenDecorations.start();
126d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        // Add 2 windows for rounded corners (top and bottom).
127d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        verify(mWindowManager, times(2)).addView(any(), any());
128d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
129089981b98227959146c9c426533efbcf35fec1c6Jason Monk        // Add 2 tag listeners for each of the fragments that are needed.
130089981b98227959146c9c426533efbcf35fec1c6Jason Monk        verify(mFragmentHostManager, times(2)).addTagListener(any(), any());
131d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        // One tunable.
132d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        verify(mTunerService, times(1)).addTunable(any(), any());
133d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        // One TunablePadding.
134d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        verify(mTunablePaddingService, times(1)).add(any(), anyString(), anyInt(), anyInt());
135d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    }
136d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
137d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    @Test
1385b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    public void testCutout() {
1395b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mContext.getOrCreateTestableResources().addOverride(
1405b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos                com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout, true);
1415b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius, 0);
1425b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mContext.getOrCreateTestableResources()
1435b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos                .addOverride(dimen.rounded_corner_content_padding, 0);
1445b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos
1455b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mScreenDecorations.start();
1465b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        // Add 2 windows for rounded corners (top and bottom).
1475b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        verify(mWindowManager, times(2)).addView(any(), any());
1485b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    }
1495b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos
1505b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    @Test
1515b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    public void testDelayedCutout() {
1525b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mContext.getOrCreateTestableResources().addOverride(
1535b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos                com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout, false);
1545b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius, 0);
1555b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mContext.getOrCreateTestableResources()
1565b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos                .addOverride(dimen.rounded_corner_content_padding, 0);
1575b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos
1585b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mScreenDecorations.start();
1595b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos
1605b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mContext.getOrCreateTestableResources().addOverride(
1615b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos                com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout, true);
1625b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        mScreenDecorations.onConfigurationChanged(new Configuration());
1635b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos
1645b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        // Add 2 windows for rounded corners (top and bottom).
1655b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        verify(mWindowManager, times(2)).addView(any(), any());
1665b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    }
1675b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos
1685b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    @Test
1695b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    public void hasRoundedCornerOverlayFlagSet() {
1705b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        assertThat(mScreenDecorations.getWindowLayoutParams().privateFlags
1715b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos                        & PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY,
1725b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos                is(PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY));
1735b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    }
1745b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos
1755b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos    @Test
176d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    public void testPaddingTagListener() {
177d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        TunablePaddingTagListener tagListener = new TunablePaddingTagListener(14, 5);
178d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        View v = mock(View.class);
179d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        View child = mock(View.class);
180d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        Fragment f = mock(Fragment.class);
181d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        TunablePadding padding = mock(TunablePadding.class);
182d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
183d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        when(mTunablePaddingService.add(any(), anyString(), anyInt(), anyInt()))
184d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk                .thenReturn(padding);
185d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        when(f.getView()).thenReturn(v);
186d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        when(v.findViewById(5)).thenReturn(child);
187d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
188d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        // Trigger callback and verify we get a TunablePadding created.
189d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        tagListener.onFragmentViewCreated(null, f);
1905b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos        verify(mTunablePaddingService).add(eq(child), eq(ScreenDecorations.PADDING), eq(14),
191d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk                eq(FLAG_START | FLAG_END));
192d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
193d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        // Call again and verify destroy is called.
194d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        tagListener.onFragmentViewCreated(null, f);
195d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk        verify(padding).destroy();
196d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk    }
197d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk
1980053e99fcf874ecc917e2d14a0bba9f6148280a1Geoffrey Pitsch}
199