Skip to content

Commit b0affb7

Browse files
committed
review addresses
Signed-off-by: nabim777 <nabinalemagar019@gmail.com>
1 parent 617a00f commit b0affb7

1 file changed

Lines changed: 46 additions & 31 deletions

File tree

docs/testing/smoke_testing.md

Lines changed: 46 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,21 @@ The need for this smoke testing (manual) is that we do not have e2e test setup t
3535
## Section A: Two-Way OAuth 2.0 Authorization Code Flow
3636

3737
### A1. Oauth configuration
38-
- [ ] In `OpenProject`, navigate to `Administration > Files`.
39-
- [ ] Create a file storage type `Nextcloud` and name it as `Nextcloud` in `OpenProject`.
40-
- [ ] In admin setting of `Nextcloud`, navigate to `Administration Settings > OpenProject`.
41-
- [ ] Copy `OpenProject` Oauth Credential (client_id and client_secret) and save them in `Nextcloud`.
42-
- [ ] Copy `Nextcloud` Oauth Credential (client_id and client_secret) and save them in `OpenProject`.
43-
- [ ] Disable project folder (automatically managed folder).
38+
- [ ] Keep two browser tabs open: one for `OpenProject` and one for `Nextcloud`.
39+
- [ ] In `OpenProject`, navigate to `Administration > Files` and add a new `Nextcloud` storage:
40+
- Add name to `Nextcloud` and host to `<openproject_host>`.
41+
- Select `Two-way OAuth 2.0 authorization code flow` as the authentication method.
42+
- Click `Save and Continue` — note the generated `OpenProject OAuth Client ID` and `Client Secret`.
43+
- [ ] In `Nextcloud`, navigate to `Administration Settings > OpenProject`:
44+
- Set `OpenProject server` to `<openproject_host>`.
45+
- Select `Two-way OAuth 2.0 authorization code flow` as the authentication method.
46+
- Enter the `OpenProject OAuth Client ID` and `Client Secret` copied from the previous step.
47+
- Click `Save` — note the generated `Nextcloud OAuth Client ID` and `Client Secret`.
48+
- [ ] Back in `OpenProject`
49+
- Enter the `Nextcloud OAuth Client ID` and `Client Secret`, then click `Save and Continue`.
50+
- Uncheck the `Automatically managed folders` and click on `Finish setup`
51+
- [ ] Back in `Nextcloud`, click `Yes, I have copied these values`.
52+
- [ ] Disable `Automatically managed project folders` and click `Complete without Project Folders`.
4453

4554
### A2. Connect Nextcloud with OpenProject
4655

@@ -53,17 +62,16 @@ The need for this smoke testing (manual) is that we do not have e2e test setup t
5362

5463
### A3. Add File storage (Nextcloud) to an OpenProject project
5564
- [ ] Complete step [Test No A1](#a1-oauth-configuration).
56-
- [ ] Select an `OpenProject` Project (for example, `Demo Project`) in `OpenProject`.
65+
- [ ] As a user `admin`, select any `OpenProject` Project (for example, `Demo Project`) in `OpenProject`.
5766
- [ ] Navigate to `Project settings > Files` of `Demo Project`.
5867
- [ ] Add a file storage name `Nextcloud`( choose `No specific Folder` option ) for `Demo Project`.
5968

6069
### A4. Connect OpenProject with Nextcloud
6170
- [ ] Complete step [Test No A1](#a1-oauth-configuration).
6271
- [ ] Complete step [Test No A3](#A3-Add-File-storage-Nextcloud-to-an-OpenProject-project).
63-
- [ ] Navigate to `Demo Project > Work Packages` and double click any one of the work packages available.
72+
- [ ] As a user `admin`, navigate to `Demo Project > Work Packages` and open any work package by clicking its ID.
6473
- [ ] Navigate to `Files` tab, and login to `Nextcloud`.
6574
- [ ] `OpenProject` admin is connected to `Nextcloud` as a `Nextcloud` admin.
66-
- [ ] Also, create a user in both `Nextcloud` as well as `OpenProject`.
6775
- [ ] Add the created `OpenProject` user as the member of `Demo Project` project (admin can add members to a project).
6876
- [ ] Try to connect the created `OpenProject` user as created `Nextcloud` user.
6977
- [ ] `OpenProject` user should be connected as a `Nextcloud` user.
@@ -94,18 +102,21 @@ bash integration_setup.sh
94102

95103
## Section B: Single-Sign-On through OpenID Connect Identity Provider
96104

105+
> **Note**: `OpenProject` must be an Enterprise edition to use SSO setup.
106+
97107
### B.1: Nextcloud Hub as IDP
98108

99109
#### B.1.1. Configure Nextcloud
100-
- [ ] In Nextcloud, install and enable `oidc` and `user_oidc` apps.
110+
- [ ] In Nextcloud, install and enable `OIDC Identity Provider`(`oidc`) and `OpenID Connect user backend`(`user_oidc`) apps.
101111
- [ ] Create a new user( with username, display name, password, and email)
102112
- [ ] Run following command:
103113
- `php occ config:system:set user_oidc --type boolean --value="true" oidc_provider_bearer_validation`
114+
- Note: This enables bearer token validation for `user_oidc`. Without it, login or connection may fail. This may also be missing during local setups.
104115
- [ ] Go to `Administration > OpenID Connect` and enable `store login tokens` option.
105116
- [ ] Go to `Administation > OpenID Connect Provider`
106117
- Click the button `+ Add client`:
107118
- Add a client name (not an identifier) such as `openproject`
108-
- Add a redirect URL (<openproject_host>/auth/oidc-<idp-displayname-from-OP>/callback)
119+
- Add a redirect URL (<openproject_host>/auth/oidc-<idp-displayname-from-openproject>/callback)
109120
- Choose Signing Algorithm option as `RS246`.
110121
- Choose Client Type as `Confidential` and click on `Add` button.
111122
- After clicking `add` button, click on recently created client.
@@ -118,11 +129,11 @@ bash integration_setup.sh
118129
#### B.1.2. Add Nextcloud IDP in OpenProject (Without project folder setup)
119130
- [ ] In OpenProject, go to `Administration > Authentication > OpenID providers`
120131
- [ ] Add a new custom OpenID provider:
121-
- Display name: `nextcloud` (use this name as redirect URL in Nextcloud: <idp-displayname-from-OP>)
132+
- Display name: `nextcloud` (use this name as redirect URL in Nextcloud: <idp-displayname-from-openproject>)
122133
- Discovery URL: `<nextcloud_instance_url>/index.php/.well-known/openid-configuration`
123134
- Client ID: Client ID copied earlier from Nextcloud
124135
- Client secret: Client secret copied earlier from Nextcloud
125-
- Choose other option by default and click on `save`
136+
- Keep all other options as default and click on `save`.
126137
- [ ] Then, go to `Administration > Files`
127138
- [ ] Create a file storage type `Nextcloud` by clicking the button `+ Storage` and choosing `Nextcloud`
128139
- [ ] Add name it as `Nextcloud`.
@@ -139,6 +150,7 @@ bash integration_setup.sh
139150
- [ ] Under `Authentication Method`, select `Single-Sign-On through OpenID Connect Identity Provider`.
140151
- [ ] In `Authentication settings`, select `provider Type` as `Nextcloud Hub`.
141152
- [ ] Set Openproject `client ID` by Client ID copied earlier in **Test No B1**.
153+
- [ ] Uncheck `project folder (automatically managed folder)`
142154

143155
#### B.1.4. Login to OpenProject using Nextcloud user
144156
- [ ] Complete step [Test No B.1.1](#B11-Configure-Nextcloud)
@@ -175,35 +187,33 @@ bash integration_setup.sh
175187
- Identifier: `keycloak`
176188
- Client ID: nextcloud client id from keycloak
177189
- Client Secret: nextcloud client secret from keycloak
178-
- Discovery endpoint: `<keycloak_instance_url>/realms/<realm-name>/.well-known/openid-configuration`
190+
- Discovery endpoint: `<keycloak_instance_url>/realms/<realm-name>/.well-known/openid-configuration` (for example realm name can be `opnc`)
179191
- Scope: `openid email profile api_v3`
180192
- submit
181193
- [ ] Login as keycloak-created user in `Nextcloud`.
182194
- [ ] Login Should be successful
183195
- [ ] Logout
184196

185197
#### B.2.3. Add Keycloak IDP in OpenProject
186-
- [ ] In **OpenProject**, go to `Administration > Authentication > OpenID providers`
198+
- [ ] As an user `admin`, go to `Administration > Authentication > OpenID providers`
187199
- [ ] Add a new custom OpenID provider:
188200
- Display name: `keycloak`
189201
- Discovery URL: `<keycloak_instance_url>/realms/<realm-name>/.well-known/openid-configuration`
190202
- Client ID: Client ID of openproject from keycloak
191203
- Client secret: Client secret of openproject from keycloak
204+
- [ ] Navigate to `Project settings > Files` of a project (for example, `Demo Project`) and add `Nextcloud` as a file storage.
192205
- [ ] Login as keycloak-created user in `Openproject`.
193206
- [ ] Log out, then Login as admin in `Openproject`.
194207
- [ ] As an `OpenProject` admin, add keycloak-created user as a member in one of the project.
195208

196-
#### B.2.4. Setup integration (token exchange disabled)
197-
- [ ] In nextcloud, go to `Administration > OpenProject`.
209+
#### B.2.4. Setup integration (token exchange disabled) in Nexcloud
210+
- [ ] As an `admin` user, go to `Administration > OpenProject`.
198211
- [ ] Under `Authentication Method`, select `Single-Sign-On through OpenID Connect Identity Provider`.
199212
- [ ] In `Authentication settings`, select `provider Type` as `Keycloak`.
200213
- [ ] Disable `token exchange`
201214

202215
#### B.2.5. Verify Connection in nextcloud
203-
- [ ] Complete step [Test No B.2.1](#b21-Configure-Keycloak).
204-
- [ ] Complete step [Test No B.2.2](#b22-Configure-Nextcloud).
205-
- [ ] Complete step [Test No B.2.3](#b23-Add-Keycloak-IDP-in-OpenProject).
206-
- [ ] Complete step [Test No B.2.4](#b24-Setup-integration-token-exchange-disabled).
216+
- [ ] first, Complete steps **B.2.1** to **B.2.4**.
207217
- [ ] In nextcloud, login as keycloak-created user.
208218
- [ ] Navigate to `Settings > Openproject`
209219
- [ ] Should show user is connected as an OpenProject user.
@@ -343,8 +353,8 @@ bash integration_oidc_setup.sh
343353

344354
## Common Smoke Test Steps
345355

346-
### 1. Link/Unlink a work package for a file/folder in Nextcloud
347-
- [ ] In openproject, Select a file, navigate to sidebar `OpenProject` tab.
356+
### 1. Link/Unlink a work package for a file/folder in Openproject
357+
- [ ] Select a file, navigate to sidebar `OpenProject` tab.
348358
- [ ] Search for any of the work packages in the `Demo Project`.
349359
- [ ] Work packages are listed.
350360
- [ ] Link to any one of the work packages appeared in the search lists.
@@ -354,19 +364,20 @@ bash integration_oidc_setup.sh
354364
- [ ] Unlink a work package and it should be deleted from the `OpenProject` Tab with a successful message.
355365

356366
### 2. Link/Unlink a work package for a file/folder from OpenProject
357-
- [ ] Navigate to `Demo Project > Work Packages` and double click any one of the work packages available.
367+
- [ ] In Openproject, navigate to `Demo Project > Work Packages` and double click any one of the work packages available.
358368
- [ ] Navigate to `Files` tab, click `link existing files`, select available files (for example, welcome.txt) from Nextcloud and link it to the work package.
359369
- [ ] Selected file is linked to the work package in `OpenProject`
360370
- [ ] Also Navigate to nextcloud and see in the `OpenProject` tab for file (welcome.txt), the work package should be linked.
361371

362372
### 3. Direct upload file/folder from OpenProject to Nextcloud
363-
- [ ] Navigate to `Demo Project > Work Packages` and double click any one of the work packages available.
373+
- [ ] In Openproject, navigate to `Demo Project > Work Packages` and double click any one of the work packages available.
364374
- [ ] Navigate to `Files` tab, click `Upload files`, select available files from your local system (for example, local.txt) and upload choosing the upload location.
365375
- [ ] Uploaded file is linked to the work package in `OpenProject`
366376
- [ ] Also Navigate to `Nextcloud` and see in the `OpenProject` tab for file (local.txt), the work package should be linked.
367377

368378
### 4. Create a WorkPackage from Nextcloud
369-
- [ ] Open the form to create work package from Nextcloud in the `OpenProject` tab for a file/folder.
379+
- [ ] In `Nextcloud`, select a file amd open the sidebar `OpenProject` tab.
380+
- [ ] Click `Create and link new work package`.
370381
- [ ] Select `Demo Project`, fill up the modal form and create.
371382
- [ ] Work package should be created and linked to the selected file.
372383

@@ -378,20 +389,24 @@ bash integration_oidc_setup.sh
378389
- [ ] The `Nextcloud` user should receive a notification regarding the assignment.
379390

380391
#### 6. Setup and check project folder in Nextcloud (with project folder setup)
381-
- [ ] Enable `groupfolders` application in `Nextcloud`.
392+
- [ ] Enable `teamfolders` application in `Nextcloud`.
382393
- [ ] Enable `Automatically managed folders` switch in admin setting and set project folder.
383-
- [ ] Application password should be generated.
384-
- [ ] Verify that `OpenProject` user and group are created with user `OpenProject` as sub-admin of the group.
394+
- [ ] Application password should be generated (copy this password as this will be needed in the next step).
395+
- [ ] Verify that `OpenProject` user and `OpenProject` group are created with user `OpenProject` as sub-admin of the group.
385396
- [ ] Verify that `OpenProjectNoAutomaticProjectFolders` group is also created with user `OpenProject` as sub-admin.
386-
- [ ] Try deleting `OpenProject` user and group, those should not be deleted.
397+
- [ ] Try deleting `OpenProject` user and `OpenProject` group, those should not be deleted.
387398
- [ ] Try deleting `OpenProjectNoAutomaticProjectFolders` group, it should not be possible to delete.
388399
- [ ] Test group management (as user `OpenProject`):
389400
- Login as `OpenProject` user
390401
- Add a test user `user1` to the `OpenProject` group
391402
- Remove `user1` from the `OpenProject` group
392403
- Verify that `user1` is automatically moved to the `OpenProjectNoAutomaticProjectFolders` group
393404

394-
### 7. Check New folder with automatically managed permissions in OpenProject
405+
### 7. Setup and Check New folder with automatically managed permissions in OpenProject
406+
- [ ] In `OpenProject`, navigate to `Administration > Files > Nextcloud`.
407+
- [ ] On `Automatically managed folders` section, click on Edit.
408+
- [ ] Enable the `Automatically managed folders` option.
409+
- [ ] Enter the application password generated from `Nextcloud` and click on `Finish setup`.
395410
- [ ] Navigate to `Demo Project > Work Packages` and double click any one of the work packages available.
396411
- [ ] Navigate to `Files` tab, click `link existing files`.
397412
- [ ] In a modal, `Nextcloud > OpenProject > Demo project(1)` should be visible.

0 commit comments

Comments
 (0)