QA/Firefox3.5/FontFace TestPlan
Contents
Notes
- A possible crash vector: http://cg.scs.carleton.ca/~luc/opentypecrash.html
Feature <abc> Test Plan
Overview
(Provide an abstract of the feature and the test strategy. Are there particular challenges with testing this feature?)
Current Test Status: QA/Firefox3.1/FontFace TestStatus
Scope of planned testing
Tests are executed to check the properties of @font-face. In summary, @font-face download fonts from the designated sources and assigns it to a font-family name. These fonts can be accessed by using the font-family name written above. Note that the downloaded fonts are available from the document they are referenced. They are not available from other applications or other documents.
Platform and Configurations
- Tests are executed on following operating systems
- Mac OS X
- Windows XP Professional SP 3
- Ubuntu 8.04
Major Test Areas
@font-face general tests
Combination Tests
Font Face | serif, sans-serif, cursive, Asian, Arabic |
Font Format | TrueType, OpenType, TrueType-AAT(Apple Advanced Typography), EOT(Microsoft Embedded OpenType) |
Source | url, local |
File Encoding | Western, UTF-8, Shift_JIS, and other language-specific encodings |
Syntax of font name. We need to check:
- if it can handle malicious multi-byte code
- how it works on font with multiple names (ex. MS Mincho & MS 明朝)
- what will happen when a family name was overrode by @font-face rules
- ex. @font-face { font-family: Arial; src: local(Verdana); }
Font Source(src). We need to check:
- Fallback function when font is not available
- when designated src was invalid
- when designated src was valid, but the font format was unacceptable
- when the string assigned to format descriptor does not correspond to the actual format
Rules. We need to check the behavior:
- when multiple @font-face rules was in a single file
- when multiple font face was assigned to a single font-family by @font-face
- font matching algorithm (font-weight, font-style, font-stretch)
- how CSS marksups and HTML tags affect
Other things to be checked are:
- Make sure downloaded fonts cannnot be used from other documents
- Handling of 'crashing' fonts
- if those fonts exist
- Copy & Paste test
- Printing Test
- Same origin policy test
- relative URL, absolute URL
Debug builds are used to:
- Testing of new patches or regression if needed.
Testcases will be mainly created in reftest
unicode-range tests
see bug443976 for details
- Basic Tests
- single code point
- ex. U+A5, U+301C
- interval value
- ex. U+3040-30FF
- single code point
- What happens if I put many 0s before the number?
- ex. U+F, U+0F, U+00F, U+000F, U+00000000F, ... do they mean the same thing?
- What happens if I use ? in the front/middle?
- ex. U+?4, U+3?5, ...
- What happens if I use multiple unicode-range rules to consist a single font-family?
- ex. @font-face{ font-family:testA; src:url(fontA.ttf); unicode-range:U+0-U+2FF; } @font-face{ font-family:testA; src:url(fontB.otf); unicode-range:U+300-U+FFF }
- What happens if I specified only a single character in the rule and tried to display other character? Would there be a fallback function?
- ex. @font-face { font-family:smallA; src:url(smallA.ttf); unicode-range:U+1; }
- <span class="font-family:smallA">ABC</span>?
- What happens if the specified font did not have a character of the specified unicode range? Does it display nothing? Would there be a fallback function?
CSS mutation from JavaScript tests
see bug443978 for details
- What happens if you download the same font again? Would it use cache?
- Is it possible to change the DOM tree of other documents?
- Is downloading another font for other documents prohibited? or is it allowed?
- Consider what will happen when 2 pages try to change the DOM of each other
- stateful
Schedule/milestones
( Provide some breakdown of the major areas of the feature, how long it will take to develop or run the tests, and an approximate time this will be done.
References
(List useful links to the bug containing design info, feature meeting notes, wiki info, standards info, litmus group or subgroup, etc)
- This should be a good web site to check!
- http://www.w3.org/International/tests/test-webfonts-1
- Localization tests - downloadable font testing using various Asian/MiddleEast characters
- Some of them doesn't seem to be working. Furthuer investigation needed.
- Mentioned by Philippe in bug441473 #74