Skip to content

Instantly share code, notes, and snippets.

@thelinuxlich
Created April 28, 2011 14:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thelinuxlich/946478 to your computer and use it in GitHub Desktop.
Save thelinuxlich/946478 to your computer and use it in GitHub Desktop.
Como eu testo meu client side
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" href="../../css/qunit.css" type="text/css" media="screen" />
<script type="text/javascript"> var TEST_ENV = true;</script>
<script src="../../js/jquery.js"></script>
<script src="../../js/knockout.js"></script>
<script src="../../js/reqman.js"></script>
<script src="../js/fale_conosco.js"></script>
<script src="../../js/qunit.js"></script>
<script src="../../js/jquery.mockjax.js"></script>
<script>
$(function(){
module("Testes Offline");
test("Regex de e-mail deve aceitar e-mails v&aacute;lidos", function() {
ok(REGEX_EMAIL.test("alisson@umc.br"),"testando para alisson@umc.br");
ok(REGEX_EMAIL.test("thelinuxlich@gmail.com"),"testando para thelinuxlich@gmail.com");
ok(REGEX_EMAIL.test("123_2@teste.com"),"testando para 123_2@teste.com");
ok(REGEX_EMAIL.test("teste.t@teste.com"),"testando para teste.t@teste.com");
});
test("Regex de e-mail deve recusar e-mails inv&aacute;lidos", function() {
equal(false, REGEX_EMAIL.test("alissonumc..br"),"testando para alissonumc..br");
equal(false, REGEX_EMAIL.test("@umc..br"),"testando para @umc..br");
equal(false, REGEX_EMAIL.test("alisson@umc"),"testando para alisson@umc");
equal(false, REGEX_EMAIL.test("alisson@u.r"),"testando para alisson@u.r");
});
test("A pergunta deve ser v&aacute;lida se tiver todos os campos preenchidos", function() {
viewModel.pergunta().email("alisson@umc.br");
viewModel.pergunta().nome("Alisson");
viewModel.pergunta().nivel("0");
viewModel.pergunta().assunto("0");
viewModel.pergunta().texto("abc");
viewModel.pergunta().tipo_assunto("N");
ok(viewModel.pergunta().valido);
});
test("A pergunta deve ser inv&aacute;lida se n&atilde;o tiver todos os campos preenchidos", function() {
viewModel.resetar();
equal(false,viewModel.pergunta().valido());
});
test("O texto da pergunta n&atilde;o pode passar da quantidade m&aacute;xima de caracteres", function() {
viewModel.pergunta().maxChars = 10;
viewModel.pergunta().texto("mais de 10 caracteres.");
ok(viewModel.pergunta().texto().length === 10);
});
test("O IdentityMap deve retornar um objeto de seu container se ele for semelhante ao necess&aacute;rio", function() {
var I = new IdentityMap();
var params = {arg1: "A", arg2: "B"};
I.push({id: "teste", params: params, data: "123456"});
var obj = I.find("teste",params);
ok(obj);
});
/** Mocks para simular AJAX */
$.mockjax({url: URL+"/get/busca_cursos.php*",contentType: 'text/json',
responseText: [{id: "100_1", nome: "Sistemas de Informação"},
{id: "101_1", nome: "Medicina"},{id: "102_2",nome: "Direito"}
]
});
$.mockjax({url: URL+"/get/busca_niveis_assunto.php*",contentType: 'text/json',
responseText: [{id:0, nome: "Graduação"},{id:1,nome:"Pós-Graduação"}]
});
$.mockjax({url: URL+"/get/busca_assuntos.php*",contentType: 'text/json',
responseText: [{id: "0",nome: "Reclamações",tipo: "N"},
{id: "1",nome: "Elogios",tipo: "N"},
{id: "2",nome: "Fale com o Coordenador de Curso",tipo: "C"}
]
});
$.mockjax({url: URL+"/post/gravar_pergunta.php*", contentType: 'text/json',
responseText: {status: "OK"}
});
asyncTest("Durante a inicializa&ccedil;&atilde;o os n&iacute;veis e assuntos devem ser carregados para sele&ccedil;&atilde;o", function() {
viewModel.init(function() {
setTimeout(function() {
ok(viewModel.niveis().length === 2);
ok(viewModel.assuntos().length === 3);
start();
},1000);
});
});
asyncTest("A sele&ccedil;&atilde;o de cursos deve ser exibida se o assunto selecionado for do tipo 'C' (Curso)", function() {
viewModel.init(function() {
viewModel.pergunta().assunto("2");
setTimeout(function() {
ok(viewModel.pergunta().tipo_assunto() === "C");
ok(viewModel.cursos().length === 3);
start();
},1000);
});
});
test("Quando o curso for selecionado, seu c&oacute;digo deve ser dividido entre 2 vari&aacute;veis", function() {
viewModel.pergunta().codigoCursoCentro("100_1");
ok(viewModel.pergunta().codigoCurso() === "100");
ok(viewModel.pergunta().codigoCentro() === "1");
});
asyncTest("A pergunta deve ser resetada se gravada com sucesso", function() {
viewModel.pergunta().texto("aaaaaa");
viewModel.enviarPergunta(function() {
ok(viewModel.pergunta().texto() === "");
start();
});
});
module("Testes Online");
asyncTest("Testando se as selects de n&iacute;vel e assunto est&atilde;o sendo populadas por chamadas remotas", function() {
$.mockjaxClear();
viewModel.cache = new IdentityMap();
viewModel.carrega_niveis(function() {
setTimeout(function() {
ok(viewModel.niveis().length > 0,"Lista de niveis maior que 0");
ok(viewModel.assuntos().length > 0,"Lista de assuntos maior que 0");
start();
},1000);
});
});
});
</script>
</head>
<body>
<h1 id="qunit-header">Su&iacute;te de testes Fale Conosco Externo</h1>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">test markup, will be hidden</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment