Skip to content

Commit

Permalink
Merge pull request #12 from alexandrehtrb/develop
Browse files Browse the repository at this point in the history
Release 1.6.0
  • Loading branch information
alexandrehtrb authored Nov 20, 2022
2 parents c250515 + 7fceed8 commit 479b327
Show file tree
Hide file tree
Showing 247 changed files with 15,980 additions and 3,710 deletions.
15 changes: 13 additions & 2 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,27 @@
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"name": "Launch Pororoca Desktop",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"preLaunchTask": "buildDesktop",
"program": "${workspaceFolder}/src/Pororoca.Desktop/bin/Debug/net6.0/Pororoca.Desktop.dll",
"args": [],
"cwd": "${workspaceFolder}/src/Pororoca.Desktop",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "Launch Pororoca TestServer",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "buildTestServer",
"program": "${workspaceFolder}/tests/Pororoca.TestServer/bin/Debug/net6.0/PororocaTestServer.dll",
"args": [],
"cwd": "${workspaceFolder}/tests/Pororoca.TestServer",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": ".NET Core Attach",
"type": "coreclr",
Expand Down
22 changes: 6 additions & 16 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,30 @@
"version": "2.0.0",
"tasks": [
{
"label": "build",
"label": "buildDesktop",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/src/Pororoca.Desktop/Pororoca.Desktop.csproj",
"/property:GenerateFullPaths=true",
// uncomment line below to debug windows installed version
//"/property:PublishForInstallOnWindows=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "publish",
"label": "buildTestServer",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/src/Pororoca.Desktop/Pororoca.Desktop.csproj",
"build",
"${workspaceFolder}/tests/Pororoca.TestServer/Pororoca.TestServer.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "watch",
"command": "dotnet",
"type": "process",
"args": [
"watch",
"run",
"--project",
"${workspaceFolder}/src/Pororoca.Desktop/Pororoca.Desktop.csproj"
],
"problemMatcher": "$msCompile"
}
]
}
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,47 @@
# Changelog

* [1.6.0](#160-2022-11-20)
* [1.5.0](#150-2022-09-20)
* [1.4.0](#140-2022-07-03)
* [1.3.0](#130-2022-05-15)
* [1.2.0](#120-2022-04-10)
* [1.1.0](#110-2022-03-20)
* [1.0.0](#100-2022-03-08)

## [1.6.0](https://github.com/alexandrehtrb/Pororoca/tree/1.6.0) (2022-11-20)

### Breaking Changes

* Currently dropping support for `arm` and `arm64` releases of Pororoca Desktop. The version 1.5.0 will remain available for download and it supports `arm` architectures. The `Pororoca.Test` package does not have such restraint and can run on these machines.

### Features

* Adds support for WebSockets (only HTTP/1.1 for now!)
* Adds syntax highlighting for text editors!
* Thanks for the [Avalonia](https://github.com/AvaloniaUI) team for the [Avalonia.Edit](https://github.com/AvaloniaUI/AvaloniaEdit) project!
* This adds support for `Ctrl+F` search in text editors! Issue [#10](https://github.com/alexandrehtrb/Pororoca/issues/10#issue-1369086969)
* This allows for zooming the text editor with the mouse scroll wheel!
* Generates Windows installer releases for Pororoca!
* Thanks for [@Drizin](https://github.com/Drizin) for the [NsisMultiUser](https://github.com/Drizin/NsisMultiUser) project!
* Pororoca installed on Windows will save collections and user preferences on `AppData\Roaming\Pororoca` folder.
* Files for HTTP request bodies are now loaded using async operating system APIs
* Shows check for updates reminder dialog, once every two months.

### Bug Fixes

* When a request, folder, environment is created, the main screen now is switched to it.
* The HTTP request screen splitter resizing is no longer bugged (thanks to the new text editor!)
* When clicking the `Send` button in HTTP request, the screen does not freeze anymore.

### Others

* Adds VS Code tasks for debugging Pororoca Desktop and TestServer.
* Sets PororocaUserData folder at project root when debugging, avoiding crash.
* Raised .NET SDK version to 6.0.403.
* `global.json` file is no longer necessary for running tests on Windows 7.
* Raised Avalonia version to 0.10.18.
* Simplified docs and replaced .jpg images for .png.

## [1.5.0](https://github.com/alexandrehtrb/Pororoca/tree/1.5.0) (2022-09-20)

### Features
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Pororoca is a HTTP testing tool, inspired by Postman, but with many improvements

It is available for Windows, Mac OSX and Linux.

![ExampleScreen](./docs/en-GB/imgs/example_screen.jpg)
![ExampleScreen](./docs/en-GB/imgs/example_screen.png)

## Installation

Expand All @@ -20,7 +20,7 @@ Read the [instructions](./docs/en-GB/Installation.md) and download the program [
* Secret variables.
* Collections and environments can be exported together in a single file.
* Full export and import compatibility with Postman.
* Much lower memory usage - around six times less than Postman.
* Much lower memory usage - around five times less than Postman.
* Automated testing.
* Fast startup time.
* Free and open-source.
Expand Down
4 changes: 2 additions & 2 deletions README_pt.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Pororoca é uma ferramenta de testes de HTTP, como o Postman, mas com diversas m

Está disponível para Windows, Mac OSX e Linux.

![TelaDeExemplo](./docs/pt-BR/imgs/example_screen.jpg)
![TelaDeExemplo](./docs/pt-BR/imgs/example_screen.png)

## Instalação

Expand All @@ -20,7 +20,7 @@ Leia as [instruções](./docs/pt-BR/Instalação.md) e baixe o programa [aqui](h
* Variáveis secretas.
* Coleções e ambientes podem ser exportados juntos em um mesmo arquivo.
* Compatibilidade total com o Postman ao importar ou exportar.
* Consumo muito menor de memória - cerca de seis vezes menos do que o Postman.
* Consumo muito menor de memória - cerca de cinco vezes menos do que o Postman.
* Testes automatizados.
* Inicialização rápida.
* Gratuito e código-aberto.
Expand Down
31 changes: 29 additions & 2 deletions docs/en-GB/AutomatedTests.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ After that, in the created test project, the .csproj file must be edited to incl
</ItemGroup>
<ItemGroup>
<!-- The line below adds Pororoca.Test package to the project -->
<PackageReference Include="Pororoca.Test" Version="1.5.0" />
<PackageReference Include="Pororoca.Test" Version="1.6.0" />
...
</ItemGroup>

Expand Down Expand Up @@ -80,7 +80,34 @@ There are methods in the PororocaTest class to set values of variables during th
pororocaTest.SetCollectionVariable("MyAuthenticationToken", "token_auth");
```

The test project [Pororoca.Test.Tests](https://github.com/alexandrehtrb/Pororoca/tree/master/tests/Pororoca.Test.Tests) in this project can guide you - it shows how to use the `Pororoca.Test` project, how to load the collection file and how to set variables.
The test project [Pororoca.Test.Tests](https://github.com/alexandrehtrb/Pororoca/tree/master/tests/Pororoca.Test.Tests) can guide you - it shows how to use the `Pororoca.Test` package, how to load the collection file and how to set variables.

## WebSocket tests

You can also make Pororoca tests for WebSockets. The code below shows an example:

```cs
[Fact]
public async Task Should_connect_and_disconnect_with_client_closing_message_successfully()
{
// GIVEN AND WHEN
var ws = await this.pororocaTest.ConnectWebSocketAsync("WebSocket HTTP1");
// THEN
Assert.Equal(PororocaWebSocketConnectorState.Connected, ws.State);

// WHEN
var waitForSend = Task.Delay(TimeSpan.FromSeconds(1));
var sending = ws.SendMessageAsync("Bye").AsTask();
await Task.WhenAll(waitForSend, sending);
// THEN
Assert.Null(ws.ConnectionException);
Assert.Equal(PororocaWebSocketConnectorState.Disconnected, ws.State);

var msg = Assert.IsType<PororocaWebSocketClientMessageToSend>(ws.ExchangedMessages[0]);
Assert.Equal(PororocaWebSocketMessageType.Close, msg.MessageType);
Assert.Equal("Adiós", msg.Text);
}
```

## Running the tests

Expand Down
10 changes: 4 additions & 6 deletions docs/en-GB/Collections.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,16 @@ A Pororoca collection holds your collection variables, environments and HTTP req

To create a new collection, go to the top menu, select "File", then "New collection". Your new collection will be visible on the left panel. You can create as many collections as you want.

![NewCollection](./imgs/new_collection.jpg)

## Renaming

To rename your collection, click on the collection in the left panel, then, on the main screen, click on the pencil icon, at the top right. This will enable the collection name for edition. After changing, click on the check icon to apply the new name.

![RenameCollection](./imgs/rename_collection.jpg)
To rename your collection, click on the pencil icon, at the top right. This will enable the collection name for edition.

## Import and export

Collections can also be imported and exported from files. Check the [Export and Import](ExportAndImport.md) page.

## Saved location

The collections that you create are saved in the `PororocaUserData` folder, located along the executable. When you close the application, all collections are saved.
The collections that you create are saved in the `PororocaUserData` folder. When you close the application, all collections are saved.

If you are running an installed on Windows version, the `PororocaUserData` folder is located in `C:\Users\you\AppData\Roaming\Pororoca\`. For other platforms and for the portable version, the folder is located alongside the executable.
12 changes: 5 additions & 7 deletions docs/en-GB/Environments.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ This example of a set of environments is quite common in major systems and allow

Environments are not obligatory to make requests. However, they can be very helpful for management and for testing.

![EnvironmentScreen](./imgs/environment.png)

## Creating

To create an environment, expand the collection in the left panel, then right-click on the "Environments" and select "New environment". Your new environment will be inside the "Environments" item. You can create as many environments as you want.
To create an environment, expand the collection in the left panel, then right-click on the "Environments" and select "New environment". You can also do that in the collection screen.

![NewEnvironment](./imgs/new_environment.jpg)
Your new environment will be inside the "Environments" item. You can create as many environments as you want.

## Renaming

To rename your environment, click on the environment in the left panel, then, on the main screen, click on the pencil icon, at the top right. This will enable the environment name for edition. After changing, click on the check icon to apply the new name.

![RenameEnvironment](./imgs/rename_environment.jpg)
To rename your environment, click on the pencil icon, at the top right. This will enable the environment name for edition.

## Import and export

Expand All @@ -28,8 +28,6 @@ Environments can be imported and exported from / to files. Check on the [Export

Only one environment can be active in a collection, and only when an environment is active, its variables will be available to be applied. To set an environment as active, right-click on the environment in the left panel and select "Set as current environment".

![SetAsCurrentEnvironment](./imgs/set_as_current_environment.jpg)

## Comparison with Postman environments

Postman also has environments, which also are groups of variables. The main difference is that a Postman environment is globally-scoped, with its variables being applied on all collections. On Pororoca, an environment is collection-scoped, to export it together with the collection and to not have the risk of using an environment in the wrong place.
12 changes: 2 additions & 10 deletions docs/en-GB/ExportAndImport.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,22 @@ Pororoca offers full export and import compatibility with Postman.

To export a collection or an environment, click on them in the left panel, then click on the "Export collection..." or "Export environment...", respectively.

![ExportCollection](./imgs/export_collection.jpg)

![ExportEnvironment](./imgs/export_environment.jpg)

The "Include secret variables" option, if selected, will include the values of secret variables in the exported files. If not selected, the values of secret variables will be replaced by an empty text.

The destination file format can be selected on the exportation window.

When exporting a collection in the Pororoca format, the collection's environments will also be carried in the file - there is no need to export each environment individually.

![ExportCollectionFileFormat](./imgs/export_collection_format.jpg)
![ExportCollectionFileFormat](./imgs/export_collection_format.png)

## Import

### Collection

To import a collection, go to the top menu, select "File", then "Import collection..." option. A select file dialog will open.

![ImportCollection](./imgs/import_collection.jpg)

*Note*: Postman requests that have file parameters use a different file path scheme than Pororoca. After importing, make sure the file paths are correct, for example, in requests' bodies.

### Environment

To import an environment, expand your collection on the left panel and right-click on the "Environments" item. Then, "Import environment..." option. A select file dialog will open.

![ImportEnvironment](./imgs/import_environment.jpg)
To import an environment, expand your collection on the left panel and right-click on the "Environments" item. Then, "Import environment..." option. A select file dialog will open.
53 changes: 34 additions & 19 deletions docs/en-GB/Requests.md → docs/en-GB/HttpRequests.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Requests

* [General aspects](#general-aspects)
* [Creating](#creating)
* [Renaming](#renaming)
* [Copying, pasting and deleting](#copying-pasting-and-deleting)
* [Custom auth](#custom-auth)
* [Basic auth](#basic-authentication)
* [Bearer auth](#bearer-authentication)
* [Client certificate auth](#client-certificate-authentication)
* [Sending a request](#sending-a-request)
* [Searching and zooming text](#searching-and-zooming-text)
* [Saving a response](#saving-a-response)
* [TLS / SSL server certificate verification](#tls--ssl-server-certificate-verification)

## General aspects

A HTTP request is composed by:
* HTTP method / verb
* Request URL
Expand All @@ -15,33 +30,23 @@ A HTTP response contains:

## Creating

To create a new request, you can right-click on a collection or folder and select "New request". The new request will be visible and you can create as many requests as you want.

![NewRequest](./imgs/new_request.jpg)
To create a new request, click on a collection or folder and select "New HTTP request". You can also do that clicking with your mouse's right button.

## Renaming

To rename your request, click on the request in the left panel, then, on the main screen, click on the pencil icon, at the top right. This will enable the request name for edition. After changing, click on the check icon to apply the new name.

![RenameRequest](./imgs/rename_request.jpg)
To rename your request, click on the pencil icon, at the top right. This will enable the request name for edition.

## Copying, pasting and deleting

To copy a request, right-click on it in the left panel and select "Copy". Then, right-click on a collection or folder and select "Paste".

To delete a request, right-click on it, "Delete".
To copy, paste or delete a request, right-click on it in the left panel.

You can select more than one request or folder at the same time and copy or delete them together.

"Move Up" and "Move Down" change the order of requests inside a collection or folder.

![RightClickRequest](./imgs/right_click_request.jpg)
![RightClickRequest](./imgs/right_click_request.png)

## Custom auth

Custom auth enables you to set authentication parameters, instead of typing an Authorization header manually. Two types of authentication are supported: Basic and Bearer.

![RequestBasicAuthenticationExample](./imgs/request_basic_authentication_example.jpg)
Custom auth enables you to set authentication parameters, instead of typing an Authorization header manually. Three types of authentication are supported: Basic, Bearer and Client certificate.

### Basic authentication

Expand All @@ -65,16 +70,26 @@ The two accepted client certificate types are PKCS#12 and PEM. This [page](https

To send a request, click on the button "Send", at the top right of the screen. You can abort the request by clicking on the "Cancel" button. The timeout period is 5 minutes.

### Searching and zooming text

In the text editors, you can search words by pressing `Ctrl+F`.

By scrolling the mouse wheel up and down, you can increase or decrease the font size.

![TextEditorZoomAndSearchWords](./imgs/text_editor_zoom_and_search.png)

### Saving a response

You can save the response body to a file, by clicking on the "Save as..." button.

![ResponseExample](./imgs/response_save_as_example.jpg)
![ResponseExample](./imgs/response_save_as_example.png)

## TLS / SSL server certificate verification

By default, Pororoca verifies server SSL / TLS certificates on HTTPS connections, and if there are any validation failures, the request will not go forward, like in the picture below.

![TLSCertificateValidationFailureExample](./imgs/tls_certificate_validation_failure_example.jpg)
![TLSCertificateValidationFailureExample](./imgs/tls_certificate_validation_failure_example.png)

To disable server TLS certificate check, go to the top menu, "Options", and select "Disable TLS verification".
To disable server TLS certificate check, click on the button on the bottom, or go to the top menu, "Options", and select "Disable TLS verification".

![DisableTLSCertificateValidation](./imgs/disable_tls_certificate_check.jpg)
![DisableTLSCertificateValidation](./imgs/disable_tls_certificate_check.png)
Loading

0 comments on commit 479b327

Please sign in to comment.