Skip to content

Commit

Permalink
Merge branch 'dev2' of https://github.com/totvs/tds-vscode into dev2
Browse files Browse the repository at this point in the history
  • Loading branch information
lwtnb-wrk committed May 28, 2024
2 parents 66da0d4 + 7620578 commit 3c30dfd
Show file tree
Hide file tree
Showing 10 changed files with 264 additions and 5 deletions.
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## Versão [2.0.NEXT]

### Melhorias

#### Abrir uma janela do navegador quando iniciar o debug do tipo `totvs_language_web_debug` [#1233](https://github.com/totvs/tds-vscode/issues/1233)

Foi adicionado a possibilidade de passar parâmetros para o navegador a ser utilizado na depuração do tipo [`totvs_language_web_debug`](./docs/debugger.md#totvs-language-web-debug-html).

### Correções

#### Classe no TL++ [#1225](https://github.com/totvs/tds-vscode/issues/1225)

Em estruturas sem a devida finalização, p.e. `class` e `end class`, poderia gerar lista de símbolos (visão _Outline_) incorreta e/ou gerar um erro no log.
Foi adicionado tratamento para esses blocos, de forma a evitar a ocorrência.

## Versão [2.0.7]

### Correções
Expand Down
14 changes: 13 additions & 1 deletion docs/debugger.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,21 @@ No caso de efetuar uma depuração via `SmartClient Html`, é necessário inform

![Web Navigator](images/web-navigator.png)

Caso queira modificar o comportamento do navegador no momento da sua inicialização, você pode informar uma lista de argumentos que serão passados para o navegador via linha de comandos. Por exemplo, para forçar a abertura de uma nova janela no `FireFox`, informe na lista `Web: Navigator Arguments` com o valor `["-new-window"]`. Para maiores detalhes, consulte a documentação do seu navegador.

![Web Arguments](images/web-arguments.png)

| Navegador |
| --------- |
| [Firefox](https://wiki.mozilla.org/Firefox/CommandLineOptions) |
| [Chromium](https://www.chromium.org/developers/how-tos/run-chromium-with-flags/) |
| [Edge](https://textslashplain.com/2022/01/05/edge-command-line-arguments/) Não oficial |

> Páginas acessadas em Maio/2024.
| Devido a uma limitação na execução do navegador `Safari` por linha de comando, este navegador não é suportado para depuração via `SmartClient HTML`.

## Smartclient MacOS<a name="sc-macos"></a>
## SmartClient MacOS<a name="sc-macos"></a>

A configuração do parâmetro `smartclientBin` para o MacOS deve seguir o exemplo a seguir.

Expand Down
Binary file added docs/images/web-arguments.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,14 @@
"default": "",
"description": "%tds.package.web.navigator.debug%"
},
"totvsLanguageServer.web.arguments": {
"type": "array",
"default": [],
"items": {
"type": "string"
},
"description": "%tds.package.web.arguments%"
},
"totvsLanguageServer.editor.show.notification": {
"scope": "window",
"type": "string",
Expand Down
1 change: 1 addition & 0 deletions package.nls.es.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"tds.package.compilation.includes": "La compilación incluye.",
"tds.package.compilation.tempDir": "Directorio temporal",
"tds.package.web.navigator.debug": "Navegador web (depuración con SmartClientHtml).",
"tds.package.web.arguments": "Argumentos del navegador web",
"tds.package.editor.notification.show": "Nivel de notificación que se mostrará en 'popup'",
"tds.package.editor.notification.show.none": "Ninguna",
"tds.package.editor.notification.show.only_errors": "Solo errores",
Expand Down
1 change: 1 addition & 0 deletions package.nls.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"tds.package.compilation.includes": "Compilation includes.",
"tds.package.compilation.tempDir": "Temporary directory",
"tds.package.web.navigator.debug": "Web navigator (debug with SmartClientHtml).",
"tds.package.web.arguments": "Web navigator arguments",
"tds.package.editor.notification.show": "Notification Level to be show in 'popup'",
"tds.package.editor.notification.show.none": "None",
"tds.package.editor.notification.show.only_errors": "Only errors",
Expand Down
1 change: 1 addition & 0 deletions package.nls.pt-br.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"tds.package.compilation.includes": "Compilação inclui.",
"tds.package.compilation.tempDir": "Diretório temporário",
"tds.package.web.navigator.debug": "Navegador da Web (depuração com SmartClientHtml).",
"tds.package.web.arguments": "Argumentos para navegador web",
"tds.package.editor.notification.show": "Nível de notificação a ser exibido no 'pop-up'",
"tds.package.editor.notification.show.none": "Nenhum",
"tds.package.editor.notification.show.only_errors": "Apenas erros",
Expand Down
1 change: 1 addition & 0 deletions package.nls.ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"tds.package.compilation.includes": "Компиляция включает.",
"tds.package.compilation.tempDir": "временный каталог",
"tds.package.web.navigator.debug": "Веб-навигатор (отладка с помощью SmartClientHtml).",
"tds.package.web.arguments": "Аргументы веб-навигатора",
"tds.package.editor.notification.show": "Уровень уведомления будет отображаться во всплывающем окне",
"tds.package.editor.notification.show.none": "Нет",
"tds.package.editor.notification.show.only_errors": "Только ошибки",
Expand Down
10 changes: 6 additions & 4 deletions src/debug/TotvsConfigurationWebProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import { TotvsConfigurationProvider } from "./TotvsConfigurationProvider";

export class TotvsConfigurationWebProvider
extends TotvsConfigurationProvider
implements DebugConfigurationProvider
{
implements DebugConfigurationProvider {
static _TYPE: string = "totvs_language_web_debug";
static _NAME: string = "TOTVS Language Web Debug (SmartClient HTML)";
static _SC_BIN: string = "http://localhost:8080";
Expand All @@ -19,16 +18,19 @@ export class TotvsConfigurationWebProvider

protected finalize(config: DebugConfiguration) {
const cfg = vscode.workspace.getConfiguration("totvsLanguageServer");
const webNavigator: string | undefined = cfg.get("web.navigator");
const webNavigator: string = cfg.get("web.navigator") || "";
const webNavigatorArgs: string[] = cfg.get("web.arguments") || [];

if (!webNavigator || webNavigator === "") {
if (webNavigator === "") {
window.showErrorMessage(
vscode.l10n.t("Parameter WebNavigator not informed.")
);

return undefined; // abort launch
}

config.webNavigator = webNavigator;
config.webNavigatorArgs = webNavigatorArgs;

return config;
}
Expand Down
218 changes: 218 additions & 0 deletions test/resources/projects/advpl/files/long_names/GPER490SVTestCase.prw
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
#Include "PROTHEUS.ch"
#Include "FWMVCDEF.ch"

/*/{Protheus.doc} GPER490SVTestCase
Classe de casos de teste do Relatório de Admitidos e Desligados Turnover
@type Class
@version 12.1.2310
@author karina.alves
@since 23/05/2024
/*/
Class GPER490SVTestCase From FwDefaultTestCase
// Criação dos atributos da classe
Data oHelper As Object // Instância da classe FwTestHelper
// Criação dos métodos da classe
Method GPER490SVTestCase() Constructor
Method SetUpClass()
Method GPER490SV_001()
EndClass
/*/{Protheus.doc} GPER490SVTestCase:GPER490SVTestCase()
Método construtor da classe.
@type Method
@version 12.1.2310
@author karina.alves
@since 23/05/2024
@return Variant, Retorno nulo pré-fixado
/*/
Method GPER490SVTestCase() As Variant Class GPER490SVTestCase
// Declaração das variáveis locais
Local oHelper As Object // Instância da classe FwTestHelper
// Inicialização das variáveis
oHelper := FwTestHelper():New()
_Super:FwDefaultTestSuite()
// Adiciona os métodos de teste da classe e suas respectivas descrições
If (oHelper:EnvUpdExp() .and. GetRPORelease() >= "12.1.2310")
::AddTestMethod("GPER490SV_001", NIL, "Relatório admitidos e desligados turnover com funcionário admitido sem transferência")
::AddTestMethod("GPER490SV_002", NIL, "Relatório admitidos e desligados turnover com funcionário admitido com transferência")
::AddTestMethod("GPER490SV_003", NIL, "Relatório admitidos e desligados turnover com funcionário admitido com salário")
/*::AddTestMethod("GPER490SV_004", NIL, "Relatório admitidos e desligados turnover com funcionário admitido com tipo de contratação")
::AddTestMethod("GPER490SV_005", NIL, "Relatório admitidos e desligados turnover com funcionário desligado com aviso prévio e motivo de desligamento")
*/EndIf
Return NIL
/*/{Protheus.doc} GPER490SVTestCase:SetUpClass()
Instancia os casos de teste do módulo.
@type Method
@version 12.1.2310
@author karina.alves
@since 23/05/2024
@return Object, Instância da classe FwTestHelper
/*/
Method SetUpClass() As Object Class GPER490SVTestCase
// Declaração das variáveis locais
Local oHelper As Object // Instância da classe FwTestHelper
// Inicialização das variáveis
oHelper := FwTestHelper():New()
Return oHelper
/*/{Protheus.doc} GPER490SVTestCase:GPER490SV_001()
Relatório admitidos e desligados turnover com funcionário admitido sem transferência
@type Method
@version 12.1.2310
@author karina.alves
@since 23/05/2024
@return Object, Instância da classe FwTestHelper
/*/
Method GPER490SV_001() As Object Class GPER490SVTestCase
// Declaração das variáveis locais
Local oHelper As Object // Instância da classe FwTestHelper
Local cReport As Character // Nome do design (.trp) que será testado
Local cFileName As Character // Base do nome do arquivo que o test case irá gerar (por convenção, estamos usando o identificador do pergunte (SX1) associado a objeto de negócio mais o número identificador do método de teste)
Local aReplace As Array
Local aReplaceX As Array
// Inicialização das variáveis
oHelper := FwTestHelper():New()
cReport := "rh.sv.gpe.gper490.default.rep"
cFileName := "GPER490SV_002"
aReplace := {}
aReplaceX := {}
oHelper:Activate()
// Define os parâmetros do relatório
oHelper:UTParamSmartView("ReferenceDateFrom", FwTimeStamp(6, CToD("01/01/2000"))) // Data de Referência De
oHelper:UTParamSmartView("ReferenceDateTo", FwTimeStamp(6, CToD("31/01/2000"))) // Data de Referência Até
oHelper:UTParamSmartView("BranchCodeFrom", "D MG 01") //Filial De
oHelper:UTParamSmartView("BranchCodeTo", "D MG 01") // Filial Até
oHelper:UTParamSmartView("CostCenterCodeFrom", "") //CC De
oHelper:UTParamSmartView("CostCenterCodeTo", "") //CC Ate
oHelper:UTParamSmartView("EmployeeCodeFrom", "110006") //Matrícula De
oHelper:UTParamSmartView("EmployeeCodeTo", "110006") //Matrícula Até
oHelper:UTParamSmartView("NameFrom", "") // Nome Funcionário De
oHelper:UTParamSmartView("NameTo", "") // Nome Funcionário Até
oHelper:UTParamSmartView("EmployeeSituation", "") // Situações
oHelper:UTParamSmartView("EmployeeCategory", "") // Categoria
oHelper:UTParamSmartView("Funds", "") // Verbas
oHelper:UTParamSmartView("BreakBy", "") // Quebra Por Filial
// Gera o relatório
oHelper:UTGenerateSmartView(cReport, cFileName)
// Substitui o conteúdo que está entre duas strings para comparação do arquivo
AAdd(aReplaceX, {"Data de referência:", "Página", "01/01/2015 | 01:01:01"})
// Compara relatório com Baseline
oHelper:UTCompareSmartView(cFileName, aReplace, aReplaceX, .T.)
oHelper:AssertTrue(oHelper:lOk, "")
Return oHelper
/*/{Protheus.doc} GPER490SVTestCase:GPER490SV_002()
Relatório admitidos e desligados turnover com funcionário admitido com transferência
@type Method
@version 12.1.2310
@author karina.alves
@since 23/05/2024
@return Object, Instância da classe FwTestHelper
/*/
Method GPER490SV_002() As Object Class GPER490SVTestCase
// Declaração das variáveis locais
Local oHelper As Object // Instância da classe FwTestHelper
Local cReport As Character // Nome do design (.trp) que será testado
Local cFileName As Character // Base do nome do arquivo que o test case irá gerar (por convenção, estamos usando o identificador do pergunte (SX1) associado a objeto de negócio mais o número identificador do método de teste)
Local aReplace As Array
Local aReplaceX As Array
// Inicialização das variáveis
oHelper := FwTestHelper():New()
cReport := "rh.sv.gpe.gper490.default.rep"
cFileName := "GPER490SV_002"
aReplace := {}
aReplaceX := {}
oHelper:Activate()
// Define os parâmetros do relatório
oHelper:UTParamSmartView("ReferenceDateFrom", FwTimeStamp(6, CToD("01/10/2010"))) // Data de Referência De
oHelper:UTParamSmartView("ReferenceDateTo", FwTimeStamp(6, CToD("30/10/2010"))) // Data de Referência Até
oHelper:UTParamSmartView("BranchCodeFrom", "D MG 01") //Filial De
oHelper:UTParamSmartView("BranchCodeTo", "D MG 01") // Filial Até
oHelper:UTParamSmartView("CostCenterCodeFrom", "") //CC De
oHelper:UTParamSmartView("CostCenterCodeTo", "") //CC Ate
oHelper:UTParamSmartView("EmployeeCodeFrom", "000333") //Matrícula De
oHelper:UTParamSmartView("EmployeeCodeTo", "000333") //Matrícula Até
oHelper:UTParamSmartView("NameFrom", "") // Nome Funcionário De
oHelper:UTParamSmartView("NameTo", "") // Nome Funcionário Até
oHelper:UTParamSmartView("EmployeeSituation", "") // Situações
oHelper:UTParamSmartView("EmployeeCategory", "") // Categoria
oHelper:UTParamSmartView("Funds", "") // Verbas
oHelper:UTParamSmartView("BreakBy", "") // Quebra Por Filial
// Gera o relatório
oHelper:UTGenerateSmartView(cReport, cFileName)
// Substitui o conteúdo que está entre duas strings para comparação do arquivo
AAdd(aReplaceX, {"Data de referência:", "Página", "01/01/2015 | 01:01:01"})
// Compara relatório com Baseline
oHelper:UTCompareSmartView(cFileName, aReplace, aReplaceX, .T.)
oHelper:AssertTrue(oHelper:lOk, "")
Return oHelper
/*/{Protheus.doc} GPER490SVTestCase:GPER490SV_003()
Relatório admitidos e desligados turnover com funcionário admitido com salário
@type Method
@version 12.1.2310
@author karina.alves
@since 23/05/2024
@return Object, Instância da classe FwTestHelper
/*/
Method GPER490SV_003() As Object Class GPER490SVTestCase
// Declaração das variáveis locais
Local oHelper As Object // Instância da classe FwTestHelper
Local cReport As Character // Nome do design (.trp) que será testado
Local cFileName As Character // Base do nome do arquivo que o test case irá gerar (por convenção, estamos usando o identificador do pergunte (SX1) associado a objeto de negócio mais o número identificador do método de teste)
Local aReplace As Array
Local aReplaceX As Array
// Inicialização das variáveis
oHelper := FwTestHelper():New()
cReport := "rh.sv.gpe.gper490.default.rep"
cFileName := "GPER490SV_003"
aReplace := {}
aReplaceX := {}
oHelper:Activate()
// Define os parâmetros do relatório
oHelper:UTParamSmartView("ReferenceDateFrom", FwTimeStamp(6, CToD("01/10/2010"))) // Data de Referência De
oHelper:UTParamSmartView("ReferenceDateTo", FwTimeStamp(6, CToD("30/10/2010"))) // Data de Referência Até
oHelper:UTParamSmartView("BranchCodeFrom", "D MG 01") //Filial De
oHelper:UTParamSmartView("BranchCodeTo", "D MG 01") // Filial Até
oHelper:UTParamSmartView("CostCenterCodeFrom", "") //CC De
oHelper:UTParamSmartView("CostCenterCodeTo", "") //CC Ate
oHelper:UTParamSmartView("EmployeeCodeFrom", "000333") //Matrícula De
oHelper:UTParamSmartView("EmployeeCodeTo", "000333") //Matrícula Até
oHelper:UTParamSmartView("NameFrom", "") // Nome Funcionário De
oHelper:UTParamSmartView("NameTo", "") // Nome Funcionário Até
oHelper:UTParamSmartView("EmployeeSituation", "") // Situações
oHelper:UTParamSmartView("EmployeeCategory", "") // Categoria
oHelper:UTParamSmartView("Funds", "") // Verbas
oHelper:UTParamSmartView("BreakBy", "") // Quebra Por Filial
// Gera o relatório
oHelper:UTGenerateSmartView(cReport, cFileName)
// Substitui o conteúdo que está entre duas strings para comparação do arquivo
AAdd(aReplaceX, {"Data de referência:", "Página", "01/01/2015 | 01:01:01"})
// Compara relatório com Baseline
oHelper:UTCompareSmartView(cFileName, aReplace, aReplaceX, .T.)
oHelper:AssertTrue(oHelper:lOk, "")
Return oHelper

0 comments on commit 3c30dfd

Please sign in to comment.