Skip to content

Commit e540419

Browse files
test(Capabilities): improve/expand deserializer tests
Signed-off-by: Josh <josh.t.richards@gmail.com>
1 parent 9441060 commit e540419

1 file changed

Lines changed: 130 additions & 11 deletions

File tree

app/src/test/java/it/niedermann/owncloud/notes/persistence/sync/CapabilitiesDeserializerTest.java

Lines changed: 130 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import android.graphics.Color;
1515

1616
import com.google.gson.JsonParser;
17+
import com.owncloud.android.lib.resources.shares.OCShare;
1718

1819
import org.junit.Test;
1920
import org.junit.runner.RunWith;
@@ -117,7 +118,6 @@ public void testDefaultWithInvalidApiVersion() {
117118
assertEquals(Color.parseColor("#ffffff"), capabilities.getTextColor());
118119
}
119120

120-
121121
@Test
122122
public void testRealisticSample() {
123123
//language=json
@@ -314,7 +314,6 @@ public void testRealisticSample() {
314314
assertFalse("Wrongly reporting that direct editing is supported", capabilities.isDirectEditingAvailable());
315315
}
316316

317-
318317
@Test
319318
public void testDirectEditing() {
320319
//language=json
@@ -364,12 +363,10 @@ public void testDirectEditing() {
364363
"}";
365364
final var capabilities1 = deserializer.deserialize(JsonParser.parseString(responseNotOk), null, null);
366365
assertFalse("Wrongly reporting that direct editing is supported", capabilities1.isDirectEditingAvailable());
367-
368366
}
369367

370-
371368
@Test
372-
public void testSharingDisabled() {
369+
public void testPublicSharingDisabledWithoutPassword() {
373370
//language=json
374371
final String response = "" +
375372
"{" +
@@ -382,10 +379,6 @@ public void testSharingDisabled() {
382379
" \"extendedSupport\": false" +
383380
" }," +
384381
" \"capabilities\": {" +
385-
" \"core\": {" +
386-
" \"pollinterval\": 60," +
387-
" \"webdav-root\": \"remote.php/webdav\"" +
388-
" }," +
389382
" \"notes\": {" +
390383
" \"api_version\": [" +
391384
" \"0.2\"," +
@@ -437,8 +430,134 @@ public void testSharingDisabled() {
437430
" }" +
438431
"}";
439432
final var capabilities = deserializer.deserialize(JsonParser.parseString(response), null, null);
440-
assertNull(capabilities.getETag());
441433
assertEquals("[\"0.2\",\"1.1\"]", capabilities.getApiVersion());
442-
assertFalse("Wrongly reporting that direct editing is supported", capabilities.isDirectEditingAvailable());
434+
assertFalse(capabilities.getPublicPasswordEnforced());
435+
assertFalse(capabilities.getAskForOptionalPassword());
436+
assertFalse(capabilities.isReSharingAllowed());
437+
assertEquals(31, capabilities.getDefaultPermission());
438+
assertTrue(capabilities.getFederationShare());
439+
}
440+
441+
@Test
442+
public void testShareApiDisabledKeepsDefaults() {
443+
//language=json
444+
final String response = "" +
445+
"{" +
446+
" \"version\": {" +
447+
" \"major\": 31," +
448+
" \"minor\": 0," +
449+
" \"micro\": 8" +
450+
" }," +
451+
" \"capabilities\": {" +
452+
" \"notes\": {" +
453+
" \"api_version\": [" +
454+
" \"0.2\"," +
455+
" \"1.1\"" +
456+
" ]" +
457+
" }," +
458+
" \"files_sharing\": {" +
459+
" \"api_enabled\": false," +
460+
" \"public\": {" +
461+
" \"enabled\": false" +
462+
" }," +
463+
" \"user\": {" +
464+
" \"send_mail\": false" +
465+
" }," +
466+
" \"resharing\": false," +
467+
" \"federation\": {" +
468+
" \"outgoing\": true," +
469+
" \"incoming\": true," +
470+
" \"expire_date\": {" +
471+
" \"enabled\": true" +
472+
" }" +
473+
" }" +
474+
" }" +
475+
" }" +
476+
"}";
477+
final var capabilities = deserializer.deserialize(JsonParser.parseString(response), null, null);
478+
assertEquals("[\"0.2\",\"1.1\"]", capabilities.getApiVersion());
479+
assertTrue(capabilities.getFederationShare());
480+
assertFalse(capabilities.getPublicPasswordEnforced());
481+
assertFalse(capabilities.getAskForOptionalPassword());
482+
assertFalse(capabilities.isReSharingAllowed());
483+
assertEquals(OCShare.NO_PERMISSION, capabilities.getDefaultPermission());
484+
}
485+
486+
@Test
487+
public void testMissingDefaultPermissionsKeepsDefault() {
488+
//language=json
489+
final String response = "" +
490+
"{" +
491+
" \"version\": {" +
492+
" \"major\": 33," +
493+
" \"minor\": 0," +
494+
" \"micro\": 2" +
495+
" }," +
496+
" \"capabilities\": {" +
497+
" \"notes\": {" +
498+
" \"api_version\": [" +
499+
" \"0.2\"," +
500+
" \"1.1\"" +
501+
" ]" +
502+
" }," +
503+
" \"files_sharing\": {" +
504+
" \"api_enabled\": true," +
505+
" \"public\": {" +
506+
" \"enabled\": false" +
507+
" }," +
508+
" \"resharing\": false," +
509+
" \"federation\": {" +
510+
" \"outgoing\": true," +
511+
" \"incoming\": true," +
512+
" \"expire_date\": {" +
513+
" \"enabled\": true" +
514+
" }" +
515+
" }" +
516+
" }" +
517+
" }" +
518+
"}";
519+
final var capabilities = deserializer.deserialize(JsonParser.parseString(response), null, null);
520+
assertEquals("[\"0.2\",\"1.1\"]", capabilities.getApiVersion());
521+
assertTrue(capabilities.getFederationShare());
522+
assertFalse(capabilities.isReSharingAllowed());
523+
assertEquals(OCShare.NO_PERMISSION, capabilities.getDefaultPermission());
524+
}
525+
526+
@Test
527+
public void testMissingFederationKeepsDefault() {
528+
//language=json
529+
final String response = "" +
530+
"{" +
531+
" \"version\": {" +
532+
" \"major\": 33," +
533+
" \"minor\": 0," +
534+
" \"micro\": 2" +
535+
" }," +
536+
" \"capabilities\": {" +
537+
" \"notes\": {" +
538+
" \"api_version\": [" +
539+
" \"0.2\"," +
540+
" \"1.1\"" +
541+
" ]" +
542+
" }," +
543+
" \"files_sharing\": {" +
544+
" \"api_enabled\": true," +
545+
" \"public\": {" +
546+
" \"enabled\": true," +
547+
" \"password\": {" +
548+
" \"enforced\": false," +
549+
" \"askForOptionalPassword\": false" +
550+
" }" +
551+
" }," +
552+
" \"resharing\": true," +
553+
" \"default_permissions\": 31" +
554+
" }" +
555+
" }" +
556+
"}";
557+
final var capabilities = deserializer.deserialize(JsonParser.parseString(response), null, null);
558+
assertEquals("[\"0.2\",\"1.1\"]", capabilities.getApiVersion());
559+
assertFalse(capabilities.getFederationShare());
560+
assertTrue(capabilities.isReSharingAllowed());
561+
assertEquals(31, capabilities.getDefaultPermission());
443562
}
444563
}

0 commit comments

Comments
 (0)