@@ -29,11 +29,21 @@ public interface InteractsWithFiles extends ExecutesMethod {
2929
3030 /**
3131 * Pull a file from the simulator/device.
32+ * On iOS the server should have ifuse
33+ * libraries installed and configured properly for this feature to work
34+ * on real devices.
35+ * On Android the application under test should be
36+ * built with debuggable flag enabled in order to get access to its container
37+ * on the internal file system.
3238 *
33- * @param remotePath On Android and iOS, this is either the path to the file
34- * (relative to the root of the app's file system). On iOS only,
35- * if path starts with /AppName.app, which will be replaced with
36- * the application's .app directory
39+ * @see <a href="https://github.com/libimobiledevice/ifuse">iFuse GitHub page6</a>
40+ * @see <a href="https://github.com/osxfuse/osxfuse/wiki/FAQ">osxFuse FAQ</a>
41+ * @see <a href="https://developer.android.com/studio/debug/">'Debug Your App' developer article</a>
42+ *
43+ * @param remotePath If the path starts with <em>@applicationId/</em>/ prefix, then the file
44+ * will be pulled from the root of the corresponding application container.
45+ * Otherwise the root folder is considered as / on Android and
46+ * on iOS it is a media folder root (real devices only).
3747 * @return A byte array of Base64 encoded data.
3848 */
3949 default byte [] pullFile (String remotePath ) {
@@ -44,15 +54,23 @@ default byte[] pullFile(String remotePath) {
4454 }
4555
4656 /**
47- * Pull a folder from the simulator/device. Does not work on iOS Real
48- * Devices, but works on simulators
57+ * Pull a folder content from the simulator/device.
58+ * On iOS the server should have ifuse
59+ * libraries installed and configured properly for this feature to work
60+ * on real devices.
61+ * On Android the application under test should be
62+ * built with debuggable flag enabled in order to get access to its container
63+ * on the internal file system.
64+ *
65+ * @see <a href="https://github.com/libimobiledevice/ifuse">iFuse GitHub page6</a>
66+ * @see <a href="https://github.com/osxfuse/osxfuse/wiki/FAQ">osxFuse FAQ</a>
67+ * @see <a href="https://developer.android.com/studio/debug/">'Debug Your App' developer article</a>
4968 *
50- * @param remotePath On Android and iOS, this is either the path to the file
51- * (relative to the root of the app's file system). On iOS only,
52- * if path starts with /AppName.app, which will be replaced with
53- * the application's .app directory
54- * @return A byte array of Base64 encoded data, representing a ZIP ARCHIVE
55- * of the contents of the requested folder.
69+ * @param remotePath If the path starts with <em>@applicationId/</em> prefix, then the folder
70+ * will be pulled from the root of the corresponding application container.
71+ * Otherwise the root folder is considered as / on Android and
72+ * on iOS it is a media folder root (real devices only).
73+ * @return A byte array of Base64 encoded zip archive data.
5674 */
5775 default byte [] pullFolder (String remotePath ) {
5876 Response response = execute (PULL_FOLDER , ImmutableMap .of ("path" , remotePath ));
0 commit comments