MathML tests for Firefox

Published on October 14, 2013.

Firefox é o único browser no momento que possue suporte a MathML (em browser que utilizando WebKit existe um patch esperando aprovação, em browser que utilizando o Blink não existe previsão de reaproveitar o patch do WebKit e no IE apenas com extensões).

Uma das partes importante da implementação do MathML é a escrita de testes e é isso que será apresentado nesse post.

O bug 897065 refere-se a incorporação de mais testes e é um ótimo ponto de partida e alguns dos testes já escritos encontram-se aqui (na árvore do código fonte do Firefox você encontrará esses testes em layout/reftests/mathml).

Reftest

O reftest compara pixel a pixel da tela (800x1000) de duas páginas web e considera que o teste foi um sucesso no caso das telas serem idênticas. Uma das vantagens dessa ferramenta deve-se ao fato de que existe mais de uma maneira de obter o mesmo efeito visual em um browser de forma que uma marcação complexa pode ser expressa na forma de uma marcação mais simples.

Testando

Para executar todos os testes, acesse a raíz do código fonte do Firefox e :

$ ./mach reftest

Para executar apenas um conjunto de testes:

$ ./mach reftest caminho/para/reftest.list

mach é um script em python que acompanha o código fonte do Firefox.

O primeiro teste

Será preciso baixar e compilar o Firefox para conseguir rodar os tests pois os binários distribuídos são compilados utilizando disable-tests.

Escreva um arquivo chamado foo.html contendo:

<html>
<head>
<title>reftest0001</title>
</head>
<body>
<strong>Hello!</strong>
</body>
</html>

Escreva um arquivo chamado bar.html contendo:

<html>
<head>
<title>reftest0001</title>
</head>
<body>
<b>Hello!</b>
</body>
</html>

Escreva um arquivo chamado reftest.list contendo:

== foo.html bar.html

Execute o teste utilizando:

$ ./mach reftest path/to/reftest.list 2>&1 | grep REFTEST
REFTEST PASS: file:///Users/ray/mozilla-central/path/to/foo.html

Referências

Tags: