@@ -8,8 +8,7 @@ import { randHash } from '../utils/index.js'
8
8
const shareOwner = new User ( randHash ( ) , randHash ( ) )
9
9
const otherUser = new User ( randHash ( ) , randHash ( ) )
10
10
11
- describe ( 'Public sharing of office documents' , function ( ) {
12
-
11
+ describe ( 'Public sharing of office documents' , ( ) => {
13
12
before ( function ( ) {
14
13
cy . createUser ( shareOwner )
15
14
cy . createUser ( otherUser )
@@ -20,109 +19,102 @@ describe('Public sharing of office documents', function() {
20
19
} )
21
20
22
21
const userMatrix = [ shareOwner , otherUser ]
23
- const guestName = randHash ( )
24
22
25
- describe ( 'Open a shared file' , function ( ) {
26
- for ( const index in userMatrix ) {
27
- const viewingUser = userMatrix [ index ]
23
+ describe ( 'Share with users' , ( ) => {
24
+ describe ( 'Readonly file' , ( ) => {
25
+ for ( const user of userMatrix ) {
26
+ it ( 'Loads readonly file as user: ' + user . userId , ( ) => {
27
+ cy . shareLink ( shareOwner , '/document.odt' ) . then ( ( token ) => {
28
+ cy . login ( user )
28
29
29
- it ( 'Loads file as user: ' + viewingUser ?. userId , ( ) => {
30
- cy . shareLink ( shareOwner , '/document.odt' ) . then ( ( token ) => {
31
- cy . login ( viewingUser )
32
-
33
- cy . visit ( `/s/${ token } ` , {
34
- onBeforeLoad ( win ) {
35
- cy . spy ( win , 'postMessage' ) . as ( 'postMessage' )
36
- } ,
37
- } )
30
+ cy . visit ( `/s/${ token } ` , {
31
+ onBeforeLoad ( win ) {
32
+ cy . spy ( win , 'postMessage' ) . as ( 'postMessage' )
33
+ } ,
34
+ } )
38
35
39
- cy . waitForCollabora ( )
40
- cy . waitForPostMessage ( 'App_LoadingStatus' , { Status : 'Document_Loaded' } )
36
+ // Assert that we do not ask for guest name if logged in
37
+ cy . get ( '[data-cy="guestNameModal"]' ) . should ( 'not.exist' )
41
38
42
- cy . get ( '@loleafletframe' ) . within ( ( ) => {
43
- cy . get ( '#closebutton' ) . click ( )
39
+ waitForCollabora ( )
44
40
} )
45
-
46
- cy . get ( '#viewer' , { timeout : 5000 } ) . should ( 'not.exist' )
47
41
} )
48
- } )
49
- }
42
+ }
43
+ } )
50
44
51
- it ( 'Loads file as guest: ' + guestName , ( ) => {
52
- cy . shareLink ( shareOwner , '/document.odt' ) . then ( ( token ) => {
53
- cy . logout ( )
45
+ describe ( 'Editable file' , ( ) => {
46
+ for ( const user of userMatrix ) {
47
+ it ( 'Loads editable file as user: ' + user . userId , ( ) => {
48
+ cy . shareLink ( shareOwner , '/document.odt' , { permissions : 19 } ) . then ( ( token ) => {
49
+ cy . login ( user )
54
50
55
- cy . visit ( `/s/${ token } ` , {
56
- onBeforeLoad ( win ) {
57
- cy . spy ( win , 'postMessage' ) . as ( 'postMessage' )
58
- } ,
59
- } )
51
+ cy . visit ( `/s/${ token } ` , {
52
+ onBeforeLoad ( win ) {
53
+ cy . spy ( win , 'postMessage' ) . as ( 'postMessage' )
54
+ } ,
55
+ } )
60
56
61
- cy . inputCollaboraGuestName ( guestName )
62
- cy . waitForCollabora ( )
63
- cy . waitForPostMessage ( 'App_LoadingStatus' , { Status : 'Document_Loaded' } )
57
+ // Assert that we do not ask for guest name if logged in
58
+ cy . get ( '[data-cy="guestNameModal"]' ) . should ( 'not.exist' )
64
59
65
- cy . get ( '@loleafletframe' ) . within ( ( ) => {
66
- cy . get ( '#closebutton' ) . click ( )
60
+ waitForCollabora ( )
61
+ } )
67
62
} )
68
-
69
- cy . get ( '#viewer' , { timeout : 5000 } ) . should ( 'not.exist' )
70
- } )
63
+ }
71
64
} )
72
65
} )
73
66
74
- describe ( 'Open a file in a shared folder' , function ( ) {
75
- for ( const index in userMatrix ) {
76
- const viewingUser = userMatrix [ index ]
77
- it ( 'Loads file in shared folder as user: ' + viewingUser ?. userId , ( ) => {
78
- cy . login ( viewingUser )
67
+ const guestName = randHash ( )
68
+ describe ( 'Share with guests' , ( ) => {
69
+ describe ( 'Readonly file' , ( ) => {
70
+ it ( 'Loads readonly file as guest: ' + guestName , ( ) => {
71
+ cy . shareLink ( shareOwner , '/document.odt' ) . then ( ( token ) => {
72
+ cy . logout ( )
79
73
80
- cy . shareLink ( shareOwner , '/my-share' ) . then ( ( token ) => {
81
74
cy . visit ( `/s/${ token } ` , {
82
75
onBeforeLoad ( win ) {
83
76
cy . spy ( win , 'postMessage' ) . as ( 'postMessage' )
84
77
} ,
85
78
} )
86
79
87
- cy . get ( 'button[data-cy-files-list-row-name-link=""]' )
88
- . click ( )
89
-
90
- cy . waitForViewer ( )
91
- cy . waitForCollabora ( )
92
- cy . waitForPostMessage ( 'App_LoadingStatus' , { Status : 'Document_Loaded' } )
80
+ // Assert that we do not ask for guest name if we can't edit as a guest
81
+ cy . get ( '[data-cy="guestNameModal"]' ) . should ( 'not.exist' )
93
82
94
- cy . get ( '@loleafletframe' ) . within ( ( ) => {
95
- cy . get ( '#closebutton' ) . click ( )
96
- } )
97
-
98
- cy . get ( '#viewer' , { timeout : 5000 } ) . should ( 'not.exist' )
83
+ waitForCollabora ( )
99
84
} )
100
85
} )
101
- }
102
-
103
- it ( 'Loads file in shared folder as guest: ' + guestName , ( ) => {
104
- cy . shareLink ( shareOwner , '/my-share' ) . then ( ( token ) => {
105
- cy . logout ( )
86
+ } )
106
87
107
- cy . visit ( `/s/${ token } ` , {
108
- onBeforeLoad ( win ) {
109
- cy . spy ( win , 'postMessage' ) . as ( 'postMessage' )
110
- } ,
111
- } )
88
+ describe ( 'Editable file' , ( ) => {
89
+ it ( 'Loads editable file as guest: ' + guestName , ( ) => {
90
+ cy . shareLink ( shareOwner , '/document.odt' , { permissions : 19 } ) . then ( ( token ) => {
91
+ cy . logout ( )
112
92
113
- cy . get ( 'button[data-cy-files-list-row-name-link=""]' ) . click ( )
93
+ cy . visit ( `/s/${ token } ` , {
94
+ onBeforeLoad ( win ) {
95
+ cy . spy ( win , 'postMessage' ) . as ( 'postMessage' )
96
+ } ,
97
+ } )
114
98
115
- cy . inputCollaboraGuestName ( guestName )
116
- cy . waitForViewer ( )
117
- cy . waitForCollabora ( )
118
- cy . waitForPostMessage ( 'App_LoadingStatus' , { Status : 'Document_Loaded' } )
99
+ // Assert that we do ask for guest name if we can edit as a guest
100
+ cy . get ( '[data-cy="guestNameModal"]' ) . should ( 'be.visible' )
119
101
120
- cy . get ( '@loleafletframe' ) . within ( ( ) => {
121
- cy . get ( '#closebutton' ) . click ( )
102
+ cy . inputCollaboraGuestName ( guestName )
103
+ waitForCollabora ( )
122
104
} )
123
-
124
- cy . get ( '#viewer' , { timeout : 5000 } ) . should ( 'not.exist' )
125
105
} )
126
106
} )
127
107
} )
128
108
} )
109
+
110
+ function waitForCollabora ( ) {
111
+ cy . waitForViewer ( )
112
+ cy . waitForCollabora ( )
113
+ cy . waitForPostMessage ( 'App_LoadingStatus' , { Status : 'Document_Loaded' } )
114
+
115
+ cy . get ( '@loleafletframe' ) . within ( ( ) => {
116
+ cy . get ( '#closebutton' ) . click ( )
117
+ } )
118
+
119
+ cy . get ( '#viewer' , { timeout : 5000 } ) . should ( 'not.exist' )
120
+ }
0 commit comments