zombie-test.js 10.1 KB
var chai = require("chai"), plugin = require("chai-jq");
chai.use(plugin);

var expect = require("chai").expect,
	Browser = require("zombie");

describe("Barra Antiga", function() {
	var browser, barraUrl, barraFonte, barraJS;
	barraUrl = "http://localhost/exemplo_antiga.html";
   barraFonte = "http://localhost/static/opensans-bold.woff";
   barraJS = "http://localhost/barra.js";

	beforeEach(function() {
		browser = new Browser();
		browser.runScripts = true;
		browser.headers = {};
	});

	it("trocar o conteúdo do #barra-brasil pelo correto", function(done) {
			browser.visit(barraUrl, function() {
         var inner_barra = browser.document.getElementById("barra-brasil");
			expect(inner_barra.innerHTML).to.have.string('Acesso à informação</a></li><li class="list-item"><a href="http://www.planalto.gov.br/legislacao" class="link-barra">Legislação</a></li><li class="list-item last last-item"><a href="http://www.brasil.gov.br/canais-do-executivo-federal" class="link-barra">Canais</a></li></ul></nav><span id="brasil-vlibras"><a class="logo-vlibras" id="logovlibras" href="#"></a><span class="link-vlibras"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=" class="barralazy" data-src="//barra.brasil.gov.br/imagens/vlibras.gif" width="132" height="116">&nbsp;<br>O conteúdo desse portal pode ser acessível em Libras usando o <a href="http://www.vlibras.gov.br">VLibras</a></span></span></div>');
			done();
		});
   });

   it("trocar o conteúdo do #footer-brasil pelo correto", function(done) {
		   browser.visit(barraUrl, function() {
         var inner_footer = browser.document.getElementById("footer-brasil");
			expect(inner_footer.innerHTML).to.equal('<div id="wrapper-footer-brasil"><a href="http://www.acessoainformacao.gov.br/"><span class="logo-acesso-footer"></span></a><a class="logo-governo-federal" href="http://www.brasil.gov.br/" alt="Governo Federal" title="Governo Federal"></a></div>');
			done();
		});
	});

   it("A fonte deve estar respondendo", function(done) {
		   browser.visit(barraFonte, function() {
				 browser.response.headers._headers.forEach(
					 function(value) {
						 if (value[0] == 'content-type'){
							 expect(value[1]).to.equal('application/x-font-woff');
						 }
						 if (value[0] == 'access-control-allow-origin'){
							 expect(value[1]).to.equal('*');
						 }
					 }
				 );
      	 expect(browser.response.status).to.equal(200);
				 done();
		});
	});

   it("Cabeçalhos HTTP do barra.js devem estar ok", function(done) {
			browser.headers['Accept-Encoding'] = 'gzip';
			browser.visit(barraJS, function() {
				browser.response.headers._headers.forEach(
					function(value) {
						if (value[0] == 'cache-control'){
							expect(value[1]).to.equal('max-age=604800, public');
						}
						if (value[0] == 'content-encoding'){
							expect(value[1]).to.equal('gzip');
						}
						if (value[0] == 'access-control-allow-origin'){
							expect(value[1]).to.equal('*');
						}
					}
				);

         expect(browser.response.status).to.equal(200);
			done();
		});
	});

   it("Barra.js responde 304", function(done) {
			browser.visit(barraJS, function() {
				browser.response.headers._headers.forEach(
					function(value) {
						if (value[0] == 'last-modified')
							browser.headers['If-Modified-Since'] = value[1];
						}
				);
				browser.visit(barraJS, function() {
	      	expect(browser.response.status).to.equal(304);
					done();
			});
		});
	});

   it("a barra deve ter o css correto para visualizacao maior que 960px");

   it("a barra deve ter o css correto para visualização menor que 960px");

   it("o rodapé deve ter o css correto", function(done) {
		browser.visit(barraUrl, function() {
         var $ = browser.window.$;

         var logo_acesso_footer = $("#wrapper-footer-brasil a span");
         expect(logo_acesso_footer).to.have.$class("logo-acesso-footer");

         var logo_brasil_footer = $("#wrapper-footer-brasil a").next();
         expect(logo_brasil_footer).to.have.$class("logo-governo-federal");

			done();
		});
	});
});

describe("Barra Nova", function() {
	var browser, barraUrl, barraFonte, barraJS;
	barraUrl = "http://localhost/index.html";
  barraFonte = "http://localhost/static/Raleway-Bold.woff";
  barraJS = "http://localhost/barra_2.0.js";

	beforeEach(function() {
		browser = new Browser();
		browser.runScripts = true;
		browser.headers = {};
	});

	it("trocar o conteúdo do #barra-brasil pelo correto", function(done) {
			browser.visit(barraUrl, function() {
				 var inner_barra = browser.document.getElementById("barra-brasil");
			expect(inner_barra.innerHTML).to.have.string('<div class="conteudo-escondido"> <a accesskey="1" href="#conteudo">Ir para o conteúdo</a> </div><div class="conteudo-barra-brasil"> <a href="http://www.brasil.gov.br/" class="pic-gov" title="GovBR">GovBR</a> <nav id="menu-barra-brasil" onscroll="checkScrollBarra(this);"> <ul class="lista-barra-brasil"> <li class="list-item"> <a href="http://www.acessoainformacao.gov.br" class="link-barra link-externo-barra">Acesso à informação</a> </li> <li class="espacador"></li> <li class="list-item"> <a href="http://brasil.gov.br/participacao-social" class="link-barra link-externo-barra">Participe</a> </li> <li class="espacador"></li> <li class="list-item"> <a href="https://servicos.gov.br/" class="link-barra link-externo-barra">Serviços</a> </li> <li class="espacador"></li> <li class="list-item"> <a href="http://www4.planalto.gov.br/legislacao/" class="link-barra link-externo-barra">Legislação</a> </li> <li class="espacador"></li> <li class="list-item"> <a href="javascript:toggleOrgaosGoverno();" id="link-orgaos" class="link-barra link-interno-barra link-baixo-barra">Órgãos do Governo</a> </li> </ul> </nav> <a href="javascript:scrollBarra();" id="botao-seta-direita" class="botao-seta-direita"><i class="arrow right">Navegar para direita</i></a> </div><div class="orgaos-governo-barra" id="orgaos-governo-barra"> <div> <ul> <li class="orgao-barra"> <a href="http://www.casacivil.gov.br/">Casa Civil</a> </li> <li class="orgao-barra"> <a href="http://www.justica.gov.br/">Ministério da Justiça e Segurança Pública</a> </li> <li class="orgao-barra"> <a href="https://www.defesa.gov.br/">Ministério da Defesa</a> </li> <li class="orgao-barra"> <a href="http://www.itamaraty.gov.br/">Ministério das Relações Exteriores</a> </li> <li class="orgao-barra"> <a href="http://www.fazenda.gov.br/">Ministério da Economia</a> </li> <li class="orgao-barra"> <a href="http://www.infraestrutura.gov.br/">Ministério da Infraestrutura</a> </li> <li class="orgao-barra"> <a href="http://www.agricultura.gov.br/">Ministério da Agricultura</a> </li> <li class="orgao-barra"> <a href="http://www.mec.gov.br/">Ministério da Educação</a> </li> <li class="orgao-barra"> <a href="http://mds.gov.br/">Ministério da Cidadania</a> </li> <li class="orgao-barra"> <a href="http://portalms.saude.gov.br/">Ministério da Saúde</a> </li> <li class="orgao-barra"> <a href="http://www.mme.gov.br/">Ministério de Minas e Energia</a> </li> <li class="orgao-barra"> <a href="http://www.mctic.gov.br/">Ministério da Ciência, Tecnologia e Comunicação</a> </li> <li class="orgao-barra"> <a href="http://www.mma.gov.br/">Ministério do Meio Ambiente</a> </li> <li class="orgao-barra"> <a href="http://www.turismo.gov.br/">Ministério do Turismo</a> </li> <li class="orgao-barra"> <a href="http://www.integracao.gov.br/">Ministério do Desenvolvimento Regional</a> </li> <li class="orgao-barra"> <a href="http://www.cgu.gov.br/">Controladoria-Geral da União</a> </li> <li class="orgao-barra"> <a href="http://www.mdh.gov.br/">Ministério da Mulher, da Família e dos Direitos Humanos</a> </li> <li class="orgao-barra"> <a href="http://www.secretariageral.gov.br/">Secretaria-Geral da Presidência da República</a> </li> <li class="orgao-barra"> <a href="http://www.secretariadegoverno.gov.br/">Secretaria De Governo</a> </li> <li class="orgao-barra"> <a href="http://www.gsi.gov.br/">Gabinete de Segurança Institucional</a> </li> <li class="orgao-barra"> <a href="http://www.agu.gov.br/">Advocacia-Geral da União - AGU</a> </li> <li class="orgao-barra"> <a href="http://www.bcb.gov.br/">Banco Central do Brasil</a> </li> </ul> </div></div>');
			done();
		});
	 });

   it("trocar o conteúdo do #footer-brasil pelo correto", function(done) {
		   browser.visit(barraUrl, function() {
         var inner_footer = browser.document.getElementById("footer-brasil");
			expect(inner_footer.innerHTML).to.equal('<div id="wrapper-footer-brasil"><a class="logo-acesso-footer" href="http://www.acessoainformacao.gov.br/" alt="Acesso à informação" title="Acesso à informação"></a><a class="logo-governo-federal" href="http://www.brasil.gov.br/" alt="Governo Federal" title="Governo Federal"></a></div>');
			done();
		});
	});

	 it("A fonte deve estar respondendo", function(done) {
		   browser.visit(barraFonte, function() {
				 browser.response.headers._headers.forEach(
					 function(value) {
						 if (value[0] == 'content-type'){
							 expect(value[1]).to.equal('application/x-font-woff');
						 }
						 if (value[0] == 'access-control-allow-origin'){
							 expect(value[1]).to.equal('*');
						 }
					 }
				 );
      	 expect(browser.response.status).to.equal(200);
				 done();
		});
	});

	it("Cabeçalhos HTTP do barra.js devem estar ok", function(done) {
		 browser.headers['Accept-Encoding'] = 'gzip';
		 browser.visit(barraJS, function() {
			 browser.response.headers._headers.forEach(
				 function(value) {
					 if (value[0] == 'cache-control'){
						 expect(value[1]).to.equal('max-age=604800, public');
					 }
					 if (value[0] == 'content-encoding'){
						 expect(value[1]).to.equal('gzip');
					 }
					 if (value[0] == 'access-control-allow-origin'){
						 expect(value[1]).to.equal('*');
					 }
				 }
			 );

				expect(browser.response.status).to.equal(200);
		 done();
	 });
 });


 it("Barra.js responde 304", function(done) {
		browser.visit(barraJS, function() {
			browser.response.headers._headers.forEach(
				function(value) {
					if (value[0] == 'last-modified')
						browser.headers['If-Modified-Since'] = value[1];
					}
			);
			browser.visit(barraJS, function() {
				expect(browser.response.status).to.equal(304);
				done();
		});
	});
});


});