8
0
Просмотр исходного кода

Changed: `engine.dev-utils.enableEngineDebug` now takes object with `log()` and `error()` methods instead of logging method. Default is `console`.

Szymon Cofalik 8 лет назад
Родитель
Сommit
b492358574

+ 33 - 34
packages/ckeditor5-engine/src/dev-utils/enableenginedebug.js

@@ -63,7 +63,7 @@ const LOG_SEPARATOR = '-------';
 let enabled = false;
 
 // Logging function used to log debug messages.
-let log = console.log;
+let logger = console;
 
 /**
  * Enhances model classes with logging methods. Returns a plugin that should be loaded in the editor to
@@ -101,13 +101,12 @@ let log = console.log;
  * All those methods take one parameter, which is a version of {@link module:engine/model/document~Document model document}
  * for which model or view document state should be logged.
  *
- * @param {Function} [logger] Function used to log messages. By default messages are logged to console.
+ * @param {Object} [_logger] Object with functions used to log messages and errors. By default messages are logged to console.
+ * If specified, it is expected to have `log()` and `error()` methods.
  * @returns {module:engine/dev-utils/enableenginedebug~DebugPlugin} Plugin to be loaded in the editor.
  */
-export default function enableEngineDebug( logger ) {
-	if ( logger ) {
-		log = logger;
-	}
+export default function enableEngineDebug( _logger = console ) {
+	logger = _logger;
 
 	if ( !enabled ) {
 		enabled = true;
@@ -126,7 +125,7 @@ function enableLoggingTools() {
 	};
 
 	ModelPosition.prototype.log = function() {
-		log( 'ModelPosition: ' + this );
+		logger.log( 'ModelPosition: ' + this );
 	};
 
 	ModelRange.prototype.toString = function() {
@@ -134,7 +133,7 @@ function enableLoggingTools() {
 	};
 
 	ModelRange.prototype.log = function() {
-		log( 'ModelRange: ' + this );
+		logger.log( 'ModelRange: ' + this );
 	};
 
 	ModelText.prototype.toString = function() {
@@ -142,11 +141,11 @@ function enableLoggingTools() {
 	};
 
 	ModelText.prototype.logExtended = function() {
-		log( `ModelText: ${ this }, attrs: ${ mapString( this.getAttributes() ) }` );
+		logger.log( `ModelText: ${ this }, attrs: ${ mapString( this.getAttributes() ) }` );
 	};
 
 	ModelText.prototype.log = function() {
-		log( 'ModelText: ' + this );
+		logger.log( 'ModelText: ' + this );
 	};
 
 	ModelTextProxy.prototype.toString = function() {
@@ -154,11 +153,11 @@ function enableLoggingTools() {
 	};
 
 	ModelTextProxy.prototype.logExtended = function() {
-		log( `ModelTextProxy: ${ this }, attrs: ${ mapString( this.getAttributes() ) }` );
+		logger.log( `ModelTextProxy: ${ this }, attrs: ${ mapString( this.getAttributes() ) }` );
 	};
 
 	ModelTextProxy.prototype.log = function() {
-		log( 'ModelTextProxy: ' + this );
+		logger.log( 'ModelTextProxy: ' + this );
 	};
 
 	ModelElement.prototype.toString = function() {
@@ -166,18 +165,18 @@ function enableLoggingTools() {
 	};
 
 	ModelElement.prototype.log = function() {
-		log( 'ModelElement: ' + this );
+		logger.log( 'ModelElement: ' + this );
 	};
 
 	ModelElement.prototype.logExtended = function() {
-		log( `ModelElement: ${ this }, ${ this.childCount } children, attrs: ${ mapString( this.getAttributes() ) }` );
+		logger.log( `ModelElement: ${ this }, ${ this.childCount } children, attrs: ${ mapString( this.getAttributes() ) }` );
 	};
 
 	ModelElement.prototype.logAll = function() {
-		log( '--------------------' );
+		logger.log( '--------------------' );
 
 		this.logExtended();
-		log( 'List of children:' );
+		logger.log( 'List of children:' );
 
 		for ( let child of this.getChildren() ) {
 			child.log();
@@ -217,7 +216,7 @@ function enableLoggingTools() {
 	};
 
 	ModelElement.prototype.logTree = function() {
-		log( this.printTree() );
+		logger.log( this.printTree() );
 	};
 
 	ModelRootElement.prototype.toString = function() {
@@ -225,7 +224,7 @@ function enableLoggingTools() {
 	};
 
 	ModelRootElement.prototype.log = function() {
-		log( 'ModelRootElement: ' + this );
+		logger.log( 'ModelRootElement: ' + this );
 	};
 
 	ModelDocumentFragment.prototype.toString = function() {
@@ -233,7 +232,7 @@ function enableLoggingTools() {
 	};
 
 	ModelDocumentFragment.prototype.log = function() {
-		log( 'ModelDocumentFragment: ' + this );
+		logger.log( 'ModelDocumentFragment: ' + this );
 	};
 
 	ModelDocumentFragment.prototype.printTree = function() {
@@ -263,11 +262,11 @@ function enableLoggingTools() {
 	};
 
 	ModelDocumentFragment.prototype.logTree = function() {
-		log( this.printTree() );
+		logger.log( this.printTree() );
 	};
 
 	Operation.prototype.log = function() {
-		log( this.toString() );
+		logger.log( this.toString() );
 	};
 
 	AttributeOperation.prototype.toString = function() {
@@ -307,11 +306,11 @@ function enableLoggingTools() {
 	};
 
 	Delta.prototype.log = function() {
-		log( this.toString() );
+		logger.log( this.toString() );
 	};
 
 	Delta.prototype.logAll = function() {
-		log( '--------------------' );
+		logger.log( '--------------------' );
 
 		this.log();
 
@@ -425,11 +424,11 @@ function enableLoggingTools() {
 	};
 
 	ViewText.prototype.logExtended = function() {
-		log( 'ViewText: ' + this );
+		logger.log( 'ViewText: ' + this );
 	};
 
 	ViewText.prototype.log = function() {
-		log( 'ViewText: ' + this );
+		logger.log( 'ViewText: ' + this );
 	};
 
 	ViewTextProxy.prototype.toString = function() {
@@ -437,11 +436,11 @@ function enableLoggingTools() {
 	};
 
 	ViewTextProxy.prototype.logExtended = function() {
-		log( 'ViewTextProxy: ' + this );
+		logger.log( 'ViewTextProxy: ' + this );
 	};
 
 	ViewTextProxy.prototype.log = function() {
-		log( 'ViewTextProxy: ' + this );
+		logger.log( 'ViewTextProxy: ' + this );
 	};
 
 	ViewElement.prototype.printTree = function( level = 0 ) {
@@ -467,7 +466,7 @@ function enableLoggingTools() {
 	};
 
 	ViewElement.prototype.logTree = function() {
-		log( this.printTree() );
+		logger.log( this.printTree() );
 	};
 
 	ViewDocumentFragment.prototype.printTree = function() {
@@ -487,7 +486,7 @@ function enableLoggingTools() {
 	};
 
 	ViewDocumentFragment.prototype.logTree = function() {
-		log( this.printTree() );
+		logger.log( this.printTree() );
 	};
 }
 
@@ -512,7 +511,7 @@ function enableReplayerTools() {
 			return '';
 		}
 
-		const appliedDeltas = this._appliedDeltas.concat( this._lastDelta.toJSON() );
+		const appliedDeltas = this._appliedDeltas.concat( this._lastDelta );
 
 		return appliedDeltas.map( JSON.stringify ).join( LOG_SEPARATOR );
 	};
@@ -526,7 +525,7 @@ function enableDocumentTools() {
 	const _modelDocumentApplyOperation = ModelDocument.prototype.applyOperation;
 
 	ModelDocument.prototype.applyOperation = function( operation ) {
-		log( 'Applying ' + operation );
+		logger.log( 'Applying ' + operation );
 
 		if ( !this._operationLogs ) {
 			this._operationLogs = [];
@@ -565,12 +564,12 @@ function enableDocumentTools() {
 	};
 
 	function logDocument( document, version ) {
-		log( '--------------------' );
+		logger.log( '--------------------' );
 
 		if ( document[ treeDump ][ version ] ) {
-			log( document[ treeDump ][ version ] );
+			logger.log( document[ treeDump ][ version ] );
 		} else {
-			log( 'Tree log unavailable for given version: ' + version );
+			logger.log( 'Tree log unavailable for given version: ' + version );
 		}
 	}
 }

+ 5 - 4
packages/ckeditor5-engine/tests/dev-utils/enableenginedebug.js

@@ -62,7 +62,7 @@ describe( 'enableEngineDebug', () => {
 } );
 
 describe( 'debug tools', () => {
-	let DebugPlugin, log;
+	let DebugPlugin, log, error;
 
 	class TestEditor extends StandardEditor {
 		constructor( ...args ) {
@@ -75,7 +75,8 @@ describe( 'debug tools', () => {
 
 	before( () => {
 		log = sinon.spy();
-		DebugPlugin = enableEngineDebug( log );
+		error = sinon.spy();
+		DebugPlugin = enableEngineDebug( { log, error } );
 	} );
 
 	afterEach( () => {
@@ -766,7 +767,7 @@ describe( 'debug tools', () => {
 		} );
 	} );
 
-	describe( 'should provide means for saving delta history transformation', () => {
+	describe( 'should provide debug tools for delta transformation', () => {
 		let document, root, otherRoot;
 
 		beforeEach( () => {
@@ -892,7 +893,7 @@ describe( 'debug tools', () => {
 			} );
 		} );
 
-		it( 'recreate delta using history', () => {
+		it( 'recreate delta using Delta#history', () => {
 			const deltaA = new MoveDelta();
 			const opA = new MoveOperation( ModelPosition.createAt( root, 4 ), 4, ModelPosition.createAt( otherRoot, 4 ), 0 );
 			deltaA.addOperation( opA );