Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-04-08 21:13:28 +0300
committerStefan Niedermann <info@niedermann.it>2021-04-08 21:13:28 +0300
commit556a48b1ca5ceb9c0ed88a54d1249e863ec180d8 (patch)
tree4376f725b461339d957d26d8924149d666532797
parentb497c6b24d612d4d6cdf5e8157da77b9c7af5485 (diff)
parent25c6c44297e97aeb73ab99ee5d01c6680cd70360 (diff)
Merge remote-tracking branch 'origin/831-room' into 831-room
-rw-r--r--.github/workflows/android.yml12
-rw-r--r--app/build.gradle22
-rw-r--r--app/src/test/java/android/text/TextUtils.java0
-rw-r--r--app/src/test/java/it/niedermann/owncloud/notes/edit/SearchableBaseNoteFragmentTest.java (renamed from app/src/androidTest/java/it/niedermann/owncloud/notes/edit/SearchableBaseNoteFragmentTest.java)0
-rw-r--r--app/src/test/java/it/niedermann/owncloud/notes/persistence/NotesDaoTest.java (renamed from app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/NotesDaoTest.java)54
-rw-r--r--app/src/test/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTest.java (renamed from app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTest.java)15
-rw-r--r--app/src/test/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTestUtil.java (renamed from app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTestUtil.java)0
-rw-r--r--app/src/test/java/it/niedermann/owncloud/notes/persistence/util/NotesColorUtilTest.java (renamed from app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/util/NotesColorUtilTest.java)7
-rw-r--r--app/src/test/java/it/niedermann/owncloud/notes/shared/model/CapabilitiesTest.java (renamed from app/src/androidTest/java/it/niedermann/owncloud/notes/shared/model/CapabilitiesTest.java)10
-rw-r--r--app/src/test/java/it/niedermann/owncloud/notes/shared/util/NoteUtilTest.java (renamed from app/src/androidTest/java/it/niedermann/owncloud/notes/shared/util/NoteUtilTest.java)13
10 files changed, 79 insertions, 54 deletions
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index 2a257d96..9db26418 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -21,18 +21,6 @@ jobs:
- name: Unit tests
run: bash ./gradlew test --stacktrace
- instrumented:
- name: Android instrumented tests
- runs-on: macos-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- - name: Android instrumented tests
- uses: reactivecircus/android-emulator-runner@v2
- with:
- api-level: 29
- script: ./gradlew connectAndroidTest --stacktrace
-
codeql:
name: CodeQL security scan
runs-on: ubuntu-latest
diff --git a/app/build.gradle b/app/build.gradle
index c1645784..e71bd63f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -63,6 +63,12 @@ android {
applicationIdSuffix ".pfungstadt"
}
}
+
+ testOptions {
+ unitTests {
+ includeAndroidResources true
+ }
+ }
}
dependencies {
@@ -98,12 +104,16 @@ dependencies {
// Testing
testImplementation 'junit:junit:4.13.2'
- androidTestImplementation 'com.android.support:support-annotations:28.0.0'
- androidTestImplementation 'com.android.support.test:runner:1.0.2'
- androidTestImplementation "androidx.arch.core:core-testing:2.1.0"
- androidTestImplementation 'androidx.test:runner:1.3.0'
- androidTestImplementation 'androidx.test.ext:junit:1.1.2'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
+ testImplementation 'org.robolectric:robolectric:4.5.1'
+ testImplementation 'androidx.test:core:1.3.0'
+ testImplementation 'androidx.test.ext:junit:1.1.2'
+ testImplementation 'androidx.arch.core:core-testing:2.1.0'
+// androidTestImplementation 'com.android.support:support-annotations:28.0.0'
+// androidTestImplementation 'com.android.support.test:runner:1.0.2'
+// androidTestImplementation "androidx.arch.core:core-testing:2.1.0"
+// androidTestImplementation 'androidx.test:runner:1.3.0'
+// androidTestImplementation 'androidx.test.ext:junit:1.1.2'
+// androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
diff --git a/app/src/test/java/android/text/TextUtils.java b/app/src/test/java/android/text/TextUtils.java
deleted file mode 100644
index e69de29b..00000000
--- a/app/src/test/java/android/text/TextUtils.java
+++ /dev/null
diff --git a/app/src/androidTest/java/it/niedermann/owncloud/notes/edit/SearchableBaseNoteFragmentTest.java b/app/src/test/java/it/niedermann/owncloud/notes/edit/SearchableBaseNoteFragmentTest.java
index 95a62cc0..95a62cc0 100644
--- a/app/src/androidTest/java/it/niedermann/owncloud/notes/edit/SearchableBaseNoteFragmentTest.java
+++ b/app/src/test/java/it/niedermann/owncloud/notes/edit/SearchableBaseNoteFragmentTest.java
diff --git a/app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/NotesDaoTest.java b/app/src/test/java/it/niedermann/owncloud/notes/persistence/NotesDaoTest.java
index 08b1ad14..8b38c7fd 100644
--- a/app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/NotesDaoTest.java
+++ b/app/src/test/java/it/niedermann/owncloud/notes/persistence/NotesDaoTest.java
@@ -1,12 +1,12 @@
package it.niedermann.owncloud.notes.persistence;
import android.database.sqlite.SQLiteConstraintException;
+import android.os.Build;
import androidx.annotation.NonNull;
import androidx.arch.core.executor.testing.InstantTaskExecutorRule;
import androidx.room.Room;
import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException;
@@ -15,6 +15,8 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import java.util.Calendar;
import java.util.List;
@@ -24,7 +26,6 @@ import it.niedermann.owncloud.notes.persistence.entity.CategoryWithNotesCount;
import it.niedermann.owncloud.notes.persistence.entity.Note;
import it.niedermann.owncloud.notes.shared.model.Capabilities;
-import static it.niedermann.owncloud.notes.persistence.NotesDatabaseTestUtil.getOrAwaitValue;
import static it.niedermann.owncloud.notes.shared.model.DBStatus.LOCAL_DELETED;
import static it.niedermann.owncloud.notes.shared.model.DBStatus.LOCAL_EDITED;
import static it.niedermann.owncloud.notes.shared.model.DBStatus.VOID;
@@ -34,8 +35,8 @@ import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-@SuppressWarnings("ConstantConditions")
-@RunWith(AndroidJUnit4.class)
+@RunWith(RobolectricTestRunner.class)
+@Config(sdk = {Build.VERSION_CODES.P})
public class NotesDaoTest {
@Rule
@@ -47,8 +48,11 @@ public class NotesDaoTest {
@Before
public void setupDB() throws NextcloudHttpRequestFailedException {
- db = Room.inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(), NotesDatabase.class).build();
- db.addAccount("https://äöüß.example.com", "彼得", "彼得@äöüß.example.com", new Capabilities("", null));
+ db = Room
+ .inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(), NotesDatabase.class)
+ .allowMainThreadQueries()
+ .build();
+ db.addAccount("https://äöüß.example.com", "彼得", "彼得@äöüß.example.com", new Capabilities("{ocs: {}}", null));
account = db.getAccountDao().getAccountByName("彼得@äöüß.example.com");
}
@@ -62,12 +66,12 @@ public class NotesDaoTest {
db.getNoteDao().addNote(new Note(1, 1L, Calendar.getInstance(), "T", "C", "", false, "1", LOCAL_DELETED, account.getId(), "", 0));
db.getNoteDao().deleteByNoteId(1, LOCAL_DELETED);
assertNull(db.getNoteDao().getNoteById(1));
- assertNull(getOrAwaitValue(db.getNoteDao().getNoteById$(1)));
+ assertNull(NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().getNoteById$(1)));
db.getNoteDao().addNote(new Note(1, 1L, Calendar.getInstance(), "T", "C", "", false, "1", LOCAL_DELETED, account.getId(), "", 0));
db.getNoteDao().deleteByNoteId(1, VOID);
assertEquals(1, db.getNoteDao().getNoteById(1).getId());
- assertEquals(1, getOrAwaitValue(db.getNoteDao().getNoteById$(1)).getId());
+ assertEquals(1, NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().getNoteById$(1)).getId());
}
@Test
@@ -151,8 +155,8 @@ public class NotesDaoTest {
assertEquals(Integer.valueOf(1), db.getNoteDao().countFavorites(account.getId()));
assertEquals(Integer.valueOf(1), db.getNoteDao().countFavorites(secondAccount.getId()));
- assertEquals(Integer.valueOf(1), getOrAwaitValue(db.getNoteDao().countFavorites$(account.getId())));
- assertEquals(Integer.valueOf(1), getOrAwaitValue(db.getNoteDao().countFavorites$(secondAccount.getId())));
+ assertEquals(Integer.valueOf(1), NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().countFavorites$(account.getId())));
+ assertEquals(Integer.valueOf(1), NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().countFavorites$(secondAccount.getId())));
}
@Test
@@ -162,8 +166,8 @@ public class NotesDaoTest {
assertEquals(Integer.valueOf(7), db.getNoteDao().count(account.getId()));
assertEquals(Integer.valueOf(5), db.getNoteDao().count(secondAccount.getId()));
- assertEquals(Integer.valueOf(7), getOrAwaitValue(db.getNoteDao().count$(account.getId())));
- assertEquals(Integer.valueOf(5), getOrAwaitValue(db.getNoteDao().count$(secondAccount.getId())));
+ assertEquals(Integer.valueOf(7), NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().count$(account.getId())));
+ assertEquals(Integer.valueOf(5), NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().count$(secondAccount.getId())));
}
@Test
@@ -338,16 +342,16 @@ public class NotesDaoTest {
final Note note = new Note(1, 1L, Calendar.getInstance(), "My-Title", "My-Content", "", false, "1", LOCAL_DELETED, account.getId(), "", 0);
db.getNoteDao().addNote(note);
assertEquals("My-Content", db.getNoteDao().getContent(note.getId()));
- assertEquals("My-Content", getOrAwaitValue(db.getNoteDao().getContent$(note.getId())));
+ assertEquals("My-Content", NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().getContent$(note.getId())));
assertNull(db.getNoteDao().getContent(note.getId() + 1));
- assertNull(getOrAwaitValue(db.getNoteDao().getContent$(note.getId() + 1)));
+ assertNull(NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().getContent$(note.getId() + 1)));
}
@Test
public void getCategoriesLiveData() throws InterruptedException, NextcloudHttpRequestFailedException {
final Account secondAccount = setupSecondAccountAndTestNotes();
- final List<CategoryWithNotesCount> accountCategories = getOrAwaitValue(db.getNoteDao().getCategories$(account.getId()));
+ final List<CategoryWithNotesCount> accountCategories = NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().getCategories$(account.getId()));
assertEquals(4, accountCategories.size());
for (CategoryWithNotesCount category : accountCategories) {
assertEquals(account.getId(), category.getAccountId());
@@ -358,7 +362,7 @@ public class NotesDaoTest {
assertTrue(accountCategories.stream().anyMatch(cat -> "ToDo".equals(cat.getCategory()) && Integer.valueOf(1).equals(cat.getTotalNotes())));
assertTrue(accountCategories.stream().anyMatch(cat -> "日记".equals(cat.getCategory()) && Integer.valueOf(1).equals(cat.getTotalNotes())));
- final List<CategoryWithNotesCount> secondAccountCategories = getOrAwaitValue(db.getNoteDao().getCategories$(secondAccount.getId()));
+ final List<CategoryWithNotesCount> secondAccountCategories = NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().getCategories$(secondAccount.getId()));
assertEquals(2, secondAccountCategories.size());
for (CategoryWithNotesCount category : secondAccountCategories) {
assertEquals(secondAccount.getId(), category.getAccountId());
@@ -373,18 +377,18 @@ public class NotesDaoTest {
public void searchCategories() throws InterruptedException, NextcloudHttpRequestFailedException {
final Account secondAccount = setupSecondAccountAndTestNotes();
- assertEquals(2, getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "M%")).size());
- assertEquals(1, getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "Mo%")).size());
- assertEquals(1, getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "MO%")).size());
- assertEquals(1, getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "movie%")).size());
- assertEquals(1, getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "T%")).size());
- assertEquals(1, getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "日记")).size());
- assertEquals(2, getOrAwaitValue(db.getNoteDao().searchCategories$(secondAccount.getId(), "M%")).size());
- assertEquals(0, getOrAwaitValue(db.getNoteDao().searchCategories$(secondAccount.getId(), "T%")).size());
+ assertEquals(2, NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "M%")).size());
+ assertEquals(1, NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "Mo%")).size());
+ assertEquals(1, NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "MO%")).size());
+ assertEquals(1, NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "movie%")).size());
+ assertEquals(1, NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "T%")).size());
+ assertEquals(1, NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().searchCategories$(account.getId(), "日记")).size());
+ assertEquals(2, NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().searchCategories$(secondAccount.getId(), "M%")).size());
+ assertEquals(0, NotesDatabaseTestUtil.getOrAwaitValue(db.getNoteDao().searchCategories$(secondAccount.getId(), "T%")).size());
}
private Account setupSecondAccount() throws NextcloudHttpRequestFailedException {
- db.addAccount("https://example.org", "test", "test@example.org", new Capabilities("", null));
+ db.addAccount("https://example.org", "test", "test@example.org", new Capabilities("{ocs: {}}", null));
return db.getAccountDao().getAccountByName("test@example.org");
}
diff --git a/app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTest.java b/app/src/test/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTest.java
index 56f6841d..1178646c 100644
--- a/app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTest.java
+++ b/app/src/test/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTest.java
@@ -1,12 +1,12 @@
package it.niedermann.owncloud.notes.persistence;
import android.content.Context;
+import android.os.Build;
import androidx.annotation.NonNull;
import androidx.arch.core.executor.testing.InstantTaskExecutorRule;
import androidx.room.Room;
import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException;
@@ -14,6 +14,8 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import java.util.Calendar;
import java.util.List;
@@ -27,9 +29,9 @@ import static it.niedermann.owncloud.notes.shared.model.DBStatus.LOCAL_DELETED;
import static it.niedermann.owncloud.notes.shared.model.DBStatus.LOCAL_EDITED;
import static it.niedermann.owncloud.notes.shared.model.DBStatus.VOID;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-@RunWith(AndroidJUnit4.class)
+@RunWith(RobolectricTestRunner.class)
+@Config(sdk = {Build.VERSION_CODES.P})
public class NotesDatabaseTest {
@Rule
@@ -44,12 +46,15 @@ public class NotesDatabaseTest {
@Before
public void setupDB() throws NextcloudHttpRequestFailedException {
context = ApplicationProvider.getApplicationContext();
- db = Room.inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(), NotesDatabase.class).build();
+ db = Room
+ .inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(), NotesDatabase.class)
+ .allowMainThreadQueries()
+ .build();
db.addAccount("https://äöüß.example.com", "彼得", "彼得@äöüß.example.com", new Capabilities("{\"ocs\":{\"meta\":{\"status\":\"ok\",\"statuscode\":200,\"message\":\"OK\"},\"data\":{\"version\":{\"major\":18,\"minor\":0,\"micro\":4,\"string\":\"18.0.4\",\"edition\":\"\",\"extendedSupport\":false},\"capabilities\":{\"core\":{\"pollinterval\":60,\"webdav-root\":\"remote.php\\/webdav\"},\"bruteforce\":{\"delay\":0},\"files\":{\"bigfilechunking\":true,\"blacklisted_files\":[\".htaccess\"],\"directEditing\":{\"url\":\"https:\\/\\/efss.qloud.my\\/ocs\\/v2.php\\/apps\\/files\\/api\\/v1\\/directEditing\",\"etag\":\"ed2b141af2a39b0e42666952ba60988d\"},\"versioning\":true,\"undelete\":true},\"activity\":{\"apiv2\":[\"filters\",\"filters-api\",\"previews\",\"rich-strings\"]},\"ocm\":{\"enabled\":true,\"apiVersion\":\"1.0-proposal1\",\"endPoint\":\"https:\\/\\/efss.qloud.my\\/index.php\\/ocm\",\"resourceTypes\":[{\"name\":\"file\",\"shareTypes\":[\"user\",\"group\"],\"protocols\":{\"webdav\":\"\\/public.php\\/webdav\\/\"}}]},\"deck\":{\"version\":\"0.8.2\"},\"richdocuments\":{\"mimetypes\":[\"application\\/vnd.oasis.opendocument.text\",\"application\\/vnd.oasis.opendocument.spreadsheet\",\"application\\/vnd.oasis.opendocument.graphics\",\"application\\/vnd.oasis.opendocument.presentation\",\"application\\/vnd.lotus-wordpro\",\"application\\/vnd.visio\",\"application\\/vnd.wordperfect\",\"application\\/msonenote\",\"application\\/msword\",\"application\\/rtf\",\"text\\/rtf\",\"application\\/vnd.openxmlformats-officedocument.wordprocessingml.document\",\"application\\/vnd.openxmlformats-officedocument.wordprocessingml.template\",\"application\\/vnd.ms-word.document.macroEnabled.12\",\"application\\/vnd.ms-word.template.macroEnabled.12\",\"application\\/vnd.ms-excel\",\"application\\/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\"application\\/vnd.openxmlformats-officedocument.spreadsheetml.template\",\"application\\/vnd.ms-excel.sheet.macroEnabled.12\",\"application\\/vnd.ms-excel.template.macroEnabled.12\",\"application\\/vnd.ms-excel.addin.macroEnabled.12\",\"application\\/vnd.ms-excel.sheet.binary.macroEnabled.12\",\"application\\/vnd.ms-powerpoint\",\"application\\/vnd.openxmlformats-officedocument.presentationml.presentation\",\"application\\/vnd.openxmlformats-officedocument.presentationml.template\",\"application\\/vnd.openxmlformats-officedocument.presentationml.slideshow\",\"application\\/vnd.ms-powerpoint.addin.macroEnabled.12\",\"application\\/vnd.ms-powerpoint.presentation.macroEnabled.12\",\"application\\/vnd.ms-powerpoint.template.macroEnabled.12\",\"application\\/vnd.ms-powerpoint.slideshow.macroEnabled.12\",\"text\\/csv\"],\"mimetypesNoDefaultOpen\":[\"image\\/svg+xml\",\"application\\/pdf\",\"text\\/plain\",\"text\\/spreadsheet\"],\"collabora\":[],\"direct_editing\":false,\"templates\":false,\"productName\":\"\\u5728\\u7ebf\\u534f\\u4f5c\"},\"dav\":{\"chunking\":\"1.0\"},\"files_sharing\":{\"api_enabled\":true,\"public\":{\"enabled\":true,\"password\":{\"enforced\":true,\"askForOptionalPassword\":false},\"expire_date\":{\"enabled\":true,\"days\":\"7\",\"enforced\":false},\"multiple_links\":true,\"expire_date_internal\":{\"enabled\":false},\"send_mail\":false,\"upload\":true,\"upload_files_drop\":true},\"resharing\":true,\"user\":{\"send_mail\":false,\"expire_date\":{\"enabled\":true}},\"group_sharing\":true,\"group\":{\"enabled\":true,\"expire_date\":{\"enabled\":true}},\"default_permissions\":31,\"federation\":{\"outgoing\":false,\"incoming\":false,\"expire_date\":{\"enabled\":true}},\"sharee\":{\"query_lookup_default\":false},\"sharebymail\":{\"enabled\":true,\"upload_files_drop\":{\"enabled\":true},\"password\":{\"enabled\":true},\"expire_date\":{\"enabled\":true}}},\"external\":{\"v1\":[\"sites\",\"device\",\"groups\",\"redirect\"]},\"notifications\":{\"ocs-endpoints\":[\"list\",\"get\",\"delete\",\"delete-all\",\"icons\",\"rich-strings\",\"action-web\"],\"push\":[\"devices\",\"object-data\",\"delete\"],\"admin-notifications\":[\"ocs\",\"cli\"]},\"password_policy\":{\"minLength\":8,\"enforceNonCommonPassword\":true,\"enforceNumericCharacters\":false,\"enforceSpecialCharacters\":false,\"enforceUpperLowerCase\":false,\"api\":{\"generate\":\"https:\\/\\/efss.qloud.my\\/ocs\\/v2.php\\/apps\\/password_policy\\/api\\/v1\\/generate\",\"validate\":\"https:\\/\\/efss.qloud.my\\/ocs\\/v2.php\\/apps\\/password_policy\\/api\\/v1\\/validate\"}},\"theming\":{\"name\":\"QloudData\",\"url\":\"https:\\/\\/www.qloud.my\\/qloud-data\\/\",\"slogan\":\"Powered by NextCloud\",\"color\":\"#1E4164\",\"color-text\":\"#ffffff\",\"color-element\":\"#1E4164\",\"logo\":\"https:\\/\\/efss.qloud.my\\/index.php\\/apps\\/theming\\/image\\/logo?useSvg=1&v=47\",\"background\":\"https:\\/\\/efss.qloud.my\\/core\\/img\\/background.png?v=47\",\"background-plain\":false,\"background-default\":true,\"logoheader\":\"https:\\/\\/efss.qloud.my\\/index.php\\/apps\\/theming\\/image\\/logo?useSvg=1&v=47\",\"favicon\":\"https:\\/\\/efss.qloud.my\\/index.php\\/apps\\/theming\\/image\\/logo?useSvg=1&v=47\"},\"registration\":{\"enabled\":true,\"apiRoot\":\"\\/ocs\\/v2.php\\/apps\\/registration\\/api\\/v1\\/\",\"apiLevel\":\"v1\"}}}}}", null));
account = db.getAccountDao().getAccountByName("彼得@äöüß.example.com");
- db.addAccount("https://example.org", "test", "test@example.org", new Capabilities("", null));
+ db.addAccount("https://example.org", "test", "test@example.org", new Capabilities("{ocs: {}}", null));
secondAccount = db.getAccountDao().getAccountByName("test@example.org");
List.of(
diff --git a/app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTestUtil.java b/app/src/test/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTestUtil.java
index 26ec47c3..26ec47c3 100644
--- a/app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTestUtil.java
+++ b/app/src/test/java/it/niedermann/owncloud/notes/persistence/NotesDatabaseTestUtil.java
diff --git a/app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/util/NotesColorUtilTest.java b/app/src/test/java/it/niedermann/owncloud/notes/persistence/util/NotesColorUtilTest.java
index 324bc37d..8645370c 100644
--- a/app/src/androidTest/java/it/niedermann/owncloud/notes/persistence/util/NotesColorUtilTest.java
+++ b/app/src/test/java/it/niedermann/owncloud/notes/persistence/util/NotesColorUtilTest.java
@@ -1,12 +1,14 @@
package it.niedermann.owncloud.notes.persistence.util;
import android.graphics.Color;
+import android.os.Build;
import androidx.core.util.Pair;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
@@ -16,7 +18,8 @@ import it.niedermann.owncloud.notes.shared.util.NotesColorUtil;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-@RunWith(AndroidJUnit4.class)
+@RunWith(RobolectricTestRunner.class)
+@Config(sdk = {Build.VERSION_CODES.P})
public class NotesColorUtilTest {
@Test
public void testContrastRatioIsSufficient() {
diff --git a/app/src/androidTest/java/it/niedermann/owncloud/notes/shared/model/CapabilitiesTest.java b/app/src/test/java/it/niedermann/owncloud/notes/shared/model/CapabilitiesTest.java
index 8b57e108..6415bb39 100644
--- a/app/src/androidTest/java/it/niedermann/owncloud/notes/shared/model/CapabilitiesTest.java
+++ b/app/src/test/java/it/niedermann/owncloud/notes/shared/model/CapabilitiesTest.java
@@ -1,18 +1,20 @@
package it.niedermann.owncloud.notes.shared.model;
import android.graphics.Color;
-
-import androidx.test.ext.junit.runners.AndroidJUnit4;
+import android.os.Build;
import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
-@RunWith(AndroidJUnit4.class)
+@RunWith(RobolectricTestRunner.class)
+@Config(sdk = {Build.VERSION_CODES.P})
public class CapabilitiesTest {
@Test
@@ -90,7 +92,7 @@ public class CapabilitiesTest {
@Test
public void etagShouldAlwaysBeStored() throws NextcloudHttpRequestFailedException {
- final Capabilities capabilities = new Capabilities("", "ed38bf28-e429-4231-84be-35d166acfb6d ");
+ final Capabilities capabilities = new Capabilities("{ocs: {}}", "ed38bf28-e429-4231-84be-35d166acfb6d ");
assertEquals("ed38bf28-e429-4231-84be-35d166acfb6d ", capabilities.getETag());
}
diff --git a/app/src/androidTest/java/it/niedermann/owncloud/notes/shared/util/NoteUtilTest.java b/app/src/test/java/it/niedermann/owncloud/notes/shared/util/NoteUtilTest.java
index baa58536..a0e1f9c0 100644
--- a/app/src/androidTest/java/it/niedermann/owncloud/notes/shared/util/NoteUtilTest.java
+++ b/app/src/test/java/it/niedermann/owncloud/notes/shared/util/NoteUtilTest.java
@@ -1,13 +1,23 @@
package it.niedermann.owncloud.notes.shared.util;
+import android.os.Build;
+
import junit.framework.TestCase;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
/**
* Tests the NoteUtil
* Created by stefan on 06.10.15.
*/
+@RunWith(RobolectricTestRunner.class)
+@Config(sdk = {Build.VERSION_CODES.P})
public class NoteUtilTest extends TestCase {
+ @Test
public void testIsEmptyLine() {
assertTrue(NoteUtil.isEmptyLine(" "));
assertTrue(NoteUtil.isEmptyLine("\n"));
@@ -17,6 +27,7 @@ public class NoteUtilTest extends TestCase {
assertFalse(NoteUtil.isEmptyLine("a \n "));
}
+ @Test
public void testGetLineWithoutMarkdown() {
assertEquals("Test", NoteUtil.getLineWithoutMarkdown("Test", 0));
assertEquals("Test", NoteUtil.getLineWithoutMarkdown("\nTest", 0));
@@ -24,6 +35,7 @@ public class NoteUtilTest extends TestCase {
assertEquals("Bar", NoteUtil.getLineWithoutMarkdown("Foo\nBar", 1));
}
+ @Test
public void testGenerateNoteTitle() {
assertEquals("Test", NoteUtil.generateNoteTitle("Test"));
assertEquals("Test", NoteUtil.generateNoteTitle("Test\n"));
@@ -32,6 +44,7 @@ public class NoteUtilTest extends TestCase {
assertEquals("Test", NoteUtil.generateNoteTitle("\n\nTest"));
}
+ @Test
public void testGenerateNoteExcerpt() {
// title is different from content → return max. 200 characters starting with the first line which is not empty
assertEquals("Test", NoteUtil.generateNoteExcerpt("Test", "Title"));