Ticket #3019: test-form-edit-mode.patch

File test-form-edit-mode.patch, 5.4 KB (added by Garry Yao, 11 years ago)

Functional Testcase.

  • _source/tests/plugins/form/form.html

     
     1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2<html xmlns="http://www.w3.org/1999/xhtml">
     3<head>
     4        <title>Plugin: form</title>
     5        <link rel="stylesheet" type="text/css" href="../../test.css" />
     6        <script type="text/javascript" src="../../../../ckeditor_source.js"></script>
     7        <script type="text/javascript" src="../../test.js"></script>
     8        <script type="text/javascript">
     9        //<![CDATA[
     10       
     11CKEDITOR.test.addTestCase( ( function()
     12    {
     13            /**
     14                 * IE always returning CRLF for linefeed, so remove it when retrieve
     15                 * pre-formated text from text area.
     16                 * @param {Object} id
     17                 */
     18            function getTextAreaValue( id )
     19            {
     20                    return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' );
     21            }
     22            // Local references.
     23            var assert = CKEDITOR.test.assert, doc = CKEDITOR.document;
     24            return      {
     25                /**
     26                         * Test insert a form element with all supported attributes.
     27                         */
     28                test_createForm : function()
     29                {
     30                        var editor = CKEDITOR.replace( 'editor1' );
     31                        editor.on( 'instanceReady',
     32                                function()
     33                                {
     34                                        this.resume( function()
     35                                        {
     36                                                editor.focus();
     37                                                // async
     38                                                editor.execCommand( 'form' );
     39                                                this.wait(
     40                                                        function()
     41                                                        {
     42                                                                var dialog = editor._.storedDialogs[ 'form' ];
     43                                                                var name = dialog
     44                                                                    .getContentElement( 'info',
     45                                                                        'txtName' ), action = dialog
     46                                                                    .getContentElement( 'info',
     47                                                                        'txtAction' ), formId = dialog
     48                                                                    .getContentElement( 'info',
     49                                                                        'txtId' ), encoding = dialog
     50                                                                    .getContentElement( 'info',
     51                                                                        'cmbEncoding' ), target = dialog
     52                                                                    .getContentElement( 'info',
     53                                                                        'cmbTarget' ), method = dialog
     54                                                                    .getContentElement( 'info',
     55                                                                        'cmbMethod' );
     56
     57                                                                // Set form fields values
     58                                                                name.setValue( 'form-name' );
     59                                                                action.setValue( 'http://dev.fckeditor.net/newticket?' );
     60                                                                formId.setValue( 'form-id1' );
     61                                                                encoding.setValue( 'application/x-www-form-urlencoded' );
     62                                                                target.setValue( '_blank' );
     63                                                                method.setValue( 'post' );
     64
     65                                                                dialog.fire( 'ok' );
     66                                                                dialog.hide();
     67
     68                                                                var result = editor.getData(), expected;
     69                                                                if ( CKEDITOR.env.gecko )
     70                                                                        expected = getTextAreaValue( 'formResultGecko' )
     71                                                                else
     72                                                                        expected = getTextAreaValue( 'formResultIE' )
     73
     74                                                                    //compensate lastline
     75                                                                if ( CKEDITOR.env.gecko )
     76                                                                        expected += '<br />\n';
     77                                                                assert.areEqual( expected, result,
     78                                                                        'Created form element doesn\'t match.' );
     79                                                                                       
     80                                                                                        //test modify mode
     81                                                                                        var  element = new CKEDITOR.dom.element(
     82                                                                                        editor.document.$.getElementsByTagName( 'form' )[ 0 ] );
     83                                                                                        editor.getSelection().selectElement( element );
     84                                                                                       
     85                                                                                        //sync
     86                                                                        editor.execCommand( 'form' );
     87                                                                                       
     88                                                                // check form fields values are updated.
     89                                                                assert.areSame( 'form-name', name.getValue() );
     90                                                                assert.areSame( 'http://dev.fckeditor.net/newticket?', action.getValue() );
     91                                                                assert.areSame( 'form-id1', formId.getValue() );
     92                                                                assert.areSame( 'application/x-www-form-urlencoded', encoding.getValue() );
     93                                                                assert.areSame( '_blank', target.getValue() );
     94                                                                assert.areSame( 'post', method.getValue() );
     95
     96                                                        }, 1000 );
     97                                        } );
     98                                }, this );
     99
     100                        this.wait();
     101                },
     102
     103                name :document.title
     104            };
     105    } )() );
     106        //]]>
     107        </script>
     108</head>
     109<body>
     110        <textarea id="editor1" name="editor1"></textarea>
     111        <textarea id="formResultGecko"><form action="http://dev.fckeditor.net/newticket?" encoding="application/x-www-form-urlencoded" id="form-id1" method="post" name="form-name" target="_blank"><br />
     112</form></textarea>
     113        <textarea id="formResultIE"><form action="http://dev.fckeditor.net/newticket?" encoding="application/x-www-form-urlencoded" id="form-id1" method="post" name="form-name" target="_blank">
     114</form>
     115</textarea>
     116</body>
     117</html>
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy