Class: MockRequest

@nginstack/engine/lib/testing/http/MockRequest~ MockRequest


new MockRequest(opt_options)

Classe utilizada para simular uma request nos testes unitários.

Parameters:
Name Type Description
opt_options Object

Parâmetros opcionais.

Properties
Name Type Argument Description
path string <optional>

Caminho utilizado na requisição.

method string <optional>

Verbo HTTP utilizado na requisição.

headers Object.<string> <optional>

Cabeçalhos HTTP utilizados na requisição.

params Object.<string> <optional>

Parâmetros enviados numa requisição.

body string| Record.<string, *> <optional>

Corpo da requisição.

Extends

Members


acceptLanguage :string

Cabeçalho HTTP que indica as línguas desejadas pelo requisitante.

Type:
  • string
Inherited From:

body :module:@nginstack/engine/lib/http/RequestBody~RequestBody

Corpo da requisição.

Type:
Inherited From:

clientAddress :string

Endereço IP do computador do cliente final da requisição, normalmente o navegador do usuário.

Quando a requisição passa por proxies ou balanceadores de carga, o endereço é obtido dos cabeçalhos "X-Forwarded-For" ou "Forwarded" informados por eles. Caso os dois sejam informados, prevalece o "X-Forwarded-For". Esses cabeçalhos somente são confiáveis quando enviados por um proxy registrado no cadastro "Administração do sistema > Servidores > Proxies confiáveis", o que é indicado pela propriedade clientAddressVerified. Sem cabeçalhos de encaminhamento, é igual a remoteAddress.

Type:
  • string
Inherited From:
See:
Example
// Requisição com "X-Forwarded-For: 203.0.113.5" enviada por um proxy confiável
request.clientAddress; // => '203.0.113.5'
request.clientAddressVerified; // => true

clientAddressVerified :boolean

Indica se o endereço do cliente, obtido pela propriedade clientAddress, é confiável.

É falso quando o endereço foi informado pelos cabeçalhos de encaminhamento e não pode ser verificado: quando eles foram enviados por um computador que não está registrado no cadastro de proxies confiáveis, quando o endereço antecede um elemento da cadeia sem endereço válido, como "unknown", ou quando os cabeçalhos "X-Forwarded-For" e "Forwarded" indicam clientes diferentes. Nesses casos, o endereço pode ter sido forjado pelo próprio cliente e não deve ser utilizado em validações de segurança.

Type:
  • boolean
Inherited From:
See:

content :string

Conteúdo enviado pelo cliente no corpo da requisição.

Importante: essa propriedade aloca o corpo da requisição em memória e não deve ser utilizada em requisições de tamanho elevado. Tentar ler o corpo de uma requisição com mais de 20MB irá gerar um erro. Utilize o método #read para tratar requisições maiores.

Type:
  • string
Inherited From:
See:

contentLength :number

Tamanho em bytes do conteúdo contido no corpo da requisição informado pelo cliente por meio do cabeçalho content-length.

O valor desta propriedade poderá ser diferente do tamanho de #content no caso de conteúdos textuais codificados em UTF-8. O Engine converterá automaticamente esses conteúdos para ISO-8859-1, o que poderá provocar uma redução do tamanho do conteúdo disponibilizado pela propriedade #content. Nesses casos, o método #read pode ser utilizado para ter acesso ao conteúdo original enviado pelo cliente.

Type:
  • number
Inherited From:
See:

contentType :string

Tipo de mídia do conteúdo enviado pelo cliente.

Ver http://www.iana.org/assignments/media-types/media-types.xhtml para mais detalhes.

Type:
  • string
Inherited From:
See:

cookieCount :number

Quantidade de cookies enviados na requisição.

Type:
  • number
Inherited From:

forwardedFor :string

Endereços da cadeia de encaminhamento da requisição, separados por vírgula, do cliente final ao último proxy, conforme informados pelos cabeçalhos "X-Forwarded-For" ou "Forwarded". Caso os dois sejam informados, prevalece o "X-Forwarded-For". Os endereços são normalizados: as portas e os colchetes dos endereços IPv6 são removidos. Os identificadores ofuscados ou "unknown" do cabeçalho "Forwarded" são mantidos como informados, e um elemento sem o parâmetro "for" é representado por "unknown". É vazio quando a requisição não informa esses cabeçalhos.

O endereço do computador que realizou a requisição, normalmente o último proxy, não faz parte da cadeia e é obtido pela propriedade remoteAddress. Somente os endereços acrescentados por proxies confiáveis são garantidos. Os demais podem ter sido forjados pelo cliente. Para obter o endereço do cliente final, utilize a propriedade clientAddress e verifique se ele é confiável pela propriedade clientAddressVerified.

Type:
  • string
Inherited From:
See:
Example
// Requisição com "Forwarded: for=203.0.113.5;proto=https, for=\"[2001:db8::1]:4711\""
request.forwardedFor; // => '203.0.113.5, 2001:db8::1'

forwardedHost :string

Host solicitado pelo cliente ao primeiro proxy da requisição, conforme informado pelos cabeçalhos "X-Forwarded-Host" ou "Forwarded". É vazio quando a requisição não passou por um proxy que informe o host.

O valor é apenas informativo, pois esses cabeçalhos podem ter sido forjados pelo cliente.

Type:
  • string
Inherited From:

forwardedProto :string

Protocolo utilizado pelo cliente para acessar o primeiro proxy da requisição, como "https", conforme informado pelos cabeçalhos "X-Forwarded-Proto" ou "Forwarded". É vazio quando a requisição não passou por um proxy que informe o protocolo.

O valor é apenas informativo, pois esses cabeçalhos podem ter sido forjados pelo cliente.

Type:
  • string
Inherited From:
See:

headers :Record.<string, string>

Cabeçalhos informados na requisição HTTP representados por um objeto cujos nomes de propriedades são os nomes dos campos de cabeçalho, normalizados em caixa baixa, e os valores das propriedades são os valores dos campos de cabeçalho.

Type:
  • Record.<string, string>
Inherited From:
Example
// Script que exibe todos os cabeçalhos enviados pelo navegador
const headers = request.headers;
for (const name in headers){
   response.write(name + ": " + headers[name] + "<br>");
}

host :string

Nome do servidor solicitado pelo usuário. Caso a URL informada seja "www.company.com/index.htm", o host será "www.company.com".

Type:
  • string
Inherited From:

httpMessage :string

Mensagem HTTP completa.

Type:
  • string
Inherited From:

localAddress :string

Endereço IP da interface de rede que atendeu a requisição HTTP.

Type:
  • string
Inherited From:
See:

localHost :string

Nome associado ao endereço IP da interface de rede que atendeu a requisição HTTP.

Type:
  • string
Inherited From:
See:

localPort :number

Porta TCP que atendeu a requisição HTTP.

Type:
  • number
Inherited From:
See:

method :string

Indica o método HTTP que será sendo invocado. Poderá ser: GET, POST, PUT, PATCH, DELETE, HEAD ou OPTIONS.

Type:
  • string
Inherited From:

methodType :string

Indica o método HTTP que será sendo invocado. Poderá ser: GET, POST, PUT, PATCH, DELETE, HEAD ou OPTIONS.

Type:
  • string
Inherited From:
Deprecated:
  • Utilize #method.

parameterCount :number

Quantidade de parâmetros enviados na requisição. Parâmetros podem ser enviados no corpo da requisição ou na query string da URL.

Type:
  • number
Inherited From:

params :Object.<string>

Retorna um objeto com todos os parâmetros informados na "query string" da URL da requisição. Para possibilitar a pesquisa, os nomes dos parâmetros serão em minúsculo no objeto retornado. Caso haja um parâmetro definido mais de uma vez, será considerado o último valor informado na URL. Mais detalhes em http://en.wikipedia.org/wiki/Query_string.

Type:
  • Object.<string>
Inherited From:

path :string

Arquivo requisitado. Caso a URL informada seja "www.company.com.br/index.htm", o path será "/index.htm".

Type:
  • string
Inherited From:

readTimeout :number

Tempo máximo de espera em milissegundos para a leitura do conteúdo. O timeout de leitura será empregado no método #read quando for solicitada uma quantidade de dados superior ao que já foi recebido do cliente.

Type:
  • number
Inherited From:

referer :string

Arquivo que originou a requisição. Exemplo: se o cliente abrir a página /index.htm e nesta for requisitado um segundo documento, o referer deste último será /index.htm.

Type:
  • string
Inherited From:

remoteAddress :string

Endereço IP do computador que realizou a requisição HTTP.

Quando a requisição passa por proxies ou balanceadores de carga, este é o endereço do último deles. Utilize a propriedade clientAddress para obter o endereço do cliente final.

Type:
  • string
Inherited From:
See:

remoteHost :string

Nome do computador que realizou a requisição HTTP.

Type:
  • string
Inherited From:
See:

remotePort :number

Porta TCP utilizada pelo computador remoto para realizar a requisição HTTP.

Type:
  • number
Inherited From:
See:

userAgent :string

Identificação do aplicativo cliente que fez a requisição HTTP.

Type:
  • string
Inherited From:

xml :string

Representação DOM dos dados enviados pelo browser para o servidor. Esta propriedade somente estará preenchida quando o tipo dos dados enviados for "text/xml". Para outros tipos, será null.

Type:
  • string
Inherited From:
See:

Methods


getCookie(indexOrName)

Obtém o valor do cookie informado.

Parameters:
Name Type Description
indexOrName number| string

Índice ou nome do cookie. O índice é um valor dentro da faixa de 0 a #cookieCount - 1.

Inherited From:
See:

getCookieName(index)

Obtém o nome do cookie na posição informada.

Parameters:
Name Type Description
index

Índice ou nome do cookie. O índice é um valor dentro da faixa de 0 a #cookieCount - 1.

Inherited From:
See:

getParameter(indexOrName)

Obtém o valor do parâmetro informado.

Parameters:
Name Type Description
indexOrName number| string

Índice ou nome do parâmetro. O índice é um valor dentro da faixa de 0 a #parameterCount - 1.

Inherited From:
Deprecated:
  • Yes
See:
Returns:

Valor do parâmetro.

Type
string

getParameterName(index)

Obtém o nome do parâmetro informado.

Parameters:
Name Type Description
index number| string

Índice do parâmetro. O índice é um valor dentro da faixa de 0 a #parameterCount - 1.

Inherited From:
See:

isHttps( [trustProxy])

Avalia se a requisição foi estabelecida utilizando o protocolo HTTPS.

A conexão HTTPS pode ter sido estabelecida diretamente até o Engine ou indiretamente via um proxy reverso configurado com o certificado digital. Neste último caso, o tráfego entre o proxy reverso e o Engine pode ter sido estabelecido via HTTP.

Por padrão, o cabeçalho "x-forwarded-proto" é aceito de qualquer origem, sem depender do cadastro de proxies confiáveis, para que ambientes atrás de balanceadores de carga funcionem sem configuração adicional. Um cliente que forje esse cabeçalho altera apenas a resposta da sua própria requisição. Informe false em trustProxy quando o resultado for utilizado em uma decisão de segurança que não possa depender de um valor informado pelo cliente.

Parameters:
Name Type Argument Default Description
trustProxy boolean <optional>
true

Indica se o cabeçalho "x-forwarded-proto" recebido deve ser considerado como confiável para avaliar se o protocolo utilizado foi o HTTPS.

Inherited From:
Returns:

True se a conexão for HTTPS.

Type
boolean

param(name, opt_default)

Obtém um parâmetro informado na "query string" da URL da requisição. Mais detalhes do formato em http://en.wikipedia.org/wiki/Query_string.

Parameters:
Name Type Description
name string

Nome do parâmetro.

opt_default *

Valor padrão a ser utilizado caso o parâmetro não tenha sido informado na URL. Caso não seja informado, será considerado null.

Inherited From:
Returns:

Valor do parâmetro informado ou "opt_default" caso não haja o parâmetro informado na "query string" da URL.

Type
string

saveToStream(stream)

Grava o corpo da requisição no arquivo ou stream informado.

Parameters:
Name Type Description
stream module:@nginstack/engine/lib/io/File~File| module:@nginstack/engine/lib/io/MemoryStream~MemoryStream

Objeto stream onde o corpo da requisição será gravado.

Inherited From:
Overrides:
Example
const file = new File(path);
try {
  request.saveToStream(file);
} finally {
  file.close();
}