package org.terst.doot.widget.ui import org.junit.Assert.assertEquals import org.junit.Test class LinkifiedTextTest { @Test fun `findLinks finds a plain URL`() { val links = findLinks("Check out https://example.com/path for details") assertEquals(1, links.size) assertEquals(LinkKind.URL, links[0].kind) assertEquals("https://example.com/path", links[0].target) } @Test fun `findLinks finds a phone number`() { val links = findLinks("Call me at 555-123-4567 tomorrow") assertEquals(1, links.size) assertEquals(LinkKind.PHONE, links[0].kind) assertEquals("555-123-4567", links[0].target) } @Test fun `findLinks finds both a URL and a phone number in the same text`() { val links = findLinks("See https://example.com or call 555-123-4567") assertEquals(2, links.size) assertEquals(LinkKind.URL, links[0].kind) assertEquals(LinkKind.PHONE, links[1].kind) } @Test fun `findLinks returns empty list for plain text`() { val links = findLinks("Just a regular description with no links.") assertEquals(0, links.size) } @Test fun `findLinks does not double-count phone-like digits inside a URL`() { val links = findLinks("https://example.com/555-123-4567") assertEquals(1, links.size) assertEquals(LinkKind.URL, links[0].kind) } }