jquery.mwExtension.test: Use better sample data for isDomElement
authorTimo Tijhof <krinklemail@gmail.com>
Wed, 10 Dec 2014 04:38:47 +0000 (04:38 +0000)
committerTimo Tijhof <krinklemail@gmail.com>
Wed, 10 Dec 2014 05:26:05 +0000 (05:26 +0000)
* getElementById, getElementsByTagName()[0] and jQuery#get(0) all
  return an HTMLElement. Test that only once.
  Avoid using random internal QUnit elements like #qunit-header.
  These don't always exist (e.g. when running tests via Karma).
  If anything, it should use #qunit-fixture. But might as well
  create a simple DIV and test that.

* Use 'null' instead of getElementById('not-found'). We're
  testing isDomElement, not getElementById.

* Add test for TextNode.

* Separate tests for isDomElement and isEmpty.

Change-Id: If9284fbbd066897561ae8e679f5f7ceab9255e18

tests/qunit/suites/resources/jquery/jquery.mwExtension.test.js

index 7571b92..795c2bb 100644 (file)
                assert.equal( $.escapeRE( '0123456789' ), '0123456789', 'escapeRE - Leave numbers alone' );
        } );
 
-       QUnit.test( 'Is functions', 15, function ( assert ) {
-               assert.strictEqual( $.isDomElement( document.getElementById( 'qunit-header' ) ), true,
-                       'isDomElement: #qunit-header Node' );
-               assert.strictEqual( $.isDomElement( document.getElementById( 'random-name' ) ), false,
-                       'isDomElement: #random-name (null)' );
+       QUnit.test( 'isDomElement', 6, function ( assert ) {
+               assert.strictEqual( $.isDomElement( document.createElement( 'div' ) ), true,
+                       'isDomElement: HTMLElement' );
+               assert.strictEqual( $.isDomElement( document.createTextNode( '' ) ), true,
+                       'isDomElement: TextNode' );
+               assert.strictEqual( $.isDomElement( null ), false,
+                       'isDomElement: null' );
                assert.strictEqual( $.isDomElement( document.getElementsByTagName( 'div' ) ), false,
-                       'isDomElement: getElementsByTagName Array' );
-               assert.strictEqual( $.isDomElement( document.getElementsByTagName( 'div' )[0] ), true,
-                       'isDomElement: getElementsByTagName(..)[0] Node' );
+                       'isDomElement: NodeList' );
                assert.strictEqual( $.isDomElement( $( 'div' ) ), false,
-                       'isDomElement: jQuery object' );
-               assert.strictEqual( $.isDomElement( $( 'div' ).get( 0 ) ), true,
-                       'isDomElement: jQuery object > Get node' );
-               assert.strictEqual( $.isDomElement( document.createElement( 'div' ) ), true,
-                       'isDomElement: createElement' );
+                       'isDomElement: jQuery' );
                assert.strictEqual( $.isDomElement( { foo: 1 } ), false,
-                       'isDomElement: Object' );
+                       'isDomElement: Plain Object' );
+       } );
 
+       QUnit.test( 'isEmpty', 7, function ( assert ) {
                assert.strictEqual( $.isEmpty( 'string' ), false, 'isEmpty: "string"' );
                assert.strictEqual( $.isEmpty( '0' ), true, 'isEmpty: "0"' );
                assert.strictEqual( $.isEmpty( '' ), true, 'isEmpty: ""' );