44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
using System;
|
|
using Paca.Mobile.Core;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.Mobile;
|
|
|
|
public class MobileShareTextExtractorGateTests
|
|
{
|
|
[Fact]
|
|
public void Gate253_MobileShareTextExtractor_ExtractsCleanUrl_FromMessyShareText()
|
|
{
|
|
var shared = "Watch \"Awesome Video\" on YouTube: https://youtu.be/dQw4w9WgXcQ?si=abcdef12345";
|
|
var extracted = MobileShareTextExtractor.ExtractMediaUrl(shared);
|
|
|
|
Assert.Equal("https://youtu.be/dQw4w9WgXcQ", extracted);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate254_MobileShareTextExtractor_HandlesMultipleUrls_PicksFirstValidMediaUrl()
|
|
{
|
|
var shared = "Read info at https://google.com and watch https://tiktok.com/@user/video/9876543210";
|
|
var extracted = MobileShareTextExtractor.ExtractMediaUrl(shared);
|
|
|
|
Assert.Equal("https://tiktok.com/@user/video/9876543210", extracted);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate255_MobileShareTextExtractor_ReturnsNull_WhenNoValidUrlPresent()
|
|
{
|
|
var shared = "Just plain message from a friend without any hyperlink";
|
|
var extracted = MobileShareTextExtractor.ExtractMediaUrl(shared);
|
|
|
|
Assert.Null(extracted);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate256_MobileShareTextExtractor_StripsTrackingQueryParameters_PreservesVideoId()
|
|
{
|
|
var url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ&utm_source=twitter&si=123&fbclid=xyz";
|
|
var extracted = MobileShareTextExtractor.ExtractMediaUrl(url);
|
|
|
|
Assert.Equal("https://www.youtube.com/watch?v=dQw4w9WgXcQ", extracted);
|
|
}
|
|
}
|