QA/Firefox3.5/FontFace TestPlan

From MozillaWiki
Jump to: navigation, search

« QA/Firefox3.1/TestPlan

Notes

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 <thead> </thead> <tbody> </tbody>
serif, sans-serif, cursive, Asian, Arabic
class="header"|Font Format
TrueType, OpenType, TrueType-AAT(Apple Advanced Typography), EOT(Microsoft Embedded OpenType)
-
class="header"|Source
url, local
-
class="header"|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
  • 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)