1414import android .graphics .Color ;
1515
1616import com .google .gson .JsonParser ;
17+ import com .owncloud .android .lib .resources .shares .OCShare ;
1718
1819import org .junit .Test ;
1920import 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