<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">

<!--======================================================================-->
<!--=  Copyright 2000 World Wide Web Consortium, (Massachusetts          =-->
<!--=  Institute of Technology, Institut National de Recherche en        =-->
<!--=  Informatique et en Automatique, Keio University). All Rights      =-->
<!--=  Reserved. See http://www.w3.org/Consortium/Legal/.                =-->
<!--======================================================================-->
<!-- =====================================================================-->
<!--                                                                      -->
<!-- text-font-BE-15.svg                                                  -->
<!-- renamed for 1.1 suite to text-fonts-01-t.svg                         -->
<!--                                                                      -->
<!-- Test that viewer has the basic capability to handle font             -->
<!-- families, both generic and named fonts   WORKS CSIRO                 -->
<!--                                                                      -->
<!-- Author : Chris Lilley,  01-Mar-2000                                  -->
<!--          1.1 revision by Rick Graham                                 -->
<!-- Revised for Mobile Profiles: Jun Fujisawa 16-Jul-2002                -->
<!--                                                                      -->
<!-- History:                                                             -->
<!--   01-Mar-2000, CL, Serial#1 created.  Matches 20000110 SVG spec.     -->
<!--   09-Mar-2000, CL, altered 449 to 448 for outline box                -->
<!--   22-Mar-2000, CL, adjusted japanese text so it says japanese        -->
<!--                     word for "graphic image" (gazou), ser#2          -->
<!--   17-Aug-2000, CL, updated to 20000802 dtd, ser#3                    -->
<!--   21-Aug-2000, LH, renamed for integration.                          -->
<!--  14-Nov-2000, LH: move defs into test-body-content.                  -->
<!--  26-Nov-2000, LH: put class "foo" back onto text elts group.         -->
<!--  07-Dec-2000, JF: Remove 'd' from 'monospaced'                       -->
<!-- =====================================================================-->
<!--======================================================================-->
<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
<!--= log messages, and therefore is no longer in the preceding preamble.=-->
<!--======================================================================-->
<svg version="1.1" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">
    <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
		<OperatorScript version="$Revision: 1.5 $" testname="text-fonts-01-t.svg">
			<Paragraph>
				Purpose of test is to determine if the font family is being
				correctly selected. The top two lines of text test serif fonts; 
				the top line in maroon tests the generic font family 'serif' 
				and the second line in black tests a selection of commonly 
				available named serif fonts. The next two lines of text test 
				sans-serif fonts; 
				the top line in maroon tests the generic font family 'sans-serif' 
				and the second line in black tests a selection of commonly 
				available named sans serif fonts. The following two lines 
				of text test monospaced fonts; 
				the top line in maroon tests the generic font family 'monospaced' 
				and the second line in black tests a selection of commonly 
				available named monospaced fonts. The lowercase 'i' and uppercase'W' 
				should be the same width,for monospaced fonts.
			</Paragraph>
			<Paragraph>
				The seventh line of text, in green, tests for 
				three non-existent fonts (nonsense names). There is no fallback 
				generic font specified. The text must be displayed anyway.
			</Paragraph>
			<Paragraph>
				The first six lines contain two Japanese characters (&#x753B;&#x50CF;)
				at the end of the line. Both of these characters must be displayed, 
				although it is compliant to display them with the 'missing glyph' 
				if no suitable font containing Japanese characters can be found.
				Most but not all fonts have a visible missing glyph character.
				If the selected font has a visible missing glyph character, it should appear
				wherever the corresponding glyph is not available.
			<!-- can also be used for copy and paste tests; correct characters 
			to be pasted even if displayed with missing glyph -->
			</Paragraph>
        </OperatorScript>
    </SVGTestCase>
	<title id="test-title">text-fonts-01-t.svg</title>
	<desc id="test-desc">
Test that viewer has the basic capability to handle different font families </desc>
	<!--======================================================================-->
	<!--Content of Test Case follows...                  =====================-->
	<!--======================================================================-->
	<g id="test-body-content">
		<g font-weight="normal" font-size="24" stroke="none">
			<text font-family="Georgia, 'Minion Web', 'Times New Roman', Times, 'MS PMincho', Heisei-Mincho, serif " x="20" y="80">A serifed face 画像</text>
			<text font-family="Arial, 'Arial Unicode', 'Myriad Web', Geneva, 'Lucida Sans Unicode', 'MS PGothic', Osaka, sans-serif " x="20" y="160">A sans-serif face 画像</text>
			<text font-family="'Lucida Console', 'Courier New', Courier, Monaco, 'MS Gothic', Osaka-Mono, monospace" x="20" y="240">A mono (iW) face 画像</text>
			<g id="generic" fill="maroon">
				<text font-family="serif" x="40" y="50">A serifed face 画像</text>
				<text font-family="sans-serif " x="40" y="130">A sans-serif face 画像</text>
				<text font-family="monospace " x="40" y="210">A mono (iW) face 画像</text>
			</g>
			<text fill="green" font-family="'No such font at all', 'another fictitious one', sillynamewithoutspaces" x="40" y="290">This must be displayed</text>
		</g>
	</g>


	<text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.5 $</text>
	<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
<script>
if (window.testRunner)
    testRunner.dumpSelectionRect();
var range = document.createRange();
range.selectNode(window.document.documentElement);
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
</script>
</svg>

