Commit 9e4c4d76 authored by joergi's avatar joergi
Browse files

Adds test for issue #1340 and changes the regex

parent 7f003eeb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -363,7 +363,7 @@ public class Helper {
    public static final Pattern mathsComposePattern = Pattern.compile("\\\\\\(.*\\\\\\)|\\\\\\[.*\\\\\\]");
    public static final Pattern twitterPattern = Pattern.compile("((@[\\w]+)@twitter\\.com)");
    public static final Pattern youtubePattern = Pattern.compile("(www\\.|m\\.)?(youtube\\.com|youtu\\.be|youtube-nocookie\\.com)/(((?!([\"'<])).)*)");
    public static final Pattern nitterPattern = Pattern.compile("(mobile\\.|www\\.)?(twitter|x)\\.com([\\w/-]+)");
    public static final Pattern nitterPattern = Pattern.compile("(?<!\\w)(mobile\\.|www\\.)?(twitter|x)\\.com(/[\\w/-]+)?");
    public static final Pattern bibliogramPattern = Pattern.compile("(m\\.|www\\.)?instagram.com(/p/[\\w-/]+)");
    public static final Pattern libredditPattern = Pattern.compile("(www\\.|m\\.)?(reddit\\.com|preview\\.redd\\.it|i\\.redd\\.it|redd\\.it)/(((?!([\"'<])).)*)");
    public static final Pattern ouichesPattern = Pattern.compile("https?://ouich\\.es/tag/(\\w+)");
+67 −0
Original line number Diff line number Diff line
package app.fedilab.android;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import java.util.regex.Matcher;

import app.fedilab.android.mastodon.helper.Helper;

public class HelperUnitTest {

    @Test
    public void tests_wwwTwitter_pattern() {
        String twitterUrl = "https://www.twitter.com/foo";
        String result = matchTwitter(twitterUrl);
        assertEquals("https://nitter.net/foo", result);
    }

    public void tests_Twitter_pattern() {
        String twitterUrl = "https://twitter.com/foo";
        String result = matchTwitter(twitterUrl);
        assertEquals("https://nitter.net/foo", result);
    }

    @Test
    public void tests_wwwxcom_pattern() {
        String twitterUrl = "https://www.x.com/foo";
        String result = matchTwitter(twitterUrl);
        assertEquals("https://nitter.net/foo", result);
    }

    @Test
    public void tests_xcom_pattern() {
        String twitterUrl = "https://x.com/foo";
        String result = matchTwitter(twitterUrl);
        assertEquals("https://nitter.net/foo", result);
    }


    @Test
    public void tests_wwwwixdotcom_pattern() {
        String twitterUrl = "https://www.wix.com/foo";
        String result = matchTwitter(twitterUrl);
        assertEquals("https://www.wix.com/foo", result);
    }

    @Test
    public void tests_wixdotcom_pattern() {
        String twitterUrl = "https://wix.com/foo";
        String result = matchTwitter(twitterUrl);
        assertEquals("https://wix.com/foo", result);
    }

    private String matchTwitter(String url){
        Matcher matcher = Helper.nitterPattern.matcher(url);
        if (matcher.find()) {
            final String nitter_directory = matcher.group(3);
            String nitterHost =  "nitter.net";


            return "https://" + nitterHost + nitter_directory;
        }
        return url;
    }

}
 No newline at end of file