https://www.mediawiki.org/wiki/Special:Code/MediaWiki/109230

Revision: 109230
Author:   amire80
Date:     2012-01-17 22:09:54 +0000 (Tue, 17 Jan 2012)
Log Message:
-----------
Started writing tests for applying web fonts to body (set( font )). Changed 
literal font names to names from mw.webfonts.config.

Modified Paths:
--------------
    trunk/extensions/WebFonts/tests/qunit/ext.webfonts.tests.js

Modified: trunk/extensions/WebFonts/tests/qunit/ext.webfonts.tests.js
===================================================================
--- trunk/extensions/WebFonts/tests/qunit/ext.webfonts.tests.js 2012-01-17 
22:09:42 UTC (rev 109229)
+++ trunk/extensions/WebFonts/tests/qunit/ext.webfonts.tests.js 2012-01-17 
22:09:54 UTC (rev 109230)
@@ -6,17 +6,41 @@
        ok( mw.webfonts, 'mw.webfonts is defined' );
 } );
 
+test( '-- Web font application to body', function() {
+       expect( 4 );
+
+       var invalidFont = 'NonExistingFont';
+       assertTrue( mw.webfonts.set( invalidFont ) === undefined, 'A 
non-existent font is not initialized' );
+       // TODO: test that the right thing was written to the log
+
+       var $body = $( 'body' );
+       var bodyLang = $body.attr( 'lang' );
+       var oldConfig = {
+               fontFamily: $body.css( 'font-family' ),
+               fontSize: $body.css( 'font-size' )
+       };
+       var teluguFont = mw.webfonts.config.languages.te[0]
+       $body.attr( 'lang', 'te' );
+
+       ok( mw.webfonts.set( teluguFont ), 'Attempted to load a Telugu font for 
the whole page' );
+       deepEqual( oldConfig, mw.webfonts.oldconfig, 'Previous body css was 
saved properly' );
+
+       // Restore <body>
+       $body.attr( 'lang', bodyLang );
+       ok( mw.webfonts.reset(), 'Reset body after testing font application' );
+} );
+
 test( '-- Dynamic font loading', function() {
        expect( 7 );
 
-       var validFontName = 'Lohit Devanagari';
+       var validFontName = mw.webfonts.config.languages.hi[0];
        mw.webfonts.fonts = [];
        var cssRulesLength = document.styleSheets.length;
-       assertTrue( mw.webfonts.addFont( validFontName ) , 'Add a Devanagari 
font' );
+       assertTrue( mw.webfonts.addFont( validFontName ), 'Add a Devanagari 
font' );
        assertTrue( $.inArray( validFontName, mw.webfonts.fonts ) >= 0 , 
'Devanagari font loaded' );
        assertTrue( cssRulesLength + 1 === document.styleSheets.length, 'New 
css rule added to the document' );
        var loadedFontsSize = mw.webfonts.fonts.length;
-       assertTrue( mw.webfonts.addFont( validFontName ) , 'Add the Devanagari 
font again' );
+       assertTrue( mw.webfonts.addFont( validFontName ), 'Add the Devanagari 
font again' );
        assertTrue( loadedFontsSize === mw.webfonts.fonts.length , 'A font that 
is already loaded is not loaded again' );
        assertFalse( mw.webfonts.addFont( 'Some non-existing font' ), 'addFont 
returns false if the font was not found' );
        assertTrue( cssRulesLength + 1 === document.styleSheets.length, 
'Loading the font does not add new css rules' );
@@ -33,19 +57,19 @@
                wgPageContentLanguage: "en",
        } );
        
-       ok( $( 'body' ).append( "<p class='webfonts-testing-lang-attr'>Some 
content</p>"), ' A element for testing lang-based loading was appended to 
<body>' );
+       ok( $( 'body' ).append( "<p class='webfonts-testing-lang-attr'>Some 
content</p>"), 'An element for testing lang-based loading was appended to body' 
);
        $testElement =  $( 'p.webfonts-testing-lang-attr' )
        assertTrue( $testElement !== [], 'The test element is defined' );
 
        ok( mw.webfonts.loadFontsForLangAttr(), 'Attempted to load fonts for 
the lang attribute' );
        assertFalse( $testElement.hasClass( 'webfonts-lang-attr' ), 'The 
element has no webfonts-lang-attr class since there is no lang attribute' );
 
-       ok( $testElement.attr( 'lang' , 'en' ) , 'The lang attribute of the 
test element was set to en (English)' );
+       ok( $testElement.attr( 'lang' , 'en' ), 'The lang attribute of the test 
element was set to en (English)' );
        ok( mw.webfonts.loadFontsForLangAttr(), 'Attempted to load fonts for 
the lang attribute en' );
        assertFalse( $testElement.hasClass( 'webfonts-lang-attr' ), 'The test 
element has no webfonts-lang-attr class since en lang has no fonts available' );
 
-       var tamilFont = 'Lohit Tamil';
-       ok( $testElement.attr( 'lang' , 'ta' ) , 'Set lang attribute to ta 
(Tamil)' );
+       var tamilFont = mw.webfonts.config.languages.ta[0];
+       ok( $testElement.attr( 'lang' , 'ta' ), 'Set lang attribute to ta 
(Tamil)' );
        ok( mw.webfonts.loadFontsForLangAttr(), 'Attempted to load fonts for 
the lang attribute ta' );
        assertTrue( $testElement.hasClass( 'webfonts-lang-attr' ), 'The test 
element has webfonts-lang-attr class' );
        assertTrue( $.inArray( tamilFont, mw.webfonts.fonts ) >= 0 , 'Tamil 
font loaded' );
@@ -54,14 +78,14 @@
        ok( mw.webfonts.reset(), 'Reset webfonts' );
        assertFalse( $testElement.hasClass( 'webfonts-lang-attr' ), 'The 
element has no webfonts-lang-attr since we reset it' );
 
-       ok( $testElement.remove(), 'The test element was removed from <body>' );
+       ok( $testElement.remove(), 'The test element was removed from body' );
 } );
 
 test( '-- Dynamic font loading based on font-family style attribute', 
function() {
        expect( 14 )
 
        mw.webfonts.fonts = [];
-       ok( $( 'body' ).append( "<p 
class='webfonts-testing-font-family-style'>Some content</p>" ), 'An element for 
testing font-family loading was appended to <body>' );
+       ok( $( 'body' ).append( "<p 
class='webfonts-testing-font-family-style'>Some content</p>" ), 'An element for 
testing font-family loading was appended to body' );
        var $testElement = $( 'p.webfonts-testing-font-family-style' );
        assertTrue(  $testElement !== [], 'The test element is defined' );
 
@@ -79,12 +103,12 @@
        assertTrue( $.inArray( invalidFont, mw.webfonts.fonts ) === -1 , 'Font 
not loaded since it is not existing, including fallback fonts' );
        assertFalse( isFontFaceLoaded( invalidFont ), 'No new css rule added to 
the document since the font does not exist' );
 
-       var malayalamFont = 'AnjaliOldLipi';
+       var malayalamFont = mw.webfonts.config.languages.ml[0];
        $testElement.attr( 'style', 'font-family: ' + invalidFont + ', ' + 
malayalamFont + fallbackFonts );
        assertTrue( $.inArray( malayalamFont, mw.webfonts.fonts ) === -1 , 
'Fallback font not loaded yet' );
        ok( mw.webfonts.loadFontsForFontFamilyStyle(), 'Loading fonts from 
font-family' );
        assertTrue( $.inArray( malayalamFont, mw.webfonts.fonts ) >= 0 , 'A 
fallback font was loaded' );
-       assertTrue( isFontFaceLoaded( malayalamFont ) , 'New css rule added to 
the document for fallback font' );
+       assertTrue( isFontFaceLoaded( malayalamFont ), 'New css rule added to 
the document for fallback font' );
 
        ok( $testElement.remove() );
 } );


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to