function( expected, actual, optionsOrMsg ) {
			var options = optionsOrMsg instanceof Object ? optionsOrMsg : { message: optionsOrMsg },
				msg = options.message,
				compatHtml = bender.tools && bender.tools.compatHtml;

			if ( !options.skipCompatHtml ) {
				var sortAttributes = ( 'sortAttributes' in options ) ? options.sortAttributes : true,
					fixZWS = ( 'fixZWS' in options ) ? options.fixZWS : true,
					fixNbsp = ( 'fixNbsp' in options ) ? options.fixNbsp : true;

				if ( !compatHtml ) {
					throw new Error( 'Missing bender.tools.compatHtml' );
				}

				expected = compatHtml( expected, options.noInterWS, sortAttributes, fixZWS, options.fixStyles, fixNbsp, options.noTempElements, options.customFilters );
				actual = compatHtml( actual, options.noInterWS, sortAttributes, fixZWS, options.fixStyles, fixNbsp, options.noTempElements, options.customFilters );
			}

			bender.assert.areSame( html_beautify( expected, this._config ), html_beautify( actual, this._config ), msg );
		}
function( expected, actual, optionsOrMsg ) {
			var options = optionsOrMsg instanceof Object ? optionsOrMsg : { message: optionsOrMsg },
				msg = options.message,
				compatHtml = bender.tools && bender.tools.compatHtml;

			if ( !options.skipCompatHtml ) {
				var sortAttributes = ( 'sortAttributes' in options ) ? options.sortAttributes : true,
					fixZWS = ( 'fixZWS' in options ) ? options.fixZWS : true,
					fixNbsp = ( 'fixNbsp' in options ) ? options.fixNbsp : true;

				if ( !compatHtml ) {
					throw new Error( 'Missing bender.tools.compatHtml' );
				}

				expected = compatHtml( expected, options.noInterWS, sortAttributes, fixZWS, options.fixStyles, fixNbsp, options.noTempElements, options.customFilters );
				actual = compatHtml( actual, options.noInterWS, sortAttributes, fixZWS, options.fixStyles, fixNbsp, options.noTempElements, options.customFilters );
			}

			bender.assert.areSame( html_beautify( expected, this._config ), html_beautify( actual, this._config ), msg );
		}
function ( expected , actual , optionsOrMsg ) { var options = optionsOrMsg instanceof Object ? optionsOrMsg : { message : optionsOrMsg } , msg = options . message , compatHtml = bender . tools && bender . tools . compatHtml ; if ( ! options . skipCompatHtml ) { var sortAttributes = ( 'sortAttributes' in options ) ? options . sortAttributes : true , fixZWS = ( 'fixZWS' in options ) ? options . fixZWS : true , fixNbsp = ( 'fixNbsp' in options ) ? options . fixNbsp : true ; if ( ! compatHtml ) { throw new Error ( 'Missing bender.tools.compatHtml' ) ; } expected = compatHtml ( expected , options . noInterWS , sortAttributes , fixZWS , options . fixStyles , fixNbsp , options . noTempElements , options . customFilters ) ; actual = compatHtml ( actual , options . noInterWS , sortAttributes , fixZWS , options . fixStyles , fixNbsp , options . noTempElements , options . customFilters ) ; } bender . assert . areSame ( html_beautify ( expected , this . _config ) , html_beautify ( actual , this . _config ) , msg ) ; }
Compares HTML code, but beautifies it before the comparison.

@param {mixed} expected
@param {mixed} actual
@param {String/Object} optionsOrMsg Assertion message if string, otherwise an options object like following:

{
message: 'Fail message',
sortAttributes: true,
fixZWS: false
}

If you don't want to format `expected` and `actual` with `compatHtml` you can set `options.skipCompatHtml` to `true`.
Compares HTML code but beautifies it before the comparison .