ColoredHeaderMixinTest.java revision 7514f1cee29b3feb4822ce16945c1c312057d24f
17514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam/* 27514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * Copyright (C) 2017 The Android Open Source Project 37514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * 47514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * Licensed under the Apache License, Version 2.0 (the "License"); 57514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * you may not use this file except in compliance with the License. 67514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * You may obtain a copy of the License at 77514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * 87514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * http://www.apache.org/licenses/LICENSE-2.0 97514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * 107514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * Unless required by applicable law or agreed to in writing, software 117514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * distributed under the License is distributed on an "AS IS" BASIS, 127514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * See the License for the specific language governing permissions and 147514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam * limitations under the License. 157514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam */ 167514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 177514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lampackage com.android.setupwizardlib.template; 187514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 197514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport static org.junit.Assert.assertEquals; 207514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport static org.mockito.Matchers.eq; 217514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport static org.mockito.Mockito.doReturn; 227514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport static org.mockito.Mockito.spy; 237514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 247514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport android.content.Context; 257514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport android.content.res.ColorStateList; 267514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport android.content.res.XmlResourceParser; 277514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport android.graphics.Color; 287514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport android.support.test.InstrumentationRegistry; 297514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport android.support.test.filters.SmallTest; 307514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport android.support.test.runner.AndroidJUnit4; 317514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport android.util.Xml; 327514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport android.widget.TextView; 337514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 347514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport com.android.setupwizardlib.TemplateLayout; 357514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport com.android.setupwizardlib.test.R; 367514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 377514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport org.junit.Before; 387514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport org.junit.Test; 397514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport org.junit.runner.RunWith; 407514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport org.xmlpull.v1.XmlPullParserException; 417514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 427514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lamimport java.io.IOException; 437514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 447514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam@RunWith(AndroidJUnit4.class) 457514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam@SmallTest 467514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lampublic class ColoredHeaderMixinTest { 477514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 487514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam private Context mContext; 497514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam private TemplateLayout mTemplateLayout; 507514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam private TextView mHeaderTextView; 517514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 527514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam @Before 537514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam public void setUp() { 547514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam mContext = InstrumentationRegistry.getTargetContext(); 557514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam mTemplateLayout = spy(new TemplateLayout(mContext, R.layout.test_template, 567514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam R.id.suw_layout_content)); 577514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 587514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam mHeaderTextView = new TextView(mContext); 597514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam doReturn(mHeaderTextView).when(mTemplateLayout) 607514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam .findManagedViewById(eq(R.id.suw_layout_title)); 617514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam } 627514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 637514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam @Test 647514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam public void testSetColor() { 657514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam ColoredHeaderMixin mixin = new ColoredHeaderMixin(mTemplateLayout, null, 0); 667514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam mixin.setColor(ColorStateList.valueOf(Color.MAGENTA)); 677514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 687514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam assertEquals(ColorStateList.valueOf(Color.MAGENTA), mHeaderTextView.getTextColors()); 697514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam } 707514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 717514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam @Test 727514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam public void testGetColor() { 737514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam ColoredHeaderMixin mixin = new ColoredHeaderMixin(mTemplateLayout, null, 0); 747514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam mHeaderTextView.setTextColor(ColorStateList.valueOf(Color.GREEN)); 757514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 767514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam assertEquals(ColorStateList.valueOf(Color.GREEN), mixin.getColor()); 777514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam } 787514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 797514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam @SuppressWarnings("ResourceType") // Needed to create attribute set from layout XML. 807514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam @Test 817514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam public void testSetColorFromXml() throws IOException, XmlPullParserException { 827514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam final XmlResourceParser parser = 837514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam mContext.getResources().getXml(R.layout.test_mixin_attributes); 847514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam while (!TemplateLayout.class.getName().equals(parser.getName())) { 857514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam parser.next(); 867514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam } 877514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam new ColoredHeaderMixin(mTemplateLayout, Xml.asAttributeSet(parser), 0); 887514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam 897514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam assertEquals(ColorStateList.valueOf(Color.RED), mHeaderTextView.getTextColors()); 907514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam } 917514f1cee29b3feb4822ce16945c1c312057d24fMaurice Lam} 92