Лень писать это в соседнюю ветку на 100500 страниц, поэтому понапложу сущности без необходимости
Пара смешных людей рассказывают о том, как все подряд покрывается автоматическими тестами и прочей ерундой, и тесты на GUI пишутся на раз.
И тут у меня как раз возник момент.
Дано: рисуется в браузере график при помощи SVG. График рисуется generic-библиотекой. После того, как он отрисовался, среди прочего, делается следующее:
— берется текст, который будет заголовком графика, title
— берется нарисованый график, chart
— oldY = chart.Y
— chart.Y = chart.Y + title.height
— title.X = chart.X
— title.Y = oldY
— title.height, естественно, зависит от CSS, и, собственно, от того, как это отображается в браузере.
То есть, понятно, что график смещается вниз, и вверху рисуется заголовок.
Проблема 1. Firefox
В Safari и Chrome все правильно. В Firefox title смещается влево примерно на title.width/2.
Вопрос: как это определить автоматическими тестами, без тестирования человеком? Ну, учитывая, что автоматический тест будет использовать те же getWidth[1] и прочее, что и код
Проблема 2. Display: none -> Display: block/inline
Графики отображаются на панели, которая изначально скрыта.
— Если панель изначально раскрыта, то никаких проблем нет.
— Если панель скрыта, а потом раскрывается, то в зависимости от времени загрузки данных в график (среди прочего), те самые getWidth и прочая возвращают неправильные значения, из-за чего chart не смещается вниз, а title отображается в неправильной позиции.
Найдено тоже только при ручном тестировании. Какой автоматический тест это покроет?
[1] getBBox, getBoundingClientBox из DOM'а