mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
chore(media-upload): remove Postimages provider
Postimages cannot support WebView automation (site blocks automated uploads). Imgur works reliably. Keep only Catbox and Imgur as supported providers.
This commit is contained in:
@@ -33,13 +33,6 @@ public class MediaUploadRecipesTest {
|
||||
MediaUploadRecipes.getUploadUrl(MediaUploadRecipes.PROVIDER_IMGUR));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getUploadUrl_postimages() {
|
||||
assertEquals(
|
||||
"https://postimages.org",
|
||||
MediaUploadRecipes.getUploadUrl(MediaUploadRecipes.PROVIDER_POSTIMAGES));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getUploadUrl_unknownProvider_returnsNull() {
|
||||
assertNull(MediaUploadRecipes.getUploadUrl("catbox"));
|
||||
@@ -55,14 +48,6 @@ public class MediaUploadRecipesTest {
|
||||
assertTrue(js.contains("data-file-input"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTriggerFileInputJs_postimages_containsSelectors() {
|
||||
String js = MediaUploadRecipes.getTriggerFileInputJs(MediaUploadRecipes.PROVIDER_POSTIMAGES);
|
||||
assertNotNull(js);
|
||||
assertTrue(js.contains("input[type=\"file\"]") || js.contains("input[type=file]"));
|
||||
assertTrue(js.contains("uploadFile") || js.contains("fileinput"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTriggerFileInputJs_unknownProvider_returnsNull() {
|
||||
assertNull(MediaUploadRecipes.getTriggerFileInputJs("unknown"));
|
||||
@@ -76,13 +61,6 @@ public class MediaUploadRecipesTest {
|
||||
assertTrue(js.contains("click"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSubmitClickJs_postimages_returnsValidJs() {
|
||||
String js = MediaUploadRecipes.getSubmitClickJs(MediaUploadRecipes.PROVIDER_POSTIMAGES);
|
||||
assertNotNull(js);
|
||||
assertTrue(js.contains("querySelector"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSuccessJs_imgur_containsImgurSelectors() {
|
||||
String js = MediaUploadRecipes.getSuccessJs(MediaUploadRecipes.PROVIDER_IMGUR);
|
||||
@@ -90,13 +68,6 @@ public class MediaUploadRecipesTest {
|
||||
assertTrue(js.contains("i.imgur.com"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSuccessJs_postimages_containsPostimgSelectors() {
|
||||
String js = MediaUploadRecipes.getSuccessJs(MediaUploadRecipes.PROVIDER_POSTIMAGES);
|
||||
assertNotNull(js);
|
||||
assertTrue(js.contains("postimg"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBlockedJs_imgur_containsChallengeSelectors() {
|
||||
String js = MediaUploadRecipes.getBlockedJs(MediaUploadRecipes.PROVIDER_IMGUR);
|
||||
@@ -104,13 +75,6 @@ public class MediaUploadRecipesTest {
|
||||
assertTrue(js.contains("challenge") || js.contains("captcha") || js.contains("recaptcha"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBlockedJs_postimages_containsBlockedIndicators() {
|
||||
String js = MediaUploadRecipes.getBlockedJs(MediaUploadRecipes.PROVIDER_POSTIMAGES);
|
||||
assertNotNull(js);
|
||||
assertTrue(js.contains("challenge") || js.contains("captcha"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void failureClassification_inputNotFound_stageConstant() {
|
||||
assertEquals(MediaUploadAutomationRunner.STAGE_INPUT_NOT_FOUND, "input_not_found");
|
||||
@@ -138,26 +102,4 @@ public class MediaUploadRecipesTest {
|
||||
assertTrue(js.contains("JSON.stringify") || js.contains("return"));
|
||||
}
|
||||
|
||||
/** Postimages selector contract: no broad non-input fallback; strict INPUT type=file guard. */
|
||||
@Test
|
||||
public void postimages_triggerJs_hasStrictInputOnlyGuard() {
|
||||
String js = MediaUploadRecipes.getTriggerFileInputJs(MediaUploadRecipes.PROVIDER_POSTIMAGES);
|
||||
assertNotNull(js);
|
||||
assertTrue(
|
||||
"Postimages must enforce actual file input; guard rejects non-input elements",
|
||||
js.contains("tagName") && js.contains("INPUT") && js.contains("type") && js.contains("file"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void postimages_triggerJs_stricterThanImgur() {
|
||||
String imgurJs = MediaUploadRecipes.getTriggerFileInputJs(MediaUploadRecipes.PROVIDER_IMGUR);
|
||||
String postimagesJs =
|
||||
MediaUploadRecipes.getTriggerFileInputJs(MediaUploadRecipes.PROVIDER_POSTIMAGES);
|
||||
assertNotNull(imgurJs);
|
||||
assertNotNull(postimagesJs);
|
||||
assertFalse("Imgur has no strict input guard", imgurJs.contains("tagName"));
|
||||
assertTrue(
|
||||
"Postimages must enforce strict input-only; no broad non-input fallback",
|
||||
postimagesJs.contains("tagName"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user