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>