1/* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.setupwizardlib.view; 18 19import static org.junit.Assert.assertEquals; 20import static org.robolectric.RuntimeEnvironment.application; 21 22import android.view.View; 23import android.view.View.MeasureSpec; 24 25import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner; 26 27import org.junit.Test; 28import org.junit.runner.RunWith; 29import org.robolectric.Robolectric; 30import org.robolectric.annotation.Config; 31 32@RunWith(SuwLibRobolectricTestRunner.class) 33@Config(sdk = {Config.OLDEST_SDK, Config.NEWEST_SDK}) 34public class FillContentLayoutTest { 35 36 @Test 37 public void testMeasureMinSize() { 38 FillContentLayout layout = new FillContentLayout( 39 application, 40 Robolectric.buildAttributeSet() 41 .addAttribute(android.R.attr.minWidth, "123dp") 42 .addAttribute(android.R.attr.minHeight, "123dp") 43 .build()); 44 layout.measure( 45 MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 46 MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 47 48 assertEquals(123, layout.getMeasuredWidth()); 49 assertEquals(123, layout.getMeasuredHeight()); 50 } 51 52 @Test 53 public void testMeasureChildIsSmallerThanMaxSize() { 54 View child = new View(application); 55 FillContentLayout layout = new FillContentLayout( 56 application, 57 Robolectric.buildAttributeSet() 58 .addAttribute(android.R.attr.maxWidth, "123dp") 59 .addAttribute(android.R.attr.maxHeight, "123dp") 60 .build()); 61 layout.addView(child); 62 layout.measure( 63 MeasureSpec.makeMeasureSpec(300, MeasureSpec.EXACTLY), 64 MeasureSpec.makeMeasureSpec(300, MeasureSpec.EXACTLY)); 65 66 assertEquals(123, child.getMeasuredWidth()); 67 assertEquals(123, child.getMeasuredHeight()); 68 } 69 70 @Test 71 public void testMeasureChildIsSmallerThanParent() { 72 View child = new View(application); 73 FillContentLayout layout = new FillContentLayout( 74 application, 75 Robolectric.buildAttributeSet() 76 .addAttribute(android.R.attr.maxWidth, "123dp") 77 .addAttribute(android.R.attr.maxHeight, "123dp") 78 .build()); 79 layout.addView(child); 80 layout.measure( 81 MeasureSpec.makeMeasureSpec(88, MeasureSpec.EXACTLY), 82 MeasureSpec.makeMeasureSpec(88, MeasureSpec.EXACTLY)); 83 84 assertEquals(88, child.getMeasuredWidth()); 85 assertEquals(88, child.getMeasuredHeight()); 86 } 87} 88