| 1 |
package io.oxygenhub.android.ui |
| 2 |
|
| 3 |
import io.oxygenhub.android.ui.nav.BoardRoute |
| 4 |
import io.oxygenhub.android.ui.nav.ChangeRoute |
| 5 |
import io.oxygenhub.android.ui.nav.FileRoute |
| 6 |
import io.oxygenhub.android.ui.nav.HistoryRoute |
| 7 |
import io.oxygenhub.android.ui.nav.IssueRoute |
| 8 |
import io.oxygenhub.android.ui.nav.IssuesRoute |
| 9 |
import io.oxygenhub.android.ui.nav.OwnerRoute |
| 10 |
import io.oxygenhub.android.ui.nav.ProposalRoute |
| 11 |
import io.oxygenhub.android.ui.nav.RunRoute |
| 12 |
import io.oxygenhub.android.ui.nav.routeFor |
| 13 |
import org.junit.Assert.assertEquals |
| 14 |
import org.junit.Assert.assertNull |
| 15 |
import org.junit.Test |
| 16 |
|
| 17 |
class LinksTest { |
| 18 |
private val hub = "https://oxygenhub.io" |
| 19 |
private fun r(path: String) = routeFor("https://oxygenhub.io$path", hub) |
| 20 |
|
| 21 |
@Test |
| 22 |
fun hubPagesOpenTheirOwnScreens() { |
| 23 |
assertEquals(IssueRoute("doomsdayone", "supermarioland2", 317), r("/doomsdayone/supermarioland2/issue/317#c-12")) |
| 24 |
assertEquals(ProposalRoute("andymccall", "oxygenhub", 314), r("/andymccall/oxygenhub/proposal/314")) |
| 25 |
assertEquals(RunRoute("andymccall", "phone-runner-demo", 56), r("/andymccall/phone-runner-demo/flow/56")) |
| 26 |
assertEquals(ChangeRoute("andymccall", "oxygen", "4f07c5a0"), r("/andymccall/oxygen/change/4f07c5a0")) |
| 27 |
assertEquals(FileRoute("andymccall", "oxygen", "main", "crates/oxy-core/src/strata.rs"), r("/andymccall/oxygen/file/main/crates/oxy-core/src/strata.rs")) |
| 28 |
assertEquals(HistoryRoute("andymccall", "oxygen", "main"), r("/andymccall/oxygen/changes/main")) |
| 29 |
assertEquals(BoardRoute("doomsdayone", 4), r("/projects/doomsdayone/4")) |
| 30 |
assertEquals(IssuesRoute("andymccall", "oxygen"), r("/andymccall/oxygen")) |
| 31 |
assertEquals(OwnerRoute("andymccall"), r("/andymccall")) |
| 32 |
assertEquals(OwnerRoute("doomsdayone"), r("/orgs/doomsdayone")) |
| 33 |
} |
| 34 |
|
| 35 |
@Test |
| 36 |
fun otherPagesAndSitesGoToTheBrowser() { |
| 37 |
assertNull(r("/andymccall/oxygenhub/releases/tag/v0.9.4")) |
| 38 |
assertNull(r("/admin/runners")) |
| 39 |
assertNull("a hub page, not an owner", r("/explore")) |
| 40 |
assertNull(routeFor("https://example.com/andymccall/oxygen/issue/1", hub)) |
| 41 |
assertNull(r("/andymccall/oxygen/issue/not-a-number")) |
| 42 |
} |
| 43 |
} |