merging latest master
[lhc/web/wiklou.git] / tests / qunit / suites / resources / mediawiki.api / mediawiki.api.parse.test.js
index 246b74a..3d3f630 100644 (file)
@@ -1,17 +1,25 @@
 QUnit.module( 'mediawiki.api.parse', QUnit.newMwEnvironment() );
 
-QUnit.asyncTest( 'Simple', function ( assert ) {
+QUnit.asyncTest( 'Hello world', function ( assert ) {
        var api;
-       QUnit.expect( 1 );
+       QUnit.expect( 6 );
 
        api = new mw.Api();
 
        api.parse( "'''Hello world'''" )
                .done( function ( html ) {
-                       // Html also contains "NewPP report", so only check the first part
-                       assert.equal( html.substr( 0, 26 ), '<p><b>Hello world</b>\n</p>',
-                               'Wikitext to html parsing works.'
-                       );
+                       // Parse into a document fragment instead of comparing HTML, due to
+                       // presence of Tidy influencing whitespace.
+                       // Html also contains "NewPP report" comment.
+                       var $res = $( '<div>' ).html( html ).children(),
+                               res = $res.get( 0 );
+                       assert.equal( $res.length, 1, 'Response contains 1 element' );
+                       assert.equal( res.nodeName.toLowerCase(), 'p', 'Response is a paragraph' );
+                       assert.equal( $res.children().length, 1, 'Response has 1 child element' );
+                       assert.equal( $res.children().get( 0 ).nodeName.toLowerCase(), 'b', 'Child element is a bold tag' );
+                       // Trim since Tidy may or may not mess with the spacing here
+                       assert.equal( $.trim( $res.text() ), 'Hello world', 'Response contains given text' );
+                       assert.equal( $res.find( 'b' ).text(), 'Hello world', 'Bold tag wraps the entire, same, text' );
 
                        QUnit.start();
                });