15414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian/* 25414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * Copyright (C) 2018 The Android Open Source Project 35414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * 45414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * Licensed under the Apache License, Version 2.0 (the "License"); 55414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * you may not use this file except in compliance with the License. 65414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * You may obtain a copy of the License at 75414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * 85414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * http://www.apache.org/licenses/LICENSE-2.0 95414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * 105414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * Unless required by applicable law or agreed to in writing, software 115414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * distributed under the License is distributed on an "AS IS" BASIS, 125414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * See the License for the specific language governing permissions and 145414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian * limitations under the License. 155414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian */ 165414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian 179c80550cbbe357a89e2abeeb9c7769fcaefc3a65Jake Whartonpackage androidx.core.text 185414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian 195414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrianimport android.graphics.Typeface.BOLD 20a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Whartonimport android.text.Spanned.SPAN_INCLUSIVE_EXCLUSIVE 215414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrianimport android.text.SpannedString 225414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrianimport android.text.style.StyleSpan 235414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrianimport android.text.style.UnderlineSpan 245414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrianimport org.junit.Assert.assertEquals 25a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Whartonimport org.junit.Assert.assertSame 265414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrianimport org.junit.Assert.assertTrue 275414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrianimport org.junit.Test 285414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian 295414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrianclass SpannedStringTest { 305414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian 315414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian @Test fun toSpanned() = assertTrue("Hello, World".toSpanned() is SpannedString) 325414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian 335414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian @Test fun getSpans() { 34a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton val bold = StyleSpan(BOLD) 35a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton val underline = UnderlineSpan() 36a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton 375414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian val s = "Hello, World".toSpannable() 38a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton s.setSpan(bold, 0, 5, SPAN_INCLUSIVE_EXCLUSIVE) 39a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton s.setSpan(underline, 7, 12, SPAN_INCLUSIVE_EXCLUSIVE) 40a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton 41a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton assertSame(bold, s.getSpans<StyleSpan>().single()) 42a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton assertSame(underline, s.getSpans<UnderlineSpan>().single()) 435414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian assertEquals(s.getSpans<Any>().size, 2) 44a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton 45a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton assertSame(bold, s.getSpans<Any>(0, 6).single()) 46a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton assertSame(underline, s.getSpans<Any>(6, 12).single()) 475414238bd40e7deebeabf0e41a59eaaa05f4cdfeHendra Anggrian } 48a4ba387dd7b64fa8bc269778bac6bb450d328786Jake Wharton} 49