1058fb01f7890df9b0379e49c7559266b4097abadDake Gu/* 2058fb01f7890df9b0379e49c7559266b4097abadDake Gu * Copyright (C) 2015 The Android Open Source Project 3058fb01f7890df9b0379e49c7559266b4097abadDake Gu * 4058fb01f7890df9b0379e49c7559266b4097abadDake Gu * Licensed under the Apache License, Version 2.0 (the "License"); 5058fb01f7890df9b0379e49c7559266b4097abadDake Gu * you may not use this file except in compliance with the License. 6058fb01f7890df9b0379e49c7559266b4097abadDake Gu * You may obtain a copy of the License at 7058fb01f7890df9b0379e49c7559266b4097abadDake Gu * 8058fb01f7890df9b0379e49c7559266b4097abadDake Gu * http://www.apache.org/licenses/LICENSE-2.0 9058fb01f7890df9b0379e49c7559266b4097abadDake Gu * 10058fb01f7890df9b0379e49c7559266b4097abadDake Gu * Unless required by applicable law or agreed to in writing, software 11058fb01f7890df9b0379e49c7559266b4097abadDake Gu * distributed under the License is distributed on an "AS IS" BASIS, 12058fb01f7890df9b0379e49c7559266b4097abadDake Gu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13058fb01f7890df9b0379e49c7559266b4097abadDake Gu * See the License for the specific language governing permissions and 14058fb01f7890df9b0379e49c7559266b4097abadDake Gu * limitations under the License. 15058fb01f7890df9b0379e49c7559266b4097abadDake Gu */ 16058fb01f7890df9b0379e49c7559266b4097abadDake Gupackage android.support.v17.leanback.widget; 17058fb01f7890df9b0379e49c7559266b4097abadDake Gu 18058fb01f7890df9b0379e49c7559266b4097abadDake Guimport android.test.AndroidTestCase; 19fad2335f169d36b7b6f2c0ec8ddfe6c0094c2072Aurimas Liutikasimport android.test.suitebuilder.annotation.MediumTest; 20058fb01f7890df9b0379e49c7559266b4097abadDake Guimport android.view.View.MeasureSpec; 21058fb01f7890df9b0379e49c7559266b4097abadDake Guimport android.view.ViewGroup.LayoutParams; 22058fb01f7890df9b0379e49c7559266b4097abadDake Guimport android.widget.FrameLayout; 23058fb01f7890df9b0379e49c7559266b4097abadDake Guimport android.widget.TextView; 24058fb01f7890df9b0379e49c7559266b4097abadDake Gu 25fad2335f169d36b7b6f2c0ec8ddfe6c0094c2072Aurimas Liutikas@MediumTest 26058fb01f7890df9b0379e49c7559266b4097abadDake Gupublic class ShadowOverlayContainerTest extends AndroidTestCase { 27058fb01f7890df9b0379e49c7559266b4097abadDake Gu 28058fb01f7890df9b0379e49c7559266b4097abadDake Gu public void testWrapContent() { 29058fb01f7890df9b0379e49c7559266b4097abadDake Gu FrameLayout frameLayout = new FrameLayout(getContext()); 30058fb01f7890df9b0379e49c7559266b4097abadDake Gu TextView textView = new TextView(getContext()); 31058fb01f7890df9b0379e49c7559266b4097abadDake Gu textView.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 32058fb01f7890df9b0379e49c7559266b4097abadDake Gu LayoutParams.WRAP_CONTENT)); 33058fb01f7890df9b0379e49c7559266b4097abadDake Gu textView.setText("abc"); 34058fb01f7890df9b0379e49c7559266b4097abadDake Gu ShadowOverlayContainer container = new ShadowOverlayContainer(getContext()); 35058fb01f7890df9b0379e49c7559266b4097abadDake Gu container.initialize(true, true, true); 36058fb01f7890df9b0379e49c7559266b4097abadDake Gu container.wrap(textView); 37058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.addView(container); 38058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.measure(MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY), 39058fb01f7890df9b0379e49c7559266b4097abadDake Gu MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY)); 40058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.layout(0, 0, 500, 500); 41058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getWidth() > 0); 42058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getWidth() < 500); 43058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getHeight() > 0); 44058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getHeight() < 500); 45058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertEquals(container.getWidth(), textView.getWidth()); 46058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertEquals(container.getHeight(), textView.getHeight()); 47058fb01f7890df9b0379e49c7559266b4097abadDake Gu 48058fb01f7890df9b0379e49c7559266b4097abadDake Gu // change layout size of textView after wrap() 49058fb01f7890df9b0379e49c7559266b4097abadDake Gu textView.setLayoutParams(new FrameLayout.LayoutParams(123, 123)); 50058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.measure(MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY), 51058fb01f7890df9b0379e49c7559266b4097abadDake Gu MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY)); 52058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.layout(0, 0, 500, 500); 53058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getWidth() == 123); 54058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getHeight() == 123); 55058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertEquals(container.getWidth(), textView.getWidth()); 56058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertEquals(container.getHeight(), textView.getHeight()); 57058fb01f7890df9b0379e49c7559266b4097abadDake Gu } 58058fb01f7890df9b0379e49c7559266b4097abadDake Gu 59058fb01f7890df9b0379e49c7559266b4097abadDake Gu public void testFixedSize() { 60058fb01f7890df9b0379e49c7559266b4097abadDake Gu FrameLayout frameLayout = new FrameLayout(getContext()); 61058fb01f7890df9b0379e49c7559266b4097abadDake Gu TextView textView = new TextView(getContext()); 62058fb01f7890df9b0379e49c7559266b4097abadDake Gu textView.setLayoutParams(new FrameLayout.LayoutParams(200, LayoutParams.WRAP_CONTENT)); 63058fb01f7890df9b0379e49c7559266b4097abadDake Gu textView.setText("abc"); 64058fb01f7890df9b0379e49c7559266b4097abadDake Gu ShadowOverlayContainer container = new ShadowOverlayContainer(getContext()); 65058fb01f7890df9b0379e49c7559266b4097abadDake Gu container.initialize(true, true, true); 66058fb01f7890df9b0379e49c7559266b4097abadDake Gu container.wrap(textView); 67058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.addView(container); 68058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.measure(MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY), 69058fb01f7890df9b0379e49c7559266b4097abadDake Gu MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY)); 70058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.layout(0, 0, 500, 500); 71058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getWidth() == 200); 72058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getHeight() > 0); 73058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getHeight() < 500); 74058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertEquals(container.getWidth(), textView.getWidth()); 75058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertEquals(container.getHeight(), textView.getHeight()); 76058fb01f7890df9b0379e49c7559266b4097abadDake Gu 77058fb01f7890df9b0379e49c7559266b4097abadDake Gu // change layout size of textView after wrap() 78058fb01f7890df9b0379e49c7559266b4097abadDake Gu textView.setLayoutParams(new FrameLayout.LayoutParams(123, 123)); 79058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.measure(MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY), 80058fb01f7890df9b0379e49c7559266b4097abadDake Gu MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY)); 81058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.layout(0, 0, 500, 500); 82058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getWidth() == 123); 83058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getHeight() == 123); 84058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertEquals(container.getWidth(), textView.getWidth()); 85058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertEquals(container.getHeight(), textView.getHeight()); 86058fb01f7890df9b0379e49c7559266b4097abadDake Gu } 87058fb01f7890df9b0379e49c7559266b4097abadDake Gu 88058fb01f7890df9b0379e49c7559266b4097abadDake Gu public void testMatchParent() { 89058fb01f7890df9b0379e49c7559266b4097abadDake Gu FrameLayout frameLayout = new FrameLayout(getContext()); 90058fb01f7890df9b0379e49c7559266b4097abadDake Gu TextView textView = new TextView(getContext()); 91058fb01f7890df9b0379e49c7559266b4097abadDake Gu textView.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, 92058fb01f7890df9b0379e49c7559266b4097abadDake Gu LayoutParams.WRAP_CONTENT)); 93058fb01f7890df9b0379e49c7559266b4097abadDake Gu textView.setText("abc"); 94058fb01f7890df9b0379e49c7559266b4097abadDake Gu ShadowOverlayContainer container = new ShadowOverlayContainer(getContext()); 95058fb01f7890df9b0379e49c7559266b4097abadDake Gu container.initialize(true, true, true); 96058fb01f7890df9b0379e49c7559266b4097abadDake Gu container.wrap(textView); 97058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.addView(container); 98058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.measure(MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY), 99058fb01f7890df9b0379e49c7559266b4097abadDake Gu MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY)); 100058fb01f7890df9b0379e49c7559266b4097abadDake Gu frameLayout.layout(0, 0, 500, 500); 101058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getWidth() == 500); 102058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getHeight() > 0); 103058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertTrue(textView.getHeight() < 500); 104058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertEquals(container.getWidth(), textView.getWidth()); 105058fb01f7890df9b0379e49c7559266b4097abadDake Gu assertEquals(container.getHeight(), textView.getHeight()); 106058fb01f7890df9b0379e49c7559266b4097abadDake Gu } 107058fb01f7890df9b0379e49c7559266b4097abadDake Gu} 108