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