/**
* @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md.
*/
/* bender-tags: conversion */
import ViewDocument from '/ckeditor5/engine/view/document.js';
import ViewSelection from '/ckeditor5/engine/view/selection.js';
import ViewRange from '/ckeditor5/engine/view/range.js';
import ModelDocument from '/ckeditor5/engine/model/document.js';
import Mapper from '/ckeditor5/engine/conversion/mapper.js';
import { convertSelectionChange } from '/ckeditor5/engine/conversion/view-selection-to-model-converters.js';
import { setData as modelSetData, getData as modelGetData } from '/tests/engine/_utils/model.js';
import { setData as viewSetData } from '/tests/engine/_utils/view.js';
describe( 'convertSelectionChange', () => {
let model, view, mapper, convertSelection, modelRoot, viewRoot;
beforeEach( () => {
model = new ModelDocument();
modelRoot = model.createRoot();
model.schema.registerItem( 'paragraph', '$block' );
modelSetData( model, '
foo
bar
' ); mapper = new Mapper(); mapper.bindElements( modelRoot, viewRoot ); mapper.bindElements( modelRoot.getChild( 0 ), viewRoot.getChild( 0 ) ); mapper.bindElements( modelRoot.getChild( 1 ), viewRoot.getChild( 1 ) ); convertSelection = convertSelectionChange( model, mapper ); } ); it( 'should convert collapsed selection', () => { const viewSelection = new ViewSelection(); viewSelection.addRange( ViewRange.createFromParentsAndOffsets( viewRoot.getChild( 0 ).getChild( 0 ), 1, viewRoot.getChild( 0 ).getChild( 0 ), 1 ) ); convertSelection( null, { newSelection: viewSelection } ); expect( modelGetData( model ) ).to.equal( 'நிலைக்கு
' ); // Re-bind elements that were just re-set. mapper.bindElements( modelRoot.getChild( 0 ), viewRoot.getChild( 0 ) ); const viewSelection = new ViewSelection(); viewSelection.addRange( ViewRange.createFromParentsAndOffsets( viewRoot.getChild( 0 ).getChild( 0 ), 2, viewRoot.getChild( 0 ).getChild( 0 ), 6 ) ); convertSelection( null, { newSelection: viewSelection } ); expect( modelGetData( model ) ).to.equal( '