mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-04-07 18:42:29 +00:00
add support of managed bots creation link
This commit is contained in:
@@ -3346,6 +3346,14 @@ public final class dev/inmo/tgbotapi/extensions/utils/formatting/LinksFormatting
|
||||
public static final fun makeUsernameStartattachLink (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
||||
public static synthetic fun makeUsernameStartattachLink$default (Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
|
||||
public static final fun makeUsernameStartattachPrefix (Ljava/lang/String;)Ljava/lang/String;
|
||||
public static final fun managedBotCreationLink (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
||||
public static synthetic fun managedBotCreationLink$default (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
|
||||
public static final fun managedBotCreationLink-B8si7ts (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
||||
public static synthetic fun managedBotCreationLink-B8si7ts$default (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
|
||||
public static final fun managedBotCreationLink-hj--HSE (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
||||
public static synthetic fun managedBotCreationLink-hj--HSE$default (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
|
||||
public static final fun managedBotCreationLink-rmazcNg (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
||||
public static synthetic fun managedBotCreationLink-rmazcNg$default (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/extensions/utils/formatting/ResendingTextFormattingKt {
|
||||
|
||||
@@ -114,6 +114,22 @@ val Chat.chatLink: String?
|
||||
return null
|
||||
}
|
||||
|
||||
fun managedBotCreationLink(managerBotUsername: String, suggestedUsername: String, suggestedName: String? = null): String {
|
||||
return "${makeUsernameLink(managedBotNewBotUsername)}/$managerBotUsername/$suggestedUsername${suggestedName ?.let { "?$nameField=${it.encodeURLQueryComponent()}" } ?: ""}"
|
||||
}
|
||||
|
||||
fun managedBotCreationLink(managerBotUsername: String, suggestedUsername: Username, suggestedName: String? = null): String {
|
||||
return managedBotCreationLink(managerBotUsername, suggestedUsername.withoutAt, suggestedName)
|
||||
}
|
||||
|
||||
fun managedBotCreationLink(managerBotUsername: Username, suggestedUsername: String, suggestedName: String? = null): String {
|
||||
return managedBotCreationLink(managerBotUsername.withoutAt, suggestedUsername, suggestedName)
|
||||
}
|
||||
|
||||
fun managedBotCreationLink(managerBotUsername: Username, suggestedUsername: Username, suggestedName: String? = null): String {
|
||||
return managedBotCreationLink(managerBotUsername.withoutAt, suggestedUsername.withoutAt, suggestedName)
|
||||
}
|
||||
|
||||
private const val stickerSetAddingLinkPrefix = "$internalLinkBeginning/addstickers"
|
||||
|
||||
val StickerSetName.stickerSetLink
|
||||
|
||||
115
tgbotapi.utils/src/commonTest/kotlin/LinksFormattingKtTest.kt
Normal file
115
tgbotapi.utils/src/commonTest/kotlin/LinksFormattingKtTest.kt
Normal file
@@ -0,0 +1,115 @@
|
||||
import dev.inmo.tgbotapi.extensions.utils.formatting.managedBotCreationLink
|
||||
import dev.inmo.tgbotapi.types.Username
|
||||
import io.ktor.http.encodeURLQueryComponent
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class LinksFormattingKtTest {
|
||||
|
||||
/**
|
||||
* Tests for the `managedBotCreationLink` function.
|
||||
* These tests verify that the function generates Telegram bot creation links correctly for various inputs.
|
||||
*/
|
||||
|
||||
@Test
|
||||
fun testManagedBotCreationLinkWithStringsWithoutSuggestedName() {
|
||||
// Arrange
|
||||
val managerBotUsername = "managerBot"
|
||||
val suggestedUsername = "testBot"
|
||||
|
||||
// Act
|
||||
val result = managedBotCreationLink(managerBotUsername, suggestedUsername)
|
||||
|
||||
// Assert
|
||||
val expected = "https://t.me/newbot/managerBot/testBot"
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testManagedBotCreationLinkWithStringsWithSuggestedName() {
|
||||
// Arrange
|
||||
val managerBotUsername = "managerBot"
|
||||
val suggestedUsername = "testBot"
|
||||
val suggestedName = "Test Bot".encodeURLQueryComponent()
|
||||
|
||||
// Act
|
||||
val result = managedBotCreationLink(managerBotUsername, suggestedUsername, suggestedName)
|
||||
|
||||
// Assert
|
||||
val expected = "https://t.me/newbot/managerBot/testBot?name=${suggestedName.encodeURLQueryComponent()}"
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testManagedBotCreationLinkWithUsernamesWithoutSuggestedName() {
|
||||
// Arrange
|
||||
val managerBotUsername = Username("@managerBot")
|
||||
val suggestedUsername = Username("@testBot")
|
||||
|
||||
// Act
|
||||
val result = managedBotCreationLink(managerBotUsername, suggestedUsername)
|
||||
|
||||
// Assert
|
||||
val expected = "https://t.me/newbot/managerBot/testBot"
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testManagedBotCreationLinkWithUsernamesWithSuggestedName() {
|
||||
// Arrange
|
||||
val managerBotUsername = Username("@managerBot")
|
||||
val suggestedUsername = Username("@testBot")
|
||||
val suggestedName = "Test Bot"
|
||||
|
||||
// Act
|
||||
val result = managedBotCreationLink(managerBotUsername, suggestedUsername, suggestedName)
|
||||
|
||||
// Assert
|
||||
val expected = "https://t.me/newbot/managerBot/testBot?name=${suggestedName.encodeURLQueryComponent()}"
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testManagedBotCreationLinkMixedStringAndUsernameWithoutSuggestedName() {
|
||||
// Arrange
|
||||
val managerBotUsername = "managerBot"
|
||||
val suggestedUsername = Username("@testBot")
|
||||
|
||||
// Act
|
||||
val result = managedBotCreationLink(managerBotUsername, suggestedUsername)
|
||||
|
||||
// Assert
|
||||
val expected = "https://t.me/newbot/managerBot/testBot"
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testManagedBotCreationLinkMixedUsernameAndStringWithSuggestedName() {
|
||||
// Arrange
|
||||
val managerBotUsername = Username("@managerBot")
|
||||
val suggestedUsername = "testBot"
|
||||
val suggestedName = "Test Bot"
|
||||
|
||||
// Act
|
||||
val result = managedBotCreationLink(managerBotUsername, suggestedUsername, suggestedName)
|
||||
|
||||
// Assert
|
||||
val expected = "https://t.me/newbot/managerBot/testBot?name=${suggestedName.encodeURLQueryComponent()}"
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testManagedBotCreationLinkWithSpecialCharactersInSuggestedName() {
|
||||
// Arrange
|
||||
val managerBotUsername = "managerBot"
|
||||
val suggestedUsername = "testBot"
|
||||
val suggestedName = "Test Bot & Co."
|
||||
|
||||
// Act
|
||||
val result = managedBotCreationLink(managerBotUsername, suggestedUsername, suggestedName)
|
||||
|
||||
// Assert
|
||||
val expected = "https://t.me/newbot/managerBot/testBot?name=${suggestedName.encodeURLQueryComponent()}"
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user