ItemTest.java revision 48dd827be07471f59aae71eb026253cc1ab7ef97
1/*
2 * Copyright (C) 2015 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.test;
18
19import android.graphics.drawable.Drawable;
20import android.graphics.drawable.ShapeDrawable;
21import android.test.AndroidTestCase;
22import android.test.suitebuilder.annotation.SmallTest;
23import android.view.View;
24import android.view.ViewGroup;
25import android.widget.FrameLayout;
26import android.widget.ImageView;
27import android.widget.TextView;
28
29import com.android.setupwizardlib.R;
30import com.android.setupwizardlib.items.Item;
31
32public class ItemTest extends AndroidTestCase {
33
34    private TextView mTitleView;
35    private TextView mSummaryView;
36    private ImageView mIconView;
37    private FrameLayout mIconContainer;
38
39    @SmallTest
40    public void testOnBindView() {
41        Item item = new Item();
42        item.setTitle("TestTitle");
43        item.setSummary("TestSummary");
44        Drawable icon = new ShapeDrawable();
45        item.setIcon(icon);
46        View view = createLayout();
47
48        item.onBindView(view);
49
50        assertEquals("Title should be \"TestTitle\"", "TestTitle", mTitleView.getText().toString());
51        assertEquals("Summary should be \"TestSummary\"", "TestSummary",
52                mSummaryView.getText().toString());
53        assertSame("Icon should be the icon shape drawable", icon, mIconView.getDrawable());
54    }
55
56    @SmallTest
57    public void testSingleLineItem() {
58        Item item = new Item();
59        item.setTitle("TestTitle");
60        View view = createLayout();
61
62        item.onBindView(view);
63
64        assertEquals("Title should be \"TestTitle\"", "TestTitle", mTitleView.getText().toString());
65        assertEquals("Summary should be gone", View.GONE, mSummaryView.getVisibility());
66        assertEquals("IconContainer should be gone", View.GONE, mIconContainer.getVisibility());
67    }
68
69    @SmallTest
70    public void testProperties() {
71        Item item = new Item();
72        item.setTitle("TestTitle");
73        item.setSummary("TestSummary");
74        item.setEnabled(false);
75        ShapeDrawable icon = new ShapeDrawable();
76        item.setIcon(icon);
77        item.setId(12345);
78        item.setLayoutResource(56789);
79
80        assertEquals("Title should be \"TestTitle\"", "TestTitle", item.getTitle());
81        assertEquals("Summary should be \"TestSummary\"", "TestSummary", item.getSummary());
82        assertFalse("Enabled should be false", item.isEnabled());
83        assertSame("Icon should be same as set", icon, item.getIcon());
84        assertEquals("ID should be 12345", 12345, item.getId());
85        assertEquals("Layout resource should be 56789", 56789, item.getLayoutResource());
86    }
87
88    @SmallTest
89    public void testDefaultValues() {
90        Item item = new Item();
91
92        assertNull("Default title should be null", item.getTitle());
93        assertNull("Default summary should be null", item.getSummary());
94        assertNull("Default icon should be null", item.getIcon());
95        assertTrue("Default enabled should be true", item.isEnabled());
96        assertEquals("Default ID should be 0", 0, item.getId());
97        assertEquals("Default layout resource should be R.layout.suw_items_text",
98                R.layout.suw_items_default, item.getLayoutResource());
99    }
100
101    private ViewGroup createLayout() {
102        ViewGroup root = new FrameLayout(mContext);
103
104        mTitleView = new TextView(mContext);
105        mTitleView.setId(R.id.suw_items_title);
106        root.addView(mTitleView);
107
108        mSummaryView = new TextView(mContext);
109        mSummaryView.setId(R.id.suw_items_summary);
110        root.addView(mSummaryView);
111
112        mIconContainer = new FrameLayout(mContext);
113        mIconContainer.setId(R.id.suw_items_icon_container);
114        root.addView(mIconContainer);
115
116        mIconView = new ImageView(mContext);
117        mIconView.setId(R.id.suw_items_icon);
118        mIconContainer.addView(mIconView);
119
120        return root;
121    }
122}
123