Browse Source

wip

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 4 years ago
parent
commit
7b2ed741bd

+ 0 - 2
src/androidTest/java/com/owncloud/android/datamodel/OCFileUnitTest.java

@@ -88,7 +88,6 @@ public class OCFileUnitTest {
         mFile.setEtag(ETAG);
         mFile.setSharedViaLink(true);
         mFile.setSharedWithSharee(true);
-        mFile.setPublicLink(PUBLIC_LINK);
         mFile.setPermissions(PERMISSIONS);
         mFile.setRemoteId(REMOTE_ID);
         mFile.setUpdateThumbnailNeeded(true);
@@ -122,7 +121,6 @@ public class OCFileUnitTest {
         assertThat(fileReadFromParcel.getEtag(), is(ETAG));
         assertThat(fileReadFromParcel.isSharedViaLink(), is(true));
         assertThat(fileReadFromParcel.isSharedWithSharee(), is(true));
-        assertThat(fileReadFromParcel.getPublicLink(), is(PUBLIC_LINK));
         assertThat(fileReadFromParcel.getPermissions(), is(PERMISSIONS));
         assertThat(fileReadFromParcel.getRemoteId(), is(REMOTE_ID));
         assertThat(fileReadFromParcel.isUpdateThumbnailNeeded(), is(true));

+ 69 - 0
src/androidTest/java/com/owncloud/android/ui/fragment/FileDetailSharingFragmentIT.kt

@@ -0,0 +1,69 @@
+/*
+ *
+ * Nextcloud Android client application
+ *
+ * @author Tobias Kaminsky
+ * Copyright (C) 2020 Tobias Kaminsky
+ * Copyright (C) 2020 Nextcloud GmbH
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+package com.owncloud.android.ui.fragment
+
+import android.widget.ImageView
+import androidx.appcompat.widget.PopupMenu
+import com.owncloud.android.AbstractIT
+import com.owncloud.android.R
+import com.owncloud.android.lib.resources.shares.OCShare
+import org.junit.Test
+
+class FileDetailSharingFragmentIT : AbstractIT() {
+    @Test
+    fun listShares_file_none() {
+        throw NotImplementedError()
+    }
+
+    @Test
+    fun listShares_file_all() {
+        // with multiple public share links
+        throw NotImplementedError()
+    }
+
+    @Test
+    fun listShares_folder_none() {
+        throw NotImplementedError()
+    }
+
+    @Test
+    fun listShares_folder_all() {
+        // with multiple public share links
+        throw NotImplementedError()
+    }
+
+    @Test
+    fun publicLink_optionMenu() {
+        val sut = FileDetailSharingFragment()
+
+        val overflowMenuShareLink = ImageView(targetContext)
+        val popup = PopupMenu(targetContext, overflowMenuShareLink)
+        popup.inflate(R.menu.fragment_file_detail_sharing_public_link)
+        val publicShare = OCShare()
+
+        sut.prepareLinkOptionsMenu(popup.menu, publicShare)
+
+        // TODO check all options
+
+        // scenarios: public link, email, …, both for file/folder
+    }
+}

+ 4 - 1
src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java

@@ -75,6 +75,7 @@ import javax.inject.Inject;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.widget.PopupMenu;
 import androidx.fragment.app.Fragment;
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -375,7 +376,8 @@ public class FileDetailSharingFragment extends Fragment implements ShareeListAda
         popup.show();
     }
 
-    private void prepareLinkOptionsMenu(Menu menu, OCShare publicShare) {
+    @VisibleForTesting
+    public void prepareLinkOptionsMenu(Menu menu, OCShare publicShare) {
         if (publicShare.isFolder()) {
             menu.setGroupVisible(R.id.folder_permission, true);
             menu.findItem(R.id.allow_editing).setVisible(false);
@@ -403,6 +405,7 @@ public class FileDetailSharingFragment extends Fragment implements ShareeListAda
 
         menu.findItem(R.id.action_share_send_note).setVisible(capabilities.getVersion().isNoteOnShareSupported());
 
+        // TODO move to separate PR
         MenuItem videoVerification = menu.findItem(R.id.link_share_video_verification);
 //        if (videoVerification != null) {
 //            videoVerification.setChecked(publicShare.isSendPasswordByTalk());

+ 1 - 1
src/main/res/layout/file_details_share_internal_share_link.xml

@@ -21,7 +21,7 @@
   -->
 
 <LinearLayout android:id="@+id/copy_internal_container"
-    android:layout_height="@dimen/sharee_list_item_size"
+    android:layout_height="wrap_content"
     android:layout_width="match_parent"
     android:orientation="horizontal"
     android:paddingBottom="@dimen/standard_half_padding"