text: /* bender-tags: editor,unit,widget */
  /* bender-ckeditor-plugins: image2,link */
  /* global image2TestsTools */
  
  ( function() {
  	'use strict';
  
  	var tools = image2TestsTools,
  		states = {
  			// Captioned widgets without links.
  			'caption:true_align:none_link:no': {
  				hasCaption: true,
  				align: 'none'
  			},
  			'caption:true_align:center_link:no': {
  				hasCaption: true,
  				align: 'center'
  			},
  			'caption:true_align:left_link:no': {
  				hasCaption: true,
  				align: 'left'
  			},
  
  			// Captioned widgets with link.
  			'caption:true_align:none_link:yes': {
  				hasCaption: true,
  				align: 'none',
  				link: {
  					type: 'url',
  					url: {
  						protocol: 'http://',
  						url: 'x'
  					}
  				}
  			},
  			'caption:true_align:center_link:yes': {
  				hasCaption: true,
  				align: 'center',
  				link: {
  					type: 'url',
  					url: {
  						protocol: 'http://',
  						url: 'x'
  					}
  				}
  			},
  			'caption:true_align:left_link:yes': {
  				hasCaption: true,
  				align: 'left',
  				link: {
  					type: 'url',
  					url: {
  						protocol: 'http://',
  						url: 'x'
  					}
  				}
  			},
  
  			// Non-captioned widgets without links.
  			'caption:false_align:none_link:no': {
  				hasCaption: false,
  				align: 'none'
  			},
  			'caption:false_align:center_link:no': {
  				hasCaption: false,
  				align: 'center'
  			},
  			'caption:false_align:left_link:no': {
  				hasCaption: false,
  				align: 'left'
  			},
  
  			// Non-captioned widgets without links.
  			'caption:false_align:none_link:yes': {
  				hasCaption: false,
  				align: 'none',
  				link: {
  					type: 'url',
  					url: {
  						protocol: 'http://',
  						url: 'x'
  					}
  				}
  			},
  			'caption:false_align:center_link:yes': {
  				hasCaption: false,
  				align: 'center',
  				link: {
  					type: 'url',
  					url: {
  						protocol: 'http://',
  						url: 'x'
  					}
  				}
  			},
  			'caption:false_align:left_link:yes': {
  				hasCaption: false,
  				align: 'left',
  				link: {
  					type: 'url',
  					url: {
  						protocol: 'http://',
  						url: 'x'
  					}
  				}
  			}
  		},
  
  		contexts = {
  			'test split paragraph when caption is added': {
  				context: 'plainParagraph',
  				oldState: 'caption:false_align:none_link:no',
  				newState: 'caption:true_align:none_link:no'
  			},
  			'test split paragraph with span when caption is added': {
  				context: 'paragraphWithSpan',
  				oldState: 'caption:false_align:none_link:no',
  				newState: 'caption:true_align:none_link:no'
  			},
  			'test split paragraph when widget is centered': {
  				context: 'plainParagraph',
  				oldState: 'caption:false_align:none_link:no',
  				newState: 'caption:false_align:center_link:no'
  			}
  		};
  
  	bender.editorBot.create( {
  		config: {
  			language: 'en',
  			allowedContent: true,
  			enterMode: CKEDITOR.ENTER_P,
  			autoParagraph: false
  		}
  	}, function( bot ) {
  		var tcs = {},
  			shiftState = CKEDITOR.plugins.image2.stateShifter( bot.editor );
  
  		tools.createStateTransitionTests( tcs, states, shiftState );
  		tools.createContextualStateTransitionTests( tcs, states, contexts, shiftState );
  
  		tcs.editorBot = bot;
  
  		bender.test( tcs );
  	} );
  } )();