8
0
Pārlūkot izejas kodu

Added getClassNames and getStyleNames methods to treeView.Element.

Szymon Kupś 9 gadi atpakaļ
vecāks
revīzija
c229575230

+ 18 - 0
packages/ckeditor5-engine/src/treeview/element.js

@@ -441,6 +441,15 @@ export default class Element extends Node {
 	}
 
 	/**
+	 * Returns iterator that contains all class names.
+	 *
+	 * @returns {Iterator.<String>}
+	 */
+	getClassNames() {
+		return this._classes.keys();
+	}
+
+	/**
 	 * Adds style to the element.
 	 *
 	 *		element.setStyle( 'color', 'red' );
@@ -479,6 +488,15 @@ export default class Element extends Node {
 	}
 
 	/**
+	 * Returns iterator that contains all style names.
+	 *
+	 * @returns {Iterator.<String>}
+	 */
+	getStyleNames() {
+		return this._styles.keys();
+	}
+
+	/**
 	 * Returns true if style keys are present.
 	 * If more then one style property is provided - returns true only when all properties are present.
 	 *

+ 29 - 0
packages/ckeditor5-engine/tests/treeview/element.js

@@ -614,6 +614,19 @@ describe( 'Element', () => {
 				expect( el.hasClass( 'three', 'one', 'two', 'zero' ) ).to.be.false;
 			} );
 		} );
+
+		describe( 'getClassNames', () => {
+			it( 'should return iterator with all class names', () => {
+				const names = [ 'one', 'two', 'three' ];
+				el.addClass( ...names );
+				const iterator = el.getClassNames();
+				let i = 0;
+
+				for ( let name of iterator ) {
+					expect( name ).to.equal( names[ i++ ] );
+				}
+			} );
+		} );
 	} );
 
 	describe( 'styles manipulation methods', () => {
@@ -667,6 +680,22 @@ describe( 'Element', () => {
 			} );
 		} );
 
+		describe( 'getStyleNames', () => {
+			it( 'should return iterator with all style names', () => {
+				const names = [ 'color', 'position' ];
+				el.setStyle( {
+					color: 'red',
+					position: 'absolute'
+				} );
+				const iterator = el.getStyleNames();
+				let i = 0;
+
+				for ( let name of iterator ) {
+					expect( name ).to.equal( names[ i++ ] );
+				}
+			} );
+		} );
+
 		describe( 'hasStyle', () => {
 			it( 'should check if element has a style', () => {
 				el.setStyle( 'padding-top', '10px' );