init gradle
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
package com.clean.scanner.util
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class UrlRiskScorerTest {
|
||||
|
||||
@Test
|
||||
fun `https domain has low risk`() {
|
||||
val result = UrlRiskScorer.score("https://example.com")
|
||||
assertEquals(0, result.score)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `http adds two points`() {
|
||||
val result = UrlRiskScorer.score("http://example.com")
|
||||
assertEquals(2, result.score)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ip host adds two points`() {
|
||||
val result = UrlRiskScorer.score("https://192.168.1.1/path")
|
||||
assertEquals(2, result.score)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `punycode host adds two points`() {
|
||||
val result = UrlRiskScorer.score("https://xn--pple-43d.com")
|
||||
assertEquals(2, result.score)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `long host adds one point`() {
|
||||
val result = UrlRiskScorer.score("https://averyveryveryveryveryveryveryverylonghostname.com")
|
||||
assertTrue(result.score >= 1)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `long query adds one point`() {
|
||||
val query = "a".repeat(121)
|
||||
val result = UrlRiskScorer.score("https://example.com/?q=$query")
|
||||
assertEquals(1, result.score)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `many percent encodings adds one point`() {
|
||||
val encoded = (1..11).joinToString("") { "%20" }
|
||||
val result = UrlRiskScorer.score("https://example.com/$encoded")
|
||||
assertEquals(1, result.score)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `userinfo adds two points`() {
|
||||
val result = UrlRiskScorer.score("https://user:pass@example.com")
|
||||
assertEquals(2, result.score)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `combined risk can exceed threshold`() {
|
||||
val result = UrlRiskScorer.score("http://user:pass@192.168.0.1")
|
||||
assertTrue(result.score >= 6)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `invalid url returns zero`() {
|
||||
val result = UrlRiskScorer.score("not a url")
|
||||
assertEquals(0, result.score)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `reasons list is populated for risky urls`() {
|
||||
val result = UrlRiskScorer.score("http://xn--pple-43d.com")
|
||||
assertTrue(result.reasons.isNotEmpty())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user