fix(android upload): handle transient imgur errors

This commit is contained in:
Tommaso Casaburi
2026-05-01 22:54:05 +07:00
parent 70791fa80a
commit 3de85520bd
7 changed files with 113 additions and 14 deletions
@@ -50,6 +50,12 @@ public class MediaUploadRecipesTest {
assertNull(MediaUploadRecipes.getUploadUrl(null));
}
@Test
public void isAndroidUploadProvider_includesAndroidUploadProviders() {
assertTrue(MediaUploadRecipes.isAndroidUploadProvider(MediaUploadRecipes.PROVIDER_IMGUR));
assertTrue(MediaUploadRecipes.isAndroidUploadProvider(MediaUploadRecipes.PROVIDER_IMGBB));
}
@Test
public void getTriggerFileInputJs_imgur_containsSelectors() {
String js = MediaUploadRecipes.getTriggerFileInputJs(MediaUploadRecipes.PROVIDER_IMGUR);
@@ -110,6 +116,13 @@ public class MediaUploadRecipesTest {
assertTrue(js.contains("challenge") || js.contains("captcha") || js.contains("recaptcha"));
}
@Test
public void getProviderErrorJs_imgur_detectsCreateAlbumFail() {
String js = MediaUploadRecipes.getProviderErrorJs(MediaUploadRecipes.PROVIDER_IMGUR);
assertNotNull(js);
assertTrue(js.contains("CREATE_ALBUM_FAIL"));
}
@Test
public void failureClassification_inputNotFound_stageConstant() {
assertEquals(MediaUploadAutomationRunner.STAGE_INPUT_NOT_FOUND, "input_not_found");
@@ -127,6 +140,11 @@ public class MediaUploadRecipesTest {
assertEquals(MediaUploadAutomationRunner.STAGE_BLOCKED_DETECTED, "blocked_detected");
}
@Test
public void failureClassification_providerError_stageConstant() {
assertEquals(MediaUploadAutomationRunner.STAGE_PROVIDER_ERROR, "provider_error");
}
@Test
public void failureClassification_uploadTimedOut_stageConstant() {
assertEquals(MediaUploadAutomationRunner.STAGE_UPLOAD_TIMED_OUT, "upload_timed_out");