Встречайте - ACID3
Опубликовано January 12, 2008
Категория Вебстандарты, Программы |
Вчера известный вебразработчик автор теста ACID, для проверки браузеров на соответствие вебстандартам, Иан Хиксон, выложил предварительную новую версию в сеть для всеобщего ознакомления, которая доступна здесь. Автор теста сообщает, что разработка уже практически завершена.
Традиционно тест проверял парсинг HTML и CSS, причем часто не прямым тестированием свойства, а обходным путем, изучая результаты его работы в браузерах. Например, для того чтобы пройти «ужасный» padding/margin тест, браузерам, кроме корректной поддержки CSS, нужно иметь правильную боксовую модель (“box model”).
Что же нового несет в себе ACID3? В первую очередь он главным образом основывается на технологиях ECMAScript и DOM. Разберем, что же именно тестируется, особенно в отношении ECMAScript:
- Элизия массивов – вещи подобно [,,] должны иметь нулевую длину, а для масива [0,,1] она должна быть равна 3.
- Методы массива – проверяется возможность добавления нескольких элементов в массив (.unshift(0, 1, 2)) и объединение его с undefined (.join(undefined).)
- Преобразования чисел - проверяется работа таких методов как .toFixed(), .toExponential() и .toPrecision(), в первую очередь, с дробными и отрицательными чилами.
- Операции со строками – метод substr() должен уметь работать с отрицательными аргументами (.substr(-7, 3)), доступ к символам строки должен осуществляться по их позиции (”my string”[0]). (это часть спецификации ECMAScript4)
- Работа с датами – удостовериться, что некоторые методы возвращают NaN (например, d.setMiliseconds() без аргументов), а также что происходит обязательное смещение +1900 лет.
- Unicode символы в названиях переменных – их использование должно вызывать оÑ?ибку. Например,
eval("test.i\\u002b= 1;"); - Регулярные выражения - /[]/ должно соответствовать пустому массиву, а /[])]/ вызывать ошибку. Должны поддерживаться обратные ссылки (backreference) на несуществующие образы и отрицательные lookahed’ы - /(?!test)(test).exec(”test test”).
- Перечисления (Enumeration) – нужно убедиться, что свойства объекта правильно перечисляются, что доступны свойства с определенными именами (toString, hasOwnProperty, etc)
- Конструкторы – у пользователя должна быть возможность определять собственные конструктоы в свойстве .constructor, свойство .constructor не должно быть в перечислении, а свойство .prototype.constructor должно быть удаляемым.
- Функции – возможность вызывать функцию по имени из самой себя, прямое изменение ее имени должно быть запрещено(только используя массивы функций). (function test(){ … })(); - «test» не должен быть виден в родительской области.
- Ошибки – переменные в блоке catch(){} должны в первую очередь работать с аргументами catch(), а затем уже с родительскими. Например
var e = "my name"; try { ...//некий код } catch(e) { alert(e); }не должно выводить “my name”.
- Операции присваивания - s = a.length = “123″; - a.length должно возвращать 123, а не 3
- Кодировки - encodeURI() и encodeURIComponent() должны корректно работать с нулевыми байтами.
В общем и целом, это был широкий, однако достаточно поверхностный обзор суровых, но обязательных к исполнению требований спецификации ECMAScript. Открыв свой любимый браузер, вы просто обречены найти как минимум одно из этих требований невыполненным.
Подробности автор теста обещает представить уже в ближайшие дни.
И напоследок, предварительные результаты тестирования НЕЗАКОНЧЕННОГО Acid 3 над НЕЗАКОНЧЕННЫМИ? версиями наиболее популярных браузеров, которые предоставил автор. Мы проверили, все сходится! =)
Вот эталон, который должен показать браузер.
Firefox 2.x
Firefox 3.0b2
Safari 3
WebKit Nightly
Opera 9.5b1
Ссылки по теме:
Коментарии
11 коментариев к “Встречайте - ACID3”
Оставить комментарий








Мне стра
А то что показывает IE7 не стра
А что у вас такое? Проблемы с визуалкой?
ну наконец-то. дождались называется
Дождались то дождались…вот только что там будет…в реале…посмотрим…надеюс на луч
надейся на луч
Удивительная статья, мне понравилась! Спасибо автору!
вы чё про ие8б1 забыли? http://ru.wikipedia.org/wiki/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5:Acid3_ie8b1.png
SiPlus, IE8b1 вы
Safari 3.1 больше всех))) 75/100
У меня на Opera 9.50 (9864) показывает 79/100, хотя на Opera Community утверждают, что у них эта сборка выбивает 100/100….