Skip to content

Commit

Permalink
Add more tests on testGetStreamId
Browse files Browse the repository at this point in the history
  • Loading branch information
SelimEmre committed May 10, 2021
1 parent 855c86e commit 010ae2a
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 14 deletions.
59 changes: 58 additions & 1 deletion src/main/java/io/antmedia/filter/TokenFilterManager.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.antmedia.filter;

import java.io.IOException;
import java.util.regex.Pattern;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
Expand Down Expand Up @@ -174,6 +175,7 @@ public void setTokenService(ITokenService tokenService) {
this.tokenService = tokenService;
}


public static String getStreamId(String requestURI) {

requestURI = requestURI.replaceAll(REPLACE_CHARS_REGEX, "_");
Expand All @@ -182,6 +184,61 @@ public static String getStreamId(String requestURI) {
int startIndex = requestURI.indexOf('/');

requestURI = requestURI.split("streams")[1];

//if request is adaptive file ( ending with _adaptive.m3u8)
endIndex = requestURI.lastIndexOf(MuxAdaptor.ADAPTIVE_SUFFIX + ".m3u8");
if (endIndex != -1) {
return requestURI.substring(startIndex+1, endIndex);
}

//if specific bitrate is requested
String hlsRegex = "(.*)_[0-9]+p.m3u8$"; // matches ending with _[resolution]p.m3u8
if (requestURI.matches(hlsRegex)) {
endIndex = requestURI.lastIndexOf('_'); //because file format is [NAME]_[RESOLUTION]p.m3u8
return requestURI.substring(startIndex+1, endIndex);
}

//if just the m3u8 file
endIndex = requestURI.lastIndexOf(".m3u8");
if (endIndex != -1) {
return requestURI.substring(startIndex+1, endIndex);
}

//if specific ts file requested
String tsRegex = "(.*)_[0-9]+p+[0-9][0-9][0-9][0-9].ts$"; // matches ending with _[resolution]p.m3u8
if (requestURI.matches(tsRegex)) {
endIndex = requestURI.lastIndexOf('_'); //because file format is [NAME]_[RESOLUTION]p.m3u8
return requestURI.substring(startIndex+1, endIndex);
}

//if multiple files with same id requested such as : 541211332342978513714151_480p_1.mp4
String mp4Regex2 = "(.*)+(_[0-9]+p+_[0-9]|_|_[0-9])+.mp4$";
if (requestURI.matches(mp4Regex2)) {
endIndex = requestURI.lastIndexOf('_'); //if multiple files with same id requested such as : 541211332342978513714151_480p_1.mp4
//480p regex
String mp4resolutionRegex = "(.*)+[0-9]+p$";
if(requestURI.substring(startIndex+1, endIndex).matches(mp4resolutionRegex)) {
endIndex = requestURI.substring(startIndex, endIndex).lastIndexOf('_');
}
return requestURI.substring(startIndex+1, endIndex);
}

//if mp4 file requested
endIndex = requestURI.lastIndexOf(".mp4");
if (endIndex != -1) {
return requestURI.substring(startIndex+1, endIndex);
}
return null;
}


/*
public static String getStreamId(String requestURI) {
requestURI = requestURI.replaceAll(REPLACE_CHARS_REGEX, "_");
int endIndex;
int startIndex = requestURI.lastIndexOf('/');
if(requestURI.contains("_")) {
//if multiple files with same id requested such as : 541211332342978513714151_480p_1.mp4
Expand Down Expand Up @@ -216,5 +273,5 @@ public static String getStreamId(String requestURI) {
return null;
}

*/
}
44 changes: 31 additions & 13 deletions src/test/java/io/antmedia/test/token/TokenFilterTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -377,33 +377,51 @@ public void testDoFilterSubscriber() {
@Test
public void testGetStreamId() {
String streamId = "streamId";
assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+"_davut_diyen_kedi_adaptive.m3u8"));

assertEquals("test_streamId_davut_diyen_kedi", TokenFilterManager.getStreamId("/liveapp/streams/"+"test_"+streamId+"_davut_diyen_kedi_adaptive.m3u8"));

assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+ MuxAdaptor.ADAPTIVE_SUFFIX +".m3u8"));

assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+".m3u8"));

assertEquals("streamId_underline_test", TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+ "_underline_test" +".m3u8"));

assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+".mp4"));

assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+ MuxAdaptor.ADAPTIVE_SUFFIX + ".m3u8"));
assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+".mp4"));

assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+"_1"+".mp4"));

assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+"_480p_1"+".mp4"));

assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+"_240p.m3u8"));

assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+"_0p0000.ts"));

assertEquals(streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+"_240p0000.ts"));

assertNull(TokenFilterManager.getStreamId("/liveapp/streams/"+streamId+".u8"));

// Add "_" in appname
// Add "_" in appname and stream Id

assertEquals(streamId, TokenFilterManager.getStreamId("/live_app/streams/"+streamId+"_davut_diyen_kedi_adaptive.m3u8"));
assertEquals("test_streamId_davut_diyen_kedi", TokenFilterManager.getStreamId("/live_app/streams/"+"test_" + streamId+"_davut_diyen_kedi_adaptive.m3u8"));

assertEquals(streamId, TokenFilterManager.getStreamId("/live_app/streams/"+streamId+".m3u8"));

assertEquals(streamId, TokenFilterManager.getStreamId("/live_app/streams/"+streamId+".mp4"));
assertEquals("test_test_"+streamId, TokenFilterManager.getStreamId("/live_app/streams/"+"test_test_"+streamId+ MuxAdaptor.ADAPTIVE_SUFFIX + ".m3u8"));
assertEquals("test_test_"+streamId, TokenFilterManager.getStreamId("/live_app/streams/"+"test_test_"+streamId+".m3u8"));

assertEquals(streamId, TokenFilterManager.getStreamId("/live_app/streams/"+streamId+ MuxAdaptor.ADAPTIVE_SUFFIX + ".m3u8"));
assertEquals("test_test_"+streamId, TokenFilterManager.getStreamId("/live_app/streams/"+"test_test_"+streamId+".mp4"));

assertEquals("test_test_"+streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+"test_test_"+streamId+"_1"+".mp4"));

assertEquals("test_test_"+streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+"test_test_"+streamId+"_480p_1"+".mp4"));

assertEquals(streamId, TokenFilterManager.getStreamId("/live_app/streams/"+streamId+"_240p.m3u8"));
assertEquals("test_test_"+streamId, TokenFilterManager.getStreamId("/live_app/streams/"+"test_test_"+streamId+"_240p.m3u8"));

assertEquals("test_test_"+streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+"test_test_"+streamId+"_0p0000.ts"));

assertEquals("test_test_"+streamId, TokenFilterManager.getStreamId("/liveapp/streams/"+"test_test_"+streamId+"_240p0000.ts"));

assertNull(TokenFilterManager.getStreamId("/live_app/streams/"+streamId+".u8"));



//below test case
streamId = "AgTWuHxp";
String requestURI = "/LiveApp/streams/"+ streamId + ".m3u8";
Expand Down

0 comments on commit 010ae2a

Please sign in to comment.