ItemTest.java revision 575ec4f0150a3607d0b6902a9b52866c170822f9
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 assertTrue("Default visible should be true", item.isVisible()); 100 } 101 102 @SmallTest 103 public void testHierarchyImplementation() { 104 Item item = new Item(); 105 item.setId(12345); 106 107 assertEquals("getCount should be 1", 1, item.getCount()); 108 assertSame("getItemAt should return itself", item, item.getItemAt(0)); 109 assertSame("findItemById with same ID should return itself", item, 110 item.findItemById(12345)); 111 assertNull("findItemById with different ID should return null", item.findItemById(34567)); 112 } 113 114 @SmallTest 115 public void testVisible() { 116 Item item = new Item(); 117 item.setVisible(false); 118 119 assertFalse("Item should not be visible", item.isVisible()); 120 assertEquals("Item count should be 0 when not visible", 0, item.getCount()); 121 } 122 123 private ViewGroup createLayout() { 124 ViewGroup root = new FrameLayout(mContext); 125 126 mTitleView = new TextView(mContext); 127 mTitleView.setId(R.id.suw_items_title); 128 root.addView(mTitleView); 129 130 mSummaryView = new TextView(mContext); 131 mSummaryView.setId(R.id.suw_items_summary); 132 root.addView(mSummaryView); 133 134 mIconContainer = new FrameLayout(mContext); 135 mIconContainer.setId(R.id.suw_items_icon_container); 136 root.addView(mIconContainer); 137 138 mIconView = new ImageView(mContext); 139 mIconView.setId(R.id.suw_items_icon); 140 mIconContainer.addView(mIconView); 141 142 return root; 143 } 144} 145