11a5a3217595b183deee7a31b25e77eeed707e381Kenny Root/* 21a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * Copyright (C) 2007 The Android Open Source Project 31a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * 41a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 51a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * you may not use this file except in compliance with the License. 61a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * You may obtain a copy of the License at 71a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * 81a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * http://www.apache.org/licenses/LICENSE-2.0 91a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * 101a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * Unless required by applicable law or agreed to in writing, software 111a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * distributed under the License is distributed on an "AS IS" BASIS, 121a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * See the License for the specific language governing permissions and 141a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * limitations under the License. 151a5a3217595b183deee7a31b25e77eeed707e381Kenny Root */ 161a5a3217595b183deee7a31b25e77eeed707e381Kenny Root 171d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenpackage android.text; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.InstrumentationTestCase; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.MoreAsserts; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.MediumTest; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.text.Spannable; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic abstract class SpannableTest extends InstrumentationTestCase { 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected abstract Spannable newSpannableWithText(String text); 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testGetSpans() { 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Spannable spannable = newSpannableWithText("abcdef"); 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object emptySpan = new Object(); 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project spannable.setSpan(emptySpan, 1, 1, 0); 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object unemptySpan = new Object(); 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project spannable.setSpan(unemptySpan, 1, 2, 0); 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object[] spans; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Empty spans are included when they merely abut the query region 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // but other spans are not, unless the query region is empty, in 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // in which case any abutting spans are returned. 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project spans = spannable.getSpans(0, 1, Object.class); 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project MoreAsserts.assertEquals(new Object[]{emptySpan}, spans); 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project spans = spannable.getSpans(0, 2, Object.class); 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project MoreAsserts.assertEquals(new Object[]{emptySpan, unemptySpan}, spans); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project spans = spannable.getSpans(1, 2, Object.class); 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project MoreAsserts.assertEquals(new Object[]{emptySpan, unemptySpan}, spans); 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project spans = spannable.getSpans(2, 2, Object.class); 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project MoreAsserts.assertEquals(new Object[]{unemptySpan}, spans); 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 51