OXYGENHUB
◆ v0.1.3 oxygenhub-android / app / src / test / java / io / oxygenhub / android / ui / LinksTest.kt
2.1 KiB · last changed Account and organisation pages 9 days ago source blame history raw
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
}