JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.0
[ckeditor.git] / _source / tests / plugins / link / link.html
diff --git a/_source/tests/plugins/link/link.html b/_source/tests/plugins/link/link.html
new file mode 100644 (file)
index 0000000..8a1510d
--- /dev/null
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>Plugin: link</title>\r
+       <link rel="stylesheet" type="text/css" href="../../test.css" />\r
+       <script type="text/javascript" src="../../../ckeditor.js"></script>\r
+       <script type="text/javascript" src="../../test.js"></script>\r
+       <script type="text/javascript">\r
+       //<![CDATA[\r
+/**\r
+ * Load the editor and wait for fully interactable.\r
+ * @param {Object} elementId\r
+ * @parma {Object} mode\r
+ * @param {Object} config\r
+ * @param {Object} callback Continuation with {@param editor}.\r
+ * @param {Object} context\r
+ */\r
+function prepareEditor( elementId, mode, config, callback, context )\r
+{\r
+       CKEDITOR.on( 'instanceReady',\r
+               function( evt )\r
+               {\r
+                       var isMe = mode == CKEDITOR.ELEMENT_MODE_REPLACE ?\r
+                               evt.editor.name == elementId\r
+                               : evt.editor.element.$ ==\r
+                                       document.getElementById( elementId );\r
+                       if ( isMe )\r
+                       {\r
+                               var editor = evt.editor;\r
+                               // Force result data unformatted.\r
+                               editor.dataProcessor.writer._.rules = {};\r
+                               // Force remove tail br.\r
+                               editor.dataProcessor.htmlFilter.addRules( {\r
+                                       elements : {\r
+                                               'br' : function( br ){\r
+                                                       var parent = br.parent,\r
+                                                               length = parent.children.length,\r
+                                                               lastChild = parent.children[ length - 1 ];\r
+                                                       if( lastChild == br )\r
+                                                               return false;\r
+                                               }\r
+                                       }\r
+                               } );\r
+                               callback.call( context, editor );\r
+                       }\r
+               }, this );\r
+\r
+       mode = mode || CKEDITOR.ELEMENT_MODE_REPLACE;\r
+       switch( mode )\r
+       {\r
+               case CKEDITOR.ELEMENT_MODE_REPLACE :\r
+                       CKEDITOR.replace( elementId, config );\r
+                       break;\r
+               case CKEDITOR.ELEMENT_MODE_APPENDTO :\r
+                       CKEDITOR.appendTo( elementId, config );\r
+                       break;\r
+       }\r
+}\r
+\r
+/**\r
+ * IE always returning CRLF for line-feed, so remove it when retrieving\r
+ * pre-formated text from text area.\r
+ */\r
+function getTextAreaValue( id )\r
+{\r
+       return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' );\r
+}\r
+\r
+CKEDITOR.test.addTestCase( ( function()\r
+       {\r
+\r
+               // Local references.\r
+               var assert = CKEDITOR.test.assert,\r
+                       doc = CKEDITOR.document,\r
+                       action = YAHOO.util.UserAction,\r
+                       selector = YAHOO.util.Selector;\r
+\r
+               return  {\r
+\r
+                       /**\r
+                        *  Test remove numbered list with 'enterMode = BR'.\r
+                        */\r
+                       test_create_link : function()\r
+                       {\r
+                               prepareEditor( 'test_create_link_editor', null,\r
+                                       null,\r
+                                       function( editor )\r
+                                       {\r
+                                               this.resume( function()\r
+                                               {\r
+                                           editor.focus();\r
+                                           editor.execCommand( 'link' );\r
+                                                       // waiting for dialog to open.\r
+                                           this.wait( function()\r
+                                                        {\r
+                                                               var dialog = editor._.storedDialogs[ 'link' ];\r
+                                                               var urlField = dialog.getContentElement( 'info', 'url' );\r
+                                                               urlField.setValue( 'svn.fckeditor.net' );\r
+\r
+                                                               dialog.fire( 'ok' );\r
+                                                               dialog.hide();\r
+\r
+                                                               var result = editor.getData();\r
+                                                               assert.areEqual(\r
+                                                                '<p><a href="http://svn.fckeditor.net">http://svn.fckeditor.net</a></p>',\r
+                                                                result, 'Created link element doesn\'t match.' );\r
+\r
+                                                        }, 1000 );\r
+                                               } );\r
+                                       }, this );\r
+                                       this.wait();\r
+                       },\r
+\r
+                       name :document.title\r
+               };\r
+       } )() );\r
+       //]]>\r
+       </script>\r
+</head>\r
+<body>\r
+<textarea id="test_create_link_editor"></textarea>\r
+</body>\r
+</html>\r