test_class.declarator: client = mock(CollectServerClient.class)
test_class.modifier: private final
test_class.original_string: private final CollectServerClient client = mock(CollectServerClient.class);
test_class.type: CollectServerClient
test_class.var_name: client
test_class.file: collect_app/src/test/java/org/odk/collect/android/utilities/DownloadFormListUtilsTest.java
test_class.identifier: DownloadFormListUtilsTest
test_case.body: @Test
      public void removesTrailingSlashesFromUrl() {
          DownloadFormListUtils downloadFormListUtils = new DownloadFormListUtils(
                  RuntimeEnvironment.application,
                  client,
                  new WebCredentialsUtils(),
                  new FormsDao()
          );
  
          downloadFormListUtils.downloadFormList("http://blah.com///", "user", "password", false);
          verify(client).getXmlDocument("http://blah.com/formList");
      }
test_case.class_method_signature: DownloadFormListUtilsTest.removesTrailingSlashesFromUrl()
test_case.full_signature: @Test public void removesTrailingSlashesFromUrl()
test_case.identifier: removesTrailingSlashesFromUrl
test_case.invocations: downloadFormList getXmlDocument verify
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void removesTrailingSlashesFromUrl()
focal_class.declarator: DL_ERROR_MSG = "dlerrormessage"
focal_class.modifier: public static final
focal_class.original_string: public static final String DL_ERROR_MSG = "dlerrormessage";
focal_class.type: String
focal_class.var_name: DL_ERROR_MSG
focal_class.declarator: DL_AUTH_REQUIRED = "dlauthrequired"
focal_class.modifier: public static final
focal_class.original_string: public static final String DL_AUTH_REQUIRED = "dlauthrequired";
focal_class.type: String
focal_class.var_name: DL_AUTH_REQUIRED
focal_class.declarator: NAMESPACE_OPENROSA_ORG_XFORMS_XFORMS_LIST =
              "http://openrosa.org/xforms/xformsList"
focal_class.modifier: private static final
focal_class.original_string: private static final String NAMESPACE_OPENROSA_ORG_XFORMS_XFORMS_LIST =
              "http://openrosa.org/xforms/xformsList";
focal_class.type: String
focal_class.var_name: NAMESPACE_OPENROSA_ORG_XFORMS_XFORMS_LIST
focal_class.declarator: webCredentialsUtils
focal_class.modifier: private final
focal_class.original_string: private final WebCredentialsUtils webCredentialsUtils;
focal_class.type: WebCredentialsUtils
focal_class.var_name: webCredentialsUtils
focal_class.declarator: collectServerClient
focal_class.modifier: private final
focal_class.original_string: private final CollectServerClient collectServerClient;
focal_class.type: CollectServerClient
focal_class.var_name: collectServerClient
focal_class.declarator: application
focal_class.modifier: private final
focal_class.original_string: private final Application application;
focal_class.type: Application
focal_class.var_name: application
focal_class.declarator: formsDao
focal_class.modifier: private final
focal_class.original_string: private final FormsDao formsDao;
focal_class.type: FormsDao
focal_class.var_name: formsDao
focal_class.file: collect_app/src/main/java/org/odk/collect/android/utilities/DownloadFormListUtils.java
focal_class.identifier: DownloadFormListUtils
focal_class.class_method_signature: DownloadFormListUtils.DownloadFormListUtils(
              Application application,
              CollectServerClient collectServerClient,
              WebCredentialsUtils webCredentialsUtils,
              FormsDao formsDao)
focal_class.full_signature: public  DownloadFormListUtils(
              Application application,
              CollectServerClient collectServerClient,
              WebCredentialsUtils webCredentialsUtils,
              FormsDao formsDao)
focal_class.identifier: DownloadFormListUtils
focal_class.modifiers: public
focal_class.parameters: (
              Application application,
              CollectServerClient collectServerClient,
              WebCredentialsUtils webCredentialsUtils,
              FormsDao formsDao)
focal_class.signature:  DownloadFormListUtils(
              Application application,
              CollectServerClient collectServerClient,
              WebCredentialsUtils webCredentialsUtils,
              FormsDao formsDao)
focal_class.class_method_signature: DownloadFormListUtils.downloadFormList(boolean alwaysCheckMediaFiles)
focal_class.full_signature: public HashMap<String, FormDetails> downloadFormList(boolean alwaysCheckMediaFiles)
focal_class.identifier: downloadFormList
focal_class.modifiers: public
focal_class.parameters: (boolean alwaysCheckMediaFiles)
focal_class.return: HashMap<String, FormDetails>
focal_class.signature: HashMap<String, FormDetails> downloadFormList(boolean alwaysCheckMediaFiles)
focal_class.class_method_signature: DownloadFormListUtils.downloadFormList(@Nullable String url, @Nullable String username,
                                                           @Nullable String password, boolean alwaysCheckMediaFiles)
focal_class.full_signature: public HashMap<String, FormDetails> downloadFormList(@Nullable String url, @Nullable String username,
                                                           @Nullable String password, boolean alwaysCheckMediaFiles)
focal_class.identifier: downloadFormList
focal_class.modifiers: public
focal_class.parameters: (@Nullable String url, @Nullable String username,
                                                           @Nullable String password, boolean alwaysCheckMediaFiles)
focal_class.return: HashMap<String, FormDetails>
focal_class.signature: HashMap<String, FormDetails> downloadFormList(@Nullable String url, @Nullable String username,
                                                           @Nullable String password, boolean alwaysCheckMediaFiles)
focal_class.class_method_signature: DownloadFormListUtils.clearTemporaryCredentials(@Nullable String url)
focal_class.full_signature: private void clearTemporaryCredentials(@Nullable String url)
focal_class.identifier: clearTemporaryCredentials
focal_class.modifiers: private
focal_class.parameters: (@Nullable String url)
focal_class.return: void
focal_class.signature: void clearTemporaryCredentials(@Nullable String url)
focal_class.class_method_signature: DownloadFormListUtils.isThisFormAlreadyDownloaded(String formId)
focal_class.full_signature: private boolean isThisFormAlreadyDownloaded(String formId)
focal_class.identifier: isThisFormAlreadyDownloaded
focal_class.modifiers: private
focal_class.parameters: (String formId)
focal_class.return: boolean
focal_class.signature: boolean isThisFormAlreadyDownloaded(String formId)
focal_class.class_method_signature: DownloadFormListUtils.getManifestFile(String manifestUrl)
focal_class.full_signature: private ManifestFile getManifestFile(String manifestUrl)
focal_class.identifier: getManifestFile
focal_class.modifiers: private
focal_class.parameters: (String manifestUrl)
focal_class.return: ManifestFile
focal_class.signature: ManifestFile getManifestFile(String manifestUrl)
focal_class.class_method_signature: DownloadFormListUtils.isNewerFormVersionAvailable(String md5Hash)
focal_class.full_signature: private boolean isNewerFormVersionAvailable(String md5Hash)
focal_class.identifier: isNewerFormVersionAvailable
focal_class.modifiers: private
focal_class.parameters: (String md5Hash)
focal_class.return: boolean
focal_class.signature: boolean isNewerFormVersionAvailable(String md5Hash)
focal_class.class_method_signature: DownloadFormListUtils.areNewerMediaFilesAvailable(String formId, String formVersion, List<MediaFile> newMediaFiles)
focal_class.full_signature: private boolean areNewerMediaFilesAvailable(String formId, String formVersion, List<MediaFile> newMediaFiles)
focal_class.identifier: areNewerMediaFilesAvailable
focal_class.modifiers: private
focal_class.parameters: (String formId, String formVersion, List<MediaFile> newMediaFiles)
focal_class.return: boolean
focal_class.signature: boolean areNewerMediaFilesAvailable(String formId, String formVersion, List<MediaFile> newMediaFiles)
focal_class.class_method_signature: DownloadFormListUtils.isMediaFileAlreadyDownloaded(File[] localMediaFiles, MediaFile newMediaFile)
focal_class.full_signature: private static boolean isMediaFileAlreadyDownloaded(File[] localMediaFiles, MediaFile newMediaFile)
focal_class.identifier: isMediaFileAlreadyDownloaded
focal_class.modifiers: private static
focal_class.parameters: (File[] localMediaFiles, MediaFile newMediaFile)
focal_class.return: boolean
focal_class.signature: boolean isMediaFileAlreadyDownloaded(File[] localMediaFiles, MediaFile newMediaFile)
focal_class.class_method_signature: DownloadFormListUtils.isXformsListNamespacedElement(Element e)
focal_class.full_signature: private static boolean isXformsListNamespacedElement(Element e)
focal_class.identifier: isXformsListNamespacedElement
focal_class.modifiers: private static
focal_class.parameters: (Element e)
focal_class.return: boolean
focal_class.signature: boolean isXformsListNamespacedElement(Element e)
focal_method.body: public HashMap<String, FormDetails> downloadFormList(boolean alwaysCheckMediaFiles) {
          return downloadFormList(null, null, null, alwaysCheckMediaFiles);
      }
focal_method.class_method_signature: DownloadFormListUtils.downloadFormList(boolean alwaysCheckMediaFiles)
focal_method.full_signature: public HashMap<String, FormDetails> downloadFormList(boolean alwaysCheckMediaFiles)
focal_method.identifier: downloadFormList
focal_method.invocations: downloadFormList
focal_method.modifiers: public
focal_method.parameters: (boolean alwaysCheckMediaFiles)
focal_method.return: HashMap<String, FormDetails>
focal_method.signature: HashMap<String, FormDetails> downloadFormList(boolean alwaysCheckMediaFiles)