| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
- /* bender-tags: treeview */
- 'use strict';
- import Matcher from '/ckeditor5/engine/treeview/matcher.js';
- import Element from '/ckeditor5/engine/treeview/element.js';
- describe( 'Matcher', () => {
- describe( 'match', () => {
- it( 'should match element name', () => {
- const matcher = new Matcher( 'p' );
- const el = new Element( 'p' );
- const el2 = new Element( 'div' );
- const match = matcher.match( el );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el );
- expect( matcher.match( el2 ) ).to.be.null;
- } );
- it( 'should match element name with RegExp', () => {
- const matcher = new Matcher( { name: /^text...a$/ } );
- const el1 = new Element( 'textarea' );
- const el2 = new Element( 'div' );
- const match = matcher.match( el1 );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el1 );
- expect( matcher.match( el2 ) ).to.be.null;
- } );
- it( 'should match element attributes', () => {
- const matcher = new Matcher( {
- attribute: {
- title: 'foobar'
- }
- } );
- const el1 = new Element( 'p', { title: 'foobar' } );
- const el2 = new Element( 'p', { title: 'foobaz' } );
- const match = matcher.match( el1 );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el1 );
- expect( matcher.match( el2 ) ).to.be.null;
- } );
- it( 'should match element attributes using RegExp', () => {
- const matcher = new Matcher( {
- attribute: {
- title: /fooba./
- }
- } );
- const el1 = new Element( 'p', { title: 'foobar' } );
- const el2 = new Element( 'p', { title: 'foobaz' } );
- let match = matcher.match( el1 );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el1 );
- match = matcher.match( el2 );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el2 );
- } );
- it( 'should match element class names', () => {
- const matcher = new Matcher( { class: 'foobar' } );
- const el1 = new Element( 'p', { class: 'foobar' } );
- const match = matcher.match( el1 );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el1 );
- } );
- it( 'should match element class names using RegExp', () => {
- const matcher = new Matcher( { class: /fooba./ } );
- const el1 = new Element( 'p', { class: 'foobar' } );
- const el2 = new Element( 'p', { class: 'foobaz' } );
- let match = matcher.match( el1 );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el1 );
- match = matcher.match( el2 );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el2 );
- } );
- it( 'should match element styles', () => {
- const matcher = new Matcher( {
- style: {
- color: 'red'
- }
- } );
- const el1 = new Element( 'p', { style: 'color: red' } );
- const match = matcher.match( el1 );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el1 );
- } );
- it( 'should match element styles using RegExp', () => {
- const matcher = new Matcher( {
- style: {
- color: /^.*blue$/
- }
- } );
- const el1 = new Element( 'p', { style: 'color: blue' } );
- const el2 = new Element( 'p', { style: 'color: darkblue' } );
- let match = matcher.match( el1 );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el1 );
- match = matcher.match( el2 );
- expect( match ).to.be.an( 'object' );
- expect( match ).to.have.property( 'element' );
- expect( match.element ).to.equal( el2 );
- } );
- } );
- } );
|