1a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzpackage com.xtremelabs.robolectric.res; 2613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisher 34c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwinimport android.content.Context; 44c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwinimport android.util.AttributeSet; 51e92500053a1bc745ec8b8d600ac42a13e29271aJesse Toth & Tim Labeeuwimport android.widget.ImageView; 6a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.R; 7a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.util.CustomView; 84c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwinimport org.junit.Before; 9613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisherimport org.junit.Test; 10613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisher 11f2906888dbe454d6b607e123cc5fdfebd190372bJesse Toth & Tim Labeeuwimport static com.xtremelabs.robolectric.util.TestUtil.getSystemResourceDir; 124ac725f9b4cebbf46805fc5e9b2f0eaf3fdd9b29Christian Williamsimport static com.xtremelabs.robolectric.util.TestUtil.resourceFile; 13613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisherimport static org.hamcrest.CoreMatchers.equalTo; 14613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisherimport static org.junit.Assert.assertThat; 15613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisher 16613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisherpublic class AttrResourceLoaderTest { 174c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin private AttrResourceLoader attrResourceLoader; 184c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin 194c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin @Before 204c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin public void setUp() throws Exception { 21613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisher ResourceExtractor resourceExtractor = new ResourceExtractor(); 2229610b43047065c5dc66452d33f0113ac7e65fe8Phil Goodwin resourceExtractor.addLocalRClass(R.class); 231e92500053a1bc745ec8b8d600ac42a13e29271aJesse Toth & Tim Labeeuw resourceExtractor.addSystemRClass(android.R.class); 244c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin attrResourceLoader = new AttrResourceLoader(resourceExtractor); 25e759ba9296f7cf3063cdcab5f288ab6604d80ddbPhil Goodwin new DocumentLoader(attrResourceLoader).loadResourceXmlDir(resourceFile("res", "values")); 26f2906888dbe454d6b607e123cc5fdfebd190372bJesse Toth & Tim Labeeuw new DocumentLoader(attrResourceLoader).loadSystemResourceXmlDir(getSystemResourceDir("values")); 274c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin } 284c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin 294c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin @Test 304c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin public void testAttributesAreResolved() throws Exception { 314c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin assertThat(attrResourceLoader.convertValueToEnum(CustomView.class, "xxx", "itemType", "integer"), equalTo("0")); 324c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin assertThat(attrResourceLoader.hasAttributeFor(CustomView.class, "xxx", "itemType"), equalTo(true)); 33613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisher 344c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin assertThat(attrResourceLoader.convertValueToEnum(CustomView.class, "xxx", "itemType", "string"), equalTo("1")); 354c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin assertThat(attrResourceLoader.hasAttributeFor(CustomView.class, "xxx", "otherItemType"), equalTo(false)); 364c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin } 37613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisher 384c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin @Test 391e92500053a1bc745ec8b8d600ac42a13e29271aJesse Toth & Tim Labeeuw public void testAttributesAreResolvedForSystemAttrs() throws Exception { 401e92500053a1bc745ec8b8d600ac42a13e29271aJesse Toth & Tim Labeeuw String expected = "" + ImageView.ScaleType.FIT_CENTER.ordinal(); 411e92500053a1bc745ec8b8d600ac42a13e29271aJesse Toth & Tim Labeeuw assertThat(attrResourceLoader.convertValueToEnum(ImageView.class, "android", "scaleType", "fitCenter"), equalTo(expected)); 421e92500053a1bc745ec8b8d600ac42a13e29271aJesse Toth & Tim Labeeuw assertThat(attrResourceLoader.hasAttributeFor(ImageView.class, "android", "scaleType"), equalTo(true)); 431e92500053a1bc745ec8b8d600ac42a13e29271aJesse Toth & Tim Labeeuw } 441e92500053a1bc745ec8b8d600ac42a13e29271aJesse Toth & Tim Labeeuw 451e92500053a1bc745ec8b8d600ac42a13e29271aJesse Toth & Tim Labeeuw @Test 464c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin public void shouldResolveAttributesForSubClasses() throws Exception { 474c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin assertThat(attrResourceLoader.convertValueToEnum(SubCustomView.class, "xxx", "itemType", "integer"), equalTo("0")); 484c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin assertThat(attrResourceLoader.hasAttributeFor(SubCustomView.class, "xxx", "itemType"), equalTo(true)); 494c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin } 50613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisher 514c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin private class SubCustomView extends CustomView { 524c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin public SubCustomView(Context context, AttributeSet attrs) { 534c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin super(context, attrs); 544c5b57087396dc85c042e3d82a349288b3ecded2Ian Fisher & Phil Goodwin } 55613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisher } 56613a45744127aa01759b49930e4e111128f563d5Christian Williams & Ian Fisher} 57