1d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy/* 2d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * Copyright (C) 2007 The Android Open Source Project 3d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * 4d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * Licensed under the Apache License, Version 2.0 (the "License"); 5d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * you may not use this file except in compliance with the License. 6d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * You may obtain a copy of the License at 7d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * 8d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * http://www.apache.org/licenses/LICENSE-2.0 9d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * 10d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * Unless required by applicable law or agreed to in writing, software 11d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * distributed under the License is distributed on an "AS IS" BASIS, 12d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * See the License for the specific language governing permissions and 14d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * limitations under the License. 15d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy */ 16d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 171d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenpackage android.view; 18d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 191d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenimport com.android.frameworks.coretests.R; 20d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guyimport android.test.suitebuilder.annotation.MediumTest; 21d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 22d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guyimport android.test.ActivityInstrumentationTestCase2; 23d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guyimport android.widget.Button; 24d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 25d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy/** 26d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy * Exercises {@link android.view.View}'s tags property. 27d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy */ 28d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guypublic class SetTagsTest extends ActivityInstrumentationTestCase2<Disabled> { 29d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy private Button mView; 30d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 31d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public SetTagsTest() { 321d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyen super("com.android.frameworks.coretests", Disabled.class); 33d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 34d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 35d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy @Override 36d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public void setUp() throws Exception { 37d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy super.setUp(); 38d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 39d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy mView = (Button) getActivity().findViewById(R.id.disabledButton); 40d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 41d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 42d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy @MediumTest 43d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public void testSetUpConditions() throws Exception { 44d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy assertNotNull(mView); 45d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 46d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 47d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy @MediumTest 48d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public void testSetTag() throws Exception { 49d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy mView.setTag("1"); 50d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 51d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 52d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy @MediumTest 53d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public void testGetTag() throws Exception { 54d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy Object o = new Object(); 55d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy mView.setTag(o); 56d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 57d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy final Object stored = mView.getTag(); 58d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy assertNotNull(stored); 59d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy assertSame("The stored tag is inccorect", o, stored); 60d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 61d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 62d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy @MediumTest 63d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public void testSetTagWithKey() throws Exception { 64d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy mView.setTag(R.id.a, "2"); 65d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 66d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 67d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy @MediumTest 68d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public void testGetTagWithKey() throws Exception { 69d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy Object o = new Object(); 70d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy mView.setTag(R.id.a, o); 71d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 72d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy final Object stored = mView.getTag(R.id.a); 73d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy assertNotNull(stored); 74d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy assertSame("The stored tag is inccorect", o, stored); 75d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 76d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 77d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy @MediumTest 78d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public void testSetTagWithFrameworkId() throws Exception { 79d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy boolean result = false; 80d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy try { 81d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy mView.setTag(android.R.id.list, "2"); 82d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } catch (IllegalArgumentException e) { 83d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy result = true; 84d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 85d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy assertTrue("Setting a tag with a framework id did not throw an exception", result); 86d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 87d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 88d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy @MediumTest 89d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public void testSetTagWithNoPackageId() throws Exception { 90d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy boolean result = false; 91d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy try { 92d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy mView.setTag(0x000000AA, "2"); 93d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } catch (IllegalArgumentException e) { 94d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy result = true; 95d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 96d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy assertTrue("Setting a tag with an id with no package did not throw an exception", result); 97d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 98d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 99d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy @MediumTest 100d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public void testSetTagInternalWithFrameworkId() throws Exception { 101d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy mView.setTagInternal(android.R.id.list, "2"); 102d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 103d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy 104d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy @MediumTest 105d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy public void testSetTagInternalWithApplicationId() throws Exception { 106d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy boolean result = false; 107d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy try { 108d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy mView.setTagInternal(R.id.a, "2"); 109d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } catch (IllegalArgumentException e) { 110d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy result = true; 111d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 112d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy assertTrue("Setting a tag with an id with app package did not throw an exception", result); 113d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy } 114d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3aRomain Guy} 115