2024-07-20 09:53:58 +01:00
@example @general
2024-05-26 15:58:33 +01:00
Feature: API Validation
2025-07-14 13:05:17 +02:00
@positive @password
Scenario: Remove password
Given I generate a PDF file as " fileInput "
And the pdf contains 3 pages
And the pdf is encrypted with password " password123 "
And the request data includes
| parameter | value |
| password | password123 |
When I send the API request to the endpoint " /api/v1/security/remove-password "
Then the response content type should be " application/pdf "
And the response file should have size greater than 0
And the response PDF is not passworded
And the response status code should be 200
2024-05-27 16:31:00 +01:00
2025-07-14 13:05:17 +02:00
@negative @password
Scenario: Remove password wrong password
Given I generate a PDF file as " fileInput "
And the pdf contains 3 pages
And the pdf is encrypted with password " password123 "
And the request data includes
| parameter | value |
| password | wrongPassword |
When I send the API request to the endpoint " /api/v1/security/remove-password "
Then the response status code should be 500
2025-07-29 13:44:17 +01:00
And the response should contain error message " Job failed: org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException: Cannot decrypt PDF, the password is incorrect "
2024-05-26 15:58:33 +01:00
2025-07-14 13:05:17 +02:00
@positive @info
Scenario: Get info
Given I generate a PDF file as " fileInput "
When I send the API request to the endpoint " /api/v1/security/get-info-on-pdf "
Then the response content type should be " application/json "
And the response file should have size greater than 100
And the response status code should be 200
2024-05-26 15:58:33 +01:00
2025-07-14 13:05:17 +02:00
@positive @password
Scenario: Add password
Given I generate a PDF file as " fileInput "
And the pdf contains 3 pages
And the request data includes
| parameter | value |
| password | password123 |
When I send the API request to the endpoint " /api/v1/security/add-password "
Then the response content type should be " application/pdf "
And the response file should have size greater than 100
And the response PDF is passworded
And the response status code should be 200
2025-05-16 13:23:01 +02:00
2025-07-14 13:05:17 +02:00
@positive @password
Scenario: Add password with other params
Given I generate a PDF file as " fileInput "
And the pdf contains 3 pages
And the request data includes
| parameter | value |
| ownerPassword | ownerPass |
| password | password123 |
| keyLength | 256 |
| canPrint | true |
| canModify | false |
When I send the API request to the endpoint " /api/v1/security/add-password "
Then the response content type should be " application/pdf "
And the response file should have size greater than 100
And the response PDF is passworded
And the response status code should be 200
2025-05-16 13:23:01 +02:00
2025-07-14 13:05:17 +02:00
@positive @watermark
Scenario: Add watermark
Given I generate a PDF file as " fileInput "
And the pdf contains 3 pages
And the request data includes
| parameter | value |
| watermarkType | text |
| watermarkText | Sample Watermark |
| fontSize | 30 |
| rotation | 45 |
| opacity | 0.5 |
| widthSpacer | 50 |
| heightSpacer | 50 |
| alphabet | roman |
| customColor | #d3d3d3 |
When I send the API request to the endpoint "/api/v1/security/add-watermark"
Then the response content type should be "application/pdf"
And the response file should have size greater than 100
And the response status code should be 200
2024-05-26 15:58:33 +01:00
2025-07-14 13:05:17 +02:00
@positive
Scenario: Remove blank pages
Given I generate a PDF file as "fileInput"
And the pdf contains 3 blank pages
And the request data includes
| parameter | value |
| threshold | 90 |
| whitePercent | 99.9 |
When I send the API request to the endpoint " /api/v1/misc/remove-blanks "
Then the response content type should be " application/octet-stream "
And the response file should have extension " .zip "
And the response ZIP should contain 1 files
And the response file should have size greater than 0
2024-05-26 15:58:33 +01:00
2025-07-14 13:05:17 +02:00
@positive @flatten
Scenario: Flatten PDF
Given I generate a PDF file as " fileInput "
And the request data includes
| parameter | value |
| flattenOnlyForms | false |
When I send the API request to the endpoint " /api/v1/misc/flatten "
Then the response content type should be " application/pdf "
And the response file should have size greater than 0
And the response status code should be 200
2025-05-16 13:23:01 +02:00
2025-07-14 13:05:17 +02:00
@positive @metadata
Scenario: Update metadata
Given I generate a PDF file as " fileInput "
And the request data includes
| parameter | value |
| author | John Doe |
| title | Sample Title |
| subject | Sample Subject |
| keywords | sample, test |
| producer | Test Producer |
When I send the API request to the endpoint " /api/v1/misc/update-metadata "
Then the response content type should be " application/pdf "
And the response file should have size greater than 0
And the response PDF metadata should include " Author " as " John Doe "
And the response PDF metadata should include " Keywords " as " sample, test "
And the response PDF metadata should include " Subject " as " Sample Subject "
And the response PDF metadata should include " Title " as " Sample Title "
And the response status code should be 200
2024-05-26 15:58:33 +01:00
2025-05-16 13:23:01 +02:00