API JavaScript do aplicativo Fazer um Teste

Fazer um Teste é um aplicativo UWP baseado em navegador que renderiza avaliações online bloqueadas para testes decisivos, permitindo que os educadores se concentrem no conteúdo da avaliação em vez de em como fornecer um ambiente de teste seguro. Para isso, ele usa uma API JavaScript que qualquer aplicativo Web pode utilizar. A API do Fazer um Teste dá suporte à API padrão do navegador SBAC para testes básicos decisivos comuns.

Consulte a referência técnica do aplicativo Fazer um Teste para obter mais informações sobre o aplicativo em si. Para obter ajuda para solucionar problemas, consulte Solucionar problemas do aplicativo Fazer um Teste da Microsoft com o visualizador de eventos.

Documentação de referência

As APIs do aplicativo Fazer um Teste existem nos namespaces a seguir. Observe que todas as APIs dependem de um objeto global SecureBrowser.

Namespace Descrição
namespace de segurança Contém APIs que permitem bloquear o dispositivo para teste e impor um ambiente de teste.

Namespace de segurança

O namespace de segurança permite que você bloqueie o dispositivo, verifique a lista de processos de usuário e de sistema, obtenha endereços MAC e IP e limpe os recursos da Web armazenados em cache.

Método Descrição
lockDown Bloqueia o dispositivo para teste.
isEnvironmentSecure Determina se o contexto de bloqueio ainda está aplicado ao dispositivo.
getDeviceInfo Obtém detalhes sobre a plataforma na qual o aplicativo de teste está em execução.
examineProcessList Obtém a lista de processos de usuário e de sistema em execução.
close Fecha o navegador e desbloqueia o dispositivo.
getPermissiveMode Verifica se o modo permissivo está ativado ou desativado.
setPermissiveMode Ativa ou desativa o modo permissivo.
emptyClipBoard Limpa a área de transferência do sistema.
getMACAddress Obtém a lista de endereços MAC para o dispositivo.
getStartTime Obtém a hora em que o aplicativo de teste foi iniciado.
getCapability Consulta se uma funcionalidade está habilitada ou desabilitada.
setCapability Habilita ou desabilita a funcionalidade especificada.
isRemoteSession Verifica se a sessão atual está conectada remotamente.
isVMSession Verifica se a sessão atual está em execução em uma máquina virtual.

lockDown

Bloqueia o dispositivo. Também usado para desbloquear o dispositivo. O aplicativo Web de teste invocará essa chamada antes de permitir que os alunos iniciem o teste. O implementador é necessário para executar todas as ações necessárias para proteger o ambiente de teste. As etapas tomadas para proteger o ambiente são específicas do dispositivo e, por exemplo, incluem aspectos como desabilitar capturas de tela, desabilitar o chat de voz quando estiver no modo seguro, limpar a área de transferência do sistema, entrar em um modo de quiosque, desabilitar espaços em dispositivos OSX 10.7+ etc. O aplicativo de teste habilitará o bloqueio antes do início de uma avaliação e desabilitará o bloqueio quando o aluno concluir a avaliação e estiver fora do teste seguro.

Sintaxe
void SecureBrowser.security.lockDown(Boolean enable, Function onSuccess, Function onError);

Parâmetros

  • enable - true para executar o aplicativo Fazer um Teste acima da tela de bloqueio e aplicar políticas discutidas nesse documento. false interrompe a execução do aplicativo Fazer um Teste acima da tela de bloqueio e fecha-o, a menos que o aplicativo não esteja bloqueado; nesse caso, não há nenhum efeito.
  • onSuccess- [opcional] A função a ser chamada após o bloqueio ter sido habilitado ou desabilitado com êxito. Deve estar na forma Function(Boolean currentlockdownstate).
  • onError- [opcional] A função a ser chamada em caso de falha na operação de bloqueio. Deve estar na forma Function(Boolean currentlockdownstate).

Requisitos
Windows 10, versão 1709 ou posterior


isEnvironmentSecure

Determina se o contexto de bloqueio ainda está sendo aplicado ao dispositivo. O aplicativo Web de teste invocará isso antes de permitir que os alunos iniciem o teste e periodicamente quando estiverem fazendo o teste.

Sintaxe
void SecureBrowser.security.isEnvironmentSecure(Function callback);

Parâmetros

  • callback- A função a ser chamada quando essa função for concluída. Ela deve estar no formato Function(String state) em que state é uma cadeia de caracteres JSON contendo dois campos. O primeiro é o campo secure, que mostrará true somente se todos os bloqueios necessários tiverem sido habilitados (ou os recursos desabilitados) para habilitar um ambiente de teste seguro e nenhum deles tiver sido comprometido desde que o aplicativo entrou no modo de bloqueio. O outro campo, messageKey, inclui outros detalhes ou informações específicas do fornecedor. A intenção aqui é permitir que os fornecedores coloquem informações adicionais que aumentem o sinalizador booliano secure:
{
    'secure' : "true/false",
    'messageKey' : "some message"
}

Requisitos
Windows 10, versão 1709 ou mais recente


getDeviceInfo

Obtém detalhes sobre a plataforma na qual o aplicativo de teste está em execução. Isso é usado para aumentar qualquer informação que tenha sido perceptível do agente do usuário.

Sintaxe
void SecureBrowser.security.getDeviceInfo(Function callback);

Parâmetros

  • callback- A função a ser chamada quando essa função for concluída. Deve estar na formato Function(String infoObj) em que infoObj é uma cadeia de caracteres JSON contendo vários campos. Os seguintes campos devem ter suporte:
    • os representa o tipo de SO (por exemplo, Windows, macOS, Linux, iOS, Android etc).
    • name representa o nome da versão do SO, se houver (por exemplo, Sierra, Ubuntu).
    • version representa a versão do SO (por exemplo, 10,1, 10 Pro etc).
    • brand representa a marca do navegador seguro (por exemplo, OAKS, CA, SmarterApp etc).
    • model representa o modelo de dispositivo somente para dispositivos móveis; nulo/não utilizado para navegadores de desktop.

Requisitos
Windows 10, versão 1709 ou mais recente


examineProcessList

Obtém a lista de todos os processos em execução no computador cliente de propriedade do usuário. O aplicativo de teste invocará isso para examinar a lista e compará-la com uma lista de processos que foram considerados listados por negação durante o ciclo de teste. Essa chamada deve ser invocada no início de uma avaliação e periodicamente enquanto o aluno está fazendo a avaliação. Se um processo listado por negação for detectado, a avaliação deverá ser interrompida para preservar a integridade do teste.

Sintaxe
void SecureBrowser.security.examineProcessList(String[] denylistedProcessList, Function callback);

Parâmetros

  • denylistedProcessList - A lista de processos que o aplicativo de teste listou como negados.
    callback- A função a ser invocada quando os processos ativos foram encontrados. Deve estar no formato: Function(String foundDenylistedProcesses) onde foundDenylistedProcesses está no formato: "['process1.exe','process2.exe','processEtc.exe']". Ficará vazio se nenhum processo listado por negação tiver sido encontrado. Se for nulo, isso indicará que ocorreu um erro na chamada de função original.

Comentários A lista não inclui processos do sistema.

Requisitos
Windows 10, versão 1709 ou mais recente


close

Fecha o navegador e desbloqueia o dispositivo. O aplicativo de teste deve invocar isso quando o usuário optar por sair do navegador.

Sintaxe
void SecureBrowser.security.close(restart);

Parâmetros

  • restart - esse parâmetro é ignorado, mas deve ser fornecido.

Comentários No Windows 10, versão 1607, o dispositivo deve ser bloqueado inicialmente. Em versões posteriores, esse método fecha o navegador independentemente do dispositivo estar bloqueado.

Requisitos
Windows 10, versão 1709 ou mais recente


getPermissiveMode

O aplicativo Web de teste deve invocar esse método para determinar se o modo permissivo está ativado ou desativado. No modo permissivo, espera-se que um navegador relaxe alguns de seus ganchos de segurança rigorosos para permitir que a tecnologia adaptativa funcione com o navegador seguro. Por exemplo, navegadores que impedem agressivamente a apresentação de interfaces do usuário de outro aplicativo sobre eles podem querer relaxar isso quando estiverem no modo permissivo.

Sintaxe
void SecureBrowser.security.getPermissiveMode(Function callback)

Parâmetros

  • callback- A função a ser invocada quando esta chamada é concluída. Deve estar no forma: Function(Boolean permissiveMode) onde permissiveMode indica se o navegador está atualmente no modo permissivo. Se estiver indefinido ou nulo, ocorreu um erro na operação de obtenção.

Requisitos
Windows 10, versão 1709 ou mais recente


setPermissiveMode

O aplicativo Web de teste deve invocar esse método para ativar ou desativar o modo permissivo. No modo permissivo, espera-se que um navegador relaxe alguns de seus ganchos de segurança rigorosos para permitir que a tecnologia adaptativa funcione com o navegador seguro. Por exemplo, navegadores que impedem agressivamente a apresentação de interfaces do usuário de outro aplicativo sobre eles podem querer relaxar isso quando estiverem no modo permissivo.

Sintaxe
void SecureBrowser.security.setPermissiveMode(Boolean enable, Function callback)

Parâmetros

  • enable- O valor booliano que indica o status do modo permissivo pretendido.
  • callback- A função a ser invocada quando esta chamada é concluída. Deve estar no forma: Function(Boolean permissiveMode) onde permissiveMode indica se o navegador está atualmente no modo permissivo. Se estiver indefinido ou nulo, ocorreu um erro na operação de conjunto.

Requisitos
Windows 10, versão 1709 ou mais recente


emptyClipBoard

Limpa a área de transferência do sistema. O aplicativo de teste deve invocar isso para forçar a limpeza de todos os dados que possam estar armazenados na área de transferência do sistema. A função lockDown também executa essa operação.

Sintaxe
void SecureBrowser.security.emptyClipBoard();

Requisitos
Windows 10, versão 1709 ou mais recente


getMACAddress

Obtém a lista de endereços MAC para o dispositivo. O aplicativo de teste deve invocar isso para ajudar no diagnóstico.

Sintaxe
void SecureBrowser.security.getMACAddress(Function callback);

Parâmetros

  • callback- A função a ser invocada quando esta chamada é concluída. Deve estar na forma: Function(String addressArray) onde addressArray está na forma: "['00:11:22:33:44:55','etc']".

Comentários
É difícil contar com endereços IP de origem para distinguir entre computadores de usuário final dentro dos servidores de teste porque firewalls/NATs/Proxies geralmente estão em uso nas escolas. Os endereços MAC permitem que o aplicativo distinga computadores cliente finais por trás de um firewall comum para fins de diagnóstico.

Requisitos
Windows 10, versão 1709 ou mais recente


getStartTime

Obtém a hora em que o aplicativo de teste foi iniciado.

Sintaxe
DateTime SecureBrowser.security.getStartTime();

Return
Um objeto DateTime que indica a hora em que o aplicativo de teste foi iniciado.

Requisitos
Windows 10, versão 1709 ou mais recente


getCapability

Consulta se uma funcionalidade está habilitada ou desabilitada.

Sintaxe
Object SecureBrowser.security.getCapability(String feature)

Parâmetros
feature- A cadeia de caracteres que determinará qual funcionalidade será consultada. As cadeias de caracteres de funcionalidade válidas são "screenMonitoring", "printing" e "textSuggestions" (não diferencia maiúsculas de minúsculas).

Valor retornado
Essa função retorna um objeto JavaScript ou literal com o formato: {<feature>:true|false}. true se a funcionalidade consultada estiver habilitada, false se a funcionalidade não estiver habilitada ou se a cadeia de caracteres de funcionalidade for inválida.

Requisitos Windows 10, versão 1703 ou mais recente


setCapability

Habilita ou desabilita uma funcionalidade específica no navegador.

Sintaxe
void SecureBrowser.security.setCapability(String feature, String value, Function onSuccess, Function onError)

Parâmetros

  • feature- A cadeia de caracteres que determina qual funcionalidade será definida. As cadeias de caracteres de funcionalidade válidas são "screenMonitoring", "printing" e "textSuggestions" (não diferencia maiúsculas de minúsculas).
  • value- A configuração pretendida para o recurso. Deve ser "true" ou "false".
  • onSuccess- [opcional] A função a ser chamada após a operação de definição foi concluída com êxito. Deve estar na forma Function(String jsonValue) em que jsonValue está na forma: {<feature>:true|false|undefined}.
  • onError- [opcional] A função a ser chamada em caso de falha na operação de definição. Deve estar na forma Function(String jsonValue) em que jsonValue está na forma: {<feature>:true|false|undefined}.

Comentários
Se o recurso de destino for desconhecido para o navegador, essa função passará um valor de undefined para a função de retorno de chamada.

Requisitos Windows 10, versão 1703 ou mais recente


isRemoteSession

Verifica se a sessão atual está conectada remotamente.

Sintaxe
Boolean SecureBrowser.security.isRemoteSession();

Valor de retorno
true se a sessão atual for remota, caso contrário, false.

Requisitos
Windows 10, versão 1709 ou posterior


isVMSession

Verifica se a sessão atual está em execução em uma máquina virtual.

Sintaxe
Boolean SecureBrowser.security.isVMSession();

Valor de retorno
true se a sessão atual estiver em execução em uma máquina virtual, caso contrário, false.

Comentários
Essa verificação de API só pode detectar sessões de VM em execução em determinados hipervisores que implementam as APIs apropriadas

Requisitos
Windows 10, versão 1709 ou posterior