Annotation of kupu/tests/test_kupuinit.js, revision 1.1.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>