JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
8a1510d4a597326ea12ddb1f65e0085a65a23db4
[ckeditor.git] / _source / tests / plugins / link / link.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
2 <html xmlns="http://www.w3.org/1999/xhtml">\r
3 <head>\r
4         <title>Plugin: link</title>\r
5         <link rel="stylesheet" type="text/css" href="../../test.css" />\r
6         <script type="text/javascript" src="../../../ckeditor.js"></script>\r
7         <script type="text/javascript" src="../../test.js"></script>\r
8         <script type="text/javascript">\r
9         //<![CDATA[\r
10 /**\r
11  * Load the editor and wait for fully interactable.\r
12  * @param {Object} elementId\r
13  * @parma {Object} mode\r
14  * @param {Object} config\r
15  * @param {Object} callback Continuation with {@param editor}.\r
16  * @param {Object} context\r
17  */\r
18 function prepareEditor( elementId, mode, config, callback, context )\r
19 {\r
20         CKEDITOR.on( 'instanceReady',\r
21                 function( evt )\r
22                 {\r
23                         var isMe = mode == CKEDITOR.ELEMENT_MODE_REPLACE ?\r
24                                 evt.editor.name == elementId\r
25                                 : evt.editor.element.$ ==\r
26                                         document.getElementById( elementId );\r
27                         if ( isMe )\r
28                         {\r
29                                 var editor = evt.editor;\r
30                                 // Force result data unformatted.\r
31                                 editor.dataProcessor.writer._.rules = {};\r
32                                 // Force remove tail br.\r
33                                 editor.dataProcessor.htmlFilter.addRules( {\r
34                                         elements : {\r
35                                                 'br' : function( br ){\r
36                                                         var parent = br.parent,\r
37                                                                 length = parent.children.length,\r
38                                                                 lastChild = parent.children[ length - 1 ];\r
39                                                         if( lastChild == br )\r
40                                                                 return false;\r
41                                                 }\r
42                                         }\r
43                                 } );\r
44                                 callback.call( context, editor );\r
45                         }\r
46                 }, this );\r
47 \r
48         mode = mode || CKEDITOR.ELEMENT_MODE_REPLACE;\r
49         switch( mode )\r
50         {\r
51                 case CKEDITOR.ELEMENT_MODE_REPLACE :\r
52                         CKEDITOR.replace( elementId, config );\r
53                         break;\r
54                 case CKEDITOR.ELEMENT_MODE_APPENDTO :\r
55                         CKEDITOR.appendTo( elementId, config );\r
56                         break;\r
57         }\r
58 }\r
59 \r
60 /**\r
61  * IE always returning CRLF for line-feed, so remove it when retrieving\r
62  * pre-formated text from text area.\r
63  */\r
64 function getTextAreaValue( id )\r
65 {\r
66         return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' );\r
67 }\r
68 \r
69 CKEDITOR.test.addTestCase( ( function()\r
70         {\r
71 \r
72                 // Local references.\r
73                 var assert = CKEDITOR.test.assert,\r
74                         doc = CKEDITOR.document,\r
75                         action = YAHOO.util.UserAction,\r
76                         selector = YAHOO.util.Selector;\r
77 \r
78                 return  {\r
79 \r
80                         /**\r
81                          *  Test remove numbered list with 'enterMode = BR'.\r
82                          */\r
83                         test_create_link : function()\r
84                         {\r
85                                 prepareEditor( 'test_create_link_editor', null,\r
86                                         null,\r
87                                         function( editor )\r
88                                         {\r
89                                                 this.resume( function()\r
90                                                 {\r
91                                             editor.focus();\r
92                                             editor.execCommand( 'link' );\r
93                                                         // waiting for dialog to open.\r
94                                             this.wait( function()\r
95                                                          {\r
96                                                                 var dialog = editor._.storedDialogs[ 'link' ];\r
97                                                                 var urlField = dialog.getContentElement( 'info', 'url' );\r
98                                                                 urlField.setValue( 'svn.fckeditor.net' );\r
99 \r
100                                                                 dialog.fire( 'ok' );\r
101                                                                 dialog.hide();\r
102 \r
103                                                                 var result = editor.getData();\r
104                                                                 assert.areEqual(\r
105                                                                  '<p><a href="http://svn.fckeditor.net">http://svn.fckeditor.net</a></p>',\r
106                                                                  result, 'Created link element doesn\'t match.' );\r
107 \r
108                                                          }, 1000 );\r
109                                                 } );\r
110                                         }, this );\r
111                                         this.wait();\r
112                         },\r
113 \r
114                         name :document.title\r
115                 };\r
116         } )() );\r
117         //]]>\r
118         </script>\r
119 </head>\r
120 <body>\r
121 <textarea id="test_create_link_editor"></textarea>\r
122 </body>\r
123 </html>\r