Test parsing the src descriptor of @font-face. Valid rules form the stylesheet: @font-face { src: url("font.ttf"); } @font-face { src: url("http://foo/bar/font.ttf"); } @font-face { src: url("font.svg#id"); } @font-face { src: url("font.ttf") format("truetype"); } @font-face { src: url("font.woff") format("woff"), local("font2"); } @font-face { src: url("font.ttf") format("truetype"), url("font2.ttf"); } @font-face { src: url("font.ttf"), url("font2.ttf") format("truetype"); } @font-face { src: url("font.ttf"), local("font2"), url("font3.otf") format("opentype"), local("foo bar"); } @font-face { src: local("foo"); } @font-face { src: local("font"), local("foo bar"); } @font-face { src: local("foo"); } @font-face { src: local("\"foo\""); } @font-face { src: local(" foo"); } @font-face { src: local("foo "); } @font-face { src: local(" foo "); } @font-face { src: local("foo bar"); } @font-face { src: local("w\\d w"); } @font-face { src: local(" x x\\9 x "); } @font-face { src: local("y y\\9 y"); } @font-face { src: url("font.ttf"); } @font-face { src: url("font.ttf"), local("font2"); } @font-face { src: local("font"); } @font-face { src: url("font.ttf"); } @font-face { src: url("foo.ttf"); } Expected result for valid rules: @font-face { src: url("font.ttf"); } @font-face { src: url("http://foo/bar/font.ttf"); } @font-face { src: url("font.svg#id"); } @font-face { src: url("font.ttf") format("truetype"); } @font-face { src: url("font.woff") format("woff"), local("font2"); } @font-face { src: url("font.ttf") format("truetype"), url("font2.ttf"); } @font-face { src: url("font.ttf"), url("font2.ttf") format("truetype"); } @font-face { src: url("font.ttf"), local("font2"), url("font3.otf") format("opentype"), local("foo bar"); } @font-face { src: url("font3.otf") format("opentype"), local("foo bar"); } @font-face { src: local("foo"); } @font-face { src: local("font"), local("foo bar"); } @font-face { src: local("foo"); } @font-face { src: local("\"foo\""); } @font-face { src: local(" foo"); } @font-face { src: local("foo "); } @font-face { src: local(" foo "); } @font-face { src: local("foo bar"); } @font-face { src: local("w\d w"); } @font-face { src: local(" x x\9 x "); } @font-face { src: local("y y\9 y"); } @font-face { src: url("font.ttf"); } @font-face { src: url("font.ttf"), local("font2"); } @font-face { src: local("font"); } @font-face { src: url("font.ttf"); } @font-face { src: url("foo.ttf"); } Invalid rules form the stylesheet: @font-face { } @font-face { } @font-face { } @font-face { } @font-face { } @font-face { } @font-face { } Expected result for invalid rules: @font-face { } @font-face { } @font-face { } @font-face { } @font-face { } @font-face { } @font-face { } @font-face { }