Annotation of kupu/tests/test_kupuinit.js, revision 1.1

1.1     ! dwinter     1: /*****************************************************************************
        !             2:  *
        !             3:  * Copyright (c) 2003-2005 Kupu Contributors. All rights reserved.
        !             4:  *
        !             5:  * This software is distributed under the terms of the Kupu
        !             6:  * License. See LICENSE.txt for license text. For a list of Kupu
        !             7:  * Contributors see CREDITS.txt.
        !             8:  *
        !             9:  *****************************************************************************/
        !            10: 
        !            11: // $Id: test_kupuinit.js 9982 2005-03-21 09:53:57Z yuppie $
        !            12: 
        !            13: function InitKupuCheckersTestCase() {
        !            14:     this.name = 'InitKupuCheckersTestCase';
        !            15:     // Please note that we are cheating here a bit:
        !            16:     // 1. No idea how to get the real checkers without setting up a complete
        !            17:     //    Kupu, so we work on a copy here.
        !            18:     // 2. We test parentElement, ParentWithStyleChecker and the arguments
        !            19:     //    used in initKupu simultanously, so these tests don't tell you what's
        !            20:     //    responsible if they fail.
        !            21: 
        !            22:     /*Moz:
        !            23:        <span style="font-weight: bold;">foo</span>
        !            24:        <span style="font-style: italic;">bar</span>
        !            25:        <span style="text-decoration: underline;">baz</span>
        !            26:        <sub>spam</sub>
        !            27:        <sup>eggs</sup>
        !            28:       Moz noCSS:
        !            29:        <b>foo</b>
        !            30:        <i>bar</i>
        !            31:        <u>baz</u>
        !            32:        <sub>spam</sub>
        !            33:        <sup>eggs</sup>
        !            34:       IE:
        !            35:        <STRONG>foo</STRONG>
        !            36:        <EM>bar</EM>
        !            37:        <U>baz</U>
        !            38:        <SUB>spam</SUB>
        !            39:        <SUP>eggs</SUP>*/
        !            40: 
        !            41:     SelectionTestCase.apply(this);
        !            42:     this.base_setUp = this.setUp;
        !            43: 
        !            44:     this._makeBoldchecker = function() {
        !            45:         // XXX copied from initKupu, must be synced manually!
        !            46:         var boldchecker = ParentWithStyleChecker(new Array('b', 'strong'),
        !            47:                                                  'fontWeight', 'bold', 'bold');
        !            48:         return boldchecker;
        !            49:         };
        !            50: 
        !            51:     this._makeItalicschecker = function() {
        !            52:         // XXX copied from initKupu, must be synced manually!
        !            53:         var italicschecker = ParentWithStyleChecker(new Array('i', 'em'),
        !            54:                                               'fontStyle', 'italic', 'italic');
        !            55:         return italicschecker;
        !            56:         };
        !            57: 
        !            58:     this._makeUnderlinechecker = function() {
        !            59:         // XXX copied from initKupu, must be synced manually!
        !            60:         var underlinechecker = ParentWithStyleChecker(new Array('u'),
        !            61:                                    'textDecoration', 'underline', 'underline');
        !            62:         return underlinechecker;
        !            63:         };
        !            64: 
        !            65:     this.setUp = function() {
        !            66:         this.base_setUp();
        !            67:         this.editor = new KupuEditor(this.kupudoc, {}, null);
        !            68:     };
        !            69: 
        !            70:     this.testBoldcheckerBold = function() {
        !            71:         this.body.innerHTML = '<p>foo <b>bar</b></p>';
        !            72:         // select                        |ar|
        !            73:         this._setSelection(5, null, 7, false, 'ar');
        !            74:         var selNode = this.selection.parentElement();
        !            75:         var boldchecker = this._makeBoldchecker();
        !            76:         this.assertEquals(boldchecker(selNode, null, this.editor), true);
        !            77:     };
        !            78: 
        !            79:     this.testBoldcheckerMixed = function() {
        !            80:         this.body.innerHTML = '<p>foo <b>bar</b></p>';
        !            81:         // select                  |o <b>bar|
        !            82:         this._setSelection(2, null, 7, false, 'o bar');
        !            83:         var selNode = this.selection.parentElement();
        !            84:         var boldchecker = this._makeBoldchecker();
        !            85:         this.assertEquals(boldchecker(selNode, null, this.editor), false);
        !            86:     };
        !            87: 
        !            88:     this.testBoldcheckerBoldLeftOuter = function() {
        !            89:         this.body.innerHTML = '<p>foo <b>bar</b></p>';
        !            90:         // select                    |<b>bar|
        !            91:         this._setSelection(4, false, 7, false, 'bar');
        !            92:         var selNode = this.selection.parentElement();
        !            93:         var boldchecker = this._makeBoldchecker();
        !            94:         this.assertEquals(boldchecker(selNode, null, this.editor), true);
        !            95:     };
        !            96: 
        !            97:     this.testBoldcheckerBoldInner = function() {
        !            98:         this.body.innerHTML = '<p>foo <b>bar</b></p>';
        !            99:         // select                       |bar|
        !           100:         this._setSelection(4, true, 7, false, 'bar');
        !           101:         var selNode = this.selection.parentElement();
        !           102:         var boldchecker = this._makeBoldchecker();
        !           103:         this.assertEquals(boldchecker(selNode, null, this.editor), true);
        !           104:     };
        !           105: 
        !           106:     this.testBoldcheckerExecCommand = function() {
        !           107:         this.body.innerHTML = '<p>foo bar</p>';
        !           108:         // select                    |bar|
        !           109:         this._setSelection(4, true, 7, false, 'bar');
        !           110:         this.doc.execCommand('bold', null, null);
        !           111:         var selNode = this.selection.parentElement();
        !           112:         var boldchecker = this._makeBoldchecker();
        !           113:         this.assertEquals(boldchecker(selNode, null, this.editor), true);
        !           114:     };
        !           115: 
        !           116:     this.testBoldcheckerExecCommandCollapsed = function() {
        !           117:         // XXX: the feature seems to work, but test is broken on IE
        !           118:         if (_SARISSA_IS_IE) return;
        !           119:         this.body.innerHTML = '<p>foo bar</p>';
        !           120:         // select                   ||
        !           121:         this._setSelection(3, null, 3, null, '');
        !           122:         this.doc.execCommand('bold', null, null);
        !           123:         var selNode = this.selection.parentElement();
        !           124:         var boldchecker = this._makeBoldchecker();
        !           125:         this.assertEquals(boldchecker(selNode, null, this.editor), true);
        !           126:     };
        !           127: 
        !           128:     this.testBoldcheckerExecCommandNoCSS = function() {
        !           129:         if (_SARISSA_IS_IE) return;
        !           130:         this.doc.execCommand('useCSS', null, true);
        !           131: 
        !           132:         this.body.innerHTML = '<p>foo bar</p>';
        !           133:         // select                    |bar|
        !           134:         this._setSelection(4, null, 7, false, 'bar');
        !           135:         this.doc.execCommand('bold', null, null);
        !           136:         var selNode = this.selection.parentElement();
        !           137:         var boldchecker = this._makeBoldchecker();
        !           138:         this.assertEquals(boldchecker(selNode, null, this.editor), true);
        !           139: 
        !           140:         this.doc.execCommand('useCSS', null, false);
        !           141:     };
        !           142: 
        !           143:     this.testBoldcheckerStrong = function() {
        !           144:         this.body.innerHTML = '<p>foo <strong>bar</strong></p>';
        !           145:         // select                             |ar|
        !           146:         this._setSelection(5, null, 7, false, 'ar');
        !           147:         var selNode = this.selection.parentElement();
        !           148:         var boldchecker = this._makeBoldchecker();
        !           149:         this.assertEquals(boldchecker(selNode, null, this.editor), true);
        !           150:     };
        !           151: 
        !           152:     this.testBoldcheckerStyle = function() {
        !           153:         this.body.innerHTML =
        !           154:                       '<p>foo <span style="font-weight: bold;">bar</span></p>';
        !           155:         // select                                              |ar|
        !           156:         this._setSelection(5, null, 7, false, 'ar');
        !           157:         var selNode = this.selection.parentElement();
        !           158:         var boldchecker = this._makeBoldchecker();
        !           159:         this.assertEquals(boldchecker(selNode, null, this.editor), true);
        !           160:     };
        !           161: 
        !           162:     this.testItalicscheckerItalics = function() {
        !           163:         this.body.innerHTML = '<p>foo <i>bar</i></p>';
        !           164:         // select                        |ar|
        !           165:         this._setSelection(5, null, 7, false, 'ar');
        !           166:         var selNode = this.selection.parentElement();
        !           167:         var italicschecker = this._makeItalicschecker();
        !           168:         this.assertEquals(italicschecker(selNode, null, this.editor), true);
        !           169:     };
        !           170: 
        !           171:     this.testItalicscheckerEmphasis = function() {
        !           172:         this.body.innerHTML = '<p>foo <em>bar</em></p>';
        !           173:         // select                         |ar|
        !           174:         this._setSelection(5, null, 7, false, 'ar');
        !           175:         var selNode = this.selection.parentElement();
        !           176:         var italicschecker = this._makeItalicschecker();
        !           177:         this.assertEquals(italicschecker(selNode, null, this.editor), true);
        !           178:     };
        !           179: 
        !           180:     this.testItalicscheckerStyle = function() {
        !           181:         this.body.innerHTML =
        !           182:                      '<p>foo <span style="font-style: italic;">bar</span></p>';
        !           183:         // select                                              |ar|
        !           184:         this._setSelection(5, null, 7, false, 'ar');
        !           185:         var selNode = this.selection.parentElement();
        !           186:         var italicschecker = this._makeItalicschecker();
        !           187:         this.assertEquals(italicschecker(selNode, null, this.editor), true);
        !           188:     };
        !           189: 
        !           190:     this.testUnderlinecheckerStyle = function() {
        !           191:         this.body.innerHTML =
        !           192:              '<p>foo <span style="text-decoration: underline;">bar</span></p>';
        !           193:         // select                                              |ar|
        !           194:         this._setSelection(5, null, 7, false, 'ar');
        !           195:         var selNode = this.selection.parentElement();
        !           196:         var underlinechecker = this._makeUnderlinechecker();
        !           197:         this.assertEquals(underlinechecker(selNode, null, this.editor), true);
        !           198:     };
        !           199: };
        !           200: 
        !           201: InitKupuCheckersTestCase.prototype = new SelectionTestCase;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>