mirror of
https://github.com/TeamNewPipe/NewPipeExtractor.git
synced 2025-04-28 16:00:33 +05:30
[YouTube] Add tests for signature timestamp extraction and signature deobfuscation function extraction and execution
This commit is contained in:
parent
a04bc320de
commit
1fa85ec6ca
@ -0,0 +1,53 @@
|
||||
package org.schabi.newpipe.extractor.services.youtube;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.CsvSource;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
import org.schabi.newpipe.downloader.DownloaderTestImpl;
|
||||
import org.schabi.newpipe.extractor.NewPipe;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.io.IOException;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
class YoutubeSignaturesTest {
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws IOException {
|
||||
NewPipe.init(DownloaderTestImpl.getInstance());
|
||||
YoutubeTestsUtils.ensureStateless();
|
||||
}
|
||||
|
||||
@ValueSource(strings = {
|
||||
"QzUGs1qRTEI",
|
||||
""
|
||||
})
|
||||
@ParameterizedTest
|
||||
void testSignatureTimestampExtraction(@Nonnull final String videoId) throws Exception {
|
||||
final Integer signatureTimestamp =
|
||||
YoutubeJavaScriptPlayerManager.getSignatureTimestamp(videoId);
|
||||
assertTrue(signatureTimestamp > 0, "signatureTimestamp is <= 0");
|
||||
}
|
||||
|
||||
/*
|
||||
The first column of the CSV entries is a video ID
|
||||
The second one of these entries are not real signatures, but as the deobfuscation function
|
||||
manipulates strings, we can use random characters combined as strings to test the extraction
|
||||
and the execution of the function
|
||||
*/
|
||||
@CsvSource(value = {
|
||||
"QzUGs1qRTEI,5QjJrWzVcOutYYNyxkDJVkzQDZQxNbbxGi4hRoh2h4PomQMQq9vo2WPHVpHgxRn7qT3WyhRiJa1k1t1DL3lynZtupHmG3wW4qh59faKjtY4UVu",
|
||||
",7vIK4hG6NbcIEQP4ZIRjonOzuPHh7wTrEgBdEMYyfE4F5Pq0FiGdv04kptb587c8aToH345ETJ8dMbXnpOmjanP3nzgJ0iNg8oHIm8oeQODPSP"
|
||||
})
|
||||
@ParameterizedTest
|
||||
void testSignatureDeobfuscation(@Nonnull final String videoId,
|
||||
@Nonnull final String sampleString) throws Exception {
|
||||
// As the signature deobfuscation changes frequently with player versions, we can only test
|
||||
// that we get a different string than the original one
|
||||
assertNotEquals(sampleString,
|
||||
YoutubeJavaScriptPlayerManager.deobfuscateSignature(videoId, sampleString));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user